Pop-up dictionary browser extension for language learning. Successor to Yomichan. (PERSONAL FORK)
1/*
2 * Copyright (C) 2023-2025 Yomitan Authors
3 * Copyright (C) 2020-2022 Yomichan Authors
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 */
18
19/* Variables */
20:root {
21 --font-size-no-units: 14;
22 --font-size: calc(1px * var(--font-size-no-units));
23
24 --font-size-small-no-units: 12;
25 --font-size-small: calc(1em * var(--font-size-small-no-units) / var(--font-size-no-units));
26
27 --line-height-no-units: 20;
28 --line-height: calc(var(--line-height-no-units) / var(--font-size-no-units));
29
30 --animation-duration: 0.125s;
31 --animation-duration2: calc(var(--animation-duration) * 2);
32
33 --checkbox-size: calc(16em / var(--font-size-no-units));
34 --icon-button-size: calc(36em / var(--font-size-no-units));
35 --radio-size: calc(20em / var(--font-size-no-units));
36 --toggle-size: calc(16em / var(--font-size-no-units));
37
38 --input-font-size-no-units: 1;
39 --input-font-size: calc(1em * var(--input-font-size-no-units));
40 --input-spacing: calc(10em / var(--font-size-no-units));
41 --input-width: calc(100em / (var(--font-size-no-units) * var(--input-font-size-no-units)) - var(--input-spacing) / 2);
42 --input-width-large: calc(200em / (var(--font-size-no-units) * var(--input-font-size-no-units)));
43 --input-height: calc(32em / (var(--font-size-no-units) * var(--input-font-size-no-units)));
44 --input-border-radius: 0.25em;
45 --textarea-line-height: 1.25em;
46 --textarea-padding: 0.5em;
47
48 --material-arrow-dimension1: calc(5em / var(--font-size-no-units));
49 --material-arrow-dimension2: calc(10em / var(--font-size-no-units));
50
51 --button-border-radius: 0.3em;
52 --button-default-shadow-params: 0 0.0625em 0.125em 0;
53
54 --thin-border-size: calc(1em / var(--font-size-no-units));
55
56 --menu-border-radius: 0.3em;
57 --menu-shadow: 0 1px 3px 1px var(--shadow-color), 0 2px 4px 3px var(--shadow-color);
58
59 --selectable-indicator-transition1:
60 transform 0s ease-in-out var(--animation-duration2),
61 background-color var(--animation-duration2) ease-in-out,
62 opacity var(--animation-duration2) ease-in-out,
63 visibility 0s ease-in-out var(--animation-duration2);
64 --selectable-indicator-transition2:
65 transform var(--animation-duration2) ease-in-out,
66 background-color var(--animation-duration2) ease-in-out,
67 opacity var(--animation-duration2) ease-in-out,
68 visibility var(--animation-duration2) ease-in-out;
69
70 --text-color: #222222;
71 --text-color-light1: #555555;
72 --text-color-light2: #666666;
73 --text-color-light3: #777777;
74 --text-color-light4: #888888;
75 --background-color: #f8f9fa;
76 --background-color-light: #ffffff;
77 --background-color-dark1: #eeeeee;
78
79 --shadow-color: rgba(0, 0, 0, 0.185);
80 --shadow-color-off: rgba(0, 0, 0, 0);
81 --shadow-color-light: rgba(0, 0, 0, 0.085);
82
83 --accent-color: #1a73e8;
84 --accent-color-light: #4a91ed;
85 --accent-color-lighter: #8db9f4;
86 --accent-color-lightest: #a7c9f6;
87 --accent-color-dark: #1060c0;
88 --accent-color-transparent0: rgba(28, 116, 233, 0);
89 --accent-color-transparent5: rgba(28, 116, 233, 0.05);
90 --accent-color-transparent25: rgba(28, 116, 233, 0.25);
91
92 --danger-color: #c83c28;
93 --danger-color-light: #dd6755;
94 --danger-color-lighter: #e68d7f;
95 --danger-color-lightest: #eeb3aa;
96 --danger-color-transparent0: rgba(200, 60, 40, 0);
97 --danger-color-transparent5: rgba(200, 60, 40, 0.05);
98 --danger-color-transparent25: rgba(200, 60, 40, 0.25);
99
100 --success-color: #51ab30;
101
102 --disabled-color: #aaaaaa;
103 --disabled-color-light: #dddddd;
104 --disabled-color-lighter: #eeeeee;
105
106 --input-background-color: #f2f2f2;
107 --input-background-color-dark: #dddddd;
108 --input-background-color-darker: #cccccc;
109 --input-outline-color: var(--text-color);
110
111 --button-default-text-color: #ffffff;
112 --button-default-border-color: #cccccc;
113 --button-default-icon-color: #333333;
114 --button-default-icon-color-light: #666666;
115
116 --checkbox-checked-color: var(--accent-color);
117 --checkbox-unchecked-color: #666666;
118 --checkbox-check-color: var(--background-color-light);
119 --checkbox-disabled-color: var(--disabled-color);
120
121 --toggle-track-color: #cccccc;
122 --toggle-knob-color: var(--background-color-light);
123
124 --selectable-indicator-color: rgba(160, 160, 160, 0.25);
125
126 --menu-item-hover-color: #bbbbbb;
127 --menu-item-active-color: #aaaaaa;
128}
129:root[data-theme=dark] {
130 --text-color: #d4d4d4;
131 --text-color-light1: #aaaaaa;
132 --text-color-light2: #999999;
133 --text-color-light3: #888888;
134 --text-color-light4: #777777;
135 --background-color: #1e1e1e;
136 --background-color-light: #0a0a0a;
137 --background-color-dark1: #333333;
138
139 --shadow-color: rgba(105, 105, 105, 0.185);
140 --shadow-color-off: rgba(255, 255, 255, 0);
141 --shadow-color-light: rgba(255, 255, 255, 0.085);
142
143 --accent-color: #4a91ed;
144 --accent-color-light: #1a73e8;
145 --accent-color-lighter: #135dbe;
146 --accent-color-lightest: #0e4690;
147 --accent-color-transparent0: rgb(78, 172, 253, 0);
148 --accent-color-transparent5: rgb(78, 172, 253, 0.05);
149 --accent-color-transparent25: rgb(78, 172, 253, 0.25);
150
151 --danger-color: #dd6755;
152 --danger-color-light: #c83c28;
153 --danger-color-lighter: #9e301f;
154 --danger-color-lightest: #732317;
155 --danger-color-transparent0: rgba(221, 103, 85, 0);
156 --danger-color-transparent5: rgba(221, 103, 85, 0.05);
157 --danger-color-transparent25: rgba(221, 103, 85, 0.25);
158
159 --success-color: #75cf54;
160
161 --disabled-color: #444444;
162 --disabled-color-light: #585858;
163 --disabled-color-lighter: #777777;
164
165 --input-background-color: #2f2f2f;
166 --input-background-color-dark: #383838;
167 --input-background-color-darker: #484848;
168 --input-outline-color: var(--text-color);
169
170 --button-default-text-color: #000000;
171 --button-default-border-color: #333333;
172 --button-default-icon-color: #cccccc;
173 --button-default-icon-color-light: #999999;
174
175 --checkbox-unchecked-color: #999999;
176
177 --toggle-track-color: #cccccc;
178 --toggle-knob-color: #ffffff;
179
180 --selectable-indicator-color: rgba(100, 100, 100, 0.25);
181
182 --menu-item-hover-color: #333333;
183 --menu-item-active-color: #444444;
184}
185
186
187/* Root styles */
188:root {
189 font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
190 font-size: var(--font-size);
191 line-height: var(--line-height);
192 height: 100%;
193}
194body {
195 margin: 0;
196 border: 0;
197 padding: 0;
198 height: 100%;
199 font-family: inherit;
200 font-size: inherit;
201 line-height: inherit;
202 background-color: var(--background-color);
203 color: var(--text-color);
204}
205
206
207/* Text styles */
208.light {
209 color: var(--text-color-light2);
210}
211.danger-text {
212 color: var(--danger-color);
213}
214.success-text {
215 color: var(--success-color);
216}
217
218/* Icons */
219.icon {
220 --icon-image: none;
221 --icon-size: contain;
222
223 -webkit-mask-repeat: no-repeat;
224 -webkit-mask-position: center center;
225 -webkit-mask-mode: alpha;
226 -webkit-mask-size: var(--icon-size);
227 -webkit-mask-image: var(--icon-image);
228 mask-repeat: no-repeat;
229 mask-position: center center;
230 mask-mode: alpha;
231 mask-size: var(--icon-size);
232 mask-image: var(--icon-image);
233}
234.icon.color-icon {
235 -webkit-mask-image: none;
236 mask-image: none;
237 background-repeat: no-repeat;
238 background-position: center center;
239 background-size: var(--icon-size);
240 background-image: var(--icon-image);
241}
242.icon[data-icon=none] { --icon-image: linear-gradient(transparent, transparent); }
243.icon[data-icon=profile] { --icon-image: url(/images/profile.svg); }
244.icon[data-icon=cog] { --icon-image: url(/images/cog.svg); }
245.icon[data-icon=palette] { --icon-image: url(/images/palette.svg); }
246.icon[data-icon=popup] { --icon-image: url(/images/popup.svg); }
247.icon[data-icon=speaker] { --icon-image: url(/images/speaker.svg); }
248.icon[data-icon=scanning] { --icon-image: url(/images/scanning.svg); }
249.icon[data-icon=text-parsing] { --icon-image: url(/images/text-parsing.svg); }
250.icon[data-icon=translation] { --icon-image: url(/images/translation.svg); }
251.icon[data-icon=book] { --icon-image: url(/images/book.svg); }
252.icon[data-icon=note-card] { --icon-image: url(/images/note-card.svg); }
253.icon[data-icon=keyboard] { --icon-image: url(/images/keyboard.svg); }
254.icon[data-icon=backup] { --icon-image: url(/images/backup.svg); }
255.icon[data-icon=lock] { --icon-image: url(/images/lock.svg); }
256.icon[data-icon=question-mark] { --icon-image: url(/images/question-mark.svg); }
257.icon[data-icon=popup-size] { --icon-image: url(/images/popup-size.svg); }
258.icon[data-icon=hamburger-menu] { --icon-image: url(/images/hamburger-menu.svg); }
259.icon[data-icon=kebab-menu] { --icon-image: url(/images/kebab-menu.svg); }
260.icon[data-icon=mouse] { --icon-image: url(/images/mouse.svg); }
261.icon[data-icon=exclamation-point-short] { --icon-image: url(/images/exclamation-point-short.svg); }
262.icon[data-icon=magnifying-glass] { --icon-image: url(/images/magnifying-glass.svg); }
263.icon[data-icon=collapse] { --icon-image: url(/images/collapse.svg); }
264.icon[data-icon=expand] { --icon-image: url(/images/expand.svg); }
265.icon[data-icon=window] { --icon-image: url(/images/window.svg); }
266.icon[data-icon=cross] { --icon-image: url(/images/cross.svg); }
267.icon[data-icon=checkmark] { --icon-image: url(/images/checkmark.svg); }
268.icon[data-icon=sentence-parsing] { --icon-image: url(/images/sentence-parsing.svg); }
269.icon[data-icon=question-mark] { --icon-image: url(/images/question-mark.svg); }
270.icon[data-icon=question-mark-circle] { --icon-image: url(/images/question-mark-circle.svg); }
271.icon[data-icon=question-mark-thick] { --icon-image: url(/images/question-mark-thick.svg); }
272.icon[data-icon=left-chevron] { --icon-image: url(/images/left-chevron.svg); }
273.icon[data-icon=right-chevron] { --icon-image: url(/images/right-chevron.svg); }
274.icon[data-icon=up-chevron] { --icon-image: url(/images/up-chevron.svg); }
275.icon[data-icon=down-chevron] { --icon-image: url(/images/down-chevron.svg); }
276.icon[data-icon=double-down-chevron] { --icon-image: url(/images/double-down-chevron.svg); }
277.icon[data-icon=plus-thick] { --icon-image: url(/images/plus-thick.svg); }
278.icon[data-icon=clipboard] { --icon-image: url(/images/clipboard.svg); }
279.icon[data-icon=key] { --icon-image: url(/images/key.svg); }
280.icon[data-icon=tag] { --icon-image: url(/images/tag.svg); }
281.icon[data-icon=flag] { --icon-image: url(/images/flag.svg); }
282.icon[data-icon=accessibility] { --icon-image: url(/images/accessibility.svg); }
283.icon[data-icon=connection] { --icon-image: url(/images/connection.svg); }
284.icon[data-icon=external-link] { --icon-image: url(/images/external-link.svg); }
285.icon[data-icon=monitor] { --icon-image: url(/images/monitor.svg); }
286.icon[data-icon=material-down-arrow] {
287 --icon-image: url(/images/material-down-arrow.svg);
288 --icon-size: var(--material-arrow-dimension2) var(--material-arrow-dimension1);
289}
290.icon[data-icon=material-right-arrow] {
291 --icon-image: url(/images/material-right-arrow.svg);
292 --icon-size: var(--material-arrow-dimension1) var(--material-arrow-dimension2);
293}
294
295
296/* Checkbox */
297label.checkbox {
298 cursor: default;
299}
300.checkbox {
301 font-size: var(--checkbox-size);
302 display: inline-block;
303}
304.checkbox>input[type=checkbox] {
305 opacity: 0;
306 width: 0;
307 height: 0;
308 display: block;
309 margin: 0;
310 padding: 0;
311 border: none;
312 appearance: none;
313 -moz-appearance: none;
314 -webkit-appearance: none;
315}
316.checkbox-body {
317 display: block;
318 cursor: pointer;
319 width: 1em;
320 height: 1em;
321 position: relative;
322}
323.checkbox>input[type=checkbox]:disabled+.checkbox-body {
324 cursor: default;
325}
326.checkbox-fill,
327.checkbox-border,
328.checkbox-check {
329 display: block;
330 position: absolute;
331 left: 0;
332 top: 0;
333 right: 0;
334 bottom: 0;
335 mask-repeat: no-repeat;
336 mask-position: center center;
337 mask-mode: alpha;
338 mask-size: contain;
339 -webkit-mask-repeat: no-repeat;
340 -webkit-mask-position: center center;
341 -webkit-mask-mode: alpha;
342 -webkit-mask-size: contain;
343 transition: opacity var(--animation-duration) linear, background-color var(--animation-duration) linear;
344}
345.checkbox-fill {
346 mask-image: url(/images/checkbox-fill.svg);
347 -webkit-mask-image: url(/images/checkbox-fill.svg);
348 background-color: var(--checkbox-unchecked-color);
349 opacity: 0;
350}
351.checkbox-border {
352 mask-image: url(/images/checkbox-border.svg);
353 -webkit-mask-image: url(/images/checkbox-border.svg);
354 background-color: var(--checkbox-unchecked-color);
355 opacity: 1;
356}
357.checkbox-check {
358 mask-image: url(/images/checkbox-check.svg);
359 -webkit-mask-image: url(/images/checkbox-check.svg);
360 background-color: var(--checkbox-check-color);
361 opacity: 0;
362}
363.checkbox>input[type=checkbox]:checked+.checkbox-body>.checkbox-fill {
364 background-color: var(--checkbox-checked-color);
365 opacity: 1;
366}
367.checkbox>input[type=checkbox]:checked+.checkbox-body>.checkbox-border {
368 background-color: var(--checkbox-checked-color);
369 opacity: 1;
370}
371.checkbox>input[type=checkbox]:checked+.checkbox-body>.checkbox-check {
372 background-color: var(--checkbox-check-color);
373 opacity: 1;
374}
375.checkbox>input[type=checkbox]:disabled+.checkbox-body>.checkbox-fill {
376 opacity: 0;
377}
378.checkbox>input[type=checkbox]:disabled+.checkbox-body>.checkbox-border {
379 background-color: var(--checkbox-disabled-color);
380 opacity: 1;
381}
382.checkbox>input[type=checkbox]:disabled+.checkbox-body>.checkbox-check {
383 background-color: var(--checkbox-disabled-color);
384}
385.checkbox-body::after {
386 position: absolute;
387 display: block;
388 content: '';
389 left: -0.75em;
390 top: -0.75em;
391 right: -0.75em;
392 bottom: -0.75em;
393 border-radius: 2.5em;
394 background-color: var(--selectable-indicator-color);
395 pointer-events: none;
396 transform: scale(0);
397 opacity: 0;
398 visibility: hidden;
399 transition: var(--selectable-indicator-transition1);
400}
401.checkbox>input[type=checkbox]:focus+.checkbox-body::after,
402.checkbox>input[type=checkbox]:active+.checkbox-body::after,
403.checkbox:active>input[type=checkbox]+.checkbox-body::after {
404 transform: scale(1);
405 opacity: 1;
406 visibility: visible;
407 transition: var(--selectable-indicator-transition2);
408}
409.checkbox>input[type=checkbox]:focus:not(:focus-visible)+.checkbox-body::after {
410 transform: scale(0);
411 opacity: 0;
412 visibility: hidden;
413 transition: var(--selectable-indicator-transition1);
414}
415.checkbox>input[type=checkbox]:focus-visible+.checkbox-body::after,
416.checkbox>input[type=checkbox]:focus-visible:focus+.checkbox-body::after,
417.checkbox>input[type=checkbox]:focus-visible:active+.checkbox-body::after,
418.checkbox:active>input[type=checkbox]:focus-visible+.checkbox-body::after {
419 transform: scale(1);
420 opacity: 1;
421 visibility: visible;
422 transition: var(--selectable-indicator-transition2);
423}
424.checkbox>input[type=checkbox]:focus+.checkbox-body::after {
425 opacity: 0.5;
426}
427.checkbox>input[type=checkbox]:active:focus+.checkbox-body::after,
428.checkbox:active>input[type=checkbox]:focus+.checkbox-body::after {
429 opacity: 1;
430}
431.checkbox>input[type=checkbox]:disabled+.checkbox-body::after {
432 transform: scale(0);
433 opacity: 0;
434 visibility: hidden;
435 transition: var(--selectable-indicator-transition1);
436}
437
438
439/* Toggle switch */
440label.toggle {
441 cursor: default;
442}
443.toggle {
444 font-size: var(--toggle-size);
445 display: inline-block;
446}
447.toggle>input[type=checkbox] {
448 opacity: 0;
449 width: 0;
450 height: 0;
451 display: block;
452 margin: 0;
453 padding: 0;
454 border: none;
455 appearance: none;
456 -moz-appearance: none;
457 -webkit-appearance: none;
458}
459.toggle-body {
460 display: block;
461 cursor: pointer;
462 width: 2em;
463 height: 1em;
464 position: relative;
465}
466.toggle-track {
467 display: block;
468 position: absolute;
469 left: 0.125em;
470 right: 0.125em;
471 top: 0.125em;
472 bottom: 0.125em;
473 background-color: var(--toggle-track-color);
474 border-radius: 0.4375em;
475 transition: background-color var(--animation-duration) ease-in-out;
476}
477.toggle-knob {
478 display: block;
479 position: absolute;
480 left: 0;
481 top: 0;
482 width: 1em;
483 height: 1em;
484 background-color: var(--toggle-knob-color);
485 border-radius: 0.5em;
486 box-shadow:
487 0 0.0625em 0.25em 0 var(--shadow-color),
488 0 0.125em 0.125em 0 var(--shadow-color);
489 transition:
490 transform var(--animation-duration) ease-in-out,
491 background-color var(--animation-duration) ease-in-out;
492}
493.toggle-body>.toggle-knob::after {
494 position: absolute;
495 display: block;
496 content: '';
497 left: -0.75em;
498 top: -0.75em;
499 right: -0.75em;
500 bottom: -0.75em;
501 border-radius: 2.5em;
502 background-color: var(--selectable-indicator-color);
503 pointer-events: none;
504 transform: scale(0);
505 opacity: 0;
506 visibility: hidden;
507 transition: var(--selectable-indicator-transition1);
508}
509.toggle>input[type=checkbox]:focus+.toggle-body>.toggle-knob::after,
510.toggle>input[type=checkbox]:active+.toggle-body>.toggle-knob::after,
511.toggle:active>input[type=checkbox]+.toggle-body>.toggle-knob::after {
512 transform: scale(1);
513 opacity: 1;
514 visibility: visible;
515 transition: var(--selectable-indicator-transition2);
516}
517.toggle>input[type=checkbox]+.toggle-body>.toggle-knob::after {
518 opacity: 0.5;
519}
520.toggle>input[type=checkbox]:active+.toggle-body>.toggle-knob::after,
521.toggle:active>input[type=checkbox]+.toggle-body>.toggle-knob::after {
522 opacity: 1;
523}
524.toggle>input[type=checkbox]:focus:not(:focus-visible)+.toggle-body>.toggle-knob::after {
525 transform: scale(0);
526 opacity: 0;
527 visibility: hidden;
528 transition: var(--selectable-indicator-transition1);
529}
530.toggle>input[type=checkbox]:focus-visible+.toggle-body>.toggle-knob::after {
531 transform: scale(1);
532 opacity: 1;
533 visibility: visible;
534 transition: var(--selectable-indicator-transition2);
535}
536.toggle>input[type=checkbox]:checked+.toggle-body>.toggle-knob {
537 transform: translateX(1em);
538}
539.toggle>input[type=checkbox]:checked+.toggle-body>.toggle-track {
540 background-color: var(--accent-color-lighter);
541}
542.toggle>input[type=checkbox]:checked+.toggle-body>.toggle-knob {
543 background-color: var(--accent-color);
544}
545.toggle>input[type=checkbox]:focus:checked+.toggle-body>.toggle-knob::after,
546.toggle>input[type=checkbox]:active:checked+.toggle-body>.toggle-knob::after,
547.toggle:active>input[type=checkbox]:checked+.toggle-body>.toggle-knob::after {
548 background-color: var(--accent-color-transparent25);
549}
550.toggle>input[type=checkbox]:disabled+.toggle-body {
551 cursor: default;
552}
553.toggle>input[type=checkbox]:disabled+.toggle-body>.toggle-track {
554 background-color: var(--disabled-color-light);
555}
556.toggle>input[type=checkbox]:disabled+.toggle-body>.toggle-knob {
557 background-color: var(--disabled-color-lighter);
558}
559.toggle>input[type=checkbox]:disabled+.toggle-body>.toggle-knob::after {
560 transform: scale(0);
561 opacity: 0;
562 visibility: hidden;
563 transition: var(--selectable-indicator-transition1);
564}
565
566
567/* Radio button */
568label.radio {
569 cursor: default;
570}
571.radio {
572 display: inline-block;
573 vertical-align: middle;
574}
575.radio>input[type=radio] {
576 opacity: 0;
577 width: 0;
578 height: 0;
579 display: block;
580 margin: 0;
581 padding: 0;
582 border: none;
583 appearance: none;
584 -moz-appearance: none;
585 -webkit-appearance: none;
586}
587.radio-body {
588 cursor: pointer;
589 display: block;
590 position: relative;
591 width: var(--radio-size);
592 height: var(--radio-size);
593}
594.radio>input[type=radio]:disabled+.radio-body {
595 cursor: default;
596}
597.radio-border,
598.radio-dot {
599 display: block;
600 position: absolute;
601 left: 0;
602 top: 0;
603 right: 0;
604 bottom: 0;
605 background-color: var(--accent-color);
606 mask-repeat: no-repeat;
607 mask-position: center center;
608 mask-mode: alpha;
609 mask-size: var(--radio-size) var(--radio-size);
610 -webkit-mask-repeat: no-repeat;
611 -webkit-mask-position: center center;
612 -webkit-mask-mode: alpha;
613 -webkit-mask-size: var(--radio-size) var(--radio-size);
614}
615.radio-border {
616 mask-image: url(/images/radio-button.svg);
617 -webkit-mask-image: url(/images/radio-button.svg);
618}
619.radio-dot {
620 mask-image: url(/images/radio-button-dot.svg);
621 -webkit-mask-image: url(/images/radio-button-dot.svg);
622 opacity: 1;
623 transform: none;
624 transition:
625 transform var(--animation-duration2) ease-in-out,
626 opacity var(--animation-duration2) ease-in-out,
627 visibility var(--animation-duration2) ease-in-out;
628}
629.radio>input[type=radio]:disabled+.radio-body>.radio-border,
630.radio>input[type=radio]:disabled+.radio-body>.radio-dot {
631 background-color: var(--disabled-color);
632}
633.radio>input[type=radio]:not(:checked)+.radio-body>.radio-dot {
634 opacity: 0;
635 transform: scale(0);
636 transition:
637 transform 0s ease-in-out var(--animation-duration2),
638 opacity var(--animation-duration2) ease-in-out,
639 visibility 0s ease-in-out var(--animation-duration2);
640}
641.radio-body::after {
642 position: absolute;
643 display: block;
644 content: '';
645 left: -0.75em;
646 top: -0.75em;
647 right: -0.75em;
648 bottom: -0.75em;
649 border-radius: 2.5em;
650 background-color: var(--selectable-indicator-color);
651 pointer-events: none;
652 transform: scale(0);
653 opacity: 0;
654 visibility: hidden;
655 transition: var(--selectable-indicator-transition1);
656}
657.radio>input[type=radio]:focus+.radio-body::after,
658.radio>input[type=radio]:active+.radio-body::after,
659.radio:active>input[type=radio]+.radio-body::after {
660 transform: scale(1);
661 opacity: 1;
662 visibility: visible;
663 transition: var(--selectable-indicator-transition2);
664}
665.radio>input[type=radio]:focus:not(:focus-visible)+.radio-body::after {
666 transform: scale(0);
667 opacity: 0;
668 visibility: hidden;
669 transition: var(--selectable-indicator-transition1);
670}
671.radio>input[type=radio]:focus-visible+.radio-body::after {
672 transform: scale(1);
673 opacity: 1;
674 visibility: visible;
675 transition: var(--selectable-indicator-transition2);
676}
677.radio>input[type=radio]:focus+.radio-body::after {
678 opacity: 0.5;
679}
680.radio>input[type=radio]:active:focus+.radio-body::after,
681.radio:active>input[type=radio]:focus+.radio-body::after {
682 opacity: 1;
683}
684.radio>input[type=radio]:disabled+.radio-body::after {
685 transform: scale(0);
686 opacity: 0;
687 visibility: hidden;
688 transition: var(--selectable-indicator-transition1);
689}
690.radio-label {
691 cursor: pointer;
692 white-space: nowrap;
693}
694.radio-label>.radio {
695 vertical-align: middle;
696}
697.radio-label>.radio-label-text {
698 display: inline-block;
699 margin-left: 0.5em;
700 vertical-align: middle;
701 white-space: normal;
702}
703
704
705/* Material design select */
706select {
707 width: var(--input-width-large);
708 height: var(--input-height);
709 line-height: var(--line-height);
710 border: 0;
711 border-radius: var(--input-border-radius);
712 box-sizing: border-box;
713 padding: 0 0.5em;
714 appearance: none;
715 -moz-appearance: none;
716 -webkit-appearance: none;
717 background-image: url(/images/material-down-arrow.svg);
718 background-repeat: no-repeat;
719 background-position: right calc(10em / var(--font-size-no-units)) center;
720 background-color: var(--input-background-color);
721 background-size: var(--material-arrow-dimension2) var(--material-arrow-dimension1);
722 cursor: pointer;
723 color: var(--text-color);
724 font-size: var(--input-font-size);
725}
726select::-ms-expand {
727 display: none;
728}
729
730
731/* Material design inputs */
732input[type=text],
733input[type=number],
734input[type=password] {
735 width: var(--input-width);
736 height: var(--input-height);
737 line-height: var(--line-height);
738 color: var(--text-color);
739 font-size: var(--input-font-size);
740 background-color: var(--input-background-color);
741 border: none;
742 border-radius: var(--input-border-radius);
743 box-sizing: border-box;
744 padding: 0 0.5em;
745 appearance: textfield;
746 -moz-appearance: textfield;
747 -webkit-appearance: textfield;
748}
749input[type=number]::-webkit-inner-spin-button,
750input[type=number]::-webkit-outer-spin-button {
751 appearance: none;
752 -moz-appearance: none;
753 -webkit-appearance: none;
754 margin: 0;
755}
756input[type=text],
757input[type=password] {
758 width: var(--input-width-large);
759}
760textarea {
761 box-sizing: border-box;
762 padding: var(--textarea-padding);
763 font-family: 'Courier New', Courier, monospace;
764 color: var(--text-color);
765 font-size: var(--input-font-size);
766 background-color: var(--input-background-color);
767 border-radius: var(--input-border-radius);
768 line-height: var(--textarea-line-height);
769 border: var(--thin-border-size) solid var(--input-background-color);
770}
771select:invalid,
772textarea:invalid,
773input[type=text]:invalid,
774input[type=number]:invalid,
775input[type=password]:invalid,
776select[data-invalid=true],
777textarea[data-invalid=true],
778input[type=text][data-invalid=true],
779input[type=number][data-invalid=true],
780input[type=password][data-invalid=true] {
781 border: var(--thin-border-size) solid var(--danger-color);
782}
783select,
784textarea,
785input[type=text],
786input[type=number],
787input[type=password] {
788 box-shadow: none;
789 transition: box-shadow calc(var(--animation-duration) / 2) linear;
790}
791select:focus,
792textarea:focus,
793input[type=text]:focus,
794input[type=number]:focus,
795input[type=password]:focus {
796 box-shadow: 0 0 0 calc(2em / var(--font-size-no-units)) var(--input-outline-color);
797 outline: none;
798}
799select:invalid:focus,
800textarea:invalid:focus,
801input[type=text]:invalid:focus,
802input[type=number]:invalid:focus,
803input[type=password]:invalid:focus,
804select[data-invalid=true]:focus,
805textarea[data-invalid=true]:focus,
806input[type=text][data-invalid=true]:focus,
807input[type=number][data-invalid=true]:focus,
808input[type=password][data-invalid=true]:focus {
809 box-shadow: 0 0 0 calc(2em / var(--font-size-no-units)) var(--danger-color);
810 outline: none;
811}
812input[type=text].code,
813input[type=number].code,
814input[type=password].code {
815 font-family: 'Courier New', Courier, monospace;
816}
817textarea.no-wrap {
818 white-space: pre;
819 overflow-wrap: normal;
820}
821
822/* Input groups */
823.input-group {
824 display: flex;
825 flex-flow: row nowrap;
826 align-items: stretch;
827}
828.input-group>input[type=text],
829.input-group>input[type=number],
830.input-group>input[type=password],
831.input-group>button.input-button {
832 flex: 1 1 auto;
833 border-top-right-radius: 0;
834 border-bottom-right-radius: 0;
835 border-right-style: none;
836 z-index: 1;
837}
838.input-suffix,
839.button.input-suffix,
840button.input-suffix {
841 display: flex;
842 flex-flow: row nowrap;
843 align-items: center;
844 border-radius: var(--input-border-radius);
845 border-style: none;
846 border-width: 0;
847 height: var(--input-height);
848 box-sizing: border-box;
849 padding: 0 0.5em;
850 position: relative;
851}
852.input-suffix:not(:first-child),
853.button.input-suffix:not(:first-child),
854button.input-suffix:not(:first-child) {
855 border-top-left-radius: 0;
856 border-bottom-left-radius: 0;
857}
858.input-suffix:not(:last-child),
859.button.input-suffix:not(:last-child),
860button.input-suffix:not(:last-child) {
861 border-top-right-radius: 0;
862 border-bottom-right-radius: 0;
863}
864.input-suffix:not(button) {
865 background-color: var(--input-background-color);
866}
867input[type=text]:invalid~.input-suffix:not(button),
868input[type=number]:invalid~.input-suffix:not(button),
869input[type=password]:invalid~.input-suffix:not(button),
870input[type=text][data-invalid=true]~.input-suffix:not(button),
871input[type=number][data-invalid=true]~.input-suffix:not(button),
872input[type=password][data-invalid=true]~.input-suffix:not(button) {
873 border-color: var(--danger-color);
874 border-width: var(--thin-border-size);
875 border-style: solid;
876 border-left-style: none;
877 border-right-style: none;
878}
879
880
881/* Material design button */
882button,
883.button {
884 --button-content-color: var(--button-default-text-color);
885 --button-border-color: var(--accent-color);
886 --button-background-color: var(--accent-color);
887 --button-shadow: none;
888
889 --button-hover-content-color: var(--button-content-color);
890 --button-hover-border-color: var(--button-hover-background-color);
891 --button-hover-background-color: var(--accent-color-light);
892 --button-hover-shadow: var(--button-default-shadow-params) var(--shadow-color-light);
893
894 --button-focus-content-color: var(--button-hover-content-color);
895 --button-focus-border-color: var(--button-hover-border-color);
896 --button-focus-background-color: var(--button-hover-background-color);
897 --button-focus-shadow: var(--button-hover-shadow);
898
899 --button-focus-visible-content-color: var(--button-focus-content-color);
900 --button-focus-visible-border-color: var(--button-focus-border-color);
901 --button-focus-visible-background-color: var(--button-focus-background-color);
902 --button-focus-visible-shadow: var(--button-focus-shadow);
903
904 --button-active-content-color: var(--button-content-color);
905 --button-active-border-color: var(--button-active-background-color);
906 --button-active-background-color: var(--accent-color-lighter);
907 --button-active-shadow: var(--button-default-shadow-params) var(--shadow-color);
908
909 --button-disabled-content-color: var(--button-default-text-color);
910 --button-disabled-border-color: var(--disabled-color);
911 --button-disabled-background-color: var(--disabled-color);
912 --button-disabled-shadow: none;
913
914 --button-current-content-color: var(--button-content-color);
915 --button-current-border-color: var(--button-border-color);
916 --button-current-background-color: var(--button-background-color);
917 --button-current-shadow: var(--button-shadow);
918
919 --button-padding-vertical: 0.5em;
920 --button-padding-horizontal: 1em;
921
922 border-width: var(--thin-border-size);
923 border-style: solid;
924 border-radius: var(--button-border-radius);
925 padding: var(--button-padding-vertical) var(--button-padding-horizontal);
926 font-weight: bold;
927 font-size: inherit;
928 font-family: inherit;
929 cursor: pointer;
930 transition:
931 background-color var(--animation-duration) ease-in-out,
932 box-shadow var(--animation-duration) ease-in-out,
933 border-color var(--animation-duration) ease-in-out;
934 -webkit-tap-highlight-color: transparent;
935
936 color: var(--button-current-content-color);
937 border-color: var(--button-current-border-color);
938 background-color: var(--button-current-background-color);
939 box-shadow: var(--button-current-shadow);
940}
941button:hover,
942.button:hover {
943 --button-current-content-color: var(--button-hover-content-color);
944 --button-current-border-color: var(--button-hover-border-color);
945 --button-current-background-color: var(--button-hover-background-color);
946 --button-current-shadow: var(--button-hover-shadow);
947}
948button:focus,
949.button:focus {
950 --button-current-content-color: var(--button-focus-content-color);
951 --button-current-border-color: var(--button-focus-border-color);
952 --button-current-background-color: var(--button-focus-background-color);
953 --button-current-shadow: var(--button-focus-shadow);
954
955 outline: none;
956}
957button:active,
958.button:active {
959 --button-current-content-color: var(--button-active-content-color);
960 --button-current-border-color: var(--button-active-border-color);
961 --button-current-background-color: var(--button-active-background-color);
962 --button-current-shadow: var(--button-active-shadow);
963}
964button:focus:not(:focus-visible),
965.button:focus:not(:focus-visible) {
966 --button-current-content-color: var(--button-content-color);
967 --button-current-border-color: var(--button-border-color);
968 --button-current-background-color: var(--button-background-color);
969 --button-current-shadow: var(--button-shadow);
970}
971button:focus-visible,
972.button:focus-visible {
973 --button-current-content-color: var(--button-focus-visible-content-color);
974 --button-current-border-color: var(--button-focus-visible-border-color);
975 --button-current-background-color: var(--button-focus-visible-background-color);
976 --button-current-shadow: var(--button-focus-visible-shadow);
977}
978button:hover:focus-visible,
979button:hover:not(:focus-visible),
980.button:hover:focus-visible,
981.button:hover:not(:focus-visible) {
982 --button-current-content-color: var(--button-hover-content-color);
983 --button-current-border-color: var(--button-hover-border-color);
984 --button-current-background-color: var(--button-hover-background-color);
985 --button-current-shadow: var(--button-hover-shadow);
986}
987button:focus:focus-visible,
988.button:focus:focus-visible {
989 --button-current-content-color: var(--button-focus-visible-content-color);
990 --button-current-border-color: var(--button-focus-visible-border-color);
991 --button-current-background-color: var(--button-focus-visible-background-color);
992 --button-current-shadow: var(--button-focus-visible-shadow);
993}
994button:active:focus-visible,
995button:active:not(:focus-visible),
996.button:active:focus-visible,
997.button:active:not(:focus-visible) {
998 --button-current-content-color: var(--button-active-content-color);
999 --button-current-border-color: var(--button-active-border-color);
1000 --button-current-background-color: var(--button-active-background-color);
1001 --button-current-shadow: var(--button-active-shadow);
1002}
1003button:disabled,
1004.button:disabled {
1005 cursor: default;
1006}
1007button:disabled,
1008button:disabled:focus,
1009button:disabled:hover,
1010button:disabled:active,
1011.button:disabled,
1012.button:disabled:focus,
1013.button:disabled:hover,
1014.button:disabled:active {
1015 --button-current-content-color: var(--button-disabled-content-color);
1016 --button-current-border-color: var(--button-disabled-border-color);
1017 --button-current-background-color: var(--button-disabled-background-color);
1018 --button-current-shadow: var(--button-disabled-shadow);
1019}
1020button:disabled:focus-visible,
1021.button:disabled:focus-visible {
1022 --button-current-content-color: var(--button-disabled-content-color);
1023 --button-current-border-color: var(--button-disabled-border-color);
1024 --button-current-background-color: var(--button-disabled-background-color);
1025 --button-current-shadow: var(--button-disabled-shadow);
1026}
1027
1028/* Standard danger button */
1029button.danger {
1030 --button-border-color: var(--danger-color);
1031 --button-background-color: var(--danger-color);
1032 --button-hover-background-color: var(--danger-color-light);
1033 --button-active-background-color: var(--danger-color-lighter);
1034}
1035
1036/* Low emphasis button */
1037button.low-emphasis {
1038 --button-content-color: var(--accent-color);
1039 --button-border-color: var(--button-default-border-color);
1040 --button-background-color: var(--accent-color-transparent0);
1041 --button-hover-border-color: var(--accent-color);
1042 --button-hover-background-color: var(--accent-color-transparent5);
1043 --button-active-border-color: var(--accent-color);
1044 --button-active-background-color: var(--accent-color-transparent25);
1045 --button-disabled-content-color: var(--disabled-color);
1046 --button-disabled-border-color: var(--disabled-color);
1047 --button-disabled-background-color: var(--accent-color-transparent0);
1048}
1049
1050/* Low emphasis danger button */
1051button.low-emphasis.danger {
1052 --button-content-color: var(--danger-color);
1053 --button-border-color: var(--button-default-border-color);
1054 --button-background-color: var(--danger-color-transparent0);
1055 --button-hover-border-color: var(--danger-color);
1056 --button-hover-background-color: var(--danger-color-transparent5);
1057 --button-active-border-color: var(--danger-color);
1058 --button-active-background-color: var(--danger-color-transparent25);
1059 --button-disabled-content-color: var(--disabled-color);
1060 --button-disabled-border-color: var(--disabled-color);
1061 --button-disabled-background-color: var(--danger-color-transparent0);
1062}
1063
1064/* Input button */
1065button.input-button {
1066 --button-content-color: var(--button-default-icon-color);
1067 --button-border-color: var(--input-background-color);
1068 --button-background-color: var(--input-background-color);
1069 --button-hover-background-color: var(--input-background-color-dark);
1070 --button-active-background-color: var(--input-background-color-darker);
1071
1072 --button-padding-vertical: 0;
1073 --button-padding-horizontal: 0.5em;
1074
1075 text-align: left;
1076 font-weight: normal;
1077 border-style: none;
1078 border-width: 0;
1079 width: var(--input-width-large);
1080 height: var(--input-height);
1081 line-height: var(--input-height);
1082 box-sizing: border-box;
1083 position: relative;
1084}
1085
1086/* Input suffix button */
1087button.input-suffix {
1088 --button-content-color: var(--button-default-icon-color);
1089 --button-border-color: var(--input-background-color);
1090 --button-background-color: var(--input-background-color);
1091 --button-hover-background-color: var(--input-background-color-dark);
1092 --button-active-background-color: var(--input-background-color-darker);
1093}
1094button.input-suffix.light-icon {
1095 --button-content-color: var(--button-default-icon-color-light);
1096}
1097button.input-suffix.input-suffix-icon-button {
1098 width: 2.125em;
1099}
1100button.input-suffix.input-suffix-icon-button>.icon {
1101 display: block;
1102 width: 100%;
1103 height: 100%;
1104 background-color: var(--button-current-content-color);
1105}
1106input[type=text]:invalid~button.input-suffix,
1107input[type=number]:invalid~button.input-suffix,
1108input[type=password]:invalid~button.input-suffix,
1109input[type=text][data-invalid=true]~button.input-suffix,
1110input[type=number][data-invalid=true]~button.input-suffix,
1111input[type=password][data-invalid=true]~button.input-suffix {
1112 --button-border-color: var(--danger-color);
1113 --button-hover-border-color: var(--danger-color);
1114 --button-active-border-color: var(--danger-color);
1115 --button-disabled-border-color: var(--danger-color);
1116
1117 border-width: var(--thin-border-size);
1118 border-style: solid;
1119 border-left-style: none;
1120}
1121
1122
1123/* Button inner label */
1124.button-inner-label {
1125 margin-top: calc(-1 * var(--button-padding-vertical));
1126 margin-bottom: calc(-1 * var(--button-padding-vertical));
1127 margin-left: calc(-1 * var(--button-padding-horizontal));
1128 margin-right: calc(-1 * var(--button-padding-horizontal));
1129 padding: var(--button-padding-vertical) var(--button-padding-horizontal);
1130}
1131
1132
1133/* Material design icon button */
1134button.icon-button {
1135 --button-content-color: var(--button-default-icon-color);
1136 --button-border-color: transparent;
1137 --button-background-color: transparent;
1138 --button-shadow: none;
1139
1140 --button-hover-border-color: transparent;
1141 --button-hover-background-color: transparent;
1142 --button-hover-shadow: none;
1143
1144 --button-active-border-color: transparent;
1145 --button-active-background-color: transparent;
1146 --button-active-shadow: none;
1147
1148 --button-disabled-content-color: var(--button-default-icon-color);
1149 --button-disabled-border-color: transparent;
1150 --button-disabled-background-color: transparent;
1151 --button-disabled-shadow: none;
1152
1153 vertical-align: middle;
1154 border: none;
1155 margin: 0;
1156 padding: 0;
1157 box-sizing: content-box;
1158 font-size: inherit;
1159 cursor: pointer;
1160}
1161button.icon-button.light-icon {
1162 --button-content-color: var(--button-default-icon-color-light);
1163 --button-disabled-content-color: var(--button-default-icon-color-light);
1164}
1165button.icon-button:not([hidden]) {
1166 display: inline-block;
1167}
1168button.icon-button>.icon-button-inner {
1169 display: block;
1170 width: var(--icon-button-size);
1171 height: var(--icon-button-size);
1172 position: relative;
1173}
1174.icon-button>.icon-button-inner::after {
1175 position: absolute;
1176 display: block;
1177 content: '';
1178 left: 0;
1179 top: 0;
1180 right: 0;
1181 bottom: 0;
1182 border-radius: 50%;
1183 background-color: var(--selectable-indicator-color);
1184 pointer-events: none;
1185 transform: scale(0);
1186 opacity: 0;
1187 visibility: hidden;
1188 transition: var(--selectable-indicator-transition1);
1189}
1190.icon-button:focus>.icon-button-inner::after,
1191.icon-button:active>.icon-button-inner::after {
1192 transform: scale(1);
1193 opacity: 1;
1194 visibility: visible;
1195 transition: var(--selectable-indicator-transition2);
1196}
1197.icon-button:focus:not(:focus-visible)>.icon-button-inner::after {
1198 transform: scale(0);
1199 opacity: 0;
1200 visibility: hidden;
1201 transition: var(--selectable-indicator-transition1);
1202}
1203.icon-button:focus-visible>.icon-button-inner::after,
1204.icon-button:focus-visible:active>.icon-button-inner::after,
1205.icon-button:focus>.icon-button-inner::after,
1206.icon-button:focus:active>.icon-button-inner::after {
1207 transform: scale(1);
1208 opacity: 1;
1209 visibility: visible;
1210 transition: var(--selectable-indicator-transition2);
1211}
1212.icon-button>.icon-button-inner>.icon {
1213 display: block;
1214 position: absolute;
1215 left: 0;
1216 top: 0;
1217 right: 0;
1218 bottom: 0;
1219 background-color: var(--button-current-content-color);
1220 --icon-size: calc(16em / var(--font-size-no-units)) calc(16em / var(--font-size-no-units));
1221}
1222.icon-button>.icon-button-inner>.icon[data-icon=material-right-arrow] { --icon-size: var(--material-arrow-dimension1) var(--material-arrow-dimension2); }
1223.icon-button>.icon-button-inner>.icon[data-icon=material-down-arrow] { --icon-size: var(--material-arrow-dimension2) var(--material-arrow-dimension1); }
1224
1225.input-height-icon-button-container {
1226 height: var(--input-height);
1227 box-sizing: border-box;
1228}
1229.input-height-icon-button-container>.icon-button {
1230 position: relative;
1231 top: calc((var(--input-height) - var(--icon-button-size)) * 0.5);
1232}
1233
1234
1235/* Popup menu */
1236#popup-menus {
1237 position: absolute;
1238}
1239.popup-menu-container {
1240 position: fixed;
1241 left: 0;
1242 top: 0;
1243 right: 0;
1244 bottom: 0;
1245 z-index: 1001;
1246 outline: none;
1247 overflow: hidden;
1248}
1249.popup-menu {
1250 position: absolute;
1251 left: 0;
1252 top: 0;
1253 max-width: 100%;
1254 max-height: 100%;
1255 box-sizing: border-box;
1256 box-shadow: var(--menu-shadow);
1257 border-radius: var(--menu-border-radius);
1258 background-color: var(--background-color-light);
1259 padding: 0.5em 0;
1260 min-width: 8em;
1261 overflow: auto;
1262}
1263.popup-menu-body {
1264 display: flex;
1265 flex-flow: column nowrap;
1266 align-items: stretch;
1267 white-space: nowrap;
1268}
1269button.popup-menu-item {
1270 --button-content-color: var(--text-color);
1271 --button-border-color: transparent;
1272 --button-background-color: transparent;
1273 --button-shadow: none;
1274
1275 --button-hover-border-color: transparent;
1276 --button-hover-background-color: var(--menu-item-hover-color);
1277 --button-hover-shadow: none;
1278
1279 --button-active-border-color: transparent;
1280 --button-active-background-color: var(--menu-item-active-color);
1281 --button-active-shadow: none;
1282
1283 --button-disabled-content-color: var(--text-color-light2);
1284 --button-disabled-border-color: transparent;
1285 --button-disabled-background-color: transparent;
1286 --button-disabled-shadow: none;
1287
1288 --button-padding-vertical: 0.625em;
1289 --button-padding-horizontal: 1.5em;
1290
1291 flex: 1 1 auto;
1292 border-radius: 0;
1293 border-style: none;
1294 border-width: 0;
1295 text-align: left;
1296 font-size: 1em;
1297 font-weight: normal;
1298 font-family: inherit;
1299 align-items: center;
1300}
1301button.popup-menu-item.popup-menu-item-bold {
1302 font-weight: bold;
1303}
1304button.popup-menu-item:not([hidden]) {
1305 display: flex;
1306}
1307button.popup-menu-item.popup-menu-item-thin {
1308 --button-padding-vertical: 0.375em;
1309}
1310.popup-menu-item-icon {
1311 width: calc(16em / var(--font-size-no-units));
1312 height: calc(16em / var(--font-size-no-units));
1313 background-color: var(--button-current-content-color);
1314 flex: 0 0 auto;
1315}
1316.popup-menu-item-icon:not([hidden]) {
1317 display: block;
1318}
1319.popup-menu-item-icon+.popup-menu-item-label {
1320 margin-left: 0.5em;
1321}
1322:root[data-page-type=popup] .popup-menu.popup-menu-auto-size,
1323.popup-menu.popup-menu-small {
1324 border-radius: calc(var(--menu-border-radius) * 0.75);
1325 padding: 0.25em 0;
1326 min-width: 6em;
1327}
1328:root[data-page-type=popup] .popup-menu.popup-menu-auto-size button.popup-menu-item,
1329.popup-menu.popup-menu-small button.popup-menu-item {
1330 --button-padding-vertical: 0.5em;
1331 --button-padding-horizontal: 0.75em;
1332
1333 font-size: var(--font-size-small);
1334}
1335:root[data-page-type=popup] .popup-menu.popup-menu-auto-size button.popup-menu-item.popup-menu-item-thin,
1336.popup-menu.popup-menu-small button.popup-menu-item.popup-menu-item-thin {
1337 --button-padding-vertical: 0.25em;
1338}
1339.popup-menu-item-group {
1340 position: relative;
1341 display: flex;
1342 flex-flow: row nowrap;
1343 align-items: stretch;
1344}