@oscarpalmer/oui 0.35.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 (128) 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 +134 -35
  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 +176 -0
  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/combobox/constants.combobox.d.mts +2 -2
  14. package/dist/js/combobox/constants.combobox.mjs +40 -33
  15. package/dist/js/combobox/dom.combobox.d.mts +8 -91
  16. package/dist/js/combobox/dom.combobox.mjs +204 -2
  17. package/dist/js/combobox/event.combobox.d.mts +14 -8
  18. package/dist/js/combobox/event.combobox.mjs +2 -2
  19. package/dist/js/combobox/index.d.mts +1 -1
  20. package/dist/js/combobox/index.mjs +20 -18
  21. package/dist/js/combobox/misc.combobox.d.mts +2 -2
  22. package/dist/js/combobox/misc.combobox.mjs +2 -2
  23. package/dist/js/combobox/models.combobox.d.mts +44 -2
  24. package/dist/js/combobox/state.combobox.d.mts +9 -10
  25. package/dist/js/combobox/state.combobox.mjs +2 -2
  26. package/dist/js/constants.combobox-DmRAMC64.d.mts +26 -0
  27. package/dist/js/constants.listbox-DRsXUxd3.d.mts +14 -0
  28. package/dist/js/focus-trap/focus-trap.embedded.mjs +6 -10
  29. package/dist/js/index-EfkUSals.d.mts +139 -0
  30. package/dist/js/index.d.mts +5 -2
  31. package/dist/js/index.mjs +5 -2
  32. package/dist/js/internal/attributable.mjs +4 -3
  33. package/dist/js/internal/draggable.mjs +16 -22
  34. package/dist/js/internal/listbox/listbox.constants.d.mts +11 -0
  35. package/dist/js/internal/listbox/listbox.constants.mjs +23 -0
  36. package/dist/js/internal/listbox/listbox.data.d.mts +20 -0
  37. package/dist/js/internal/listbox/listbox.data.mjs +2 -0
  38. package/dist/js/internal/listbox/listbox.dom.d.mts +66 -0
  39. package/dist/js/internal/listbox/listbox.dom.mjs +2 -0
  40. package/dist/js/internal/listbox/listbox.event.d.mts +5 -0
  41. package/dist/js/internal/listbox/listbox.event.mjs +63 -0
  42. package/dist/js/internal/listbox/listbox.form.d.mts +6 -0
  43. package/dist/js/internal/listbox/listbox.form.mjs +52 -0
  44. package/dist/js/internal/listbox/listbox.misc.d.mts +12 -0
  45. package/dist/js/internal/listbox/listbox.misc.mjs +2 -0
  46. package/dist/js/internal/listbox/listbox.model.d.mts +2 -0
  47. package/dist/js/internal/listbox/listbox.model.mjs +1 -0
  48. package/dist/js/internal/listbox/listbox.state.d.mts +7 -0
  49. package/dist/js/internal/listbox/listbox.state.mjs +40 -0
  50. package/dist/js/internal/misc.d.mts +6 -0
  51. package/dist/js/internal/misc.mjs +13 -0
  52. package/dist/js/internal/navigable.d.mts +11 -5
  53. package/dist/js/internal/navigable.mjs +44 -18
  54. package/dist/js/l10n-Bn-7RcwR.d.mts +20 -0
  55. package/dist/js/l10n.d.mts +2 -20
  56. package/dist/js/listbox/constants.listbox.d.mts +2 -0
  57. package/dist/js/listbox/constants.listbox.mjs +40 -0
  58. package/dist/js/listbox/event.listbox.d.mts +8 -0
  59. package/dist/js/listbox/event.listbox.mjs +2 -0
  60. package/dist/js/listbox/index.d.mts +116 -0
  61. package/dist/js/listbox/index.mjs +189 -0
  62. package/dist/js/listbox/misc.listbox.d.mts +2 -0
  63. package/dist/js/listbox/misc.listbox.mjs +2 -0
  64. package/dist/js/listbox/state.listbox.d.mts +11 -0
  65. package/dist/js/listbox/state.listbox.mjs +2 -0
  66. package/dist/js/listbox.data-BWd0PCy7.mjs +424 -0
  67. package/dist/js/listbox.model-CRReGOmu.d.mts +125 -0
  68. package/dist/js/misc.listbox-BI-XsTOf.mjs +197 -0
  69. package/dist/js/misc.listbox-gnoJhrTr.d.mts +20 -0
  70. package/dist/js/movable/movable.embedded.mjs +3 -6
  71. package/dist/js/resizable/resizable.embedded.mjs +16 -26
  72. package/dist/js/sortable/sortable.embedded.mjs +4 -2
  73. package/dist/js/splitter.mjs +15 -12
  74. package/dist/js/state.combobox-4xq0FPCF.mjs +365 -0
  75. package/dist/js/tabs.d.mts +25 -0
  76. package/dist/js/tabs.mjs +240 -0
  77. package/dist/js/tooltip.mjs +13 -12
  78. package/package.json +7 -3
  79. package/src/css/badge.scss +6 -18
  80. package/src/css/button.scss +6 -45
  81. package/src/css/color.scss +20 -20
  82. package/src/css/combobox.scss +21 -52
  83. package/src/css/content.scss +30 -3
  84. package/src/css/floatable.scss +17 -17
  85. package/src/css/form.scss +84 -72
  86. package/src/css/listbox.scss +120 -0
  87. package/src/css/message.scss +13 -28
  88. package/src/css/mixins.scss +253 -28
  89. package/src/css/reset.scss +37 -86
  90. package/src/css/splitter.scss +2 -2
  91. package/src/css/tabs.scss +85 -0
  92. package/src/js/combobox/constants.combobox.ts +46 -25
  93. package/src/js/combobox/dom.combobox.ts +36 -454
  94. package/src/js/combobox/event.combobox.ts +129 -218
  95. package/src/js/combobox/index.ts +37 -30
  96. package/src/js/combobox/misc.combobox.ts +30 -114
  97. package/src/js/combobox/models.combobox.ts +7 -47
  98. package/src/js/combobox/state.combobox.ts +126 -127
  99. package/src/js/focus-trap/focus-trap.embedded.ts +11 -19
  100. package/src/js/index.ts +2 -0
  101. package/src/js/internal/draggable.ts +29 -33
  102. package/src/js/internal/listbox/listbox.constants.ts +25 -0
  103. package/src/js/{combobox/data.combobox.ts → internal/listbox/listbox.data.ts} +94 -43
  104. package/src/js/internal/listbox/listbox.dom.ts +445 -0
  105. package/src/js/internal/listbox/listbox.event.ts +129 -0
  106. package/src/js/{combobox/form.combobox.ts → internal/listbox/listbox.form.ts} +13 -14
  107. package/src/js/internal/listbox/listbox.misc.ts +135 -0
  108. package/src/js/internal/listbox/listbox.model.ts +169 -0
  109. package/src/js/internal/listbox/listbox.state.ts +82 -0
  110. package/src/js/internal/misc.ts +27 -0
  111. package/src/js/internal/navigable.ts +80 -23
  112. package/src/js/l10n.ts +8 -8
  113. package/src/js/listbox/constants.listbox.ts +61 -0
  114. package/src/js/listbox/event.listbox.ts +106 -0
  115. package/src/js/listbox/index.ts +302 -0
  116. package/src/js/listbox/misc.listbox.ts +70 -0
  117. package/src/js/listbox/state.listbox.ts +196 -0
  118. package/src/js/movable/movable.embedded.ts +11 -13
  119. package/src/js/resizable/resizable.embedded.ts +25 -39
  120. package/src/js/splitter.ts +21 -18
  121. package/src/js/tabs.ts +447 -0
  122. package/src/js/tooltip.ts +20 -17
  123. package/dist/js/combobox/data.combobox.d.mts +0 -18
  124. package/dist/js/combobox/data.combobox.mjs +0 -2
  125. package/dist/js/combobox/form.combobox.d.mts +0 -6
  126. package/dist/js/combobox/form.combobox.mjs +0 -2
  127. package/dist/js/constants.combobox-h_kyDegw.d.mts +0 -248
  128. package/dist/js/data.combobox-B8HMkDOh.mjs +0 -1030
package/src/css/form.scss CHANGED
@@ -51,6 +51,30 @@
51
51
  font-variant-numeric: tabular-nums;
52
52
  }
53
53
 
54
+ :where(&:is([type='date' i], [type='datetime-local' i], [type='month' i], [type='week' i])) {
55
+ &::-webkit-calendar-picker-indicator {
56
+ --oui-outline-percentage: 100%;
57
+ --oui-outline-value: var(--oui-blue-6);
58
+
59
+ outline: 4px solid
60
+ color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
61
+ outline-offset: 2px;
62
+ border-radius: 1em;
63
+ transition: outline 0.125s ease-in-out;
64
+ cursor: pointer;
65
+
66
+ &:focus-within {
67
+ --oui-outline-percentage: 62.5%;
68
+ }
69
+
70
+ @media (hover: hover) {
71
+ &:hover {
72
+ --oui-outline-percentage: 85%;
73
+ }
74
+ }
75
+ }
76
+ }
77
+
54
78
  :where(&:is([type='file' i])) {
55
79
  padding-left: 0.5em;
56
80
 
@@ -61,6 +85,7 @@
61
85
  --oui-outline-value: var(--oui-grey-6);
62
86
 
63
87
  margin: 0 0.75em 0 0;
88
+ outline: none;
64
89
  font-size: 0.75em;
65
90
  cursor: pointer;
66
91
  }
@@ -108,13 +133,15 @@
108
133
  }
109
134
 
110
135
  :where(
111
- &.oui-validate:not([disabled], [readonly], [aria-disabled='true' i]):is(
112
- :user-invalid:not([aria-invalid='false' i]),
113
- [aria-invalid='true' i]
114
- )
136
+ &.oui-validate:not(
137
+ [disabled],
138
+ [readonly],
139
+ [aria-disabled='true' i],
140
+ [aria-readonly='true' i],
141
+ :focus-visible,
142
+ :focus-within
143
+ ):is(:user-invalid:not([aria-invalid='false' i]), [aria-invalid='true' i])
115
144
  ) {
116
- @include mixins.input-invalid;
117
-
118
145
  &::file-selector-button {
119
146
  --oui-background-value: var(--oui-red-2);
120
147
  --oui-foreground-value: var(--oui-red-8);
@@ -136,13 +163,15 @@
136
163
  }
137
164
 
138
165
  :where(
139
- &.oui-validate:not([disabled], [readonly], [aria-disabled='true' i]):is(
140
- :user-valid:not([aria-invalid='true' i]),
141
- [aria-invalid='false' i]
142
- )
166
+ &.oui-validate:not(
167
+ [disabled],
168
+ [readonly],
169
+ [aria-disabled='true' i],
170
+ [aria-readonly='true' i],
171
+ :focus-visible,
172
+ :focus-within
173
+ ):is(:user-valid:not([aria-invalid='true' i]), [aria-invalid='false' i])
143
174
  ) {
144
- @include mixins.input-valid;
145
-
146
175
  &::file-selector-button {
147
176
  --oui-background-value: var(--oui-green-2);
148
177
  --oui-foreground-value: var(--oui-green-8);
@@ -163,72 +192,59 @@
163
192
  }
164
193
  }
165
194
 
166
- :where(&:not([disabled], [readonly], [aria-disabled='true' i])) {
167
- &::-webkit-calendar-picker-indicator {
168
- outline: 4px solid transparent;
169
- outline-offset: 2px;
170
- border-radius: 2em;
171
- transition: 0.125s ease-in-out;
172
- cursor: pointer;
173
-
174
- @media (hover: hover) {
175
- &:hover {
176
- outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 75%);
177
- }
195
+ &:not([disabled], [readonly], [aria-disabled='true' i], [aria-readonly='true' i]) {
196
+ :where(&:focus-visible, &:focus-within) {
197
+ &::file-selector-button {
198
+ --oui-background-value: var(--oui-blue-2);
199
+ --oui-foreground-value: var(--oui-blue-8);
200
+ --oui-outline-value: var(--oui-blue-6);
178
201
  }
179
202
 
180
- &:focus {
181
- outline-color: color-mix(in oklab, var(--oui-blue-6), transparent 75%);
203
+ &::range-thumb,
204
+ &::range-track {
205
+ @include mixins.input-focus;
182
206
  }
183
- }
184
- }
185
207
 
186
- :where(&:not([disabled], [readonly], [aria-disabled='true' i]):focus),
187
- :where(&:not([disabled], [readonly], [aria-disabled='true' i]):focus-within) {
188
- @include mixins.input-focus;
208
+ &::range-thumb {
209
+ --oui-background-value: var(--oui-blue-6);
189
210
 
190
- &::file-selector-button {
191
- --oui-background-value: var(--oui-blue-2);
192
- --oui-foreground-value: var(--oui-blue-8);
193
- --oui-outline-value: var(--oui-blue-6);
211
+ box-shadow: 0 1px 2px 2px rgb(0 0 0 / 25%);
212
+ }
194
213
  }
195
214
 
196
- &::range-thumb,
197
- &::range-track {
198
- @include mixins.input-focus;
199
- }
215
+ @media (hover: hover) {
216
+ :where(&:hover) {
217
+ &::file-selector-button {
218
+ --oui-background-value: var(--oui-blue-2);
219
+ --oui-foreground-value: var(--oui-blue-8);
220
+ --oui-outline-value: var(--oui-blue-6);
221
+ }
200
222
 
201
- &::range-thumb {
202
- --oui-background-value: var(--oui-blue-6);
223
+ &::range-thumb {
224
+ --oui-background-value: var(--oui-blue-5);
225
+ }
203
226
 
204
- box-shadow: 0 1px 2px 2px rgb(0 0 0 / 25%);
227
+ &::range-track {
228
+ @include mixins.input-hover;
229
+ }
230
+ }
205
231
  }
206
232
  }
207
233
 
208
- @media (hover: hover) {
209
- :where(&:not([disabled], [readonly], [aria-disabled='true' i]):hover) {
210
- @include mixins.input-hover;
211
-
212
- &::file-selector-button {
213
- --oui-background-value: var(--oui-blue-2);
214
- --oui-foreground-value: var(--oui-blue-8);
215
- --oui-outline-value: var(--oui-blue-6);
216
- }
217
-
218
- &::range-thumb {
219
- --oui-background-value: var(--oui-blue-5);
234
+ :where(&:is([disabled], [readonly], [aria-disabled='true' i], [aria-readonly='true' i])) {
235
+ &::-webkit-calendar-picker-indicator {
236
+ &:focus-within {
237
+ --oui-outline-percentage: 0%;
238
+ --oui-outline-value: var(--oui-gray-3);
220
239
  }
221
240
 
222
- &::range-track {
223
- @include mixins.input-hover;
241
+ @media (hover: hover) {
242
+ &:hover {
243
+ --oui-outline-percentage: 0%;
244
+ --oui-outline-value: var(--oui-gray-3);
245
+ }
224
246
  }
225
247
  }
226
- }
227
-
228
- :where(&:is([disabled], [readonly], [aria-disabled='true' i])) {
229
- --oui-foreground-percentage: 25%;
230
-
231
- font-style: italic;
232
248
 
233
249
  &::file-selector-button {
234
250
  --oui-background-value: var(--oui-gray-1);
@@ -243,12 +259,10 @@
243
259
  }
244
260
  }
245
261
 
246
- :where(&:is([disabled], [readonly], [aria-disabled='true' i]):focus) {
247
- --oui-outline-percentage: 75%;
248
- }
249
-
250
262
  :where(&:is([disabled], [aria-disabled='true' i])) {
251
- --oui-background-percentage: 50%;
263
+ &::-webkit-calendar-picker-indicator {
264
+ opacity: 0.5;
265
+ }
252
266
 
253
267
  &::range-thumb {
254
268
  --oui-background-value: var(--oui-gray-1);
@@ -260,10 +274,6 @@
260
274
  --oui-background-percentage: 50%;
261
275
  --oui-background-value: var(--oui-gray-0);
262
276
  }
263
-
264
- &::-webkit-calendar-picker-indicator {
265
- opacity: 0.5;
266
- }
267
277
  }
268
278
  }
269
279
 
@@ -317,12 +327,13 @@ select.oui-input:is([multiple]) {
317
327
  :where(.oui-label, .oui-legend) {
318
328
  font-size: 0.875rem;
319
329
  font-weight: bold;
330
+ align-self: flex-start;
320
331
  }
321
332
 
322
333
  .oui-label {
323
334
  :where(&) {
324
335
  cursor: pointer;
325
- transition: 0.125s ease-in-out;
336
+ transition: color 0.125s ease-in-out;
326
337
  }
327
338
 
328
339
  @media (hover: hover) {
@@ -358,6 +369,7 @@ select.oui-input:is([multiple]) {
358
369
  font-family: system-ui, sans-serif;
359
370
  position: absolute;
360
371
  transition: 0.125s ease-in-out;
372
+ transition-property: background, outline, border, box-shadow, color;
361
373
  pointer-events: none;
362
374
  }
363
375
 
@@ -0,0 +1,120 @@
1
+ /*! https://github.com/oscarpalmer/oui */
2
+
3
+ @use './mixins.scss' as mixins;
4
+
5
+ :where(oui-listbox, [oui-listbox-content]) {
6
+ display: flex;
7
+ flex-flow: column nowrap;
8
+ }
9
+
10
+ :where([oui-listbox-content]) {
11
+ flex: 1;
12
+ background-color: var(--oui-absolute);
13
+ border: 1px solid var(--oui-gray-3);
14
+ border-radius: 0.5em;
15
+ }
16
+
17
+ :where([oui-listbox-filter], [oui-listbox-header]) {
18
+ &::after {
19
+ content: '';
20
+ width: 100%;
21
+ height: 0.25em;
22
+ background-image: linear-gradient(to bottom, rgb(0 0 0 / 12.5%), transparent);
23
+ position: absolute;
24
+ bottom: -0.25em;
25
+ left: 0;
26
+ }
27
+ }
28
+
29
+ :where([oui-listbox-filter]) {
30
+ padding: 1em;
31
+ background-color: var(--oui-yellow-0);
32
+ border-radius: 0.5em 0.5em 0 0;
33
+ position: relative;
34
+ z-index: 2;
35
+ }
36
+
37
+ [oui-listbox-filter-input] {
38
+ :where(&) {
39
+ @include mixins.input;
40
+
41
+ --oui-background-value: var(--oui-absolute);
42
+
43
+ width: 100%;
44
+ padding: 0.5em 0.75em;
45
+ border-radius: 0.25em;
46
+ position: relative;
47
+ }
48
+ }
49
+
50
+ :where([oui-listbox-header]) {
51
+ padding: 0.5em calc(0.75em / 0.75);
52
+ background-color: var(--oui-gray-0);
53
+ font-size: 0.75em;
54
+ font-weight: bold;
55
+ position: sticky;
56
+ top: 0;
57
+ z-index: 1;
58
+ }
59
+
60
+ :where([oui-listbox-hidden]) {
61
+ @include mixins.visually-hidden;
62
+
63
+ position: absolute;
64
+ }
65
+
66
+ :where([oui-listbox-list]) {
67
+ height: fit-content;
68
+ max-height: max(25vh, 32rem);
69
+ flex: 1;
70
+ overflow: auto;
71
+ border-radius: 0 0 0.5em 0.5em;
72
+ position: relative;
73
+ }
74
+
75
+ :where([oui-listbox-list-empty]) {
76
+ display: none;
77
+ }
78
+
79
+ :where([oui-listbox-message]) {
80
+ padding: 1em;
81
+ flex: 1;
82
+ align-content: center;
83
+ text-align: center;
84
+ font-style: italic;
85
+ }
86
+
87
+ [oui-listbox-option] {
88
+ :where(&) {
89
+ padding: 0.5em 0.75em;
90
+ outline: 4px solid transparent;
91
+ outline-offset: -4px;
92
+ line-height: 1.25;
93
+ cursor: pointer;
94
+ }
95
+
96
+ :where(&[aria-selected='true' i]) {
97
+ background-color: var(--oui-blue-2);
98
+ color: var(--oui-blue-9);
99
+ }
100
+
101
+ :where(oui-listbox[multiple] &[aria-selected='true' i])::before {
102
+ content: '✓';
103
+ margin: 0 0.75em 0 0;
104
+ }
105
+
106
+ oui-listbox:not([disabled], [readonly], [aria-disabled='true' i], [aria-readonly='true' i]) & {
107
+ @media (hover: hover) {
108
+ :where(&:hover) {
109
+ background-color: var(--oui-blue-1);
110
+ color: var(--oui-blue-8);
111
+ }
112
+ }
113
+ }
114
+ }
115
+
116
+ :where(oui-listbox:focus-within [oui-listbox-option-active]) {
117
+ background-color: var(--oui-blue-1);
118
+ outline-color: var(--oui-blue-4);
119
+ color: var(--oui-blue-8);
120
+ }
@@ -4,6 +4,9 @@
4
4
 
5
5
  .oui-message {
6
6
  :where(&) {
7
+ --oui-background: var(--oui-gray-1);
8
+ --oui-border: var(--oui-gray-2);
9
+ --oui-foreground: var(--oui-gray-8);
7
10
  --oui-shadow-mixed: color-mix(
8
11
  in oklab,
9
12
  var(--oui-shadow-value, var(--oui-gray-6)),
@@ -11,7 +14,7 @@
11
14
  );
12
15
 
13
16
  @include mixins.card(
14
- color-mix(in oklab, var(--oui-background, var(--oui-gray-0)), transparent 25%),
17
+ color-mix(in oklab, var(--oui-background), transparent 25%),
15
18
  var(--oui-shadow-mixed)
16
19
  );
17
20
 
@@ -19,12 +22,12 @@
19
22
  display: inline-flex;
20
23
  flex-flow: column nowrap;
21
24
  gap: 1em;
22
- color: var(--oui-foreground, var(--oui-gray-8));
25
+ color: var(--oui-foreground);
23
26
  line-height: 1.25;
24
27
  }
25
28
 
26
29
  :where(& h2, & h3, & h4, & h5, & h6) {
27
- color: var(--oui-foreground, var(--oui-gray-10));
30
+ color: var(--oui-foreground);
28
31
  font-size: 1em;
29
32
  font-weight: bold;
30
33
  }
@@ -32,7 +35,7 @@
32
35
  :where(& hr) {
33
36
  height: 1px;
34
37
  margin: 0 -1.25em;
35
- background-color: var(--oui-border, var(--oui-gray-2));
38
+ background-color: var(--oui-border);
36
39
  border: none;
37
40
  }
38
41
 
@@ -45,44 +48,26 @@
45
48
  }
46
49
 
47
50
  :where(&--blue, &--info) {
48
- --oui-background: var(--oui-blue-0);
49
- --oui-border: var(--oui-blue-2);
50
- --oui-foreground: var(--oui-blue-8);
51
- --oui-shadow-value: var(--oui-blue-6);
51
+ @include mixins.message-blue;
52
52
  }
53
53
 
54
54
  :where(&--green, &--success) {
55
- --oui-background: var(--oui-green-0);
56
- --oui-border: var(--oui-green-2);
57
- --oui-foreground: var(--oui-green-8);
58
- --oui-shadow-value: var(--oui-green-6);
55
+ @include mixins.message-green;
59
56
  }
60
57
 
61
58
  :where(&--orange, &--warning) {
62
- --oui-background: var(--oui-orange-0);
63
- --oui-border: var(--oui-orange-2);
64
- --oui-foreground: var(--oui-orange-8);
65
- --oui-shadow-value: var(--oui-orange-6);
59
+ @include mixins.message-orange;
66
60
  }
67
61
 
68
62
  :where(&--purple, &--special) {
69
- --oui-background: var(--oui-purple-0);
70
- --oui-border: var(--oui-purple-2);
71
- --oui-foreground: var(--oui-purple-8);
72
- --oui-shadow-value: var(--oui-purple-6);
63
+ @include mixins.message-purple;
73
64
  }
74
65
 
75
66
  :where(&--red, &--error) {
76
- --oui-background: var(--oui-red-0);
77
- --oui-border: var(--oui-red-2);
78
- --oui-foreground: var(--oui-red-8);
79
- --oui-shadow-value: var(--oui-red-6);
67
+ @include mixins.message-red;
80
68
  }
81
69
 
82
70
  :where(&--yellow, &--notice) {
83
- --oui-background: var(--oui-yellow-0);
84
- --oui-border: var(--oui-yellow-2);
85
- --oui-foreground: var(--oui-yellow-8);
86
- --oui-shadow-value: var(--oui-yellow-6);
71
+ @include mixins.message-yellow;
87
72
  }
88
73
  }