|
3 | 3 | * Files: special-chars.js, special-chars.css |
4 | 4 | */ |
5 | 5 |
|
6 | | -/*TODO: Update chars to something like this:*/ |
7 | | -/* |
8 | | -.char_replacement { |
9 | | - text-decoration: underline; |
10 | | - } |
11 | | -
|
12 | | - .container { |
13 | | - margin: 0; |
14 | | - padding: 0; |
15 | | - border: 0; |
16 | | - display: inline-block; |
17 | | - } |
18 | | -
|
19 | | - .demo { |
20 | | - background-color: currentColor; |
21 | | - image-rendering: pixelated; |
22 | | - display: inline-block; |
23 | | - width: 0.6em; |
24 | | - height: 1em; |
25 | | -
|
26 | | - mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABtJREFUGFdjZGBgYPj///9/RhCAMcA0bg6yHgAPmh/6BoxTcQAAAABJRU5ErkJgggAA'), url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABZJREFUGFdjZGBgYPj///9/RhAggwMAitIUBr9U6sYAAAAASUVORK5CYII='), url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAAB9JREFUGFdj/P///38GKGCEMUCCjCgyYBFGRrAKFBkAuLYT9kYcIu0AAAAASUVORK5CYII='), url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABhJREFUGFdj/P///38GKGCEMUCCjMTJAACYiBPyG8sfAgAAAABJRU5ErkJggg=='); |
27 | | - mask-repeat: no-repeat, no-repeat, no-repeat, no-repeat; |
28 | | - mask-size: 49%, 49%, 49%, 49%; |
29 | | - mask-position: 0% 0%, 102% 0%, 0% 102%, 102% 102%; |
30 | | -
|
31 | | - -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABtJREFUGFdjZGBgYPj///9/RhCAMcA0bg6yHgAPmh/6BoxTcQAAAABJRU5ErkJgggAA'), url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABZJREFUGFdjZGBgYPj///9/RhAggwMAitIUBr9U6sYAAAAASUVORK5CYII='), url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAAB9JREFUGFdj/P///38GKGCEMUCCjCgyYBFGRrAKFBkAuLYT9kYcIu0AAAAASUVORK5CYII='), url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABhJREFUGFdj/P///38GKGCEMUCCjMTJAACYiBPyG8sfAgAAAABJRU5ErkJggg=='); |
32 | | - -webkit-mask-repeat: no-repeat, no-repeat, no-repeat, no-repeat; |
33 | | - -webkit-mask-size: 49%, 49%, 49%, 49%; |
34 | | - -webkit-mask-position: 0% 0%, 102% 0%, 0% 102%, 102% 102%; |
35 | | - } |
36 | | -*/ |
37 | | - |
38 | 6 | /* Main styling */ |
39 | 7 |
|
| 8 | +:root, body { /* Font for hex chars */ |
| 9 | + --code-input_special-chars_0: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABtJREFUGFdjZGBgYPj///9/RhCAMcA0bg6yHgAPmh/6BoxTcQAAAABJRU5ErkJgggAA'); |
| 10 | + --code-input_special-chars_1: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABZJREFUGFdjZGBgYPj///9/RhAggwMAitIUBr9U6sYAAAAASUVORK5CYII='); |
| 11 | + --code-input_special-chars_2: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAAB9JREFUGFdj/P///38GKGCEMUCCjCgyYBFGRrAKFBkAuLYT9kYcIu0AAAAASUVORK5CYII='); |
| 12 | + --code-input_special-chars_3: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABhJREFUGFdj/P///38GKGCEMUCCjMTJAACYiBPyG8sfAgAAAABJRU5ErkJggg=='); |
| 13 | + --code-input_special-chars_4: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAAB5JREFUGFdj/P///39GRkZGMI3BYYACRhgDrAKZAwAYxhvyz0DRIQAAAABJRU5ErkJggg=='); |
| 14 | + --code-input_special-chars_5: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAACJJREFUGFdj/P///38GKGAEcRgZGRlBfDAHLgNjgFUgywAAuR4T9hxJl2YAAAAASUVORK5CYII='); |
| 15 | + --code-input_special-chars_6: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAACBJREFUGFdj/P///38GKGAEcRgZGRlBfDAHQwasAlkGABcdF/Y4yco2AAAAAElFTkSuQmCC'); |
| 16 | + --code-input_special-chars_7: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABZJREFUGFdj/P///38GKGCEMUCCRHIAWMgT8kue3bQAAAAASUVORK5CYII='); |
| 17 | + --code-input_special-chars_8: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABlJREFUGFdj/P///38GKGAEcRgZGSE0cTIAvHcb8v+mIfAAAAAASUVORK5CYII='); |
| 18 | + --code-input_special-chars_9: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAAB9JREFUGFdj/P///38GKGAEcRgZGSE0igxMCVgGmQMAPqcX8hWL1K0AAAAASUVORK5CYII='); |
| 19 | + --code-input_special-chars_a: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAACBJREFUGFdjZGBgYPj///9/RhCAMcA0iADJggCmDEw5ALdxH/aGuYHqAAAAAElFTkSuQmCC'); |
| 20 | + --code-input_special-chars_b: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABlJREFUGFdj/P///38GBgYGRhAAceA0cTIAvc0b/vRDnVoAAAAASUVORK5CYII='); |
| 21 | + --code-input_special-chars_c: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAAB5JREFUGFdjZGBgYPj///9/EM0IYjAyMjIS4CDrAQC57hP+uLwvFQAAAABJRU5ErkJggg=='); |
| 22 | + --code-input_special-chars_d: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABtJREFUGFdj/P///38GBgYGRhAAceA0fg5MDwAveh/6ToN9VwAAAABJRU5ErkJggg=='); |
| 23 | + --code-input_special-chars_e: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAABxJREFUGFdj/P///38GKGAEcRgZGRlBfDCHsAwA2UwT+mVIH1MAAAAASUVORK5CYII='); |
| 24 | + --code-input_special-chars_f: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAAXNSR0IArs4c6QAAAB5JREFUGFdj/P///38GKGAEcRgZGRlBfDAHtwxMGQDZZhP+BnB1kwAAAABJRU5ErkJggg=='); |
| 25 | +} |
| 26 | + |
40 | 27 | .code-input_special-char_container { /* pre element */ |
41 | | - line-height: 4; |
42 | 28 | font-size: 20px; |
43 | 29 | } |
44 | 30 |
|
|
74 | 60 | /* Default - Two bytes - 4 hex chars */ |
75 | 61 |
|
76 | 62 | .code-input_special-char::before { |
77 | | - content: attr(data-hex0) "\A" attr(data-hex1); |
78 | | - |
79 | | - top: -1.5em; |
80 | | - left: 0; |
81 | | - padding: 0; |
82 | | - padding-bottom: 2px; |
83 | | - border-top: 1px solid; |
84 | | - border-left: 1px solid; |
85 | | - border-right: 1px solid; |
86 | | -} |
| 63 | + content: " "; |
87 | 64 |
|
88 | | -.code-input_special-char::after { |
89 | | - content: attr(data-hex2) "\A" attr(data-hex3); |
90 | | - |
91 | | - bottom: -1.5em; |
92 | | - left: 0; |
93 | | - padding: 0; |
94 | | - padding-top: 2px; |
95 | | - border-bottom: 1px solid; |
96 | | - border-left: 1px solid; |
97 | | - border-right: 1px solid; |
| 65 | + background-color: currentColor; |
| 66 | + image-rendering: pixelated; |
| 67 | + display: inline-block; |
| 68 | + width: 100%; |
| 69 | + height: 100%; |
| 70 | + |
| 71 | + --char-0: var(--code-input_special-chars_0); |
| 72 | + --char-1: var(--code-input_special-chars_1); |
| 73 | + --char-2: var(--code-input_special-chars_2); |
| 74 | + --char-3: var(--code-input_special-chars_3); |
| 75 | + |
| 76 | + mask-image: var(--char-0), var(--char-1), var(--char-2), var(--char-3); |
| 77 | + mask-repeat: no-repeat, no-repeat, no-repeat, no-repeat; |
| 78 | + mask-size: 45%, 45%, 45%, 45%; |
| 79 | + mask-position: 2% 2%, 100% 2%, 2% 100%, 100% 100%; |
| 80 | + |
| 81 | + -webkit-mask-image: var(--char-0), var(--char-1), var(--char-2), var(--char-3); |
| 82 | + -webkit-mask-repeat: no-repeat, no-repeat, no-repeat, no-repeat; |
| 83 | + -webkit-mask-size: 40%, 40%, 40%, 40%; |
| 84 | + -webkit-mask-position: 10% 10%, 90% 10%, 10% 90%, 90% 90%; |
98 | 85 | } |
99 | 86 |
|
100 | 87 | /* Zero-width - style so takes up no space */ |
|
0 commit comments