1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | 'use strict';
|
7 |
|
8 | const px = require('add-px-to-style');
|
9 | const fonts = require('google-fonts');
|
10 | const color = require('tinycolor2');
|
11 | const scopeCss = require('scope-css');
|
12 | const interpolate = require('color-interpolate');
|
13 | const none = require('./none');
|
14 |
|
15 |
|
16 | module.exports = typer;
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | typer.palette = ['white', 'black'];
|
22 |
|
23 | typer.active = '#24D4C0';
|
24 |
|
25 | typer.fontSize = 12;
|
26 | typer.fontFamily = '"Montserrat", sans-serif';
|
27 | typer.labelWidth = '9em';
|
28 | typer.inputHeight = 2;
|
29 | typer.padding = 1/5;
|
30 |
|
31 |
|
32 | typer.bg = .9;
|
33 | typer.radius = 2;
|
34 | typer.fg = .08;
|
35 |
|
36 | fonts.add({
|
37 | 'Montserrat': [400, 600]
|
38 | });
|
39 |
|
40 |
|
41 | function typer (opts) {
|
42 | opts = opts || {};
|
43 |
|
44 | let h = opts.inputHeight || typer.inputHeight;
|
45 | let labelWidth = opts.labelWidth || typer.labelWidth;
|
46 | let fontSize = opts.fontSize || typer.fontSize;
|
47 | let font = opts.fontFamily || typer.fontFamily;
|
48 | let radius = opts.radius || typer.radius;
|
49 | let padding = opts.padding || typer.padding;
|
50 |
|
51 |
|
52 | let bg = opts.bg || typer.bg;
|
53 | let fg = opts.fg || typer.fg;
|
54 |
|
55 |
|
56 |
|
57 | let palette = opts.palette || typer.palette;
|
58 | let pick = interpolate(palette);
|
59 |
|
60 |
|
61 | let nPalette = palette.slice().sort((a, b) => color(a).getLuminance() - color(b).getLuminance());
|
62 | let npick = interpolate(nPalette);
|
63 |
|
64 |
|
65 | let light = color.mix('white', nPalette[nPalette.length - 1], 25).toString();
|
66 | let shadow = color.mix('black', nPalette[0], 25).toString();
|
67 |
|
68 | let active = opts.active || tone(.5);
|
69 |
|
70 |
|
71 | function tone (amt) {
|
72 | if (typeof amt === 'number') {
|
73 | amt = Math.max(Math.min(amt, 1), 0);
|
74 | return color(pick(amt)).toString();
|
75 | }
|
76 | return amt;
|
77 | }
|
78 | function ntone (amt) {
|
79 | if (typeof amt === 'number') {
|
80 | amt = Math.max(Math.min(amt, 1), 0);
|
81 | return color(npick(amt)).toString();
|
82 | }
|
83 | return amt;
|
84 | }
|
85 | function lighten (v, amt, t = tone) {
|
86 | return color(t(v)).lighten(amt*100);
|
87 | }
|
88 | function darken (v, amt, t = tone) {
|
89 | return color(t(v)).darken(amt*100);
|
90 | }
|
91 | function alpha (c, value) {
|
92 | return color(c).setAlpha(value).toString();
|
93 | }
|
94 |
|
95 | let inversed = color(palette[0]).getLuminance() > color(palette[palette.length - 1]).getLuminance();
|
96 |
|
97 |
|
98 | let pop = (v = .9, d = .05, t = tone) => `
|
99 | ${text(fg, v)}
|
100 | background-color: ${t(v)};
|
101 | background-image: linear-gradient(to bottom, ${lighten(v, d, t)}, ${darken(v, d, t)});
|
102 | box-shadow: inset 1px 0px ${alpha(light, .04)}, inset 0px 1px ${alpha(light, .15)}, inset 0px -1px 1px ${alpha(light, .07)}, 0 1px 2px ${alpha(shadow, .35)};
|
103 | `;
|
104 | let push = (v = .1, d = .05, t = tone) => `
|
105 | background: ${t(v)};
|
106 | /*background-image: linear-gradient(to bottom, ${darken(v, d, t)}, ${lighten(v, d, t)});*/
|
107 | box-shadow: inset 0 1px 2px ${alpha(shadow, .18)}, 0 1px ${alpha(light, .2)};
|
108 | color: ${t(1 - fg)};
|
109 | text-shadow: none;
|
110 | `;
|
111 | let text = (v, bg) => color(tone(v)).getLuminance() > color(tone(bg)).getLuminance() ? `
|
112 | color: ${tone(v)};
|
113 | background: ${tone(bg)};
|
114 | text-shadow: 0 -1px ${color.mix(tone(bg), shadow, 50)};
|
115 | ` : `
|
116 | color: ${tone(v)};
|
117 | background: ${tone(bg)};
|
118 | text-shadow: 0 1px ${color.mix(tone(bg), light, 50)};
|
119 | `;
|
120 |
|
121 | return none({
|
122 | fontSize: fontSize,
|
123 | fontFamily: font,
|
124 | inputHeight: h,
|
125 | labelWidth: labelWidth,
|
126 | palette: [tone(fg), tone(bg)],
|
127 | padding: padding
|
128 | }) + `
|
129 | :host {
|
130 | ${text(fg, bg)};
|
131 | box-shadow: inset 0 1px ${alpha(light, .15)}, 0 1.5px 11px -2px ${alpha(shadow, .666)};
|
132 | border-radius: ${radius*2}px;
|
133 | }
|
134 |
|
135 | .settings-panel-title {
|
136 | font-weight: 400;
|
137 | ${text(fg, bg)};
|
138 | background: none;
|
139 | }
|
140 |
|
141 | .settings-panel-label {
|
142 | ${text(.25, bg)};
|
143 | background: none;
|
144 | }
|
145 |
|
146 | .settings-panel-field:hover .settings-panel-label {
|
147 | color: ${tone(fg)};
|
148 | }
|
149 |
|
150 |
|
151 |
|
152 | /** Values */
|
153 | .settings-panel-value {
|
154 | }
|
155 | .settings-panel-value:first-child {
|
156 | }
|
157 | .settings-panel-value:hover,
|
158 | .settings-panel-value:focus {
|
159 | }
|
160 |
|
161 |
|
162 |
|
163 | /** Sliders */
|
164 | .settings-panel-range {
|
165 | -webkit-appearance: none;
|
166 | -moz-appearance: none;
|
167 | appearance: none;
|
168 | background: none;
|
169 | border: 0;
|
170 | }
|
171 | .settings-panel-field--range:hover .settings-panel-range,
|
172 | .settings-panel-range:focus {
|
173 | outline: none;
|
174 | }
|
175 | .settings-panel-range::-webkit-slider-runnable-track {
|
176 | height: .5em;
|
177 | border-radius: .5em;
|
178 | ${push(fg, .05)}
|
179 | }
|
180 | .settings-panel-range::-moz-range-track {
|
181 | height: .5em;
|
182 | border-radius: .5em;
|
183 | ${push(fg, .05)}
|
184 | }
|
185 | .settings-panel-range::-ms-track {
|
186 | ${push(fg, .05)}
|
187 | outline: none;
|
188 | color: transparent;
|
189 | border: none;
|
190 | height: .5em;
|
191 | border-radius: .5em;
|
192 | }
|
193 | .settings-panel-range::-ms-fill-lower {
|
194 | border-radius: .5em;
|
195 | ${push(fg, .05)}
|
196 | }
|
197 | .settings-panel-range::-ms-fill-upper {
|
198 | border-radius: .5em;
|
199 | ${push(.93, .05)}
|
200 | }
|
201 |
|
202 | @supports (--css: variables) {
|
203 | .settings-panel-range {
|
204 | width: 100%;
|
205 | --active: ${active};
|
206 | --bg: ${tone(.9)};
|
207 | --track-background: linear-gradient(to right, var(--active) 0, var(--active) var(--value), var(--bg) 0) no-repeat;
|
208 | }
|
209 | .settings-panel-range::-webkit-slider-runnable-track {
|
210 | background: var(--track-background);
|
211 | }
|
212 | .settings-panel-range::-moz-range-track {
|
213 | background: var(--track-background);
|
214 | }
|
215 | .settings-panel-field--range .settings-panel-input {
|
216 | margin-right: ${h}em;
|
217 | }
|
218 | .settings-panel-field--range:hover .settings-panel-range,
|
219 | .settings-panel-range:focus {
|
220 | --bg: ${tone(.93)};
|
221 | }
|
222 | .settings-panel-range-value {
|
223 | display: none;
|
224 | position: absolute;
|
225 | top: -${h*1.25}em;
|
226 | text-align: center;
|
227 | padding: 0;
|
228 | color: ${tone(fg)};
|
229 | background: ${tone(1)};
|
230 | box-shadow: 0 1px 5px -1px ${alpha(shadow, .5)};
|
231 | border-radius: ${radius}px;
|
232 | z-index: 3;
|
233 | margin-left: ${-h*.65}em;
|
234 | width: ${h*2}em;
|
235 | text-shadow: none;
|
236 | left: calc(var(--value) - var(--coef) * ${h*.8}em);
|
237 | }
|
238 | .settings-panel-field--range .settings-panel-value-tip {
|
239 | position: absolute;
|
240 | height: 0;
|
241 | top: -${h*.25}em;
|
242 | left: calc(var(--value) - var(--coef) * ${h*.8}em);
|
243 | margin-left: ${h*.1}em;
|
244 | display: none;
|
245 | z-index: 3;
|
246 | border-top: ${h*.3}em solid ${tone(1)};
|
247 | border-left: ${h*.3}em solid transparent;
|
248 | border-right: ${h*.3}em solid transparent;
|
249 | border-bottom: none;
|
250 | }
|
251 | .settings-panel-input:before {
|
252 | border-top: ${h*.3}em solid ${alpha(shadow, .25)};
|
253 | }
|
254 | .settings-panel-field--range:hover .settings-panel-value-tip,
|
255 | .settings-panel-range:focus ~ .settings-panel-value-tip {
|
256 | display: block;
|
257 | }
|
258 | .settings-panel-field--range:hover .settings-panel-value,
|
259 | .settings-panel-range:focus ~ .settings-panel-value {
|
260 | display: block;
|
261 | }
|
262 | }
|
263 |
|
264 | .settings-panel-range::-webkit-slider-thumb {
|
265 | ${pop(fg, -.05)};
|
266 | height: ${h*.8}em;
|
267 | width: ${h*.8}em;
|
268 | border-radius: ${h*.8}em;
|
269 | margin-top: -${h*.4}em;
|
270 | border: 0;
|
271 | position: relative;
|
272 | top: .25em;
|
273 | -webkit-appearance: none;
|
274 | appearance: none;
|
275 | z-index: 3;
|
276 | }
|
277 | .settings-panel-range:focus::-webkit-slider-thumb,
|
278 | .settings-panel-range:hover::-webkit-slider-thumb,
|
279 | .settings-panel-field--range:hover .settings-panel-range::-webkit-slider-thumb {
|
280 | }
|
281 | .settings-panel-range::-webkit-slider-thumb:active {
|
282 | }
|
283 |
|
284 | .settings-panel-range::-moz-range-thumb {
|
285 | ${pop(fg, -.05)};
|
286 | height: ${h*.8}em;
|
287 | width: ${h*.8}em;
|
288 | border-radius: ${h*.8}em;
|
289 | margin-top: -${h*.4}em;
|
290 | border: 0;
|
291 | position: relative;
|
292 | top: .25em;
|
293 | -moz-appearance: none;
|
294 | appearance: none;
|
295 | z-index: 3;
|
296 | }
|
297 | .settings-panel-range:focus::-moz-range-thumb,
|
298 | .settings-panel-range::-moz-range-thumb:hover,
|
299 | .settings-panel-field--range:hover .settings-panel-range::-moz-range-thumb {
|
300 | }
|
301 | .settings-panel-range::-moz-range-thumb:active {
|
302 | }
|
303 |
|
304 | .settings-panel-range::-ms-thumb {
|
305 | ${pop(fg, -.05)};
|
306 | height: ${h*.8}em;
|
307 | width: ${h*.8}em;
|
308 | border-radius: ${h*.8}em;
|
309 | border: 0;
|
310 | position: relative;
|
311 | top: .25em;
|
312 | -ms-appearance: none;
|
313 | appearance: none;
|
314 | z-index: 3;
|
315 | }
|
316 | .settings-panel-range:focus::-ms-thumb,
|
317 | .settings-panel-range:hover::-ms-thumb,
|
318 | .settings-panel-field--range:hover .settings-panel-range::-ms-thumb {
|
319 | }
|
320 | .settings-panel-range::-ms-thumb:active {
|
321 | }
|
322 |
|
323 |
|
324 | /** Interval */
|
325 | .settings-panel-interval {
|
326 | background: none;
|
327 | }
|
328 | .settings-panel-interval:after {
|
329 | content: '';
|
330 | position: absolute;
|
331 | width: 100%;
|
332 | left: 0;
|
333 | bottom: 0;
|
334 | top: 0;
|
335 | height: .5em;
|
336 | border-radius: .5em;
|
337 | margin-top: auto;
|
338 | margin-bottom: auto;
|
339 | ${push(.9, .05)}
|
340 | background: ${tone(.9)};
|
341 | }
|
342 | .settings-panel-field--interval:hover .settings-panel-interval:after,
|
343 | .settings-panel-interval-dragging .settings-panel-interval:after {
|
344 | background: ${tone(.93)};
|
345 | }
|
346 | .settings-panel-interval-handle {
|
347 | position: absolute;
|
348 | z-index: 1;
|
349 | top: 0;
|
350 | height: .5em;
|
351 | bottom: 0;
|
352 | margin-top: auto;
|
353 | margin-bottom: auto;
|
354 | background: ${active};
|
355 | }
|
356 | .settings-panel-interval-handle:after,
|
357 | .settings-panel-interval-handle:before {
|
358 | content: '';
|
359 | position: absolute;
|
360 | right: -${h*.4}em;
|
361 | top: 0;
|
362 | bottom: 0;
|
363 | margin: auto;
|
364 | height: ${h*.8}em;
|
365 | width: ${h*.8}em;
|
366 | border-radius: ${h*.8}em;
|
367 | ${pop(fg, -.05)};
|
368 | }
|
369 | .settings-panel-interval-handle:before {
|
370 | left: -${h*.4}em;
|
371 | right: auto;
|
372 | }
|
373 |
|
374 | .settings-panel-field--interval:hover .settings-panel-interval-handle:after,
|
375 | .settings-panel-field--interval:hover .settings-panel-interval-handle:before,
|
376 | .settings-panel-interval-dragging .settings-panel-interval-handle:after,
|
377 | .settings-panel-interval-dragging .settings-panel-interval-handle:before {
|
378 | ${pop(fg, -.05)};
|
379 | }
|
380 |
|
381 | @supports (--css: variables) {
|
382 | .settings-panel-interval {
|
383 | width: 100%;
|
384 | }
|
385 |
|
386 | .settings-panel-interval-value {
|
387 | position: absolute;
|
388 | top: -${h*1.25}em;
|
389 | text-align: center;
|
390 | padding: 0;
|
391 | display: none;
|
392 | color: ${tone(fg)};
|
393 | background: ${tone(1)};
|
394 | box-shadow: 0 1px 5px -1px ${alpha(shadow, .5)};
|
395 | border-radius: ${radius}px;
|
396 | z-index: 3;
|
397 | margin-left: ${-h}em;
|
398 | width: ${h*2}em;
|
399 | text-shadow: none;
|
400 | left: var(--value);
|
401 | }
|
402 |
|
403 | .settings-panel-field--interval .settings-panel-value-tip {
|
404 | position: absolute;
|
405 | height: 0;
|
406 | display: none;
|
407 | top: -${h*.25}em;
|
408 | left: var(--low);
|
409 | margin-left: ${-h*.3}em;
|
410 | z-index: 3;
|
411 | border-top: ${h*.3}em solid ${tone(1)};
|
412 | border-left: ${h*.3}em solid transparent;
|
413 | border-right: ${h*.3}em solid transparent;
|
414 | border-bottom: none;
|
415 | }
|
416 | .settings-panel-interval-value--right + .settings-panel-value-tip {
|
417 | left: var(--high);
|
418 | }
|
419 |
|
420 | .settings-panel-input:before {
|
421 | border-top: ${h*.3}em solid ${alpha(shadow, .25)};
|
422 | }
|
423 | .settings-panel-field--interval:hover .settings-panel-interval-value,
|
424 | .settings-panel-interval-dragging .settings-panel-interval-value {
|
425 | display: block;
|
426 | }
|
427 | @media (min-width: 640px) {
|
428 | .settings-panel-field--interval:hover .settings-panel-value-tip,
|
429 | .settings-panel-interval-dragging .settings-panel-value-tip {
|
430 | display: block;
|
431 | }
|
432 | }
|
433 | }
|
434 |
|
435 |
|
436 | /** Switch style */
|
437 | .settings-panel-switch {
|
438 | }
|
439 | .settings-panel-switch-input {
|
440 | display: none;
|
441 | }
|
442 | .settings-panel-switch-label {
|
443 | position: relative;
|
444 | display: inline-block;
|
445 | padding: 0 ${h/2}em;
|
446 | margin: 0;
|
447 | z-index: 2;
|
448 | text-align: center;
|
449 | ${pop(bg * .95, .07)};
|
450 | color: ${tone(.25)};
|
451 | }
|
452 | .settings-panel-switch-input:checked + .settings-panel-switch-label {
|
453 | ${push(.95, bg)};
|
454 | color: ${tone(fg)};
|
455 | }
|
456 |
|
457 | .settings-panel-switch-input:first-child + .settings-panel-switch-label {
|
458 | border-top-left-radius: 2px;
|
459 | border-bottom-left-radius: 2px;
|
460 | }
|
461 | .settings-panel-switch-label:last-child {
|
462 | border-top-right-radius: 2px;
|
463 | border-bottom-right-radius: 2px;
|
464 | }
|
465 |
|
466 | .settings-panel-switch-label:hover {
|
467 | ${pop(bg * .95 + (inversed ? -.07 : .07), .07)};
|
468 | }
|
469 | .settings-panel-switch-label:active {
|
470 | ${pop(bg * .95 + (inversed ? .07 : -.07), .07)};
|
471 | }
|
472 |
|
473 |
|
474 |
|
475 | .settings-panel-select {
|
476 | border-radius: ${radius}px;
|
477 | padding-left: ${h/4}em;
|
478 | outline: none;
|
479 | border: none;
|
480 | -webkit-appearance: none;
|
481 | -moz-appearance: none;
|
482 | -o-appearance:none;
|
483 | appearance:none;
|
484 | ${pop(bg * .95, .07)};
|
485 | color: ${tone(.25)};
|
486 | }
|
487 | .settings-panel-select:hover,
|
488 | .settings-panel-select:active,
|
489 | .settings-panel-select:focus {
|
490 | ${pop(bg * .95 + (inversed ? -.07 : .07), .07)};
|
491 | }
|
492 | .settings-panel-select::-ms-expand {
|
493 | display: none;
|
494 | }
|
495 | .settings-panel-select-triangle {
|
496 | color: inherit;
|
497 | display: block;
|
498 | transform: scale(.8);
|
499 | }
|
500 |
|
501 |
|
502 |
|
503 | .settings-panel-button {
|
504 | text-align: center;
|
505 | border: none;
|
506 | border-radius: ${radius}px;
|
507 | ${pop(bg * .95, .07)};
|
508 | color: ${tone(.25)};
|
509 | }
|
510 | .settings-panel-button:focus {
|
511 | outline: none;
|
512 | }
|
513 | .settings-panel-button:hover {
|
514 | ${pop(bg * .95 + (inversed ? -.07 : .07), .07)};
|
515 | color: ${tone(fg)};
|
516 | }
|
517 | .settings-panel-button:active {
|
518 | ${push(fg, .05)};
|
519 | }
|
520 |
|
521 |
|
522 |
|
523 | .settings-panel-text,
|
524 | .settings-panel-textarea {
|
525 | -webkit-appearance: none;
|
526 | -moz-appearance: none;
|
527 | -o-appearance:none;
|
528 | border: none;
|
529 | height: ${h}em;
|
530 | padding: 0;
|
531 | width: 100%;
|
532 | border-radius: ${radius}px;
|
533 | padding-left: .4em;
|
534 | ${push(bg*.95)};
|
535 | color: ${tone(fg)};
|
536 | text-shadow: none;
|
537 | }
|
538 | .settings-panel-textarea {
|
539 | padding-top: .35em;
|
540 | }
|
541 |
|
542 | .settings-panel-text:hover,
|
543 | .settings-panel-textarea:hover,
|
544 | .settings-panel-text:focus,
|
545 | .settings-panel-textarea:focus {
|
546 | ${push(bg * .95 - .04)};
|
547 | color: ${tone(fg)};
|
548 | outline: none;
|
549 | }
|
550 |
|
551 |
|
552 | .settings-panel-color {
|
553 | position: relative;
|
554 | width: ${h}em;
|
555 | border-top-left-radius: 3px;
|
556 | border-bottom-left-radius: 3px;
|
557 | display: inline-block;
|
558 | vertical-align: baseline;
|
559 | box-shadow: 0 1px ${alpha(light, .2)};
|
560 | }
|
561 | .settings-panel-color-value {
|
562 | -webkit-appearance: none;
|
563 | -moz-appearance: none;
|
564 | -o-appearance:none;
|
565 | border: none;
|
566 | padding-left: ${h/4}em;
|
567 | width: calc(100% - ${h}em);
|
568 | font-family: inherit;
|
569 | border-top-left-radius: 0;
|
570 | border-bottom-left-radius: 0;
|
571 | border-top-right-radius: 3px;
|
572 | border-bottom-right-radius: 3px;
|
573 | ${push(bg*.95)};
|
574 | color: ${tone(fg)};
|
575 | text-shadow: none;
|
576 | }
|
577 | .settings-panel-color-value:hover,
|
578 | .settings-panel-color-value:focus {
|
579 | outline: none;
|
580 | ${push(bg * .95 - .04)};
|
581 | color: ${tone(fg)};
|
582 | }
|
583 |
|
584 |
|
585 |
|
586 | .settings-panel-checkbox {
|
587 | display: none;
|
588 | }
|
589 | .settings-panel-checkbox-label {
|
590 | display: inline-block;
|
591 | ${text(.25, bg)};
|
592 | position: relative;
|
593 | margin-right: ${h}em;
|
594 | }
|
595 | .settings-panel-checkbox-label:before {
|
596 | font-family: "Material Icons";
|
597 | content: '';
|
598 | font-weight: bolder;
|
599 | font-size: ${h*.75}em;
|
600 | display: block;
|
601 | float: left;
|
602 | width: 2em;
|
603 | margin-right: -2em;
|
604 | margin-top: -${h*.1}em;
|
605 | opacity: 0;
|
606 | z-index: 1;
|
607 | position: relative;
|
608 | color: ${tone(fg)};
|
609 | text-shadow: 0 1px 2px ${alpha(shadow, .5)};
|
610 | }
|
611 | .settings-panel-checkbox-label:after {
|
612 | content: '';
|
613 | display: block;
|
614 | float: left;
|
615 | margin-top: -${h*.05}em;
|
616 | width: ${h*.666}em;
|
617 | height: ${h*.666}em;
|
618 | border-radius: ${radius}px;
|
619 | position: relative;
|
620 | margin-right: ${h/3}em;
|
621 | line-height: ${h/2}em;
|
622 | text-align: center;
|
623 | z-index: 0;
|
624 | ${push(.9)};
|
625 | }
|
626 | .settings-panel-checkbox-label:hover {
|
627 | color: ${tone(fg)};
|
628 | }
|
629 | .settings-panel-checkbox-label:hover:after {
|
630 | ${push(.93, .07)};
|
631 | }
|
632 | .settings-panel-checkbox:checked + .settings-panel-checkbox-label {
|
633 | }
|
634 | .settings-panel-checkbox:checked + .settings-panel-checkbox-label:before {
|
635 | opacity: 1;
|
636 | }
|
637 | .settings-panel-checkbox:checked + .settings-panel-checkbox-label:after {
|
638 | ${push(.93, .1)};
|
639 | }
|
640 |
|
641 |
|
642 |
|
643 | ::-webkit-input-placeholder {
|
644 | color: ${alpha(tone(0), .5)};
|
645 | }
|
646 | ::-moz-placeholder {
|
647 | color: ${alpha(tone(0), .5)};
|
648 | }
|
649 | :-ms-input-placeholder {
|
650 | color: ${alpha(tone(0), .5)};
|
651 | }
|
652 | :-moz-placeholder {
|
653 | color: ${alpha(tone(0), .5)};
|
654 | }
|
655 | ::-moz-selection {
|
656 | background: ${tone(fg)};
|
657 | color: ${tone(bg)};
|
658 | }
|
659 | ::selection {
|
660 | background: ${tone(fg)};
|
661 | color: ${tone(bg)};
|
662 | }
|
663 | :host hr {
|
664 | border: none;
|
665 | height: 3px;
|
666 | border-radius: ${radius}px;
|
667 | margin: ${h/3}em 0;
|
668 | ${push(bg * .98, .05)};
|
669 | }
|
670 | `;
|
671 | };
|
672 |
|
\ | No newline at end of file |