opui-css 5.0.1 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/MIGRATING.md +11 -0
- package/README.md +1 -1
- package/components/Accordion/Accordion.astro +12 -2
- package/components/Anchor/Anchor.astro +5 -1
- package/components/ButtonGroup/ButtonGroup.astro +8 -1
- package/components/Card/Card.astro +3 -1
- package/components/Checkbox/Checkbox.astro +3 -3
- package/components/ClassicSelect/ClassicSelect.astro +3 -3
- package/components/Dialog/Dialog.astro +3 -1
- package/components/Radio/Radio.astro +3 -3
- package/components/Select/Select.astro +3 -3
- package/components/Switch/Switch.astro +3 -3
- package/components/TextField/TextField.astro +3 -3
- package/components/Textarea/Textarea.astro +3 -3
- package/core/normalize.css +16 -10
- package/core/palette.css +313 -58
- package/core/utils.css +2 -2
- package/css/components/accordion.css +7 -7
- package/css/components/anchor.css +23 -23
- package/css/components/badge.css +4 -4
- package/css/components/button-group.css +28 -14
- package/css/components/button.css +29 -17
- package/css/components/callout.css +95 -92
- package/css/components/card.css +6 -8
- package/css/components/checkbox.css +209 -203
- package/css/components/chip.css +11 -6
- package/css/components/description-list.css +2 -1
- package/css/components/dialog.css +2 -1
- package/css/components/drawer.css +167 -167
- package/css/components/form.css +8 -7
- package/css/components/icon-button.css +32 -13
- package/css/components/list.css +10 -12
- package/css/components/progress.css +4 -3
- package/css/components/radio.css +168 -170
- package/css/components/range.css +14 -9
- package/css/components/select.css +9 -6
- package/css/components/spinner.css +4 -3
- package/css/components/switch.css +8 -5
- package/css/components/table.css +4 -10
- package/css/components/tabs.css +17 -16
- package/css/components/text-field.css +9 -10
- package/css/components/text-input.css +8 -4
- package/css/components/textarea.css +3 -1
- package/css/components/toast.css +156 -157
- package/css/components/toggle-button.css +76 -72
- package/css/components/tooltip.css +59 -56
- package/css/components/typography.css +31 -31
- package/css/imports.css +5 -4
- package/css/theme.css +14 -20
- package/dist/op.css +0 -62
- package/dist/op.css.map +1 -1
- package/dist/opui.components.css +1259 -1184
- package/dist/opui.components.css.map +1 -1
- package/dist/opui.css +1719 -1393
- package/dist/opui.css.map +1 -1
- package/open-props.css +0 -1
- package/package.json +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
@layer components.extended {
|
|
2
|
-
|
|
3
2
|
/*
|
|
4
3
|
- Common styling for input, textarea and select
|
|
5
4
|
- Form related styles such as: label, supporting text, error handling
|
|
@@ -106,7 +105,6 @@
|
|
|
106
105
|
|
|
107
106
|
/* Textarea - keep affix aligned with the first line */
|
|
108
107
|
&.ui-textarea .ui-field {
|
|
109
|
-
|
|
110
108
|
.ui-prefix,
|
|
111
109
|
.ui-suffix {
|
|
112
110
|
align-self: start;
|
|
@@ -153,7 +151,6 @@
|
|
|
153
151
|
/* Variants */
|
|
154
152
|
&.ui-filled {
|
|
155
153
|
input {
|
|
156
|
-
|
|
157
154
|
&::-webkit-file-upload-button,
|
|
158
155
|
&::file-selector-button {
|
|
159
156
|
background-color: var(--surface-default);
|
|
@@ -192,7 +189,6 @@
|
|
|
192
189
|
.ui-label {
|
|
193
190
|
/* Make sure chevron is visible */
|
|
194
191
|
inline-size: calc(100% - var(--size-6));
|
|
195
|
-
|
|
196
192
|
}
|
|
197
193
|
}
|
|
198
194
|
|
|
@@ -203,7 +199,8 @@
|
|
|
203
199
|
|
|
204
200
|
button {
|
|
205
201
|
outline: 0;
|
|
206
|
-
padding: var(--_field-padding-block) var(--size-8)
|
|
202
|
+
padding: var(--_field-padding-block) var(--size-8)
|
|
203
|
+
var(--_field-padding-block) var(--_field-padding-inline);
|
|
207
204
|
}
|
|
208
205
|
}
|
|
209
206
|
}
|
|
@@ -211,7 +208,8 @@
|
|
|
211
208
|
/* Non-customizable Select */
|
|
212
209
|
&:has(select):not(:has(button)) {
|
|
213
210
|
select {
|
|
214
|
-
padding: var(--_field-padding-block) var(--size-8)
|
|
211
|
+
padding: var(--_field-padding-block) var(--size-8)
|
|
212
|
+
var(--_field-padding-block) var(--_field-padding-inline);
|
|
215
213
|
}
|
|
216
214
|
}
|
|
217
215
|
|
|
@@ -309,11 +307,12 @@
|
|
|
309
307
|
--_bg-color: var(--surface-tonal);
|
|
310
308
|
|
|
311
309
|
&:not(:has([disabled], :has(input[type="color"]))) {
|
|
312
|
-
|
|
313
310
|
/* Hover */
|
|
314
311
|
&:hover {
|
|
315
|
-
--_bg-color: light-dark(
|
|
316
|
-
|
|
312
|
+
--_bg-color: light-dark(
|
|
313
|
+
oklch(from var(--surface-tonal) calc(l * 0.93) c h),
|
|
314
|
+
oklch(from var(--surface-tonal) calc(l * 1.1) c h)
|
|
315
|
+
);
|
|
317
316
|
}
|
|
318
317
|
}
|
|
319
318
|
}
|
|
@@ -404,7 +403,7 @@
|
|
|
404
403
|
.ui-field:has(textarea) {
|
|
405
404
|
grid-row: 1 / span 3;
|
|
406
405
|
|
|
407
|
-
|
|
406
|
+
+ .ui-end-text {
|
|
408
407
|
grid-row: 4;
|
|
409
408
|
}
|
|
410
409
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
@layer components.extended {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
:where(
|
|
3
|
+
.ui-text-field:has(
|
|
4
|
+
:where(
|
|
5
|
+
input[type="date"],
|
|
4
6
|
input[type="datetime-local"],
|
|
5
7
|
input[type="email"],
|
|
6
8
|
input[type="month"],
|
|
@@ -11,8 +13,10 @@
|
|
|
11
13
|
input[type="text"],
|
|
12
14
|
input[type="time"],
|
|
13
15
|
input[type="url"],
|
|
14
|
-
input[type="week"]
|
|
15
|
-
|
|
16
|
+
input[type="week"]
|
|
17
|
+
)
|
|
18
|
+
)
|
|
19
|
+
) {
|
|
16
20
|
/* Sizes */
|
|
17
21
|
&.ui-small {
|
|
18
22
|
input {
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
textarea {
|
|
4
4
|
block-size: auto;
|
|
5
5
|
field-sizing: content;
|
|
6
|
-
min-block-size: calc(
|
|
6
|
+
min-block-size: calc(
|
|
7
|
+
var(--_field-padding-block) * 2 + (var(--border-width) * 2) + 3lh
|
|
8
|
+
);
|
|
7
9
|
resize: vertical;
|
|
8
10
|
}
|
|
9
11
|
|
package/css/components/toast.css
CHANGED
|
@@ -1,161 +1,160 @@
|
|
|
1
1
|
@layer components.extended {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
:where(#toast-manager) {
|
|
3
|
+
background: none;
|
|
4
|
+
block-size: auto;
|
|
5
|
+
border: none;
|
|
6
|
+
display: none;
|
|
7
|
+
flex-direction: column-reverse;
|
|
8
|
+
gap: var(--size-3);
|
|
9
|
+
inline-size: auto;
|
|
10
|
+
inset: auto var(--size-4) var(--size-4) auto;
|
|
11
|
+
margin: 0;
|
|
12
|
+
max-inline-size: calc(100vi - var(--size-8));
|
|
13
|
+
overflow: visible;
|
|
14
|
+
padding: 0;
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
position: fixed;
|
|
17
|
+
z-index: 1000;
|
|
18
|
+
|
|
19
|
+
&:popover-open {
|
|
20
|
+
display: flex;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&::backdrop {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Optional cap on visible toasts. Older toasts beyond this depth are hidden
|
|
28
28
|
but still in the DOM so they animate cleanly when newer ones are removed. */
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
/* Identity keyframe — only purpose is to delay the exit animation by the
|
|
29
|
+
/* > .toast:nth-last-child(n + 6) { display: none; } */
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:where(.ui-toast) {
|
|
33
|
+
--_anim-enter: 0.3s;
|
|
34
|
+
--_anim-exit: 0.3s;
|
|
35
|
+
|
|
36
|
+
align-items: center;
|
|
37
|
+
animation:
|
|
38
|
+
toast-enter var(--_anim-enter) var(--ease-out-3) both,
|
|
39
|
+
toast-hold attr(data-duration type(<time>), 5s) linear both,
|
|
40
|
+
toast-exit var(--_anim-exit) var(--ease-in-3) both;
|
|
41
|
+
animation-delay:
|
|
42
|
+
0s, var(--_anim-enter),
|
|
43
|
+
calc(var(--_anim-enter) + attr(data-duration type(<time>), 5s));
|
|
44
|
+
background-color: light-dark(var(--gray-15), var(--gray-2));
|
|
45
|
+
border-radius: var(--border-radius);
|
|
46
|
+
box-shadow: var(--shadow-3);
|
|
47
|
+
color: var(--text-primary-contrast);
|
|
48
|
+
display: flex;
|
|
49
|
+
gap: var(--size-3);
|
|
50
|
+
justify-content: space-between;
|
|
51
|
+
min-inline-size: 30ch;
|
|
52
|
+
padding: var(--size-3) var(--size-4);
|
|
53
|
+
pointer-events: auto;
|
|
54
|
+
|
|
55
|
+
&:hover {
|
|
56
|
+
animation-play-state: paused;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&.ui-exiting {
|
|
60
|
+
animation: toast-exit var(--_anim-exit) var(--ease-in-3) forwards;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.ui-icon {
|
|
64
|
+
background: no-repeat center / contain;
|
|
65
|
+
block-size: var(--size-4);
|
|
66
|
+
flex-shrink: 0;
|
|
67
|
+
inline-size: var(--size-4);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Hide the icon slot when there's no severity to render against. */
|
|
71
|
+
&:not([data-severity]) .ui-icon {
|
|
72
|
+
display: none;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.ui-content {
|
|
76
|
+
font-size: var(--font-size-05);
|
|
77
|
+
word-break: break-word;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.ui-title {
|
|
81
|
+
font-weight: 600;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.ui-description {
|
|
85
|
+
color: oklch(from currentColor l c h / 75%);
|
|
86
|
+
font-size: var(--font-size-0);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.ui-close-button {
|
|
90
|
+
background: none;
|
|
91
|
+
border: none;
|
|
92
|
+
color: inherit;
|
|
93
|
+
cursor: pointer;
|
|
94
|
+
display: grid;
|
|
95
|
+
opacity: 0.7;
|
|
96
|
+
padding: var(--size-1);
|
|
97
|
+
place-items: center;
|
|
98
|
+
transition: opacity 0.2s;
|
|
99
|
+
|
|
100
|
+
&:hover {
|
|
101
|
+
opacity: 1;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Severity icons via CSS data URIs — keeps icon assets out of JS strings. */
|
|
106
|
+
&[data-severity="success"] .ui-icon {
|
|
107
|
+
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/><path d='m9 11 3 3L22 4'/></svg>");
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
&[data-severity="info"] .ui-icon {
|
|
111
|
+
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M12 16v-4'/><path d='M12 8h.01'/></svg>");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&[data-severity="warning"] .ui-icon {
|
|
115
|
+
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23f59e0b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/><path d='M12 9v4'/><path d='M12 17h.01'/></svg>");
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&[data-severity="critical"] .ui-icon {
|
|
119
|
+
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='m15 9-6 6'/><path d='m9 9 6 6'/></svg>");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@keyframes toast-enter {
|
|
124
|
+
from {
|
|
125
|
+
opacity: 0;
|
|
126
|
+
translate: var(--size-4) 0;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
to {
|
|
130
|
+
opacity: 1;
|
|
131
|
+
translate: 0 0;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* Identity keyframe — only purpose is to delay the exit animation by the
|
|
137
136
|
author-defined duration. */
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
137
|
+
@keyframes toast-hold {
|
|
138
|
+
from {
|
|
139
|
+
opacity: 1;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
to {
|
|
143
|
+
opacity: 1;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@keyframes toast-exit {
|
|
148
|
+
from {
|
|
149
|
+
opacity: 1;
|
|
150
|
+
scale: 1;
|
|
151
|
+
translate: 0 0;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
to {
|
|
155
|
+
opacity: 0;
|
|
156
|
+
scale: 0.9;
|
|
157
|
+
translate: 0 var(--size-4);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
161
160
|
}
|
|
@@ -2,86 +2,90 @@
|
|
|
2
2
|
* Somehow handle when a group gets too wide for its container. Should it be handled?
|
|
3
3
|
*/
|
|
4
4
|
@layer components.root {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
:where(.ui-toggle-button) {
|
|
6
|
+
--_button-bg-color: transparent;
|
|
7
|
+
--_size: var(--field-size);
|
|
8
|
+
--_svg-size: var(--size-4);
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
align-items: center;
|
|
11
|
+
background-color: var(--_button-bg-color);
|
|
12
|
+
block-size: var(--_size);
|
|
13
|
+
border: 1px solid var(--border-color);
|
|
14
|
+
border-radius: var(--button-border-radius);
|
|
15
|
+
color: var(--text-primary);
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
display: inline-flex;
|
|
18
|
+
flex: auto;
|
|
19
|
+
gap: var(--size-2);
|
|
20
|
+
inline-size: fit-content;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
min-inline-size: var(--_size);
|
|
23
|
+
outline-offset: calc(-1 * var(--size-2));
|
|
24
|
+
padding: 0 var(--size-2);
|
|
25
|
+
position: relative;
|
|
26
|
+
user-select: none;
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
input[type="checkbox"],
|
|
29
|
+
input[type="radio"] {
|
|
30
|
+
/* utils.css > .ui-sr-only */
|
|
31
|
+
block-size: 1px;
|
|
32
|
+
clip-path: inset(50%);
|
|
33
|
+
inline-size: 1px;
|
|
34
|
+
overflow: hidden;
|
|
35
|
+
position: absolute;
|
|
36
|
+
white-space: nowrap;
|
|
37
|
+
}
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
/* Element states */
|
|
40
|
+
@media (pointer: fine) {
|
|
41
|
+
&:hover:not(.ui-disabled) {
|
|
42
|
+
--_button-bg-color: light-dark(
|
|
43
|
+
oklch(0% 0 0 / 0.04),
|
|
44
|
+
oklch(100% 0 0 / 0.08)
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
&:has(input:focus-visible) {
|
|
50
|
+
--focus-ring-color: var(--text-muted);
|
|
51
|
+
--focus-ring-offset: -6px;
|
|
52
|
+
outline: var(--focus-ring-width) var(--focus-ring-style)
|
|
53
|
+
var(--focus-ring-color);
|
|
54
|
+
outline-offset: var(--focus-ring-offset);
|
|
55
|
+
}
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
/* Disabled */
|
|
58
|
+
&.ui-disabled {
|
|
59
|
+
border-color: color-mix(in oklch, var(--border-color) 50%, transparent);
|
|
60
|
+
color: color-mix(in oklch, var(--text-primary) 30%, transparent);
|
|
61
|
+
cursor: not-allowed;
|
|
62
|
+
}
|
|
59
63
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
/* svgs */
|
|
65
|
+
svg {
|
|
66
|
+
block-size: var(--_svg-size);
|
|
67
|
+
flex-shrink: 0;
|
|
68
|
+
inline-size: var(--_svg-size);
|
|
69
|
+
}
|
|
66
70
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
/* Selected */
|
|
72
|
+
&:has(:where(input[type="checkbox"], input[type="radio"]):checked) {
|
|
73
|
+
--_button-bg-color: oklch(from var(--primary) l c h / 25%);
|
|
70
74
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
@media (pointer: fine) {
|
|
76
|
+
&:hover {
|
|
77
|
+
--_button-bg-color: oklch(from var(--primary) l c h / 35%);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
77
81
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
+
/* Sizes */
|
|
83
|
+
&.ui-small {
|
|
84
|
+
--_size: var(--field-size-small);
|
|
85
|
+
}
|
|
82
86
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
&.ui-x-small {
|
|
88
|
+
--_size: var(--field-size-x-small);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
87
91
|
}
|