@oscarpalmer/oui 0.36.0 → 0.37.0

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.
Files changed (51) hide show
  1. package/dist/css/badge.css +18 -15
  2. package/dist/css/button.css +35 -31
  3. package/dist/css/color.css +20 -20
  4. package/dist/css/combobox.css +133 -34
  5. package/dist/css/content.css +29 -10
  6. package/dist/css/floatable.css +10 -10
  7. package/dist/css/form.css +393 -129
  8. package/dist/css/listbox.css +41 -17
  9. package/dist/css/message.css +13 -10
  10. package/dist/css/reset.css +29 -88
  11. package/dist/css/splitter.css +2 -2
  12. package/dist/css/tabs.css +103 -0
  13. package/dist/js/focus-trap/focus-trap.embedded.mjs +6 -10
  14. package/dist/js/index.d.mts +2 -1
  15. package/dist/js/index.mjs +2 -1
  16. package/dist/js/internal/draggable.mjs +16 -22
  17. package/dist/js/internal/listbox/listbox.form.mjs +1 -1
  18. package/dist/js/internal/listbox/listbox.state.mjs +1 -1
  19. package/dist/js/internal/navigable.d.mts +11 -5
  20. package/dist/js/internal/navigable.mjs +44 -18
  21. package/dist/js/movable/movable.embedded.mjs +3 -6
  22. package/dist/js/resizable/resizable.embedded.mjs +16 -26
  23. package/dist/js/splitter.mjs +15 -12
  24. package/dist/js/tabs.d.mts +25 -0
  25. package/dist/js/tabs.mjs +240 -0
  26. package/dist/js/tooltip.mjs +13 -12
  27. package/package.json +1 -1
  28. package/src/css/badge.scss +6 -18
  29. package/src/css/button.scss +6 -45
  30. package/src/css/color.scss +20 -20
  31. package/src/css/combobox.scss +20 -51
  32. package/src/css/content.scss +30 -3
  33. package/src/css/floatable.scss +17 -17
  34. package/src/css/form.scss +84 -72
  35. package/src/css/listbox.scss +2 -31
  36. package/src/css/message.scss +13 -28
  37. package/src/css/mixins.scss +253 -28
  38. package/src/css/reset.scss +37 -86
  39. package/src/css/splitter.scss +2 -2
  40. package/src/css/tabs.scss +85 -0
  41. package/src/js/focus-trap/focus-trap.embedded.ts +11 -19
  42. package/src/js/index.ts +1 -0
  43. package/src/js/internal/draggable.ts +29 -33
  44. package/src/js/internal/listbox/listbox.form.ts +1 -1
  45. package/src/js/internal/listbox/listbox.state.ts +1 -1
  46. package/src/js/internal/navigable.ts +80 -23
  47. package/src/js/movable/movable.embedded.ts +11 -13
  48. package/src/js/resizable/resizable.embedded.ts +25 -39
  49. package/src/js/splitter.ts +21 -18
  50. package/src/js/tabs.ts +447 -0
  51. package/src/js/tooltip.ts +20 -17
package/dist/css/form.css CHANGED
@@ -11,19 +11,69 @@
11
11
  --oui-background-value: var(--oui-absolute);
12
12
  }
13
13
  :where(.oui-input:not([type=range i])) {
14
- --oui-background-percentage: 0%;
15
- --oui-foreground-percentage: 0%;
16
14
  --oui-outline-percentage: 100%;
17
15
  --oui-outline-value: var(--oui-blue-6);
18
16
  outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
19
17
  outline-offset: 0;
20
- transition: 0.125s ease-in-out;
18
+ --oui-background-percentage: 0%;
19
+ --oui-foreground-percentage: 0%;
21
20
  align-content: center;
22
21
  background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
23
22
  border: 1px solid var(--oui-border-value, var(--oui-gray-3));
24
23
  box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
25
24
  color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
26
25
  -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
26
+ transition: 0.125s ease-in-out;
27
+ transition-property: background, outline, border, box-shadow, color;
28
+ }
29
+ :where(.oui-input:not([type=range i])).oui-validate:not([disabled],
30
+ [readonly],
31
+ [aria-disabled=true i],
32
+ [aria-readonly=true i],
33
+ :focus-visible,
34
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
35
+ --oui-border-value: var(--oui-red-5);
36
+ --oui-foreground-value: var(--oui-red-9);
37
+ --oui-outline-percentage: 82.5%;
38
+ --oui-outline-value: var(--oui-red-6);
39
+ }
40
+ :where(.oui-input:not([type=range i])).oui-validate:not([disabled],
41
+ [readonly],
42
+ [aria-disabled=true i],
43
+ [aria-readonly=true i],
44
+ :focus-visible,
45
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
46
+ --oui-border-value: var(--oui-green-5);
47
+ --oui-foreground-value: var(--oui-green-9);
48
+ --oui-outline-percentage: 82.5%;
49
+ --oui-outline-value: var(--oui-green-6);
50
+ }
51
+ :where(.oui-input:not([type=range i])):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, :where(.oui-input:not([type=range i])):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within {
52
+ --oui-border-value: var(--oui-blue-5);
53
+ --oui-foreground-value: inherit;
54
+ --oui-outline-percentage: 75%;
55
+ --oui-outline-value: var(--oui-blue-6);
56
+ }
57
+ @media (hover: hover) {
58
+ :where(.oui-input:not([type=range i])):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
59
+ --oui-border-value: var(--oui-blue-4);
60
+ --oui-foreground-percentage: 0%;
61
+ --oui-foreground-value: inherit;
62
+ --oui-outline-percentage: 90%;
63
+ --oui-outline-value: var(--oui-blue-6);
64
+ }
65
+ }
66
+ :where(.oui-input:not([type=range i])):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
67
+ --oui-foreground-percentage: 25%;
68
+ font-style: italic;
69
+ }
70
+ :where(.oui-input:not([type=range i])):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
71
+ --oui-outline-percentage: 75%;
72
+ }
73
+ :where(.oui-input:not([type=range i])):is([disabled], [aria-disabled=true i]) {
74
+ --oui-background-percentage: 50%;
75
+ }
76
+ :where(.oui-input:not([type=range i])) {
27
77
  padding: 0.5em 0.75em;
28
78
  border-radius: 0.25em;
29
79
  }
@@ -48,36 +98,80 @@
48
98
  [type=week i])) {
49
99
  font-variant-numeric: tabular-nums;
50
100
  }
101
+ :where(.oui-input:is([type=date i], [type=datetime-local i], [type=month i], [type=week i]))::-webkit-calendar-picker-indicator {
102
+ --oui-outline-percentage: 100%;
103
+ --oui-outline-value: var(--oui-blue-6);
104
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
105
+ outline-offset: 2px;
106
+ border-radius: 1em;
107
+ -webkit-transition: outline 0.125s ease-in-out;
108
+ transition: outline 0.125s ease-in-out;
109
+ cursor: pointer;
110
+ }
111
+ :where(.oui-input:is([type=date i], [type=datetime-local i], [type=month i], [type=week i]))::-webkit-calendar-picker-indicator:focus-within {
112
+ --oui-outline-percentage: 62.5%;
113
+ }
114
+ @media (hover: hover) {
115
+ :where(.oui-input:is([type=date i], [type=datetime-local i], [type=month i], [type=week i]))::-webkit-calendar-picker-indicator:hover {
116
+ --oui-outline-percentage: 85%;
117
+ }
118
+ }
51
119
  :where(.oui-input:is([type=file i])) {
52
120
  padding-left: 0.5em;
53
121
  }
54
122
  :where(.oui-input:is([type=file i]))::file-selector-button {
55
123
  --oui-background-percentage: 25%;
124
+ --oui-background-value: var(--oui-gray-2);
56
125
  --oui-foreground-percentage: 0%;
126
+ --oui-foreground-value: var(--oui-gray-8);
57
127
  --oui-outline-percentage: 100%;
58
- --oui-shadow-inset: color-mix(in oklab, white, transparent 75%);
128
+ --oui-outline-value: var(--oui-gray-6);
129
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
59
130
  --oui-shadow-percentage: 82.5%;
60
131
  --oui-shadow-value: color-mix(
61
132
  in oklab,
62
- var(--oui-outline-value, var(--oui-gray-6)),
133
+ var(--oui-outline-value),
63
134
  transparent var(--oui-shadow-percentage)
64
135
  );
65
- box-shadow: inset 0 1px 0 0 var(--oui-shadow-inset), 0 0 0 1px var(--oui-shadow-value), 0 1px 2px -0.5px var(--oui-shadow-value), 0 2px 4px -1px var(--oui-shadow-value);
136
+ box-shadow: inset 0 1px 0 0 var(--oui-shadow-inset), 0 0 0 1px var(--oui-shadow-value), 0 1px 2px -0.5px var(--oui-shadow-value), 0 2px 4px -1px var(--oui-shadow-value), 0 4px 8px -2px var(--oui-shadow-value);
66
137
  padding: 0.5em 0.75em;
67
138
  display: inline-flex;
68
139
  flex-flow: row wrap;
69
140
  gap: 0.75em;
70
141
  align-items: center;
71
142
  border-radius: 0.25em;
72
- background-color: color-mix(in oklab, var(--oui-background-value, var(--oui-gray-2)), transparent var(--oui-background-percentage));
73
- outline: 4px solid color-mix(in oklab, var(--oui-outline-value, var(--oui-gray-6)), transparent var(--oui-outline-percentage));
143
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
144
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
74
145
  border: none;
75
- color: color-mix(in oklab, var(--oui-foreground-value, var(--oui-gray-8)), transparent var(--oui-foreground-percentage));
146
+ color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
76
147
  line-height: 1.25;
77
148
  transition: 0.125s ease-in-out;
149
+ transition-property: background, outline, box-shadow, color;
150
+ }
151
+ :where(.oui-input:is([type=file i]))::file-selector-button:focus-visible {
152
+ --oui-outline-percentage: 75%;
153
+ }
154
+ @media (hover: hover) {
155
+ :where(.oui-input:is([type=file i]))::file-selector-button:not([disabled], [aria-disabled=true i]):hover {
156
+ --oui-background-percentage: 50%;
157
+ --oui-foreground-percentage: 25%;
158
+ --oui-shadow-percentage: 90%;
159
+ }
160
+ }
161
+ :where(.oui-input:is([type=file i]))::file-selector-button:not([disabled], [aria-disabled=true i]):active {
162
+ box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
163
+ }
164
+ :where(.oui-input:is([type=file i]))::file-selector-button[disabled], :where(.oui-input:is([type=file i]))::file-selector-button[aria-disabled=true i] {
165
+ --oui-background-percentage: 80%;
166
+ --oui-foreground-percentage: 25%;
167
+ --oui-shadow-percentage: 92.5%;
168
+ font-style: italic;
169
+ }
170
+ :where(.oui-input:is([type=file i]))::file-selector-button {
78
171
  --oui-background-value: var(--oui-grey-2);
79
172
  --oui-outline-value: var(--oui-grey-6);
80
173
  margin: 0 0.75em 0 0;
174
+ outline: none;
81
175
  font-size: 0.75em;
82
176
  cursor: pointer;
83
177
  }
@@ -88,19 +182,69 @@
88
182
  outline: none;
89
183
  }
90
184
  :where(.oui-input:is([type=range i]))::-moz-range-track {
91
- --oui-background-percentage: 0%;
92
- --oui-foreground-percentage: 0%;
93
185
  --oui-outline-percentage: 100%;
94
186
  --oui-outline-value: var(--oui-blue-6);
95
187
  outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
96
188
  outline-offset: 0;
97
- transition: 0.125s ease-in-out;
189
+ --oui-background-percentage: 0%;
190
+ --oui-foreground-percentage: 0%;
98
191
  align-content: center;
99
192
  background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
100
193
  border: 1px solid var(--oui-border-value, var(--oui-gray-3));
101
194
  box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
102
195
  color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
103
196
  -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
197
+ transition: 0.125s ease-in-out;
198
+ transition-property: background, outline, border, box-shadow, color;
199
+ }
200
+ :where(.oui-input:is([type=range i]))::-moz-range-track.oui-validate:not([disabled],
201
+ [readonly],
202
+ [aria-disabled=true i],
203
+ [aria-readonly=true i],
204
+ :focus-visible,
205
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
206
+ --oui-border-value: var(--oui-red-5);
207
+ --oui-foreground-value: var(--oui-red-9);
208
+ --oui-outline-percentage: 82.5%;
209
+ --oui-outline-value: var(--oui-red-6);
210
+ }
211
+ :where(.oui-input:is([type=range i]))::-moz-range-track.oui-validate:not([disabled],
212
+ [readonly],
213
+ [aria-disabled=true i],
214
+ [aria-readonly=true i],
215
+ :focus-visible,
216
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
217
+ --oui-border-value: var(--oui-green-5);
218
+ --oui-foreground-value: var(--oui-green-9);
219
+ --oui-outline-percentage: 82.5%;
220
+ --oui-outline-value: var(--oui-green-6);
221
+ }
222
+ :where(.oui-input:is([type=range i]))::-moz-range-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, :where(.oui-input:is([type=range i]))::-moz-range-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within {
223
+ --oui-border-value: var(--oui-blue-5);
224
+ --oui-foreground-value: inherit;
225
+ --oui-outline-percentage: 75%;
226
+ --oui-outline-value: var(--oui-blue-6);
227
+ }
228
+ @media (hover: hover) {
229
+ :where(.oui-input:is([type=range i]))::-moz-range-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
230
+ --oui-border-value: var(--oui-blue-4);
231
+ --oui-foreground-percentage: 0%;
232
+ --oui-foreground-value: inherit;
233
+ --oui-outline-percentage: 90%;
234
+ --oui-outline-value: var(--oui-blue-6);
235
+ }
236
+ }
237
+ :where(.oui-input:is([type=range i]))::-moz-range-track:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
238
+ --oui-foreground-percentage: 25%;
239
+ font-style: italic;
240
+ }
241
+ :where(.oui-input:is([type=range i]))::-moz-range-track:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
242
+ --oui-outline-percentage: 75%;
243
+ }
244
+ :where(.oui-input:is([type=range i]))::-moz-range-track:is([disabled], [aria-disabled=true i]) {
245
+ --oui-background-percentage: 50%;
246
+ }
247
+ :where(.oui-input:is([type=range i]))::-moz-range-track {
104
248
  -moz-appearance: none;
105
249
  appearance: none;
106
250
  width: 100%;
@@ -109,19 +253,69 @@
109
253
  position: relative;
110
254
  }
111
255
  :where(.oui-input:is([type=range i]))::-ms-track {
112
- --oui-background-percentage: 0%;
113
- --oui-foreground-percentage: 0%;
114
256
  --oui-outline-percentage: 100%;
115
257
  --oui-outline-value: var(--oui-blue-6);
116
258
  outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
117
259
  outline-offset: 0;
118
- transition: 0.125s ease-in-out;
260
+ --oui-background-percentage: 0%;
261
+ --oui-foreground-percentage: 0%;
119
262
  align-content: center;
120
263
  background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
121
264
  border: 1px solid var(--oui-border-value, var(--oui-gray-3));
122
265
  box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
123
266
  color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
124
267
  -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
268
+ transition: 0.125s ease-in-out;
269
+ transition-property: background, outline, border, box-shadow, color;
270
+ }
271
+ :where(.oui-input:is([type=range i]))::-ms-track.oui-validate:not([disabled],
272
+ [readonly],
273
+ [aria-disabled=true i],
274
+ [aria-readonly=true i],
275
+ :focus-visible,
276
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
277
+ --oui-border-value: var(--oui-red-5);
278
+ --oui-foreground-value: var(--oui-red-9);
279
+ --oui-outline-percentage: 82.5%;
280
+ --oui-outline-value: var(--oui-red-6);
281
+ }
282
+ :where(.oui-input:is([type=range i]))::-ms-track.oui-validate:not([disabled],
283
+ [readonly],
284
+ [aria-disabled=true i],
285
+ [aria-readonly=true i],
286
+ :focus-visible,
287
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
288
+ --oui-border-value: var(--oui-green-5);
289
+ --oui-foreground-value: var(--oui-green-9);
290
+ --oui-outline-percentage: 82.5%;
291
+ --oui-outline-value: var(--oui-green-6);
292
+ }
293
+ :where(.oui-input:is([type=range i]))::-ms-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, :where(.oui-input:is([type=range i]))::-ms-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within {
294
+ --oui-border-value: var(--oui-blue-5);
295
+ --oui-foreground-value: inherit;
296
+ --oui-outline-percentage: 75%;
297
+ --oui-outline-value: var(--oui-blue-6);
298
+ }
299
+ @media (hover: hover) {
300
+ :where(.oui-input:is([type=range i]))::-ms-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
301
+ --oui-border-value: var(--oui-blue-4);
302
+ --oui-foreground-percentage: 0%;
303
+ --oui-foreground-value: inherit;
304
+ --oui-outline-percentage: 90%;
305
+ --oui-outline-value: var(--oui-blue-6);
306
+ }
307
+ }
308
+ :where(.oui-input:is([type=range i]))::-ms-track:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
309
+ --oui-foreground-percentage: 25%;
310
+ font-style: italic;
311
+ }
312
+ :where(.oui-input:is([type=range i]))::-ms-track:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
313
+ --oui-outline-percentage: 75%;
314
+ }
315
+ :where(.oui-input:is([type=range i]))::-ms-track:is([disabled], [aria-disabled=true i]) {
316
+ --oui-background-percentage: 50%;
317
+ }
318
+ :where(.oui-input:is([type=range i]))::-ms-track {
125
319
  appearance: none;
126
320
  width: 100%;
127
321
  height: 0.75em;
@@ -129,19 +323,69 @@
129
323
  position: relative;
130
324
  }
131
325
  :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track {
132
- --oui-background-percentage: 0%;
133
- --oui-foreground-percentage: 0%;
134
326
  --oui-outline-percentage: 100%;
135
327
  --oui-outline-value: var(--oui-blue-6);
136
328
  outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
137
329
  outline-offset: 0;
138
- transition: 0.125s ease-in-out;
330
+ --oui-background-percentage: 0%;
331
+ --oui-foreground-percentage: 0%;
139
332
  align-content: center;
140
333
  background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
141
334
  border: 1px solid var(--oui-border-value, var(--oui-gray-3));
142
335
  box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
143
336
  color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
144
337
  -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
338
+ transition: 0.125s ease-in-out;
339
+ transition-property: background, outline, border, box-shadow, color;
340
+ }
341
+ :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track.oui-validate:not([disabled],
342
+ [readonly],
343
+ [aria-disabled=true i],
344
+ [aria-readonly=true i],
345
+ :focus-visible,
346
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
347
+ --oui-border-value: var(--oui-red-5);
348
+ --oui-foreground-value: var(--oui-red-9);
349
+ --oui-outline-percentage: 82.5%;
350
+ --oui-outline-value: var(--oui-red-6);
351
+ }
352
+ :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track.oui-validate:not([disabled],
353
+ [readonly],
354
+ [aria-disabled=true i],
355
+ [aria-readonly=true i],
356
+ :focus-visible,
357
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
358
+ --oui-border-value: var(--oui-green-5);
359
+ --oui-foreground-value: var(--oui-green-9);
360
+ --oui-outline-percentage: 82.5%;
361
+ --oui-outline-value: var(--oui-green-6);
362
+ }
363
+ :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within {
364
+ --oui-border-value: var(--oui-blue-5);
365
+ --oui-foreground-value: inherit;
366
+ --oui-outline-percentage: 75%;
367
+ --oui-outline-value: var(--oui-blue-6);
368
+ }
369
+ @media (hover: hover) {
370
+ :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
371
+ --oui-border-value: var(--oui-blue-4);
372
+ --oui-foreground-percentage: 0%;
373
+ --oui-foreground-value: inherit;
374
+ --oui-outline-percentage: 90%;
375
+ --oui-outline-value: var(--oui-blue-6);
376
+ }
377
+ }
378
+ :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
379
+ --oui-foreground-percentage: 25%;
380
+ font-style: italic;
381
+ }
382
+ :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
383
+ --oui-outline-percentage: 75%;
384
+ }
385
+ :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track:is([disabled], [aria-disabled=true i]) {
386
+ --oui-background-percentage: 50%;
387
+ }
388
+ :where(.oui-input:is([type=range i]))::-webkit-slider-runnable-track {
145
389
  -webkit-appearance: none;
146
390
  appearance: none;
147
391
  width: 100%;
@@ -156,7 +400,6 @@
156
400
  --oui-outline-value: var(--oui-blue-6);
157
401
  outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
158
402
  outline-offset: 0;
159
- transition: 0.125s ease-in-out;
160
403
  -moz-appearance: none;
161
404
  appearance: none;
162
405
  width: 1.25em;
@@ -174,7 +417,6 @@
174
417
  --oui-outline-value: var(--oui-blue-6);
175
418
  outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
176
419
  outline-offset: 0;
177
- transition: 0.125s ease-in-out;
178
420
  appearance: none;
179
421
  width: 1.25em;
180
422
  height: 1.25em;
@@ -191,7 +433,6 @@
191
433
  --oui-outline-value: var(--oui-blue-6);
192
434
  outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
193
435
  outline-offset: 0;
194
- transition: 0.125s ease-in-out;
195
436
  -webkit-appearance: none;
196
437
  appearance: none;
197
438
  width: 1.25em;
@@ -207,220 +448,241 @@
207
448
  top: 50%;
208
449
  transform: translateY(-50%);
209
450
  }
210
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
211
- [aria-invalid=true i])) {
212
- --oui-border-value: var(--oui-red-5);
213
- --oui-foreground-value: var(--oui-red-9);
214
- --oui-outline-percentage: 82.5%;
215
- --oui-outline-value: var(--oui-red-6);
216
- }
217
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
218
- [aria-invalid=true i]))::file-selector-button {
451
+ :where(.oui-input.oui-validate:not([disabled],
452
+ [readonly],
453
+ [aria-disabled=true i],
454
+ [aria-readonly=true i],
455
+ :focus-visible,
456
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]))::file-selector-button {
219
457
  --oui-background-value: var(--oui-red-2);
220
458
  --oui-foreground-value: var(--oui-red-8);
221
459
  --oui-outline-value: var(--oui-red-6);
222
460
  }
223
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
224
- [aria-invalid=true i]))::-moz-range-thumb {
461
+ :where(.oui-input.oui-validate:not([disabled],
462
+ [readonly],
463
+ [aria-disabled=true i],
464
+ [aria-readonly=true i],
465
+ :focus-visible,
466
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]))::-moz-range-thumb {
225
467
  --oui-background-value: var(--oui-red-6);
226
468
  }
227
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
228
- [aria-invalid=true i]))::-ms-thumb {
469
+ :where(.oui-input.oui-validate:not([disabled],
470
+ [readonly],
471
+ [aria-disabled=true i],
472
+ [aria-readonly=true i],
473
+ :focus-visible,
474
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]))::-ms-thumb {
229
475
  --oui-background-value: var(--oui-red-6);
230
476
  }
231
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
232
- [aria-invalid=true i]))::-webkit-slider-thumb {
477
+ :where(.oui-input.oui-validate:not([disabled],
478
+ [readonly],
479
+ [aria-disabled=true i],
480
+ [aria-readonly=true i],
481
+ :focus-visible,
482
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]))::-webkit-slider-thumb {
233
483
  --oui-background-value: var(--oui-red-6);
234
484
  }
235
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
236
- [aria-invalid=true i]))::-moz-range-track {
485
+ :where(.oui-input.oui-validate:not([disabled],
486
+ [readonly],
487
+ [aria-disabled=true i],
488
+ [aria-readonly=true i],
489
+ :focus-visible,
490
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]))::-moz-range-track {
237
491
  --oui-border-value: var(--oui-red-5);
238
492
  --oui-foreground-value: var(--oui-red-9);
239
493
  --oui-outline-percentage: 82.5%;
240
494
  --oui-outline-value: var(--oui-red-6);
241
495
  }
242
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
243
- [aria-invalid=true i]))::-ms-track {
496
+ :where(.oui-input.oui-validate:not([disabled],
497
+ [readonly],
498
+ [aria-disabled=true i],
499
+ [aria-readonly=true i],
500
+ :focus-visible,
501
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]))::-ms-track {
244
502
  --oui-border-value: var(--oui-red-5);
245
503
  --oui-foreground-value: var(--oui-red-9);
246
504
  --oui-outline-percentage: 82.5%;
247
505
  --oui-outline-value: var(--oui-red-6);
248
506
  }
249
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
250
- [aria-invalid=true i]))::-webkit-slider-runnable-track {
507
+ :where(.oui-input.oui-validate:not([disabled],
508
+ [readonly],
509
+ [aria-disabled=true i],
510
+ [aria-readonly=true i],
511
+ :focus-visible,
512
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]))::-webkit-slider-runnable-track {
251
513
  --oui-border-value: var(--oui-red-5);
252
514
  --oui-foreground-value: var(--oui-red-9);
253
515
  --oui-outline-percentage: 82.5%;
254
516
  --oui-outline-value: var(--oui-red-6);
255
517
  }
256
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-invalid:not([aria-invalid=false i]),
257
- [aria-invalid=true i])) > option:checked {
518
+ :where(.oui-input.oui-validate:not([disabled],
519
+ [readonly],
520
+ [aria-disabled=true i],
521
+ [aria-readonly=true i],
522
+ :focus-visible,
523
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i])) > option:checked {
258
524
  background-color: var(--oui-red-2);
259
525
  color: var(--oui-red-9);
260
526
  }
261
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
262
- [aria-invalid=false i])) {
263
- --oui-border-value: var(--oui-green-5);
264
- --oui-foreground-value: var(--oui-green-9);
265
- --oui-outline-percentage: 82.5%;
266
- --oui-outline-value: var(--oui-green-6);
267
- }
268
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
269
- [aria-invalid=false i]))::file-selector-button {
527
+ :where(.oui-input.oui-validate:not([disabled],
528
+ [readonly],
529
+ [aria-disabled=true i],
530
+ [aria-readonly=true i],
531
+ :focus-visible,
532
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]))::file-selector-button {
270
533
  --oui-background-value: var(--oui-green-2);
271
534
  --oui-foreground-value: var(--oui-green-8);
272
535
  --oui-outline-value: var(--oui-green-6);
273
536
  }
274
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
275
- [aria-invalid=false i]))::-moz-range-track {
537
+ :where(.oui-input.oui-validate:not([disabled],
538
+ [readonly],
539
+ [aria-disabled=true i],
540
+ [aria-readonly=true i],
541
+ :focus-visible,
542
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]))::-moz-range-track {
276
543
  --oui-border-value: var(--oui-green-5);
277
544
  --oui-foreground-value: var(--oui-green-9);
278
545
  --oui-outline-percentage: 82.5%;
279
546
  --oui-outline-value: var(--oui-green-6);
280
547
  }
281
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
282
- [aria-invalid=false i]))::-ms-track {
548
+ :where(.oui-input.oui-validate:not([disabled],
549
+ [readonly],
550
+ [aria-disabled=true i],
551
+ [aria-readonly=true i],
552
+ :focus-visible,
553
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]))::-ms-track {
283
554
  --oui-border-value: var(--oui-green-5);
284
555
  --oui-foreground-value: var(--oui-green-9);
285
556
  --oui-outline-percentage: 82.5%;
286
557
  --oui-outline-value: var(--oui-green-6);
287
558
  }
288
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
289
- [aria-invalid=false i]))::-webkit-slider-runnable-track {
559
+ :where(.oui-input.oui-validate:not([disabled],
560
+ [readonly],
561
+ [aria-disabled=true i],
562
+ [aria-readonly=true i],
563
+ :focus-visible,
564
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]))::-webkit-slider-runnable-track {
290
565
  --oui-border-value: var(--oui-green-5);
291
566
  --oui-foreground-value: var(--oui-green-9);
292
567
  --oui-outline-percentage: 82.5%;
293
568
  --oui-outline-value: var(--oui-green-6);
294
569
  }
295
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
296
- [aria-invalid=false i]))::-moz-range-thumb {
570
+ :where(.oui-input.oui-validate:not([disabled],
571
+ [readonly],
572
+ [aria-disabled=true i],
573
+ [aria-readonly=true i],
574
+ :focus-visible,
575
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]))::-moz-range-thumb {
297
576
  --oui-background-value: var(--oui-green-6);
298
577
  }
299
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
300
- [aria-invalid=false i]))::-ms-thumb {
578
+ :where(.oui-input.oui-validate:not([disabled],
579
+ [readonly],
580
+ [aria-disabled=true i],
581
+ [aria-readonly=true i],
582
+ :focus-visible,
583
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]))::-ms-thumb {
301
584
  --oui-background-value: var(--oui-green-6);
302
585
  }
303
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
304
- [aria-invalid=false i]))::-webkit-slider-thumb {
586
+ :where(.oui-input.oui-validate:not([disabled],
587
+ [readonly],
588
+ [aria-disabled=true i],
589
+ [aria-readonly=true i],
590
+ :focus-visible,
591
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]))::-webkit-slider-thumb {
305
592
  --oui-background-value: var(--oui-green-6);
306
593
  }
307
- :where(.oui-input.oui-validate:not([disabled], [readonly], [aria-disabled=true i]):is(:user-valid:not([aria-invalid=true i]),
308
- [aria-invalid=false i])) > option:checked {
594
+ :where(.oui-input.oui-validate:not([disabled],
595
+ [readonly],
596
+ [aria-disabled=true i],
597
+ [aria-readonly=true i],
598
+ :focus-visible,
599
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i])) > option:checked {
309
600
  background-color: var(--oui-green-2);
310
601
  color: var(--oui-green-9);
311
602
  }
312
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]))::-webkit-calendar-picker-indicator {
313
- outline: 4px solid transparent;
314
- outline-offset: 2px;
315
- border-radius: 2em;
316
- -webkit-transition: 0.125s ease-in-out;
317
- transition: 0.125s ease-in-out;
318
- cursor: pointer;
319
- }
320
- @media (hover: hover) {
321
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]))::-webkit-calendar-picker-indicator:hover {
322
- outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 75%);
323
- }
324
- }
325
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]))::-webkit-calendar-picker-indicator:focus {
326
- outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 75%);
327
- }
328
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus), :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within) {
329
- --oui-border-value: var(--oui-blue-5);
330
- --oui-foreground-value: inherit;
331
- --oui-outline-percentage: 75%;
332
- --oui-outline-value: var(--oui-blue-6);
333
- }
334
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::file-selector-button, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::file-selector-button {
603
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::file-selector-button {
335
604
  --oui-background-value: var(--oui-blue-2);
336
605
  --oui-foreground-value: var(--oui-blue-8);
337
606
  --oui-outline-value: var(--oui-blue-6);
338
607
  }
339
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-moz-range-thumb, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-moz-range-thumb {
608
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-moz-range-thumb {
340
609
  --oui-border-value: var(--oui-blue-5);
341
610
  --oui-foreground-value: inherit;
342
611
  --oui-outline-percentage: 75%;
343
612
  --oui-outline-value: var(--oui-blue-6);
344
613
  }
345
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-ms-thumb, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-ms-thumb {
614
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-ms-thumb {
346
615
  --oui-border-value: var(--oui-blue-5);
347
616
  --oui-foreground-value: inherit;
348
617
  --oui-outline-percentage: 75%;
349
618
  --oui-outline-value: var(--oui-blue-6);
350
619
  }
351
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-webkit-slider-thumb, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-webkit-slider-thumb {
620
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-webkit-slider-thumb {
352
621
  --oui-border-value: var(--oui-blue-5);
353
622
  --oui-foreground-value: inherit;
354
623
  --oui-outline-percentage: 75%;
355
624
  --oui-outline-value: var(--oui-blue-6);
356
625
  }
357
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-moz-range-track, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-moz-range-track {
626
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-moz-range-track {
358
627
  --oui-border-value: var(--oui-blue-5);
359
628
  --oui-foreground-value: inherit;
360
629
  --oui-outline-percentage: 75%;
361
630
  --oui-outline-value: var(--oui-blue-6);
362
631
  }
363
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-ms-track, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-ms-track {
632
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-ms-track {
364
633
  --oui-border-value: var(--oui-blue-5);
365
634
  --oui-foreground-value: inherit;
366
635
  --oui-outline-percentage: 75%;
367
636
  --oui-outline-value: var(--oui-blue-6);
368
637
  }
369
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-webkit-slider-runnable-track, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-webkit-slider-runnable-track {
638
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-webkit-slider-runnable-track {
370
639
  --oui-border-value: var(--oui-blue-5);
371
640
  --oui-foreground-value: inherit;
372
641
  --oui-outline-percentage: 75%;
373
642
  --oui-outline-value: var(--oui-blue-6);
374
643
  }
375
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-moz-range-thumb, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-moz-range-thumb {
644
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-moz-range-thumb {
376
645
  --oui-background-value: var(--oui-blue-6);
377
646
  box-shadow: 0 1px 2px 2px rgba(0, 0, 0, 0.25);
378
647
  }
379
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-ms-thumb, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-ms-thumb {
648
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-ms-thumb {
380
649
  --oui-background-value: var(--oui-blue-6);
381
650
  box-shadow: 0 1px 2px 2px rgba(0, 0, 0, 0.25);
382
651
  }
383
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus)::-webkit-slider-thumb, :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):focus-within)::-webkit-slider-thumb {
652
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, .oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within)::-webkit-slider-thumb {
384
653
  --oui-background-value: var(--oui-blue-6);
385
654
  box-shadow: 0 1px 2px 2px rgba(0, 0, 0, 0.25);
386
655
  }
387
656
  @media (hover: hover) {
388
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):hover) {
389
- --oui-border-value: var(--oui-blue-4);
390
- --oui-foreground-percentage: 0%;
391
- --oui-foreground-value: inherit;
392
- --oui-outline-percentage: 90%;
393
- --oui-outline-value: var(--oui-blue-6);
394
- }
395
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):hover)::file-selector-button {
657
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover)::file-selector-button {
396
658
  --oui-background-value: var(--oui-blue-2);
397
659
  --oui-foreground-value: var(--oui-blue-8);
398
660
  --oui-outline-value: var(--oui-blue-6);
399
661
  }
400
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):hover)::-moz-range-thumb {
662
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover)::-moz-range-thumb {
401
663
  --oui-background-value: var(--oui-blue-5);
402
664
  }
403
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):hover)::-ms-thumb {
665
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover)::-ms-thumb {
404
666
  --oui-background-value: var(--oui-blue-5);
405
667
  }
406
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):hover)::-webkit-slider-thumb {
668
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover)::-webkit-slider-thumb {
407
669
  --oui-background-value: var(--oui-blue-5);
408
670
  }
409
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):hover)::-moz-range-track {
671
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover)::-moz-range-track {
410
672
  --oui-border-value: var(--oui-blue-4);
411
673
  --oui-foreground-percentage: 0%;
412
674
  --oui-foreground-value: inherit;
413
675
  --oui-outline-percentage: 90%;
414
676
  --oui-outline-value: var(--oui-blue-6);
415
677
  }
416
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):hover)::-ms-track {
678
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover)::-ms-track {
417
679
  --oui-border-value: var(--oui-blue-4);
418
680
  --oui-foreground-percentage: 0%;
419
681
  --oui-foreground-value: inherit;
420
682
  --oui-outline-percentage: 90%;
421
683
  --oui-outline-value: var(--oui-blue-6);
422
684
  }
423
- :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i]):hover)::-webkit-slider-runnable-track {
685
+ :where(.oui-input:not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover)::-webkit-slider-runnable-track {
424
686
  --oui-border-value: var(--oui-blue-4);
425
687
  --oui-foreground-percentage: 0%;
426
688
  --oui-foreground-value: inherit;
@@ -428,31 +690,34 @@
428
690
  --oui-outline-value: var(--oui-blue-6);
429
691
  }
430
692
  }
431
- :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i])) {
432
- --oui-foreground-percentage: 25%;
433
- font-style: italic;
693
+ :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]))::-webkit-calendar-picker-indicator:focus-within {
694
+ --oui-outline-percentage: 0%;
695
+ --oui-outline-value: var(--oui-gray-3);
696
+ }
697
+ @media (hover: hover) {
698
+ :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]))::-webkit-calendar-picker-indicator:hover {
699
+ --oui-outline-percentage: 0%;
700
+ --oui-outline-value: var(--oui-gray-3);
701
+ }
434
702
  }
435
- :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i]))::file-selector-button {
703
+ :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]))::file-selector-button {
436
704
  --oui-background-value: var(--oui-gray-1);
437
705
  cursor: default;
438
706
  }
439
- :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i]))::-moz-range-thumb {
707
+ :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]))::-moz-range-thumb {
440
708
  --oui-background-value: var(--oui-gray-2);
441
709
  cursor: default;
442
710
  }
443
- :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i]))::-ms-thumb {
711
+ :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]))::-ms-thumb {
444
712
  --oui-background-value: var(--oui-gray-2);
445
713
  cursor: default;
446
714
  }
447
- :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i]))::-webkit-slider-thumb {
715
+ :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]))::-webkit-slider-thumb {
448
716
  --oui-background-value: var(--oui-gray-2);
449
717
  cursor: default;
450
718
  }
451
- :where(.oui-input:is([disabled], [readonly], [aria-disabled=true i]):focus) {
452
- --oui-outline-percentage: 75%;
453
- }
454
- :where(.oui-input:is([disabled], [aria-disabled=true i])) {
455
- --oui-background-percentage: 50%;
719
+ :where(.oui-input:is([disabled], [aria-disabled=true i]))::-webkit-calendar-picker-indicator {
720
+ opacity: 0.5;
456
721
  }
457
722
  :where(.oui-input:is([disabled], [aria-disabled=true i]))::-moz-range-thumb {
458
723
  --oui-background-value: var(--oui-gray-1);
@@ -478,9 +743,6 @@
478
743
  --oui-background-percentage: 50%;
479
744
  --oui-background-value: var(--oui-gray-0);
480
745
  }
481
- :where(.oui-input:is([disabled], [aria-disabled=true i]))::-webkit-calendar-picker-indicator {
482
- opacity: 0.5;
483
- }
484
746
 
485
747
  :where(select.oui-input, .oui-input[list]) {
486
748
  padding-right: 2em;
@@ -520,11 +782,12 @@
520
782
  :where(.oui-label, .oui-legend) {
521
783
  font-size: 0.875rem;
522
784
  font-weight: bold;
785
+ align-self: flex-start;
523
786
  }
524
787
 
525
788
  :where(.oui-label) {
526
789
  cursor: pointer;
527
- transition: 0.125s ease-in-out;
790
+ transition: color 0.125s ease-in-out;
528
791
  }
529
792
  @media (hover: hover) {
530
793
  :where(.oui-label[for]:hover) {
@@ -556,6 +819,7 @@
556
819
  font-family: system-ui, sans-serif;
557
820
  position: absolute;
558
821
  transition: 0.125s ease-in-out;
822
+ transition-property: background, outline, border, box-shadow, color;
559
823
  pointer-events: none;
560
824
  }
561
825
  :where(.oui-switch, .oui-toggle)::before {