@educarehq/solaris-ui 0.3.3 → 0.5.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/fesm2022/educarehq-solaris-ui.mjs +1229 -911
- package/fesm2022/educarehq-solaris-ui.mjs.map +1 -1
- package/package.json +18 -1
- package/schematics/collection.json +16 -0
- package/schematics/init/fonts.js +18 -0
- package/schematics/init/index.js +77 -0
- package/schematics/init/messages.js +25 -0
- package/schematics/init/providers.js +89 -0
- package/schematics/init/schema.json +54 -0
- package/schematics/init/styles.js +75 -0
- package/schematics/init/workspace.js +45 -0
- package/schematics/ng-add/index.js +66 -0
- package/schematics/ng-add/schema.json +40 -0
- package/schematics/package.json +5 -0
- package/styles/_button.scss +118 -44
- package/styles/_core.scss +13 -37
- package/styles/_dropdown-menu.scss +13 -15
- package/styles/_icon-button.scss +34 -29
- package/styles/_index.scss +3 -2
- package/styles/_input.scss +50 -48
- package/styles/_textarea.scss +65 -59
- package/styles/_theme.scss +80 -46
- package/styles/_toast.scss +2 -2
- package/styles/_tooltip.scss +3 -1
- package/styles/token/border/_border.scss +6 -5
- package/styles/token/border/_index.scss +1 -1
- package/styles/token/color/_dark.scss +81 -78
- package/styles/token/color/_high-contrast.scss +143 -27
- package/styles/token/color/_index.scss +3 -3
- package/styles/token/color/_light.scss +72 -69
- package/styles/token/density/_comfortable.scss +15 -15
- package/styles/token/density/_compact.scss +15 -15
- package/styles/token/density/_index.scss +2 -2
- package/styles/token/focus/_focus.scss +16 -0
- package/styles/token/focus/_index.scss +1 -0
- package/styles/token/glass/_glass.scss +17 -0
- package/styles/token/glass/_index.scss +1 -0
- package/styles/token/motion/_index.scss +2 -2
- package/styles/token/motion/_motion.scss +16 -15
- package/styles/token/motion/_reduced-motion.scss +15 -15
- package/styles/token/opacity/_index.scss +1 -1
- package/styles/token/opacity/_opacity.scss +13 -4
- package/styles/token/radius/_index.scss +1 -1
- package/styles/token/radius/_radius.scss +8 -8
- package/styles/token/shadow/_index.scss +1 -1
- package/styles/token/shadow/_shadow.scss +40 -26
- package/styles/token/spacing/_index.scss +1 -1
- package/styles/token/spacing/_spacing.scss +18 -15
- package/styles/token/typography/_font-family.scss +13 -13
- package/styles/token/typography/_index.scss +2 -2
- package/styles/token/typography/_typography.scss +26 -25
- package/styles/token/z-index/_index.scss +1 -1
- package/styles/token/z-index/_z-index.scss +13 -10
- package/types/educarehq-solaris-ui.d.ts +282 -106
package/styles/_icon-button.scss
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
[solaris-icon-button] {
|
|
2
|
-
--solaris-icon-button-
|
|
3
|
-
--solaris-icon-button-color: initial;
|
|
4
|
-
--solaris-icon-button-radius: initial;
|
|
5
|
-
--solaris-icon-button-background: initial;
|
|
6
|
-
--solaris-icon-button-border-color: initial;
|
|
7
|
-
--solaris-icon-button-border-width: initial;
|
|
8
|
-
--solaris-icon-button-disabled-opacity: 0.5;
|
|
9
|
-
--solaris-icon-button-focus-ring-color: initial;
|
|
10
|
-
--solaris-icon-button-hover-background: initial;
|
|
11
|
-
--solaris-icon-button-active-background: initial;
|
|
12
|
-
--solaris-icon-button-hover-border-color: initial;
|
|
13
|
-
--solaris-icon-button-active-border-color: initial;
|
|
14
|
-
|
|
2
|
+
--solaris-icon-button-border-width: 0;
|
|
15
3
|
--solaris-icon-button-custom-color: initial;
|
|
4
|
+
--solaris-icon-button-border-color: transparent;
|
|
16
5
|
--solaris-icon-button-custom-background: initial;
|
|
17
6
|
--solaris-icon-button-custom-border-color: initial;
|
|
7
|
+
--solaris-icon-button-size: var(--solaris-spacing-10);
|
|
8
|
+
--solaris-icon-button-hover-border-color: transparent;
|
|
9
|
+
--solaris-icon-button-radius: var(--solaris-radius-sm);
|
|
10
|
+
--solaris-icon-button-active-border-color: transparent;
|
|
18
11
|
--solaris-icon-button-custom-hover-background: initial;
|
|
19
|
-
--solaris-icon-button-custom-hover-border-color: initial;
|
|
20
12
|
--solaris-icon-button-custom-active-background: initial;
|
|
13
|
+
--solaris-icon-button-color: var(--solaris-primary-text);
|
|
14
|
+
--solaris-icon-button-custom-hover-border-color: initial;
|
|
21
15
|
--solaris-icon-button-custom-active-border-color: initial;
|
|
16
|
+
--solaris-icon-button-background: var(--solaris-primary-base);
|
|
17
|
+
--solaris-icon-button-disabled-opacity: var(--solaris-opacity-50);
|
|
18
|
+
--solaris-icon-button-focus-ring-color: var(--solaris-primary-base);
|
|
19
|
+
--solaris-icon-button-hover-background: var(--solaris-primary-hover);
|
|
20
|
+
--solaris-icon-button-active-background: var(--solaris-primary-active);
|
|
22
21
|
|
|
23
22
|
padding: 0;
|
|
24
23
|
flex-shrink: 0;
|
|
25
|
-
line-height:
|
|
24
|
+
line-height: var(--solaris-line-height-none);
|
|
26
25
|
cursor: pointer;
|
|
27
26
|
user-select: none;
|
|
28
27
|
position: relative;
|
|
@@ -105,19 +104,20 @@
|
|
|
105
104
|
border-radius: 50%;
|
|
106
105
|
border: 2px solid var(--solaris-icon-button-color);
|
|
107
106
|
border-top-color: transparent;
|
|
108
|
-
animation: solaris-icon-button-spin 0.6s linear
|
|
107
|
+
animation: solaris-icon-button-spin 0.6s var(--solaris-motion-easing-linear)
|
|
108
|
+
infinite;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
@media (prefers-reduced-motion: reduce) {
|
|
112
112
|
[solaris-icon-button][data-loading]::before {
|
|
113
|
-
opacity: 0.5;
|
|
114
113
|
animation: none;
|
|
114
|
+
opacity: var(--solaris-opacity-50);
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
[data-reduced-motion='true'] [solaris-icon-button][data-loading]::before {
|
|
119
119
|
animation: none;
|
|
120
|
-
opacity:
|
|
120
|
+
opacity: var(--solaris-opacity-50);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
@keyframes solaris-icon-button-spin {
|
|
@@ -208,7 +208,7 @@
|
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
[solaris-icon-button][data-color='primary'][data-appearance='outline'] {
|
|
211
|
-
--solaris-icon-button-color: var(--solaris-primary-
|
|
211
|
+
--solaris-icon-button-color: var(--solaris-primary-base);
|
|
212
212
|
--solaris-icon-button-border-color: var(--solaris-primary-border);
|
|
213
213
|
--solaris-icon-button-focus-ring-color: var(--solaris-primary-base);
|
|
214
214
|
--solaris-icon-button-hover-background: var(--solaris-primary-surface);
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
[solaris-icon-button][data-color='primary'][data-appearance='ghost'] {
|
|
219
|
-
--solaris-icon-button-color: var(--solaris-primary-
|
|
219
|
+
--solaris-icon-button-color: var(--solaris-primary-base);
|
|
220
220
|
--solaris-icon-button-focus-ring-color: var(--solaris-primary-base);
|
|
221
221
|
--solaris-icon-button-hover-background: var(--solaris-primary-surface);
|
|
222
222
|
--solaris-icon-button-active-background: var(--solaris-primary-surface);
|
|
@@ -241,8 +241,8 @@
|
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
[solaris-icon-button][data-color='success'][data-appearance='solid'] {
|
|
244
|
-
--solaris-icon-button-background: var(--solaris-success-base);
|
|
245
244
|
--solaris-icon-button-color: var(--solaris-success-on-solid);
|
|
245
|
+
--solaris-icon-button-background: var(--solaris-success-base);
|
|
246
246
|
--solaris-icon-button-focus-ring-color: var(--solaris-success-base);
|
|
247
247
|
--solaris-icon-button-hover-background: var(--solaris-success-hover);
|
|
248
248
|
--solaris-icon-button-active-background: var(--solaris-success-active);
|
|
@@ -282,11 +282,11 @@
|
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
[solaris-icon-button][data-color='warning'][data-appearance='solid'] {
|
|
285
|
-
--solaris-icon-button-background: var(--solaris-warning-base);
|
|
286
285
|
--solaris-icon-button-color: var(--solaris-warning-on-solid);
|
|
286
|
+
--solaris-icon-button-background: var(--solaris-warning-base);
|
|
287
|
+
--solaris-icon-button-focus-ring-color: var(--solaris-warning-base);
|
|
287
288
|
--solaris-icon-button-hover-background: var(--solaris-warning-hover);
|
|
288
289
|
--solaris-icon-button-active-background: var(--solaris-warning-active);
|
|
289
|
-
--solaris-icon-button-focus-ring-color: var(--solaris-warning-base);
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
[solaris-icon-button][data-color='warning'][data-appearance='outline'] {
|
|
@@ -323,8 +323,8 @@
|
|
|
323
323
|
}
|
|
324
324
|
|
|
325
325
|
[solaris-icon-button][data-color='danger'][data-appearance='solid'] {
|
|
326
|
-
--solaris-icon-button-background: var(--solaris-danger-base);
|
|
327
326
|
--solaris-icon-button-color: var(--solaris-danger-on-solid);
|
|
327
|
+
--solaris-icon-button-background: var(--solaris-danger-base);
|
|
328
328
|
--solaris-icon-button-focus-ring-color: var(--solaris-danger-base);
|
|
329
329
|
--solaris-icon-button-hover-background: var(--solaris-danger-hover);
|
|
330
330
|
--solaris-icon-button-active-background: var(--solaris-danger-active);
|
|
@@ -436,18 +436,21 @@
|
|
|
436
436
|
}
|
|
437
437
|
|
|
438
438
|
[solaris-icon-button][data-size='sm'] {
|
|
439
|
-
font-size: var(--solaris-font-size-sm);
|
|
440
439
|
--solaris-icon-button-size: var(--solaris-spacing-8);
|
|
440
|
+
|
|
441
|
+
font-size: var(--solaris-font-size-sm);
|
|
441
442
|
}
|
|
442
443
|
|
|
443
444
|
[solaris-icon-button][data-size='md'] {
|
|
444
|
-
font-size: var(--solaris-font-size-md);
|
|
445
445
|
--solaris-icon-button-size: var(--solaris-spacing-10);
|
|
446
|
+
|
|
447
|
+
font-size: var(--solaris-font-size-md);
|
|
446
448
|
}
|
|
447
449
|
|
|
448
450
|
[solaris-icon-button][data-size='lg'] {
|
|
449
|
-
font-size: var(--solaris-font-size-lg);
|
|
450
451
|
--solaris-icon-button-size: var(--solaris-spacing-12);
|
|
452
|
+
|
|
453
|
+
font-size: var(--solaris-font-size-lg);
|
|
451
454
|
}
|
|
452
455
|
|
|
453
456
|
[solaris-icon-button][data-radius='none'] {
|
|
@@ -471,11 +474,13 @@
|
|
|
471
474
|
}
|
|
472
475
|
|
|
473
476
|
[solaris-icon-button][data-density='compact'] {
|
|
474
|
-
font-size: var(--solaris-font-size-sm);
|
|
475
477
|
--solaris-icon-button-size: var(--solaris-density-min-height);
|
|
478
|
+
|
|
479
|
+
font-size: var(--solaris-font-size-sm);
|
|
476
480
|
}
|
|
477
481
|
|
|
478
482
|
[solaris-icon-button][data-density='comfortable'] {
|
|
479
|
-
font-size: var(--solaris-font-size-md);
|
|
480
483
|
--solaris-icon-button-size: var(--solaris-density-min-height);
|
|
484
|
+
|
|
485
|
+
font-size: var(--solaris-font-size-md);
|
|
481
486
|
}
|
package/styles/_index.scss
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/// Solaris UI — Design System Styles
|
|
2
2
|
///
|
|
3
3
|
/// Public entry point for the Solaris design system SCSS API.
|
|
4
|
+
/// All tokens use browser default font-size (1rem = 16px).
|
|
4
5
|
///
|
|
5
6
|
/// Usage:
|
|
6
7
|
/// @use '@solaris-ui/angular/styles' as solaris;
|
|
7
8
|
///
|
|
8
|
-
/// // Apply core foundation
|
|
9
|
-
/// @include solaris.core(
|
|
9
|
+
/// // Apply core foundation
|
|
10
|
+
/// @include solaris.core();
|
|
10
11
|
///
|
|
11
12
|
/// // Apply theme tokens
|
|
12
13
|
/// @include solaris.theme((
|
package/styles/_input.scss
CHANGED
|
@@ -1,47 +1,49 @@
|
|
|
1
1
|
input[solaris-input] {
|
|
2
|
-
--solaris-input-
|
|
3
|
-
--solaris-input-
|
|
4
|
-
--solaris-input-
|
|
5
|
-
--solaris-input-
|
|
6
|
-
--solaris-input-
|
|
7
|
-
--solaris-input-
|
|
8
|
-
--solaris-input-
|
|
9
|
-
--solaris-input-
|
|
10
|
-
--solaris-input-
|
|
11
|
-
--solaris-input-
|
|
12
|
-
--solaris-input-
|
|
13
|
-
--solaris-input-
|
|
14
|
-
--solaris-input-
|
|
15
|
-
--solaris-input-
|
|
16
|
-
--solaris-input-readonly-background:
|
|
2
|
+
--solaris-input-radius: var(--solaris-radius-sm);
|
|
3
|
+
--solaris-input-height: var(--solaris-spacing-10);
|
|
4
|
+
--solaris-input-color: var(--solaris-text-default);
|
|
5
|
+
--solaris-input-padding-x: var(--solaris-spacing-3);
|
|
6
|
+
--solaris-input-padding-y: var(--solaris-spacing-2);
|
|
7
|
+
--solaris-input-font-size: var(--solaris-font-size-md);
|
|
8
|
+
--solaris-input-background: var(--solaris-surface-base);
|
|
9
|
+
--solaris-input-line-height: var(--solaris-line-height-md);
|
|
10
|
+
--solaris-input-border-color: var(--solaris-border-default);
|
|
11
|
+
--solaris-input-disabled-opacity: var(--solaris-opacity-50);
|
|
12
|
+
--solaris-input-border-width: var(--solaris-border-width-sm);
|
|
13
|
+
--solaris-input-placeholder-color: var(--solaris-text-muted);
|
|
14
|
+
--solaris-input-focus-ring-color: var(--solaris-primary-base);
|
|
15
|
+
--solaris-input-invalid-border-color: var(--solaris-danger-base);
|
|
16
|
+
--solaris-input-readonly-background: var(--solaris-surface-muted);
|
|
17
17
|
|
|
18
|
-
font-family: var(--solaris-font-family-sans), system-ui;
|
|
19
|
-
box-sizing: border-box;
|
|
20
18
|
margin: 0;
|
|
21
19
|
width: 100%;
|
|
20
|
+
outline: none;
|
|
21
|
+
box-sizing: border-box;
|
|
22
22
|
color: var(--solaris-input-color);
|
|
23
|
-
background: var(--solaris-input-background);
|
|
24
|
-
border: var(--solaris-input-border-width) solid
|
|
25
|
-
var(--solaris-input-border-color);
|
|
26
|
-
border-radius: var(--solaris-input-radius);
|
|
27
23
|
height: var(--solaris-input-height);
|
|
28
|
-
padding: var(--solaris-input-padding-y) var(--solaris-input-padding-x);
|
|
29
24
|
font-size: var(--solaris-input-font-size);
|
|
25
|
+
border-radius: var(--solaris-input-radius);
|
|
26
|
+
background: var(--solaris-input-background);
|
|
30
27
|
line-height: var(--solaris-input-line-height);
|
|
31
|
-
|
|
28
|
+
font-family: var(--solaris-font-family-sans), system-ui;
|
|
29
|
+
padding: var(--solaris-input-padding-y) var(--solaris-input-padding-x);
|
|
30
|
+
border: var(--solaris-input-border-width) solid
|
|
31
|
+
var(--solaris-input-border-color);
|
|
32
32
|
transition:
|
|
33
|
-
border-color var(--solaris-motion-duration-fast
|
|
34
|
-
|
|
33
|
+
border-color var(--solaris-motion-duration-fast)
|
|
34
|
+
var(--solaris-motion-easing-standard),
|
|
35
|
+
box-shadow var(--solaris-motion-duration-fast)
|
|
36
|
+
var(--solaris-motion-easing-standard);
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
input[solaris-input]::placeholder {
|
|
38
|
-
color: var(--solaris-input-placeholder-color);
|
|
39
40
|
opacity: 1;
|
|
41
|
+
color: var(--solaris-input-placeholder-color);
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
input[solaris-input]:focus-visible {
|
|
43
|
-
border-color: var(--solaris-input-focus-ring-color);
|
|
44
45
|
// SOLARIS_TOKEN_EXCEPTION: Focus ring box-shadow uses CSS var with tokenized color. Hardcoded spread is required by design.
|
|
46
|
+
border-color: var(--solaris-input-focus-ring-color);
|
|
45
47
|
box-shadow: 0 0 0 2px var(--solaris-input-focus-ring-color);
|
|
46
48
|
}
|
|
47
49
|
|
|
@@ -50,8 +52,8 @@ input[solaris-input][data-invalid] {
|
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
input[solaris-input][data-invalid]:focus-visible {
|
|
53
|
-
border-color: var(--solaris-input-invalid-border-color);
|
|
54
55
|
// SOLARIS_TOKEN_EXCEPTION: Invalid state focus ring box-shadow uses CSS var. Hardcoded spread required by design.
|
|
56
|
+
border-color: var(--solaris-input-invalid-border-color);
|
|
55
57
|
box-shadow: 0 0 0 2px var(--solaris-input-invalid-border-color);
|
|
56
58
|
}
|
|
57
59
|
|
|
@@ -61,8 +63,8 @@ input[solaris-input]:disabled {
|
|
|
61
63
|
}
|
|
62
64
|
|
|
63
65
|
input[solaris-input][readonly] {
|
|
64
|
-
background: var(--solaris-input-readonly-background);
|
|
65
66
|
cursor: default;
|
|
67
|
+
background: var(--solaris-input-readonly-background);
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
input[solaris-input]::-webkit-search-decoration,
|
|
@@ -79,46 +81,46 @@ input[solaris-input]::-webkit-outer-spin-button {
|
|
|
79
81
|
|
|
80
82
|
input[solaris-input]:autofill,
|
|
81
83
|
input[solaris-input]:-webkit-autofill {
|
|
82
|
-
-webkit-text-fill-color: var(--solaris-input-color);
|
|
83
84
|
// SOLARIS_TOKEN_EXCEPTION: WebKit autofill requires hardcoded box-shadow inset to override browser default yellow background.
|
|
85
|
+
transition: background-color 5000s var(--solaris-motion-easing-standard) 0s;
|
|
86
|
+
-webkit-text-fill-color: var(--solaris-input-color);
|
|
84
87
|
-webkit-box-shadow: 0 0 0 30px var(--solaris-input-background) inset;
|
|
85
|
-
transition: background-color 5000s ease-in-out 0s;
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
input[solaris-input][data-appearance='outline'] {
|
|
89
|
-
--solaris-input-background: var(--solaris-surface-base);
|
|
90
91
|
--solaris-input-color: var(--solaris-text-default);
|
|
92
|
+
--solaris-input-background: var(--solaris-surface-base);
|
|
91
93
|
--solaris-input-border-color: var(--solaris-border-default);
|
|
94
|
+
--solaris-input-disabled-opacity: var(--solaris-opacity-50);
|
|
92
95
|
--solaris-input-border-width: var(--solaris-border-width-sm);
|
|
93
96
|
--solaris-input-placeholder-color: var(--solaris-text-muted);
|
|
94
97
|
--solaris-input-focus-ring-color: var(--solaris-primary-base);
|
|
95
98
|
--solaris-input-invalid-border-color: var(--solaris-danger-base);
|
|
96
|
-
--solaris-input-disabled-opacity: 0.5;
|
|
97
99
|
--solaris-input-readonly-background: var(--solaris-surface-muted);
|
|
98
100
|
}
|
|
99
101
|
|
|
100
102
|
input[solaris-input][data-appearance='surface'] {
|
|
101
|
-
--solaris-input-background: var(--solaris-surface-muted);
|
|
102
103
|
--solaris-input-color: var(--solaris-text-default);
|
|
104
|
+
--solaris-input-background: var(--solaris-surface-muted);
|
|
103
105
|
--solaris-input-border-color: var(--solaris-border-subtle);
|
|
106
|
+
--solaris-input-disabled-opacity: var(--solaris-opacity-50);
|
|
104
107
|
--solaris-input-border-width: var(--solaris-border-width-sm);
|
|
105
108
|
--solaris-input-placeholder-color: var(--solaris-text-muted);
|
|
106
109
|
--solaris-input-focus-ring-color: var(--solaris-primary-base);
|
|
107
110
|
--solaris-input-invalid-border-color: var(--solaris-danger-base);
|
|
108
|
-
--solaris-input-disabled-opacity: 0.5;
|
|
109
111
|
--solaris-input-readonly-background: var(--solaris-surface-base);
|
|
110
112
|
}
|
|
111
113
|
|
|
112
114
|
input[solaris-input][data-appearance='filled'] {
|
|
113
|
-
--solaris-input-background: var(--solaris-surface-muted);
|
|
114
|
-
--solaris-input-color: var(--solaris-text-default);
|
|
115
115
|
--solaris-input-border-color: transparent;
|
|
116
|
-
--solaris-input-
|
|
116
|
+
--solaris-input-color: var(--solaris-text-default);
|
|
117
|
+
--solaris-input-background: var(--solaris-surface-muted);
|
|
118
|
+
--solaris-input-disabled-opacity: var(--solaris-opacity-50);
|
|
117
119
|
--solaris-input-placeholder-color: var(--solaris-text-muted);
|
|
118
120
|
--solaris-input-focus-ring-color: var(--solaris-primary-base);
|
|
119
121
|
--solaris-input-invalid-border-color: var(--solaris-danger-base);
|
|
120
|
-
--solaris-input-disabled-opacity: 0.5;
|
|
121
122
|
--solaris-input-readonly-background: var(--solaris-surface-base);
|
|
123
|
+
--solaris-input-border-width: 0 0 var(--solaris-border-width-sm) 0;
|
|
122
124
|
}
|
|
123
125
|
|
|
124
126
|
input[solaris-input][data-size='sm'] {
|
|
@@ -147,13 +149,13 @@ input[solaris-input][data-size='lg'] {
|
|
|
147
149
|
|
|
148
150
|
input[solaris-input][data-density='compact'] {
|
|
149
151
|
--solaris-input-height: var(--solaris-density-min-height);
|
|
150
|
-
--solaris-input-padding-y: var(--solaris-density-padding-xs);
|
|
151
152
|
--solaris-input-line-height: var(--solaris-line-height-sm);
|
|
153
|
+
--solaris-input-padding-y: var(--solaris-density-padding-xs);
|
|
152
154
|
}
|
|
153
155
|
|
|
154
156
|
input[solaris-input][data-density='comfortable'] {
|
|
155
|
-
--solaris-input-padding-y: var(--solaris-density-padding-sm);
|
|
156
157
|
--solaris-input-line-height: var(--solaris-line-height-md);
|
|
158
|
+
--solaris-input-padding-y: var(--solaris-density-padding-sm);
|
|
157
159
|
}
|
|
158
160
|
|
|
159
161
|
input[solaris-input][data-radius='none'] {
|
|
@@ -189,27 +191,27 @@ input[solaris-input][data-full-width] {
|
|
|
189
191
|
@media (prefers-color-scheme: dark) {
|
|
190
192
|
input[solaris-input]:autofill,
|
|
191
193
|
input[solaris-input]:-webkit-autofill {
|
|
192
|
-
-webkit-text-fill-color: var(--solaris-input-color);
|
|
193
194
|
// SOLARIS_TOKEN_EXCEPTION: WebKit autofill dark mode requires hardcoded box-shadow inset override.
|
|
195
|
+
-webkit-text-fill-color: var(--solaris-input-color);
|
|
194
196
|
-webkit-box-shadow: 0 0 0 30px var(--solaris-input-background) inset;
|
|
195
197
|
}
|
|
196
198
|
}
|
|
197
199
|
|
|
198
200
|
solaris-form-field input[solaris-input] {
|
|
199
|
-
|
|
201
|
+
// SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
|
|
200
202
|
border: none;
|
|
201
|
-
border-radius: 0;
|
|
202
203
|
height: auto;
|
|
203
204
|
padding-left: 0;
|
|
205
|
+
border-radius: 0;
|
|
204
206
|
padding-right: 0;
|
|
205
|
-
// SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
|
|
206
207
|
box-shadow: none;
|
|
208
|
+
background: transparent;
|
|
207
209
|
}
|
|
208
210
|
|
|
209
211
|
solaris-form-field input[solaris-input]:focus-visible {
|
|
210
|
-
border-color: transparent;
|
|
211
212
|
// SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
|
|
212
213
|
box-shadow: none;
|
|
214
|
+
border-color: transparent;
|
|
213
215
|
}
|
|
214
216
|
|
|
215
217
|
solaris-form-field input[solaris-input][data-invalid] {
|
|
@@ -217,9 +219,9 @@ solaris-form-field input[solaris-input][data-invalid] {
|
|
|
217
219
|
}
|
|
218
220
|
|
|
219
221
|
solaris-form-field input[solaris-input][data-invalid]:focus-visible {
|
|
220
|
-
border-color: transparent;
|
|
221
222
|
// SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
|
|
222
223
|
box-shadow: none;
|
|
224
|
+
border-color: transparent;
|
|
223
225
|
}
|
|
224
226
|
|
|
225
227
|
solaris-form-field input[solaris-input][disabled] {
|
|
@@ -249,7 +251,7 @@ solaris-form-field input[solaris-input]::-webkit-search-results-decoration {
|
|
|
249
251
|
|
|
250
252
|
solaris-form-field input[solaris-input]:autofill,
|
|
251
253
|
solaris-form-field input[solaris-input]:-webkit-autofill {
|
|
252
|
-
-webkit-text-fill-color: var(--solaris-input-color);
|
|
253
254
|
// SOLARIS_TOKEN_EXCEPTION: WebKit autofill inside form-field requires hardcoded transparent box-shadow inset.
|
|
254
255
|
-webkit-box-shadow: 0 0 0 30px transparent inset;
|
|
256
|
+
-webkit-text-fill-color: var(--solaris-input-color);
|
|
255
257
|
}
|
package/styles/_textarea.scss
CHANGED
|
@@ -1,47 +1,51 @@
|
|
|
1
1
|
textarea[solaris-textarea] {
|
|
2
|
-
--solaris-textarea-
|
|
3
|
-
--solaris-textarea-color:
|
|
4
|
-
--solaris-textarea-
|
|
5
|
-
--solaris-textarea-
|
|
6
|
-
--solaris-textarea-
|
|
7
|
-
--solaris-textarea-
|
|
8
|
-
--solaris-textarea-
|
|
9
|
-
--solaris-textarea-
|
|
10
|
-
--solaris-textarea-
|
|
11
|
-
--solaris-textarea-
|
|
12
|
-
--solaris-textarea-placeholder-color:
|
|
13
|
-
--solaris-textarea-focus-ring-color:
|
|
14
|
-
--solaris-textarea-invalid-border-color:
|
|
15
|
-
--solaris-textarea-
|
|
16
|
-
--solaris-textarea-
|
|
2
|
+
--solaris-textarea-radius: var(--solaris-radius-sm);
|
|
3
|
+
--solaris-textarea-color: var(--solaris-text-default);
|
|
4
|
+
--solaris-textarea-padding-x: var(--solaris-spacing-3);
|
|
5
|
+
--solaris-textarea-padding-y: var(--solaris-spacing-2);
|
|
6
|
+
--solaris-textarea-font-size: var(--solaris-font-size-md);
|
|
7
|
+
--solaris-textarea-background: var(--solaris-surface-base);
|
|
8
|
+
--solaris-textarea-line-height: var(--solaris-line-height-md);
|
|
9
|
+
--solaris-textarea-border-color: var(--solaris-border-default);
|
|
10
|
+
--solaris-textarea-disabled-opacity: var(--solaris-opacity-50);
|
|
11
|
+
--solaris-textarea-border-width: var(--solaris-border-width-sm);
|
|
12
|
+
--solaris-textarea-placeholder-color: var(--solaris-text-muted);
|
|
13
|
+
--solaris-textarea-focus-ring-color: var(--solaris-primary-base);
|
|
14
|
+
--solaris-textarea-invalid-border-color: var(--solaris-danger-base);
|
|
15
|
+
--solaris-textarea-readonly-background: var(--solaris-surface-muted);
|
|
16
|
+
--solaris-textarea-min-height: calc(
|
|
17
|
+
var(--solaris-spacing-8) + var(--solaris-spacing-1)
|
|
18
|
+
);
|
|
17
19
|
|
|
18
|
-
font-family: var(--solaris-font-family-sans), system-ui;
|
|
19
|
-
box-sizing: border-box;
|
|
20
20
|
margin: 0;
|
|
21
21
|
width: 100%;
|
|
22
|
+
outline: none;
|
|
23
|
+
box-sizing: border-box;
|
|
22
24
|
color: var(--solaris-textarea-color);
|
|
23
|
-
|
|
24
|
-
border: var(--solaris-textarea-border-width) solid
|
|
25
|
-
var(--solaris-textarea-border-color);
|
|
25
|
+
font-size: var(--solaris-textarea-font-size);
|
|
26
26
|
border-radius: var(--solaris-textarea-radius);
|
|
27
|
+
background: var(--solaris-textarea-background);
|
|
27
28
|
min-height: var(--solaris-textarea-min-height);
|
|
28
|
-
padding: var(--solaris-textarea-padding-y) var(--solaris-textarea-padding-x);
|
|
29
|
-
font-size: var(--solaris-textarea-font-size);
|
|
30
29
|
line-height: var(--solaris-textarea-line-height);
|
|
31
|
-
|
|
30
|
+
font-family: var(--solaris-font-family-sans), system-ui;
|
|
31
|
+
padding: var(--solaris-textarea-padding-y) var(--solaris-textarea-padding-x);
|
|
32
|
+
border: var(--solaris-textarea-border-width) solid
|
|
33
|
+
var(--solaris-textarea-border-color);
|
|
32
34
|
transition:
|
|
33
|
-
border-color var(--solaris-motion-duration-fast
|
|
34
|
-
|
|
35
|
+
border-color var(--solaris-motion-duration-fast)
|
|
36
|
+
var(--solaris-motion-easing-standard),
|
|
37
|
+
box-shadow var(--solaris-motion-duration-fast)
|
|
38
|
+
var(--solaris-motion-easing-standard);
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
textarea[solaris-textarea]::placeholder {
|
|
38
|
-
color: var(--solaris-textarea-placeholder-color);
|
|
39
42
|
opacity: 1;
|
|
43
|
+
color: var(--solaris-textarea-placeholder-color);
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
textarea[solaris-textarea]:focus-visible {
|
|
43
|
-
border-color: var(--solaris-textarea-focus-ring-color);
|
|
44
47
|
// SOLARIS_TOKEN_EXCEPTION: Focus ring box-shadow uses CSS var with tokenized color. Hardcoded spread required by design.
|
|
48
|
+
border-color: var(--solaris-textarea-focus-ring-color);
|
|
45
49
|
box-shadow: 0 0 0 2px var(--solaris-textarea-focus-ring-color);
|
|
46
50
|
}
|
|
47
51
|
|
|
@@ -50,8 +54,8 @@ textarea[solaris-textarea][data-invalid] {
|
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
textarea[solaris-textarea][data-invalid]:focus-visible {
|
|
53
|
-
border-color: var(--solaris-textarea-invalid-border-color);
|
|
54
57
|
// SOLARIS_TOKEN_EXCEPTION: Invalid state focus ring box-shadow uses CSS var. Hardcoded spread required by design.
|
|
58
|
+
border-color: var(--solaris-textarea-invalid-border-color);
|
|
55
59
|
box-shadow: 0 0 0 2px var(--solaris-textarea-invalid-border-color);
|
|
56
60
|
}
|
|
57
61
|
|
|
@@ -61,82 +65,84 @@ textarea[solaris-textarea]:disabled {
|
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
textarea[solaris-textarea][readonly] {
|
|
64
|
-
background: var(--solaris-textarea-readonly-background);
|
|
65
68
|
cursor: default;
|
|
69
|
+
background: var(--solaris-textarea-readonly-background);
|
|
66
70
|
}
|
|
67
71
|
|
|
68
72
|
textarea[solaris-textarea][data-appearance='outline'] {
|
|
69
|
-
--solaris-textarea-background: var(--solaris-surface-base);
|
|
70
73
|
--solaris-textarea-color: var(--solaris-text-default);
|
|
74
|
+
--solaris-textarea-background: var(--solaris-surface-base);
|
|
71
75
|
--solaris-textarea-border-color: var(--solaris-border-default);
|
|
72
|
-
--solaris-textarea-
|
|
76
|
+
--solaris-textarea-disabled-opacity: var(--solaris-opacity-50);
|
|
77
|
+
--solaris-textarea-border-width: var(--solaris-border-width-sm);
|
|
73
78
|
--solaris-textarea-placeholder-color: var(--solaris-text-muted);
|
|
74
79
|
--solaris-textarea-focus-ring-color: var(--solaris-primary-base);
|
|
75
80
|
--solaris-textarea-invalid-border-color: var(--solaris-danger-base);
|
|
76
|
-
--solaris-textarea-disabled-opacity: 0.5;
|
|
77
81
|
--solaris-textarea-readonly-background: var(--solaris-surface-muted);
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
textarea[solaris-textarea][data-appearance='surface'] {
|
|
81
|
-
--solaris-textarea-background: var(--solaris-surface-muted);
|
|
82
85
|
--solaris-textarea-color: var(--solaris-text-default);
|
|
86
|
+
--solaris-textarea-background: var(--solaris-surface-muted);
|
|
83
87
|
--solaris-textarea-border-color: var(--solaris-border-subtle);
|
|
84
|
-
--solaris-textarea-
|
|
88
|
+
--solaris-textarea-disabled-opacity: var(--solaris-opacity-50);
|
|
89
|
+
--solaris-textarea-border-width: var(--solaris-border-width-sm);
|
|
85
90
|
--solaris-textarea-placeholder-color: var(--solaris-text-muted);
|
|
86
91
|
--solaris-textarea-focus-ring-color: var(--solaris-primary-base);
|
|
87
92
|
--solaris-textarea-invalid-border-color: var(--solaris-danger-base);
|
|
88
|
-
--solaris-textarea-disabled-opacity: 0.5;
|
|
89
93
|
--solaris-textarea-readonly-background: var(--solaris-surface-base);
|
|
90
94
|
}
|
|
91
95
|
|
|
92
96
|
textarea[solaris-textarea][data-appearance='filled'] {
|
|
93
|
-
--solaris-textarea-background: var(--solaris-surface-muted);
|
|
94
|
-
--solaris-textarea-color: var(--solaris-text-default);
|
|
95
97
|
--solaris-textarea-border-color: transparent;
|
|
96
|
-
--solaris-textarea-
|
|
98
|
+
--solaris-textarea-color: var(--solaris-text-default);
|
|
99
|
+
--solaris-textarea-background: var(--solaris-surface-muted);
|
|
100
|
+
--solaris-textarea-disabled-opacity: var(--solaris-opacity-50);
|
|
97
101
|
--solaris-textarea-placeholder-color: var(--solaris-text-muted);
|
|
98
102
|
--solaris-textarea-focus-ring-color: var(--solaris-primary-base);
|
|
99
103
|
--solaris-textarea-invalid-border-color: var(--solaris-danger-base);
|
|
100
|
-
--solaris-textarea-disabled-opacity: 0.5;
|
|
101
104
|
--solaris-textarea-readonly-background: var(--solaris-surface-base);
|
|
105
|
+
--solaris-textarea-border-width: 0 0 var(--solaris-border-width-sm) 0;
|
|
102
106
|
}
|
|
103
107
|
|
|
104
108
|
textarea[solaris-textarea][data-size='sm'] {
|
|
105
109
|
--solaris-textarea-padding-x: var(--solaris-spacing-2);
|
|
106
|
-
--solaris-textarea-
|
|
107
|
-
--solaris-textarea-
|
|
110
|
+
--solaris-textarea-min-height: var(--solaris-spacing-8);
|
|
111
|
+
--solaris-textarea-padding-y: var(--solaris-spacing-half);
|
|
108
112
|
--solaris-textarea-font-size: var(--solaris-font-size-sm);
|
|
109
113
|
--solaris-textarea-line-height: var(--solaris-line-height-sm);
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
textarea[solaris-textarea][data-size='md'] {
|
|
113
117
|
--solaris-textarea-padding-x: var(--solaris-spacing-3);
|
|
114
|
-
--solaris-textarea-padding-y:
|
|
115
|
-
--solaris-textarea-min-height: 3.5rem;
|
|
118
|
+
--solaris-textarea-padding-y: var(--solaris-spacing-1);
|
|
116
119
|
--solaris-textarea-font-size: var(--solaris-font-size-md);
|
|
117
120
|
--solaris-textarea-line-height: var(--solaris-line-height-md);
|
|
121
|
+
--solaris-textarea-min-height: calc(
|
|
122
|
+
var(--solaris-spacing-8) + var(--solaris-spacing-1)
|
|
123
|
+
);
|
|
118
124
|
}
|
|
119
125
|
|
|
120
126
|
textarea[solaris-textarea][data-size='lg'] {
|
|
121
127
|
--solaris-textarea-padding-x: var(--solaris-spacing-4);
|
|
122
|
-
--solaris-textarea-padding-y:
|
|
123
|
-
--solaris-textarea-min-height:
|
|
128
|
+
--solaris-textarea-padding-y: var(--solaris-spacing-1);
|
|
129
|
+
--solaris-textarea-min-height: var(--solaris-spacing-10);
|
|
124
130
|
--solaris-textarea-font-size: var(--solaris-font-size-lg);
|
|
125
131
|
--solaris-textarea-line-height: var(--solaris-line-height-lg);
|
|
126
132
|
}
|
|
127
133
|
|
|
128
134
|
textarea[solaris-textarea][data-density='compact'] {
|
|
129
|
-
--solaris-textarea-padding-y: 0.1875rem;
|
|
130
135
|
--solaris-textarea-line-height: var(--solaris-line-height-sm);
|
|
136
|
+
--solaris-textarea-padding-y: var(--solaris-spacing-half);
|
|
131
137
|
}
|
|
132
138
|
|
|
133
139
|
textarea[solaris-textarea][data-density='comfortable'] {
|
|
134
|
-
--solaris-textarea-padding-y:
|
|
140
|
+
--solaris-textarea-padding-y: var(--solaris-spacing-1);
|
|
135
141
|
--solaris-textarea-line-height: var(--solaris-line-height-md);
|
|
136
142
|
}
|
|
137
143
|
|
|
138
144
|
textarea[solaris-textarea][data-radius='none'] {
|
|
139
|
-
--solaris-textarea-radius:
|
|
145
|
+
--solaris-textarea-radius: var(--solaris-radius-none);
|
|
140
146
|
}
|
|
141
147
|
|
|
142
148
|
textarea[solaris-textarea][data-radius='sm'] {
|
|
@@ -184,26 +190,26 @@ textarea[solaris-textarea][data-full-width] {
|
|
|
184
190
|
@media (prefers-color-scheme: dark) {
|
|
185
191
|
textarea[solaris-textarea]:autofill,
|
|
186
192
|
textarea[solaris-textarea]:-webkit-autofill {
|
|
187
|
-
-webkit-text-fill-color: var(--solaris-textarea-color);
|
|
188
193
|
// SOLARIS_TOKEN_EXCEPTION: WebKit autofill dark mode requires hardcoded box-shadow inset to override browser default.
|
|
194
|
+
-webkit-text-fill-color: var(--solaris-textarea-color);
|
|
189
195
|
-webkit-box-shadow: 0 0 0 30px var(--solaris-textarea-background) inset;
|
|
190
196
|
}
|
|
191
197
|
}
|
|
192
198
|
|
|
193
199
|
solaris-form-field textarea[solaris-textarea] {
|
|
194
|
-
|
|
200
|
+
// SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
|
|
195
201
|
border: none;
|
|
196
|
-
border-radius: 0;
|
|
197
202
|
padding-left: 0;
|
|
203
|
+
border-radius: 0;
|
|
198
204
|
padding-right: 0;
|
|
199
|
-
// SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
|
|
200
205
|
box-shadow: none;
|
|
206
|
+
background: transparent;
|
|
201
207
|
}
|
|
202
208
|
|
|
203
209
|
solaris-form-field textarea[solaris-textarea]:focus-visible {
|
|
204
|
-
border-color: transparent;
|
|
205
210
|
// SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
|
|
206
211
|
box-shadow: none;
|
|
212
|
+
border-color: transparent;
|
|
207
213
|
}
|
|
208
214
|
|
|
209
215
|
solaris-form-field textarea[solaris-textarea][data-invalid] {
|
|
@@ -211,9 +217,9 @@ solaris-form-field textarea[solaris-textarea][data-invalid] {
|
|
|
211
217
|
}
|
|
212
218
|
|
|
213
219
|
solaris-form-field textarea[solaris-textarea][data-invalid]:focus-visible {
|
|
214
|
-
border-color: transparent;
|
|
215
220
|
// SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
|
|
216
221
|
box-shadow: none;
|
|
222
|
+
border-color: transparent;
|
|
217
223
|
}
|
|
218
224
|
|
|
219
225
|
solaris-form-field textarea[solaris-textarea][disabled] {
|
|
@@ -225,18 +231,18 @@ solaris-form-field textarea[solaris-textarea][readonly] {
|
|
|
225
231
|
}
|
|
226
232
|
|
|
227
233
|
solaris-form-field textarea[solaris-textarea][data-density='compact'] {
|
|
228
|
-
padding-top:
|
|
229
|
-
padding-bottom:
|
|
234
|
+
padding-top: var(--solaris-spacing-half);
|
|
235
|
+
padding-bottom: var(--solaris-spacing-half);
|
|
230
236
|
}
|
|
231
237
|
|
|
232
238
|
solaris-form-field textarea[solaris-textarea][data-density='comfortable'] {
|
|
233
|
-
padding-top:
|
|
234
|
-
padding-bottom:
|
|
239
|
+
padding-top: var(--solaris-spacing-1);
|
|
240
|
+
padding-bottom: var(--solaris-spacing-1);
|
|
235
241
|
}
|
|
236
242
|
|
|
237
243
|
solaris-form-field textarea[solaris-textarea]:autofill,
|
|
238
244
|
solaris-form-field textarea[solaris-textarea]:-webkit-autofill {
|
|
239
|
-
-webkit-text-fill-color: var(--solaris-textarea-color);
|
|
240
245
|
// SOLARIS_TOKEN_EXCEPTION: WebKit autofill inside form-field requires hardcoded transparent box-shadow inset.
|
|
241
246
|
-webkit-box-shadow: 0 0 0 30px transparent inset;
|
|
247
|
+
-webkit-text-fill-color: var(--solaris-textarea-color);
|
|
242
248
|
}
|