@oscarpalmer/oui 0.9.0 → 0.11.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.
package/src/css/form.scss CHANGED
@@ -1,5 +1,66 @@
1
+ /*! https://github.com/oscarpalmer/oui */
2
+
1
3
  @use 'mixins.scss' as mixins;
2
4
 
5
+ @mixin focus() {
6
+ --oui-border-value: var(--oui-blue-6);
7
+ --oui-foreground-value: inherit;
8
+ --oui-outline-percentage: 75%;
9
+ --oui-outline-value: var(--oui-blue-6);
10
+ }
11
+
12
+ @mixin hover() {
13
+ --oui-border-value: var(--oui-blue-4);
14
+ --oui-foreground-percentage: 50%;
15
+ --oui-foreground-value: inherit;
16
+ --oui-outline-percentage: 90%;
17
+ --oui-outline-value: var(--oui-blue-6);
18
+ }
19
+
20
+ @mixin input {
21
+ --oui-background-percentage: 0%;
22
+ --oui-foreground-percentage: 0%;
23
+
24
+ @include outlined;
25
+
26
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
27
+ border: 1px solid var(--oui-border-value, var(--oui-gray-3));
28
+ box-shadow: inset 0 1px 2px 0 color-mix(in oklab, var(--oui-gray-10), transparent 75%);
29
+ color: color-mix(
30
+ in oklab,
31
+ var(--oui-foreground-value, inherit),
32
+ transparent var(--oui-foreground-percentage)
33
+ );
34
+ }
35
+
36
+ @mixin invalid() {
37
+ --oui-border-value: var(--oui-red-6);
38
+ --oui-foreground-value: var(--oui-red-9);
39
+ --oui-outline-percentage: 75%;
40
+ --oui-outline-value: var(--oui-red-6);
41
+ }
42
+
43
+ @mixin outlined {
44
+ --oui-outline-percentage: 100%;
45
+ --oui-outline-value: var(--oui-blue-6);
46
+
47
+ outline: 4px solid
48
+ color-mix(
49
+ in oklab,
50
+ var(--oui-outline-value),
51
+ transparent var(--oui-outline-percentage)
52
+ );
53
+ outline-offset: 0;
54
+ transition: 0.125s ease-in-out;
55
+ }
56
+
57
+ @mixin valid() {
58
+ --oui-border-value: var(--oui-green-6);
59
+ --oui-foreground-value: var(--oui-green-9);
60
+ --oui-outline-percentage: 75%;
61
+ --oui-outline-value: var(--oui-green-6);
62
+ }
63
+
3
64
  :where(.oui-fieldset) {
4
65
  padding: 1em;
5
66
  border: 1px solid var(--oui-gray-3);
@@ -7,86 +68,267 @@
7
68
  }
8
69
 
9
70
  .oui-input {
10
- :where(&) {
71
+ :where(&:not([type='range' i])) {
72
+ --oui-background-value: var(--oui-absolute);
73
+
74
+ @include input;
75
+
11
76
  padding: 0.5em 0.75em;
12
- outline: 3px solid transparent;
13
- outline-offset: 0;
14
- background-color: var(--oui-absolute);
15
- border-color: var(--oui-gray-3);
16
77
  border-radius: 0.25em;
17
- box-shadow: inset 0 1px 2px 0
18
- color-mix(in oklab, var(--oui-gray-10), transparent 80%);
19
- transition: 0.125s ease-in-out;
20
78
  }
21
79
 
22
- :where(&:not(textarea)) {
80
+ :where(&:not([type='range' i], select[multiple], textarea)) {
23
81
  overflow: hidden;
24
82
  white-space: nowrap;
25
83
  text-overflow: ellipsis;
26
84
  }
27
85
 
28
- :where(
29
- &:is(
30
- [type='date'],
31
- [type='datetime-local'],
32
- [type='month'],
33
- [type='number'],
34
- [type='tel'],
35
- [type='time'],
36
- [type='url'],
37
- [type='week']
38
- )
39
- ) {
86
+ :where(&:is([list])) {
87
+ &::-webkit-calendar-picker-indicator {
88
+ display: none !important;
89
+ }
90
+ }
91
+
92
+ :where(&:is([type='color' i])) {
93
+ padding: 0;
94
+ }
95
+
96
+ :where(&:is([type='date' i],
97
+ [type='datetime-local' i],
98
+ [type='month' i],
99
+ [type='number' i],
100
+ [type='tel' i],
101
+ [type='time' i],
102
+ [type='url' i],
103
+ [type='week' i])) {
40
104
  font-variant-numeric: tabular-nums;
41
105
  }
42
106
 
43
- :where(
44
- &.oui-validateable:not([disabled], [aria-disabled='true']):is(
45
- :user-invalid,
46
- [aria-invalid='true']
47
- )
48
- ) {
49
- outline-color: color-mix(in oklab, var(--oui-red-6), transparent 60%);
50
- border-color: var(--oui-red-6);
107
+ :where(&:is([type='file' i])) {
108
+ padding-left: .5em;
109
+
110
+ &::file-selector-button {
111
+ @include mixins.button;
112
+
113
+ --oui-outline-value: var(--oui-grey-6);
114
+
115
+ margin: 0 .75em 0 0;
116
+ font-size: .75em;
117
+ cursor: pointer;
118
+ }
51
119
  }
52
120
 
53
- :where(
54
- &.oui-validateable:not([disabled], [aria-disabled='true']):is(
55
- :user-valid,
56
- [aria-invalid='false']
57
- )
58
- ) {
59
- outline-color: color-mix(in oklab, var(--oui-green-6), transparent 60%);
60
- border-color: var(--oui-green-6);
121
+ :where(&:is([type='range' i])) {
122
+ appearance: none;
123
+ outline: none;
124
+
125
+ &::range-track {
126
+ @include input;
127
+
128
+ appearance: none;
129
+ width: 100%;
130
+ height: 0.75em;
131
+ border-radius: .75em;
132
+ position: relative;
133
+ }
134
+
135
+ &::range-thumb {
136
+ --oui-background-percentage: 0%;
137
+ --oui-background-value: var(--oui-blue-6);
138
+
139
+ @include outlined;
140
+
141
+ appearance: none;
142
+ width: 1.25em;
143
+ height: 1.25em;
144
+ background-color:
145
+ color-mix(
146
+ in oklab,
147
+ var(--oui-background-value),
148
+ transparent var(--oui-background-percentage)
149
+ );
150
+ border: 2px solid var(--oui-absolute);
151
+ border-radius: 1.25em;
152
+ box-shadow: 0 1px 2px 2px rgba(0, 0, 0, 0.125);
153
+ cursor: pointer;
154
+ }
155
+
156
+ &::-webkit-slider-thumb {
157
+ position: relative;
158
+ top: 50%;
159
+ transform: translateY(-50%);
160
+ }
161
+ }
162
+
163
+ :where(&.oui-validatable:not([disabled], [readonly], [aria-disabled='true' i]):is(:user-invalid, [aria-invalid='true' i])) {
164
+ @include invalid;
165
+
166
+ &::file-selector-button {
167
+ --oui-background-value: var(--oui-red-1);
168
+ --oui-foreground-value: var(--oui-red-8);
169
+ --oui-outline-value: var(--oui-red-6);
170
+ }
171
+
172
+ &::range-thumb {
173
+ --oui-background-value: var(--oui-red-6);
174
+ }
175
+
176
+ &::range-track {
177
+ @include invalid;
178
+ }
179
+ }
180
+
181
+ :where(&.oui-validatable:not([disabled], [readonly], [aria-disabled='true' i]):is(:user-valid, [aria-invalid='false' i])) {
182
+ @include valid;
183
+
184
+ &::file-selector-button {
185
+ --oui-background-value: var(--oui-green-1);
186
+ --oui-foreground-value: var(--oui-green-8);
187
+ --oui-outline-value: var(--oui-green-6);
188
+ }
189
+
190
+ &::range-track {
191
+ @include valid;
192
+ }
193
+
194
+ &::range-thumb {
195
+ --oui-background-value: var(--oui-green-6);
196
+ }
197
+ }
198
+
199
+ :where(&:not([disabled], [readonly], [aria-disabled="true" i])) {
200
+ &::-webkit-calendar-picker-indicator {
201
+ outline: 4px solid transparent;
202
+ outline-offset: 2px;
203
+ border-radius: 2em;
204
+ transition: .125s ease-in-out;
205
+ cursor: pointer;
206
+
207
+ @media (hover: hover) {
208
+ &:hover {
209
+ outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 75%);
210
+ }
211
+ }
212
+
213
+ &:focus {
214
+ outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 75%);
215
+ }
216
+ }
61
217
  }
62
218
 
63
- :where(&:not([disabled], [aria-disabled='true']):focus) {
64
- outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 60%);
65
- border-color: var(--oui-blue-6);
219
+ :where(&:not([disabled], [readonly], [aria-disabled="true" i]):focus),
220
+ :where(&:not([disabled], [readonly], [aria-disabled="true" i]):focus-within) {
221
+ @include focus;
222
+
223
+ &::file-selector-button {
224
+ --oui-background-value: var(--oui-blue-1);
225
+ --oui-foreground-value: var(--oui-blue-8);
226
+ --oui-outline-value: var(--oui-blue-6);
227
+ }
228
+
229
+ &::range-thumb,
230
+ &::range-track {
231
+ @include focus;
232
+ }
233
+
234
+ &::range-thumb {
235
+ --oui-background-value: var(--oui-blue-6);
236
+
237
+ box-shadow: 0 1px 2px 2px rgba(0, 0, 0, 0.25);
238
+ }
66
239
  }
67
240
 
68
241
  @media (hover: hover) {
69
- :where(&:not([disabled], [aria-disabled='true']):hover) {
70
- outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 80%);
71
- border-color: var(--oui-blue-6);
242
+ :where(&:not([disabled], [aria-disabled='true' i]):hover) {
243
+ @include hover;
244
+
245
+ &::file-selector-button {
246
+ --oui-background-value: var(--oui-blue-1);
247
+ --oui-foreground-value: var(--oui-blue-8);
248
+ --oui-outline-value: var(--oui-blue-6);
249
+ }
250
+
251
+ &::range-thumb {
252
+ --oui-background-value: var(--oui-blue-5);
253
+ }
254
+
255
+ &::range-track {
256
+ @include hover;
257
+ }
72
258
  }
73
259
  }
74
260
 
75
- :where(&[readonly]) {
76
- color: color-mix(in oklab, currentColor, transparent 12.5%);
261
+ :where(&[disabled], &[readonly], &[aria-disabled='true' i]) {
262
+ --oui-foreground-percentage: 25%;
263
+
264
+ font-style: italic;
77
265
  }
78
266
 
79
- :where(&[disabled], &[aria-disabled='true']) {
80
- background-color: color-mix(in oklab, var(--oui-gray-0), transparent 50%);
81
- color: color-mix(in oklab, currentColor, transparent 25%);
267
+ :where(&:is([disabled], [readonly], [aria-disabled='true' i]):focus) {
268
+ --oui-outline-percentage: 75%;
269
+ }
270
+
271
+ :where(&[disabled], &[aria-disabled='true' i]) {
272
+ --oui-background-percentage: 50%;
273
+
274
+ &::file-selector-button,
275
+ &::range-thumb {
276
+ --oui-background-value: var(--oui-gray-1);
277
+
278
+ cursor: default;
279
+ }
280
+
281
+ &::range-track {
282
+ --oui-background-percentage: 50%;
283
+ --oui-background-value: var(--oui-gray-0);
284
+ }
285
+
286
+ &::-webkit-calendar-picker-indicator {
287
+ color: red;
288
+ stroke: red;
289
+ }
82
290
  }
83
291
  }
84
292
 
85
- :where(select.oui-input) {
293
+ :where(select.oui-input, .oui-input[list]) {
86
294
  padding-right: 2em;
87
295
  background-position: right 0.5em center;
88
296
  }
89
297
 
298
+ select.oui-input:is([multiple]) {
299
+ :where(&) {
300
+ --oui-off: attr(oui-off);
301
+ --oui-on: attr(oui-on, '\2713');
302
+
303
+ padding: 0;
304
+ }
305
+
306
+ :where(& > option) {
307
+ padding: 0.5em 0.75em;
308
+ }
309
+
310
+ :where(&[oui-off] > option) {
311
+ &::before {
312
+ content: var(--oui-off);
313
+ margin: 0 0.75em 0 0;
314
+ }
315
+ }
316
+
317
+ :where(& > option:nth-of-type(2n)) {
318
+ background-color: color-mix(in oklab, var(--oui-blue-0), transparent 33%);
319
+ }
320
+
321
+ :where(& > option:checked) {
322
+ background-color: var(--oui-blue-2);
323
+ color: var(--oui-blue-9);
324
+
325
+ &::before {
326
+ content: var(--oui-on);
327
+ margin: 0 .75em 0 0;
328
+ }
329
+ }
330
+ }
331
+
90
332
  :where(textarea.oui-input) {
91
333
  min-height: 4em;
92
334
  resize: vertical;
@@ -100,6 +342,13 @@
100
342
 
101
343
  :where(.oui-label) {
102
344
  cursor: pointer;
345
+ transition: .125s ease-in-out;
346
+
347
+ @media (hover: hover) {
348
+ :where(&[for]:hover) {
349
+ color: var(--oui-blue-8);
350
+ }
351
+ }
103
352
  }
104
353
 
105
354
  :where(.oui-legend) {
@@ -109,11 +358,22 @@
109
358
  }
110
359
 
111
360
  :where(.oui-switch, .oui-toggle) {
361
+ --oui-background-percentage: 50%;
362
+ --oui-background-value: var(--oui-gray-1);
363
+ --oui-border-value: var(--oui-gray-3);
364
+ --oui-foreground-percentage: 0%;
365
+ --oui-foreground-value: var(--oui-gray-8);
366
+ --oui-outline-percentage: 100%;
367
+ --oui-outline-value: var(--oui-blue-6);
368
+ --oui-shadow-percentage: 85%;
369
+ --oui-shadow-value: var(--oui-gray-10);
370
+
112
371
  position: relative;
113
372
  cursor: pointer;
114
373
 
115
374
  &::before,
116
375
  &::after {
376
+ display: inline-block;
117
377
  font-family: system-ui, sans-serif;
118
378
  position: absolute;
119
379
  transition: 0.125s ease-in-out;
@@ -121,8 +381,19 @@
121
381
  }
122
382
 
123
383
  &::before {
124
- outline: 3px solid transparent;
384
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
385
+ box-shadow: inset 0 1px 2px 0 color-mix(in oklab, var(--oui-shadow-value), transparent var(--oui-shadow-percentage));
386
+ outline: 4px solid color-mix(
387
+ in oklab,
388
+ var(--oui-outline-value),
389
+ transparent var(--oui-outline-percentage)
390
+ );
125
391
  outline-offset: 0;
392
+ border: 1px solid var(--oui-border-value);
393
+ }
394
+
395
+ &::after {
396
+ color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
126
397
  }
127
398
  }
128
399
 
@@ -134,21 +405,17 @@
134
405
  content: '';
135
406
  width: 2.5em;
136
407
  height: 1.5em;
137
- display: inline-block;
138
- background-color: var(--oui-gray-0);
139
- border: 1px solid var(--oui-gray-3);
140
408
  border-radius: 3em;
141
409
  right: 0;
142
410
  }
143
411
 
144
412
  &::after {
145
- content: '\2715';
413
+ content: attr(oui-off, '\2715');
146
414
  width: 1.5em;
147
415
  height: 1.5em;
148
416
  background-color: var(--oui-absolute);
149
417
  border-radius: 1.5em;
150
418
  box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.125);
151
- color: var(--oui-gray-8);
152
419
  font-size: 0.75em;
153
420
  font-weight: bold;
154
421
  line-height: 1.5em;
@@ -159,10 +426,12 @@
159
426
  }
160
427
 
161
428
  :where(&:has(input:checked)) {
429
+ --oui-foreground-percentage: 0%;
430
+ --oui-foreground-value: var(--oui-blue-8);
431
+
162
432
  &::after {
163
- content: '\2713';
433
+ content: attr(oui-on, '\2713');
164
434
  box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.25);
165
- color: var(--oui-blue-8);
166
435
  right: 0.25em;
167
436
  }
168
437
  }
@@ -170,15 +439,15 @@
170
439
 
171
440
  .oui-toggle {
172
441
  :where(&) {
442
+ --oui-background-percentage: 100%;
443
+ --oui-border-value: var(--oui-gray-4);
444
+
173
445
  padding: 0 0 0 2em;
174
446
 
175
447
  &::before {
176
448
  content: '';
177
449
  width: 1.5em;
178
450
  height: 1.5em;
179
- display: inline-block;
180
- background-color: transparent;
181
- border: 1px solid var(--oui-gray-4);
182
451
  inset: 0 auto auto 0;
183
452
  }
184
453
 
@@ -187,16 +456,18 @@
187
456
  }
188
457
  }
189
458
 
190
- :where(&:has(input[type='checkbox'])) {
459
+ :where(&:has(input[type='checkbox' i])) {
460
+ --oui-foreground-percentage: 0%;
461
+ --oui-foreground-value: white;
462
+
191
463
  &::before {
192
464
  border-radius: 0.25em;
193
465
  }
194
466
 
195
467
  &::after {
196
- content: '\2713';
468
+ content: attr(oui-on, '\2713');
197
469
  width: 1.5em;
198
470
  height: 1.5em;
199
- color: white;
200
471
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
201
472
  font-weight: bold;
202
473
  line-height: 1.5em;
@@ -205,7 +476,9 @@
205
476
  }
206
477
  }
207
478
 
208
- :where(&:has(input[type='radio'])) {
479
+ :where(&:has(input[type='radio' i])) {
480
+ position: relative;
481
+
209
482
  &::before,
210
483
  &::after {
211
484
  border-radius: 50%;
@@ -231,52 +504,53 @@
231
504
  .oui-switch,
232
505
  .oui-toggle {
233
506
  :where(&:has(input:checked)) {
234
- &::before {
235
- background-color: var(--oui-blue-6);
236
- border-color: transparent;
237
- }
507
+ --oui-background-percentage: 25%;
508
+ --oui-background-value: var(--oui-blue-6);
509
+ --oui-border-value: var(--oui-blue-6);
510
+ --oui-shadow-percentage: 50%;
511
+ --oui-shadow-value: var(--oui-blue-8);
238
512
  }
239
513
 
240
- :where(&:has(input:not([disabled], [aria-disabled='true'])):focus-within) {
514
+ :where(&:focus-within) {
515
+ --oui-border-value: var(--oui-blue-6);
516
+ --oui-outline-percentage: 75%;
517
+
241
518
  color: var(--oui-blue-8);
519
+ }
242
520
 
243
- &::before {
244
- outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 60%);
245
- border-color: var(--oui-absolute);
246
- }
521
+ :where(&:has(input:not([disabled], [aria-disabled='true' i])):focus-within) {
522
+ --oui-background-percentage: 50%;
247
523
  }
248
524
 
249
525
  @media (hover: hover) {
250
- :where(&:has(input:not([disabled], [aria-disabled='true'])):hover) {
251
- color: var(--oui-blue-8);
526
+ :where(&:has(input:not([disabled], [aria-disabled='true' i])):hover) {
527
+ --oui-border-value: var(--oui-blue-4);
528
+ --oui-outline-percentage: 90%;
529
+ --oui-outline-value: var(--oui-blue-6);
252
530
 
253
- &::before {
254
- outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 80%);
255
- border-color: var(--oui-blue-6);
256
- }
531
+ color: var(--oui-blue-8);
257
532
  }
258
533
 
259
- :where(
260
- &:has(input:not([disabled], [aria-disabled='true']):is(:checked)):hover
261
- )::before {
262
- background-color: color-mix(in oklab, var(--oui-blue-6), transparent 40%);
534
+ :where(&:has(input:not([disabled], [aria-disabled='true' i]):is(:checked)):hover) {
535
+ --oui-background-percentage: 50%;
536
+ --oui-background-value: var(--oui-blue-6);
263
537
  }
264
538
  }
265
539
 
266
- :where(&:has(input[disabled], input[aria-disabled='true'])) {
267
- cursor: default;
268
-
269
- & {
270
- color: color-mix(in oklab, currentColor, transparent 25%);
271
- }
540
+ :where(&:has(input[disabled], input[aria-disabled='true' i])) {
541
+ --oui-background-percentage: 50%;
542
+ --oui-background-value: var(--oui-gray-0);
543
+ --oui-border-value: var(--oui-gray-3);
544
+ --oui-foreground-percentage: 25%;
545
+ --oui-foreground-value: currentColor;
272
546
 
273
- &::after {
274
- color: color-mix(in oklab, currentColor, transparent);
275
- }
547
+ color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
548
+ font-style: italic;
549
+ cursor: default;
276
550
 
551
+ &::after,
277
552
  &::before {
278
- background-color: color-mix(in oklab, var(--oui-gray-0), transparent 50%);
279
- border-color: var(--oui-gray-3);
553
+ font-style: normal;
280
554
  }
281
555
 
282
556
  &::after {
@@ -1,13 +1,26 @@
1
+ /*! https://github.com/oscarpalmer/oui */
2
+
1
3
  .oui-message {
2
4
  :where(&) {
5
+ --oui-shadow-value: color-mix(
6
+ in oklch,
7
+ var(--oui-shadow, var(--oui-gray-6)),
8
+ transparent 95%
9
+ );
10
+
3
11
  padding: 1em;
4
12
  display: inline-flex;
5
13
  flex-flow: column nowrap;
6
14
  gap: 1em;
7
- background-color: var(--background, var(--oui-gray-0));
8
- border: 1px solid var(--border, var(--oui-gray-2));
9
- border-radius: .5em;
10
- color: var(--foreground, var(--oui-gray-8));
15
+ background-color: color-mix(
16
+ in oklab,
17
+ var(--oui-background, var(--oui-gray-0)),
18
+ transparent 25%
19
+ );
20
+ border-radius: 0.5em;
21
+ box-shadow: 0 0 0 1px var(--oui-shadow-value),
22
+ 0 1px 2px 0 var(--oui-shadow-value), 0 2px 4px 0 var(--oui-shadow-value);
23
+ color: var(--oui-foreground, var(--oui-gray-8));
11
24
  line-height: 1.25;
12
25
  }
13
26
 
@@ -19,7 +32,7 @@
19
32
  :where(& hr) {
20
33
  height: 1px;
21
34
  margin: 0 -1em;
22
- background-color: var(--border, var(--oui-gray-2));
35
+ background-color: var(--oui-shadow-value, var(--oui-gray-2));
23
36
  border: none;
24
37
  }
25
38
 
@@ -30,38 +43,38 @@
30
43
  }
31
44
 
32
45
  :where(&-blue, &-info) {
33
- --background: var(--oui-blue-0);
34
- --border: var(--oui-blue-2);
35
- --foreground: var(--oui-blue-8);
46
+ --oui-background: var(--oui-blue-0);
47
+ --oui-foreground: var(--oui-blue-8);
48
+ --oui-shadow: var(--oui-blue-6);
36
49
  }
37
50
 
38
51
  :where(&-green, &-success) {
39
- --background: var(--oui-green-0);
40
- --border: var(--oui-green-2);
41
- --foreground: var(--oui-green-8);
52
+ --oui-background: var(--oui-green-0);
53
+ --oui-foreground: var(--oui-green-8);
54
+ --oui-shadow: var(--oui-green-6);
42
55
  }
43
56
 
44
57
  :where(&-orange, &-warning) {
45
- --background: var(--oui-orange-0);
46
- --border: var(--oui-orange-2);
47
- --foreground: var(--oui-orange-8);
58
+ --oui-background: var(--oui-orange-0);
59
+ --oui-foreground: var(--oui-orange-8);
60
+ --oui-shadow: var(--oui-orange-6);
48
61
  }
49
62
 
50
63
  :where(&-purple, &-special) {
51
- --background: var(--oui-purple-0);
52
- --border: var(--oui-purple-2);
53
- --foreground: var(--oui-purple-8);
64
+ --oui-background: var(--oui-purple-0);
65
+ --oui-foreground: var(--oui-purple-8);
66
+ --oui-shadow: var(--oui-purple-6);
54
67
  }
55
68
 
56
69
  :where(&-red, &-error) {
57
- --background: var(--oui-red-0);
58
- --border: var(--oui-red-2);
59
- --foreground: var(--oui-red-8);
70
+ --oui-background: var(--oui-red-0);
71
+ --oui-foreground: var(--oui-red-8);
72
+ --oui-shadow: var(--oui-red-6);
60
73
  }
61
74
 
62
75
  :where(&-yellow, &-notice) {
63
- --background: var(--oui-yellow-0);
64
- --border: var(--oui-yellow-2);
65
- --foreground: var(--oui-yellow-8);
76
+ --oui-background: var(--oui-yellow-0);
77
+ --oui-foreground: var(--oui-yellow-8);
78
+ --oui-shadow: var(--oui-yellow-6);
66
79
  }
67
80
  }