@educarehq/solaris-ui 0.3.3 → 0.6.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 (54) hide show
  1. package/fesm2022/educarehq-solaris-ui.mjs +1563 -911
  2. package/fesm2022/educarehq-solaris-ui.mjs.map +1 -1
  3. package/package.json +18 -1
  4. package/schematics/collection.json +16 -0
  5. package/schematics/init/fonts.js +18 -0
  6. package/schematics/init/index.js +77 -0
  7. package/schematics/init/messages.js +25 -0
  8. package/schematics/init/providers.js +89 -0
  9. package/schematics/init/schema.json +54 -0
  10. package/schematics/init/styles.js +75 -0
  11. package/schematics/init/workspace.js +45 -0
  12. package/schematics/ng-add/index.js +66 -0
  13. package/schematics/ng-add/schema.json +40 -0
  14. package/schematics/package.json +5 -0
  15. package/styles/_button.scss +122 -66
  16. package/styles/_core.scss +13 -37
  17. package/styles/_dropdown-menu.scss +13 -15
  18. package/styles/_icon-button.scss +34 -29
  19. package/styles/_index.scss +3 -2
  20. package/styles/_input.scss +50 -48
  21. package/styles/_textarea.scss +65 -59
  22. package/styles/_theme.scss +80 -46
  23. package/styles/_toast.scss +2 -2
  24. package/styles/_tooltip.scss +3 -1
  25. package/styles/token/border/_border.scss +7 -5
  26. package/styles/token/border/_index.scss +1 -1
  27. package/styles/token/color/_dark.scss +81 -78
  28. package/styles/token/color/_high-contrast.scss +143 -27
  29. package/styles/token/color/_index.scss +3 -3
  30. package/styles/token/color/_light.scss +72 -69
  31. package/styles/token/density/_comfortable.scss +15 -15
  32. package/styles/token/density/_compact.scss +15 -15
  33. package/styles/token/density/_index.scss +2 -2
  34. package/styles/token/focus/_focus.scss +16 -0
  35. package/styles/token/focus/_index.scss +1 -0
  36. package/styles/token/glass/_glass.scss +17 -0
  37. package/styles/token/glass/_index.scss +1 -0
  38. package/styles/token/motion/_index.scss +2 -2
  39. package/styles/token/motion/_motion.scss +17 -15
  40. package/styles/token/motion/_reduced-motion.scss +15 -15
  41. package/styles/token/opacity/_index.scss +1 -1
  42. package/styles/token/opacity/_opacity.scss +13 -4
  43. package/styles/token/radius/_index.scss +1 -1
  44. package/styles/token/radius/_radius.scss +8 -8
  45. package/styles/token/shadow/_index.scss +1 -1
  46. package/styles/token/shadow/_shadow.scss +40 -26
  47. package/styles/token/spacing/_index.scss +1 -1
  48. package/styles/token/spacing/_spacing.scss +18 -15
  49. package/styles/token/typography/_font-family.scss +13 -13
  50. package/styles/token/typography/_index.scss +2 -2
  51. package/styles/token/typography/_typography.scss +26 -25
  52. package/styles/token/z-index/_index.scss +1 -1
  53. package/styles/token/z-index/_z-index.scss +13 -10
  54. package/types/educarehq-solaris-ui.d.ts +384 -106
@@ -1,31 +1,34 @@
1
1
  [solaris-button] {
2
- --solaris-button-gap: initial;
3
- --solaris-button-color: initial;
4
- --solaris-button-radius: initial;
5
- --solaris-button-height: initial;
6
- --solaris-button-padding-x: initial;
7
- --solaris-button-padding-y: initial;
8
- --solaris-button-min-width: initial;
9
- --solaris-button-font-size: initial;
10
- --solaris-button-icon-size: initial;
11
- --solaris-button-background: initial;
12
- --solaris-button-font-weight: initial;
13
- --solaris-button-border-color: initial;
14
- --solaris-button-border-width: initial;
15
- --solaris-button-disabled-opacity: 0.5;
16
- --solaris-button-hover-background: initial;
17
- --solaris-button-focus-ring-color: initial;
18
- --solaris-button-active-background: initial;
19
- --solaris-button-hover-border-color: initial;
20
- --solaris-button-active-border-color: initial;
21
-
2
+ --solaris-button-border-width: 0;
22
3
  --solaris-button-custom-color: initial;
4
+ --solaris-button-border-color: transparent;
23
5
  --solaris-button-custom-background: initial;
24
6
  --solaris-button-custom-border-color: initial;
7
+ --solaris-button-gap: var(--solaris-spacing-2);
8
+ --solaris-button-hover-border-color: transparent;
9
+ --solaris-button-radius: var(--solaris-radius-sm);
10
+ --solaris-button-active-border-color: transparent;
25
11
  --solaris-button-custom-hover-background: initial;
12
+ --solaris-button-height: var(--solaris-spacing-10);
26
13
  --solaris-button-custom-active-background: initial;
14
+ --solaris-button-color: var(--solaris-primary-text);
27
15
  --solaris-button-custom-hover-border-color: initial;
16
+ --solaris-button-icon-size: var(--solaris-spacing-4);
17
+ --solaris-button-padding-x: var(--solaris-spacing-4);
18
+ --solaris-button-padding-y: var(--solaris-spacing-2);
28
19
  --solaris-button-custom-active-border-color: initial;
20
+ --solaris-button-custom-hover-color: initial;
21
+ --solaris-button-custom-active-color: initial;
22
+ --solaris-button-min-width: var(--solaris-spacing-20);
23
+ --solaris-button-font-size: var(--solaris-font-size-md);
24
+ --solaris-button-background: var(--solaris-primary-base);
25
+ --solaris-button-disabled-opacity: var(--solaris-opacity-50);
26
+ --solaris-button-hover-color: var(--solaris-primary-active);
27
+ --solaris-button-active-color: var(--solaris-primary-active);
28
+ --solaris-button-focus-ring-color: var(--solaris-primary-base);
29
+ --solaris-button-font-weight: var(--solaris-font-weight-medium);
30
+ --solaris-button-hover-background: var(--solaris-primary-hover);
31
+ --solaris-button-active-background: var(--solaris-primary-active);
29
32
 
30
33
  cursor: pointer;
31
34
  user-select: none;
@@ -48,25 +51,27 @@
48
51
  border: var(--solaris-button-border-width) solid
49
52
  var(--solaris-button-border-color);
50
53
  transition:
51
- background var(--solaris-motion-duration-normal, 250ms)
52
- var(--solaris-motion-easing-standard, ease),
53
- border-color var(--solaris-motion-duration-normal, 250ms)
54
- var(--solaris-motion-easing-standard, ease),
55
- color var(--solaris-motion-duration-normal, 250ms)
56
- var(--solaris-motion-easing-standard, ease),
57
- box-shadow var(--solaris-motion-duration-normal, 250ms)
58
- var(--solaris-motion-easing-standard, ease),
59
- transform var(--solaris-motion-duration-fast, 150ms)
60
- var(--solaris-motion-easing-standard, ease);
54
+ background var(--solaris-motion-duration-slow)
55
+ var(--solaris-motion-easing-standard),
56
+ border-color var(--solaris-motion-duration-slow)
57
+ var(--solaris-motion-easing-standard),
58
+ color var(--solaris-motion-duration-slow)
59
+ var(--solaris-motion-easing-standard),
60
+ box-shadow var(--solaris-motion-duration-slow)
61
+ var(--solaris-motion-easing-standard),
62
+ transform var(--solaris-motion-duration-slow)
63
+ var(--solaris-motion-easing-standard);
61
64
  }
62
65
 
63
66
  [solaris-button]:hover {
67
+ color: var(--solaris-button-hover-color);
64
68
  background: var(--solaris-button-hover-background);
65
69
  border-color: var(--solaris-button-hover-border-color);
66
70
  }
67
71
 
68
72
  [solaris-button]:active,
69
73
  [solaris-button][data-active] {
74
+ color: var(--solaris-button-active-color);
70
75
  background: var(--solaris-button-active-background);
71
76
  border-color: var(--solaris-button-active-border-color);
72
77
  }
@@ -90,33 +95,16 @@
90
95
  pointer-events: all;
91
96
  }
92
97
 
93
- [solaris-button][data-loading]::before {
94
- content: '';
95
- flex-shrink: 0;
96
- border-radius: 50%;
97
- width: var(--solaris-button-icon-size);
98
- height: var(--solaris-button-icon-size);
99
- border: 2px solid var(--solaris-button-color);
100
- border-top-color: transparent;
101
- animation: solaris-button-spin 0.6s linear infinite;
102
- }
103
-
104
- @media (prefers-reduced-motion: reduce) {
105
- [solaris-button][data-loading]::before {
106
- opacity: 0.5;
107
- animation: none;
108
- }
109
- }
110
-
111
- [data-reduced-motion='true'] [solaris-button][data-loading]::before {
112
- animation: none;
113
- opacity: 0.5;
98
+ [solaris-button][data-loading] solaris-spinner {
99
+ --solaris-spinner-size: var(--solaris-button-icon-size);
100
+ --solaris-spinner-thickness: var(--solaris-border-width-md);
101
+ --solaris-spinner-custom-color: var(--solaris-button-color);
102
+ --solaris-spinner-track-color: var(--solaris-button-color);
103
+ --solaris-spinner-track-opacity: var(--solaris-opacity-30);
114
104
  }
115
105
 
116
- @keyframes solaris-button-spin {
117
- to {
118
- transform: rotate(360deg);
119
- }
106
+ [solaris-button][data-loading] [solaris-button-icon] {
107
+ display: none;
120
108
  }
121
109
 
122
110
  [solaris-button][data-full-width] {
@@ -163,23 +151,29 @@
163
151
 
164
152
  [solaris-button][data-color='neutral'][data-appearance='solid'] {
165
153
  --solaris-button-color: var(--solaris-text-inverse);
166
- --solaris-button-background: var(--solaris-text-default);
167
- --solaris-button-hover-background: var(--solaris-text-strong);
168
- --solaris-button-active-background: var(--solaris-text-strong);
154
+ --solaris-button-hover-color: var(--solaris-text-inverse);
155
+ --solaris-button-active-color: var(--solaris-text-inverse);
156
+ --solaris-button-background: var(--solaris-surface-reverse);
169
157
  --solaris-button-focus-ring-color: var(--solaris-text-default);
158
+ --solaris-button-hover-background: var(--solaris-surface-reverse-subtle);
159
+ --solaris-button-active-background: var(--solaris-surface-reverse-muted);
170
160
  }
171
161
 
172
162
  [solaris-button][data-color='neutral'][data-appearance='outline'] {
173
163
  --solaris-button-color: var(--solaris-text-default);
164
+ --solaris-button-hover-color: var(--solaris-text-inverse);
165
+ --solaris-button-active-color: var(--solaris-text-inverse);
174
166
  --solaris-button-border-color: var(--solaris-border-default);
175
167
  --solaris-button-focus-ring-color: var(--solaris-text-default);
176
- --solaris-button-hover-background: var(--solaris-surface-muted);
177
- --solaris-button-active-background: var(--solaris-surface-muted);
178
168
  --solaris-button-hover-border-color: var(--solaris-border-strong);
169
+ --solaris-button-hover-background: var(--solaris-surface-reverse);
170
+ --solaris-button-active-background: var(--solaris-surface-reverse-muted);
179
171
  }
180
172
 
181
173
  [solaris-button][data-color='neutral'][data-appearance='ghost'] {
182
174
  --solaris-button-color: var(--solaris-text-default);
175
+ --solaris-button-hover-color: var(--solaris-text-default);
176
+ --solaris-button-active-color: var(--solaris-text-default);
183
177
  --solaris-button-focus-ring-color: var(--solaris-text-default);
184
178
  --solaris-button-hover-background: var(--solaris-surface-muted);
185
179
  --solaris-button-active-background: var(--solaris-surface-muted);
@@ -188,6 +182,8 @@
188
182
  [solaris-button][data-color='neutral'][data-appearance='tonal'] {
189
183
  --solaris-button-color: var(--solaris-text-default);
190
184
  --solaris-button-background: var(--solaris-surface-muted);
185
+ --solaris-button-hover-color: var(--solaris-text-default);
186
+ --solaris-button-active-color: var(--solaris-text-default);
191
187
  --solaris-button-border-color: var(--solaris-border-default);
192
188
  --solaris-button-focus-ring-color: var(--solaris-text-default);
193
189
  --solaris-button-hover-background: var(--solaris-surface-subtle);
@@ -198,6 +194,8 @@
198
194
  [solaris-button][data-color='neutral'][data-appearance='surface'] {
199
195
  --solaris-button-color: var(--solaris-text-default);
200
196
  --solaris-button-background: var(--solaris-surface-muted);
197
+ --solaris-button-hover-color: var(--solaris-text-default);
198
+ --solaris-button-active-color: var(--solaris-text-default);
201
199
  --solaris-button-focus-ring-color: var(--solaris-text-default);
202
200
  --solaris-button-hover-background: var(--solaris-surface-subtle);
203
201
  --solaris-button-active-background: var(--solaris-surface-subtle);
@@ -205,6 +203,8 @@
205
203
 
206
204
  [solaris-button][data-color='primary'][data-appearance='solid'] {
207
205
  --solaris-button-color: var(--solaris-primary-text);
206
+ --solaris-button-hover-color: var(--solaris-primary-text);
207
+ --solaris-button-active-color: var(--solaris-primary-text);
208
208
  --solaris-button-background: var(--solaris-primary-base);
209
209
  --solaris-button-focus-ring-color: var(--solaris-primary-base);
210
210
  --solaris-button-hover-background: var(--solaris-primary-hover);
@@ -212,7 +212,9 @@
212
212
  }
213
213
 
214
214
  [solaris-button][data-color='primary'][data-appearance='outline'] {
215
- --solaris-button-color: var(--solaris-primary-text);
215
+ --solaris-button-color: var(--solaris-primary-base);
216
+ --solaris-button-hover-color: var(--solaris-primary-text);
217
+ --solaris-button-active-color: var(--solaris-primary-text);
216
218
  --solaris-button-border-color: var(--solaris-primary-border);
217
219
  --solaris-button-focus-ring-color: var(--solaris-primary-base);
218
220
  --solaris-button-hover-background: var(--solaris-primary-surface);
@@ -220,7 +222,9 @@
220
222
  }
221
223
 
222
224
  [solaris-button][data-color='primary'][data-appearance='ghost'] {
223
- --solaris-button-color: var(--solaris-primary-text);
225
+ --solaris-button-color: var(--solaris-primary-base);
226
+ --solaris-button-hover-color: var(--solaris-primary-text);
227
+ --solaris-button-active-color: var(--solaris-primary-text);
224
228
  --solaris-button-focus-ring-color: var(--solaris-primary-base);
225
229
  --solaris-button-hover-background: var(--solaris-primary-surface);
226
230
  --solaris-button-active-background: var(--solaris-primary-surface);
@@ -228,6 +232,8 @@
228
232
 
229
233
  [solaris-button][data-color='primary'][data-appearance='tonal'] {
230
234
  --solaris-button-color: var(--solaris-primary-text);
235
+ --solaris-button-hover-color: var(--solaris-primary-text);
236
+ --solaris-button-active-color: var(--solaris-primary-text);
231
237
  --solaris-button-background: var(--solaris-primary-surface);
232
238
  --solaris-button-border-color: var(--solaris-primary-border);
233
239
  --solaris-button-focus-ring-color: var(--solaris-primary-base);
@@ -238,6 +244,8 @@
238
244
 
239
245
  [solaris-button][data-color='primary'][data-appearance='surface'] {
240
246
  --solaris-button-color: var(--solaris-primary-text);
247
+ --solaris-button-hover-color: var(--solaris-primary-text);
248
+ --solaris-button-active-color: var(--solaris-primary-text);
241
249
  --solaris-button-background: var(--solaris-primary-surface);
242
250
  --solaris-button-focus-ring-color: var(--solaris-primary-base);
243
251
  --solaris-button-hover-background: var(--solaris-primary-hover);
@@ -245,8 +253,10 @@
245
253
  }
246
254
 
247
255
  [solaris-button][data-color='success'][data-appearance='solid'] {
248
- --solaris-button-background: var(--solaris-success-base);
249
256
  --solaris-button-color: var(--solaris-success-on-solid);
257
+ --solaris-button-background: var(--solaris-success-base);
258
+ --solaris-button-hover-color: var(--solaris-success-on-solid);
259
+ --solaris-button-active-color: var(--solaris-success-on-solid);
250
260
  --solaris-button-focus-ring-color: var(--solaris-success-base);
251
261
  --solaris-button-hover-background: var(--solaris-success-hover);
252
262
  --solaris-button-active-background: var(--solaris-success-active);
@@ -254,6 +264,8 @@
254
264
 
255
265
  [solaris-button][data-color='success'][data-appearance='outline'] {
256
266
  --solaris-button-color: var(--solaris-success-text);
267
+ --solaris-button-hover-color: var(--solaris-success-text);
268
+ --solaris-button-active-color: var(--solaris-success-text);
257
269
  --solaris-button-border-color: var(--solaris-success-border);
258
270
  --solaris-button-focus-ring-color: var(--solaris-success-base);
259
271
  --solaris-button-hover-background: var(--solaris-success-surface);
@@ -262,6 +274,8 @@
262
274
 
263
275
  [solaris-button][data-color='success'][data-appearance='ghost'] {
264
276
  --solaris-button-color: var(--solaris-success-text);
277
+ --solaris-button-hover-color: var(--solaris-success-text);
278
+ --solaris-button-active-color: var(--solaris-success-text);
265
279
  --solaris-button-focus-ring-color: var(--solaris-success-base);
266
280
  --solaris-button-hover-background: var(--solaris-success-surface);
267
281
  --solaris-button-active-background: var(--solaris-success-surface);
@@ -269,6 +283,8 @@
269
283
 
270
284
  [solaris-button][data-color='success'][data-appearance='tonal'] {
271
285
  --solaris-button-color: var(--solaris-success-text);
286
+ --solaris-button-hover-color: var(--solaris-success-text);
287
+ --solaris-button-active-color: var(--solaris-success-text);
272
288
  --solaris-button-background: var(--solaris-success-surface);
273
289
  --solaris-button-border-color: var(--solaris-success-border);
274
290
  --solaris-button-focus-ring-color: var(--solaris-success-base);
@@ -279,6 +295,8 @@
279
295
 
280
296
  [solaris-button][data-color='success'][data-appearance='surface'] {
281
297
  --solaris-button-color: var(--solaris-success-text);
298
+ --solaris-button-hover-color: var(--solaris-success-text);
299
+ --solaris-button-active-color: var(--solaris-success-text);
282
300
  --solaris-button-background: var(--solaris-success-surface);
283
301
  --solaris-button-focus-ring-color: var(--solaris-success-base);
284
302
  --solaris-button-hover-background: var(--solaris-success-hover);
@@ -286,16 +304,20 @@
286
304
  }
287
305
 
288
306
  [solaris-button][data-color='warning'][data-appearance='solid'] {
289
- --solaris-button-background: var(--solaris-warning-base);
290
307
  --solaris-button-color: var(--solaris-warning-on-solid);
308
+ --solaris-button-background: var(--solaris-warning-base);
309
+ --solaris-button-hover-color: var(--solaris-warning-on-solid);
310
+ --solaris-button-active-color: var(--solaris-success-on-solid);
311
+ --solaris-button-focus-ring-color: var(--solaris-warning-base);
291
312
  --solaris-button-hover-background: var(--solaris-warning-hover);
292
313
  --solaris-button-active-background: var(--solaris-warning-active);
293
- --solaris-button-focus-ring-color: var(--solaris-warning-base);
294
314
  }
295
315
 
296
316
  [solaris-button][data-color='warning'][data-appearance='outline'] {
297
317
  --solaris-button-color: var(--solaris-warning-text);
298
318
  --solaris-button-border-color: var(--solaris-warning-border);
319
+ --solaris-button-hover-color: var(--solaris-warning-text);
320
+ --solaris-button-active-color: var(--solaris-warning-text);
299
321
  --solaris-button-focus-ring-color: var(--solaris-warning-base);
300
322
  --solaris-button-hover-background: var(--solaris-warning-surface);
301
323
  --solaris-button-active-background: var(--solaris-warning-surface);
@@ -303,6 +325,8 @@
303
325
 
304
326
  [solaris-button][data-color='warning'][data-appearance='ghost'] {
305
327
  --solaris-button-color: var(--solaris-warning-text);
328
+ --solaris-button-hover-color: var(--solaris-warning-text);
329
+ --solaris-button-active-color: var(--solaris-warning-text);
306
330
  --solaris-button-focus-ring-color: var(--solaris-warning-base);
307
331
  --solaris-button-hover-background: var(--solaris-warning-surface);
308
332
  --solaris-button-active-background: var(--solaris-warning-surface);
@@ -310,6 +334,8 @@
310
334
 
311
335
  [solaris-button][data-color='warning'][data-appearance='tonal'] {
312
336
  --solaris-button-color: var(--solaris-warning-text);
337
+ --solaris-button-hover-color: var(--solaris-warning-text);
338
+ --solaris-button-active-color: var(--solaris-warning-text);
313
339
  --solaris-button-background: var(--solaris-warning-surface);
314
340
  --solaris-button-border-color: var(--solaris-warning-border);
315
341
  --solaris-button-focus-ring-color: var(--solaris-warning-base);
@@ -320,6 +346,8 @@
320
346
 
321
347
  [solaris-button][data-color='warning'][data-appearance='surface'] {
322
348
  --solaris-button-color: var(--solaris-warning-text);
349
+ --solaris-button-hover-color: var(--solaris-warning-text);
350
+ --solaris-button-active-color: var(--solaris-warning-text);
323
351
  --solaris-button-background: var(--solaris-warning-surface);
324
352
  --solaris-button-focus-ring-color: var(--solaris-warning-base);
325
353
  --solaris-button-hover-background: var(--solaris-warning-hover);
@@ -327,8 +355,10 @@
327
355
  }
328
356
 
329
357
  [solaris-button][data-color='danger'][data-appearance='solid'] {
330
- --solaris-button-background: var(--solaris-danger-base);
331
358
  --solaris-button-color: var(--solaris-danger-on-solid);
359
+ --solaris-button-background: var(--solaris-danger-base);
360
+ --solaris-button-hover-color: var(--solaris-danger-on-solid);
361
+ --solaris-button-active-color: var(--solaris-danger-on-solid);
332
362
  --solaris-button-focus-ring-color: var(--solaris-danger-base);
333
363
  --solaris-button-hover-background: var(--solaris-danger-hover);
334
364
  --solaris-button-active-background: var(--solaris-danger-active);
@@ -336,6 +366,8 @@
336
366
 
337
367
  [solaris-button][data-color='danger'][data-appearance='outline'] {
338
368
  --solaris-button-color: var(--solaris-danger-text);
369
+ --solaris-button-hover-color: var(--solaris-danger-text);
370
+ --solaris-button-active-color: var(--solaris-danger-text);
339
371
  --solaris-button-border-color: var(--solaris-danger-border);
340
372
  --solaris-button-focus-ring-color: var(--solaris-danger-base);
341
373
  --solaris-button-hover-background: var(--solaris-danger-surface);
@@ -344,6 +376,8 @@
344
376
 
345
377
  [solaris-button][data-color='danger'][data-appearance='ghost'] {
346
378
  --solaris-button-color: var(--solaris-danger-text);
379
+ --solaris-button-hover-color: var(--solaris-danger-text);
380
+ --solaris-button-active-color: var(--solaris-danger-text);
347
381
  --solaris-button-focus-ring-color: var(--solaris-danger-base);
348
382
  --solaris-button-hover-background: var(--solaris-danger-surface);
349
383
  --solaris-button-active-background: var(--solaris-danger-surface);
@@ -351,6 +385,8 @@
351
385
 
352
386
  [solaris-button][data-color='danger'][data-appearance='tonal'] {
353
387
  --solaris-button-color: var(--solaris-danger-text);
388
+ --solaris-button-hover-color: var(--solaris-danger-text);
389
+ --solaris-button-active-color: var(--solaris-danger-text);
354
390
  --solaris-button-background: var(--solaris-danger-surface);
355
391
  --solaris-button-border-color: var(--solaris-danger-border);
356
392
  --solaris-button-focus-ring-color: var(--solaris-danger-base);
@@ -361,6 +397,8 @@
361
397
 
362
398
  [solaris-button][data-color='danger'][data-appearance='surface'] {
363
399
  --solaris-button-color: var(--solaris-danger-text);
400
+ --solaris-button-hover-color: var(--solaris-danger-text);
401
+ --solaris-button-active-color: var(--solaris-danger-text);
364
402
  --solaris-button-background: var(--solaris-danger-surface);
365
403
  --solaris-button-focus-ring-color: var(--solaris-danger-base);
366
404
  --solaris-button-hover-background: var(--solaris-danger-hover);
@@ -370,6 +408,8 @@
370
408
  [solaris-button][data-color='info'][data-appearance='solid'] {
371
409
  --solaris-button-color: var(--solaris-info-text);
372
410
  --solaris-button-background: var(--solaris-info-base);
411
+ --solaris-button-hover-color: var(--solaris-info-text);
412
+ --solaris-button-active-color: var(--solaris-info-text);
373
413
  --solaris-button-focus-ring-color: var(--solaris-info-base);
374
414
  --solaris-button-hover-background: var(--solaris-info-hover);
375
415
  --solaris-button-active-background: var(--solaris-info-active);
@@ -377,6 +417,8 @@
377
417
 
378
418
  [solaris-button][data-color='info'][data-appearance='outline'] {
379
419
  --solaris-button-color: var(--solaris-info-text);
420
+ --solaris-button-hover-color: var(--solaris-info-text);
421
+ --solaris-button-active-color: var(--solaris-info-text);
380
422
  --solaris-button-border-color: var(--solaris-info-border);
381
423
  --solaris-button-focus-ring-color: var(--solaris-info-base);
382
424
  --solaris-button-hover-background: var(--solaris-info-surface);
@@ -385,6 +427,8 @@
385
427
 
386
428
  [solaris-button][data-color='info'][data-appearance='ghost'] {
387
429
  --solaris-button-color: var(--solaris-info-text);
430
+ --solaris-button-hover-color: var(--solaris-info-text);
431
+ --solaris-button-active-color: var(--solaris-info-text);
388
432
  --solaris-button-focus-ring-color: var(--solaris-info-base);
389
433
  --solaris-button-hover-background: var(--solaris-info-surface);
390
434
  --solaris-button-active-background: var(--solaris-info-surface);
@@ -392,6 +436,8 @@
392
436
 
393
437
  [solaris-button][data-color='info'][data-appearance='tonal'] {
394
438
  --solaris-button-color: var(--solaris-info-text);
439
+ --solaris-button-hover-color: var(--solaris-info-text);
440
+ --solaris-button-active-color: var(--solaris-info-text);
395
441
  --solaris-button-background: var(--solaris-info-surface);
396
442
  --solaris-button-border-color: var(--solaris-info-border);
397
443
  --solaris-button-focus-ring-color: var(--solaris-info-base);
@@ -402,6 +448,8 @@
402
448
 
403
449
  [solaris-button][data-color='info'][data-appearance='surface'] {
404
450
  --solaris-button-color: var(--solaris-info-text);
451
+ --solaris-button-hover-color: var(--solaris-info-text);
452
+ --solaris-button-active-color: var(--solaris-info-text);
405
453
  --solaris-button-background: var(--solaris-info-surface);
406
454
  --solaris-button-focus-ring-color: var(--solaris-info-base);
407
455
  --solaris-button-hover-background: var(--solaris-info-hover);
@@ -437,6 +485,14 @@
437
485
  --solaris-button-custom-border-color,
438
486
  var(--solaris-border-default)
439
487
  );
488
+ --solaris-button-hover-color: var(
489
+ --solaris-button-custom-hover-color,
490
+ var(--solaris-button-custom-color, var(--solaris-text-default))
491
+ );
492
+ --solaris-button-active-color: var(
493
+ --solaris-button-custom-active-color,
494
+ var(--solaris-button-custom-color, var(--solaris-text-default))
495
+ );
440
496
  }
441
497
 
442
498
  [solaris-button][data-size='sm'] {
package/styles/_core.scss CHANGED
@@ -1,37 +1,13 @@
1
- /// Solaris UI Core
2
- /// Provides root font-size strategy and base resets.
3
- ///
4
- /// The default `none` strategy respects the browser's default font-size (typically 16px)
5
- /// and produces no additional CSS. Consumers who prefer the `rem-10` strategy may opt in,
6
- /// but must ensure token SCSS files are imported at the correct scope.
7
- ///
8
- /// Usage:
9
- /// @use '@solaris-ui/angular/styles' as solaris;
10
- ///
11
- /// // Default: no root font-size override (browser default)
12
- /// @include solaris.core();
13
- ///
14
- /// // rem-10 strategy: 1rem = 10px at root, body reset to 16px
15
- /// @include solaris.core((root-font-size: rem-10));
16
-
17
- @use 'sass:map';
18
-
19
- $-default-config: (
20
- root-font-size: none,
21
- );
22
-
23
- @mixin core($config: ()) {
24
- $merged: map.merge($-default-config, $config);
25
-
26
- $root-font-size: map.get($merged, root-font-size);
27
-
28
- @if $root-font-size == rem-10 {
29
- :root {
30
- font-size: 62.5%;
31
- }
32
-
33
- body {
34
- font-size: 1.6rem;
35
- }
36
- }
37
- }
1
+ /// Solaris UI Core
2
+ /// Uses the browser's default font-size (100%, typically 16px).
3
+ /// All design tokens are calculated at 1rem = 16px.
4
+ /// Do NOT set a custom root font-size — it breaks accessibility (WCAG 1.4.4).
5
+ ///
6
+ /// Usage:
7
+ /// @use '@solaris-ui/angular/styles' as solaris;
8
+ /// @include solaris.core();
9
+
10
+ @mixin core() {
11
+ // Uses browser default font-size (100%).
12
+ // No root font-size override needed.
13
+ }
@@ -1,4 +1,8 @@
1
1
  .solaris-dropdown-menu-overlay {
2
+ .solaris-popover-panel__container {
3
+ padding: 0;
4
+ overflow: hidden;
5
+ }
2
6
  --solaris-dropdown-menu-min-width: calc(
3
7
  var(--solaris-spacing-24) + var(--solaris-spacing-10) +
4
8
  var(--solaris-spacing-1)
@@ -7,14 +11,13 @@
7
11
  var(--solaris-spacing-24) * 2 + var(--solaris-spacing-10) +
8
12
  var(--solaris-spacing-2)
9
13
  );
10
-
11
- .solaris-popover-panel__container {
12
- padding: 0;
13
- overflow: hidden;
14
- }
15
14
  }
16
15
 
17
16
  .solaris-dropdown-menu__wrapper {
17
+ solaris-divider {
18
+ width: calc(100% + 2 * var(--solaris-dropdown-menu-padding));
19
+ margin-inline: calc(-1 * var(--solaris-dropdown-menu-padding));
20
+ }
18
21
  --solaris-dropdown-menu-gap: var(--solaris-spacing-2);
19
22
  --solaris-dropdown-menu-padding: var(--solaris-spacing-2);
20
23
 
@@ -27,18 +30,9 @@
27
30
  padding: var(--solaris-dropdown-menu-padding);
28
31
  min-width: var(--solaris-dropdown-menu-min-width);
29
32
  max-width: var(--solaris-dropdown-menu-max-width);
30
-
31
- solaris-divider {
32
- margin-inline: calc(-1 * var(--solaris-dropdown-menu-padding));
33
- width: calc(100% + 2 * var(--solaris-dropdown-menu-padding));
34
- }
35
33
  }
36
34
 
37
35
  solaris-dropdown-menu-group {
38
- display: flex;
39
- flex-direction: column;
40
- padding-block: var(--solaris-spacing-1);
41
-
42
36
  &:first-child {
43
37
  padding-block-start: 0;
44
38
  }
@@ -46,6 +40,10 @@ solaris-dropdown-menu-group {
46
40
  &:last-child {
47
41
  padding-block-end: 0;
48
42
  }
43
+
44
+ display: flex;
45
+ flex-direction: column;
46
+ padding-block: var(--solaris-spacing-1);
49
47
  }
50
48
 
51
49
  solaris-dropdown-menu-label {
@@ -56,9 +54,9 @@ solaris-dropdown-menu-label {
56
54
  letter-spacing: 0.05em;
57
55
  text-transform: uppercase;
58
56
  color: var(--solaris-text-muted);
59
- font-weight: var(--solaris-font-weight-semibold);
60
57
  font-size: var(--solaris-font-size-xs);
61
58
  line-height: var(--solaris-line-height-xs);
59
+ font-weight: var(--solaris-font-weight-semibold);
62
60
  padding: var(--solaris-spacing-2) var(--solaris-spacing-3);
63
61
  }
64
62