@educarehq/solaris-ui 0.3.2 → 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.
Files changed (43) hide show
  1. package/fesm2022/educarehq-solaris-ui.mjs +1229 -911
  2. package/fesm2022/educarehq-solaris-ui.mjs.map +1 -1
  3. package/package.json +20 -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 +584 -510
  16. package/styles/_core.scss +13 -37
  17. package/styles/_dropdown-menu.scss +70 -72
  18. package/styles/_icon-button.scss +486 -481
  19. package/styles/_index.scss +28 -19
  20. package/styles/_input.scss +257 -255
  21. package/styles/_popover.scss +73 -73
  22. package/styles/_textarea.scss +248 -0
  23. package/styles/_theme.scss +35 -1
  24. package/styles/_toast.scss +9 -9
  25. package/styles/_tooltip.scss +5 -3
  26. package/styles/token/border/_border.scss +4 -3
  27. package/styles/token/color/_dark.scss +5 -2
  28. package/styles/token/color/_high-contrast.scss +116 -0
  29. package/styles/token/color/_light.scss +3 -0
  30. package/styles/token/density/_comfortable.scss +11 -11
  31. package/styles/token/density/_compact.scss +11 -11
  32. package/styles/token/focus/_focus.scss +16 -0
  33. package/styles/token/focus/_index.scss +1 -0
  34. package/styles/token/glass/_glass.scss +17 -0
  35. package/styles/token/glass/_index.scss +1 -0
  36. package/styles/token/motion/_motion.scss +1 -0
  37. package/styles/token/opacity/_opacity.scss +9 -0
  38. package/styles/token/radius/_radius.scss +4 -4
  39. package/styles/token/shadow/_shadow.scss +34 -20
  40. package/styles/token/spacing/_spacing.scss +15 -12
  41. package/styles/token/typography/_typography.scss +10 -9
  42. package/styles/token/z-index/_z-index.scss +3 -0
  43. package/types/educarehq-solaris-ui.d.ts +282 -106
@@ -1,73 +1,73 @@
1
- .solaris-popover-panel-overlay {
2
- z-index: var(--solaris-z-index-popover);
3
- }
4
-
5
- .solaris-popover-panel {
6
- --solaris-popover-border-width: 0;
7
- --solaris-popover-min-width: auto;
8
- --solaris-popover-max-width: none;
9
- --solaris-popover-border-color: transparent;
10
- --solaris-popover-radius: var(--solaris-radius-md);
11
- --solaris-popover-shadow: var(--solaris-shadow-lg);
12
- --solaris-popover-padding: var(--solaris-spacing-3);
13
- --solaris-popover-color: var(--solaris-text-default);
14
- --solaris-popover-background: var(--solaris-surface-raised);
15
-
16
- outline: none;
17
- display: block;
18
- }
19
-
20
- .solaris-popover-panel__container {
21
- outline: none;
22
- box-sizing: border-box;
23
- color: var(--solaris-popover-color);
24
- padding: var(--solaris-popover-padding);
25
- box-shadow: var(--solaris-popover-shadow);
26
- min-width: var(--solaris-popover-min-width);
27
- max-width: var(--solaris-popover-max-width);
28
- border-radius: var(--solaris-popover-radius);
29
- background: var(--solaris-popover-background);
30
- border: var(--solaris-popover-border-width) solid
31
- var(--solaris-popover-border-color);
32
- }
33
-
34
- .solaris-popover-panel__container[data-appearance='outline'] {
35
- background: var(--solaris-surface-base);
36
- border: var(--solaris-border-width-sm) solid var(--solaris-border-subtle);
37
- }
38
-
39
- .solaris-popover-panel__container[data-padding='none'] {
40
- --solaris-popover-padding: 0;
41
- }
42
-
43
- .solaris-popover-panel__container[data-padding='sm'] {
44
- --solaris-popover-padding: var(--solaris-spacing-2);
45
- }
46
-
47
- .solaris-popover-panel__container[data-padding='md'] {
48
- --solaris-popover-padding: var(--solaris-spacing-3);
49
- }
50
-
51
- .solaris-popover-panel__container[data-padding='lg'] {
52
- --solaris-popover-padding: var(--solaris-spacing-4);
53
- }
54
-
55
- .solaris-popover-panel__container[data-radius='none'] {
56
- border-radius: var(--solaris-radius-none);
57
- }
58
-
59
- .solaris-popover-panel__container[data-radius='sm'] {
60
- border-radius: var(--solaris-radius-sm);
61
- }
62
-
63
- .solaris-popover-panel__container[data-radius='md'] {
64
- border-radius: var(--solaris-radius-md);
65
- }
66
-
67
- .solaris-popover-panel__container[data-radius='lg'] {
68
- border-radius: var(--solaris-radius-lg);
69
- }
70
-
71
- .solaris-popover-panel__container[data-radius='xl'] {
72
- border-radius: var(--solaris-radius-xl);
73
- }
1
+ .solaris-popover-panel-overlay {
2
+ z-index: var(--solaris-z-index-popover);
3
+ }
4
+
5
+ .solaris-popover-panel {
6
+ --solaris-popover-border-width: 0;
7
+ --solaris-popover-min-width: auto;
8
+ --solaris-popover-max-width: none;
9
+ --solaris-popover-border-color: transparent;
10
+ --solaris-popover-radius: var(--solaris-radius-md);
11
+ --solaris-popover-shadow: var(--solaris-shadow-lg);
12
+ --solaris-popover-padding: var(--solaris-spacing-3);
13
+ --solaris-popover-color: var(--solaris-text-default);
14
+ --solaris-popover-background: var(--solaris-surface-raised);
15
+
16
+ outline: none;
17
+ display: block;
18
+ }
19
+
20
+ .solaris-popover-panel__container {
21
+ outline: none;
22
+ box-sizing: border-box;
23
+ color: var(--solaris-popover-color);
24
+ padding: var(--solaris-popover-padding);
25
+ box-shadow: var(--solaris-popover-shadow);
26
+ min-width: var(--solaris-popover-min-width);
27
+ max-width: var(--solaris-popover-max-width);
28
+ border-radius: var(--solaris-popover-radius);
29
+ background: var(--solaris-popover-background);
30
+ border: var(--solaris-popover-border-width) solid
31
+ var(--solaris-popover-border-color);
32
+ }
33
+
34
+ .solaris-popover-panel__container[data-appearance='outline'] {
35
+ background: var(--solaris-surface-base);
36
+ border: var(--solaris-border-width-sm) solid var(--solaris-border-subtle);
37
+ }
38
+
39
+ .solaris-popover-panel__container[data-padding='none'] {
40
+ --solaris-popover-padding: 0;
41
+ }
42
+
43
+ .solaris-popover-panel__container[data-padding='sm'] {
44
+ --solaris-popover-padding: var(--solaris-spacing-2);
45
+ }
46
+
47
+ .solaris-popover-panel__container[data-padding='md'] {
48
+ --solaris-popover-padding: var(--solaris-spacing-3);
49
+ }
50
+
51
+ .solaris-popover-panel__container[data-padding='lg'] {
52
+ --solaris-popover-padding: var(--solaris-spacing-4);
53
+ }
54
+
55
+ .solaris-popover-panel__container[data-radius='none'] {
56
+ border-radius: var(--solaris-radius-none);
57
+ }
58
+
59
+ .solaris-popover-panel__container[data-radius='sm'] {
60
+ border-radius: var(--solaris-radius-sm);
61
+ }
62
+
63
+ .solaris-popover-panel__container[data-radius='md'] {
64
+ border-radius: var(--solaris-radius-md);
65
+ }
66
+
67
+ .solaris-popover-panel__container[data-radius='lg'] {
68
+ border-radius: var(--solaris-radius-lg);
69
+ }
70
+
71
+ .solaris-popover-panel__container[data-radius='xl'] {
72
+ border-radius: var(--solaris-radius-xl);
73
+ }
@@ -0,0 +1,248 @@
1
+ textarea[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
+ );
19
+
20
+ margin: 0;
21
+ width: 100%;
22
+ outline: none;
23
+ box-sizing: border-box;
24
+ color: var(--solaris-textarea-color);
25
+ font-size: var(--solaris-textarea-font-size);
26
+ border-radius: var(--solaris-textarea-radius);
27
+ background: var(--solaris-textarea-background);
28
+ min-height: var(--solaris-textarea-min-height);
29
+ line-height: var(--solaris-textarea-line-height);
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);
34
+ transition:
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);
39
+ }
40
+
41
+ textarea[solaris-textarea]::placeholder {
42
+ opacity: 1;
43
+ color: var(--solaris-textarea-placeholder-color);
44
+ }
45
+
46
+ textarea[solaris-textarea]:focus-visible {
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);
49
+ box-shadow: 0 0 0 2px var(--solaris-textarea-focus-ring-color);
50
+ }
51
+
52
+ textarea[solaris-textarea][data-invalid] {
53
+ border-color: var(--solaris-textarea-invalid-border-color);
54
+ }
55
+
56
+ textarea[solaris-textarea][data-invalid]:focus-visible {
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);
59
+ box-shadow: 0 0 0 2px var(--solaris-textarea-invalid-border-color);
60
+ }
61
+
62
+ textarea[solaris-textarea]:disabled {
63
+ cursor: not-allowed;
64
+ opacity: var(--solaris-textarea-disabled-opacity);
65
+ }
66
+
67
+ textarea[solaris-textarea][readonly] {
68
+ cursor: default;
69
+ background: var(--solaris-textarea-readonly-background);
70
+ }
71
+
72
+ textarea[solaris-textarea][data-appearance='outline'] {
73
+ --solaris-textarea-color: var(--solaris-text-default);
74
+ --solaris-textarea-background: var(--solaris-surface-base);
75
+ --solaris-textarea-border-color: var(--solaris-border-default);
76
+ --solaris-textarea-disabled-opacity: var(--solaris-opacity-50);
77
+ --solaris-textarea-border-width: var(--solaris-border-width-sm);
78
+ --solaris-textarea-placeholder-color: var(--solaris-text-muted);
79
+ --solaris-textarea-focus-ring-color: var(--solaris-primary-base);
80
+ --solaris-textarea-invalid-border-color: var(--solaris-danger-base);
81
+ --solaris-textarea-readonly-background: var(--solaris-surface-muted);
82
+ }
83
+
84
+ textarea[solaris-textarea][data-appearance='surface'] {
85
+ --solaris-textarea-color: var(--solaris-text-default);
86
+ --solaris-textarea-background: var(--solaris-surface-muted);
87
+ --solaris-textarea-border-color: var(--solaris-border-subtle);
88
+ --solaris-textarea-disabled-opacity: var(--solaris-opacity-50);
89
+ --solaris-textarea-border-width: var(--solaris-border-width-sm);
90
+ --solaris-textarea-placeholder-color: var(--solaris-text-muted);
91
+ --solaris-textarea-focus-ring-color: var(--solaris-primary-base);
92
+ --solaris-textarea-invalid-border-color: var(--solaris-danger-base);
93
+ --solaris-textarea-readonly-background: var(--solaris-surface-base);
94
+ }
95
+
96
+ textarea[solaris-textarea][data-appearance='filled'] {
97
+ --solaris-textarea-border-color: transparent;
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);
101
+ --solaris-textarea-placeholder-color: var(--solaris-text-muted);
102
+ --solaris-textarea-focus-ring-color: var(--solaris-primary-base);
103
+ --solaris-textarea-invalid-border-color: var(--solaris-danger-base);
104
+ --solaris-textarea-readonly-background: var(--solaris-surface-base);
105
+ --solaris-textarea-border-width: 0 0 var(--solaris-border-width-sm) 0;
106
+ }
107
+
108
+ textarea[solaris-textarea][data-size='sm'] {
109
+ --solaris-textarea-padding-x: var(--solaris-spacing-2);
110
+ --solaris-textarea-min-height: var(--solaris-spacing-8);
111
+ --solaris-textarea-padding-y: var(--solaris-spacing-half);
112
+ --solaris-textarea-font-size: var(--solaris-font-size-sm);
113
+ --solaris-textarea-line-height: var(--solaris-line-height-sm);
114
+ }
115
+
116
+ textarea[solaris-textarea][data-size='md'] {
117
+ --solaris-textarea-padding-x: var(--solaris-spacing-3);
118
+ --solaris-textarea-padding-y: var(--solaris-spacing-1);
119
+ --solaris-textarea-font-size: var(--solaris-font-size-md);
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
+ );
124
+ }
125
+
126
+ textarea[solaris-textarea][data-size='lg'] {
127
+ --solaris-textarea-padding-x: var(--solaris-spacing-4);
128
+ --solaris-textarea-padding-y: var(--solaris-spacing-1);
129
+ --solaris-textarea-min-height: var(--solaris-spacing-10);
130
+ --solaris-textarea-font-size: var(--solaris-font-size-lg);
131
+ --solaris-textarea-line-height: var(--solaris-line-height-lg);
132
+ }
133
+
134
+ textarea[solaris-textarea][data-density='compact'] {
135
+ --solaris-textarea-line-height: var(--solaris-line-height-sm);
136
+ --solaris-textarea-padding-y: var(--solaris-spacing-half);
137
+ }
138
+
139
+ textarea[solaris-textarea][data-density='comfortable'] {
140
+ --solaris-textarea-padding-y: var(--solaris-spacing-1);
141
+ --solaris-textarea-line-height: var(--solaris-line-height-md);
142
+ }
143
+
144
+ textarea[solaris-textarea][data-radius='none'] {
145
+ --solaris-textarea-radius: var(--solaris-radius-none);
146
+ }
147
+
148
+ textarea[solaris-textarea][data-radius='sm'] {
149
+ --solaris-textarea-radius: var(--solaris-radius-sm);
150
+ }
151
+
152
+ textarea[solaris-textarea][data-radius='md'] {
153
+ --solaris-textarea-radius: var(--solaris-radius-md);
154
+ }
155
+
156
+ textarea[solaris-textarea][data-radius='lg'] {
157
+ --solaris-textarea-radius: var(--solaris-radius-lg);
158
+ }
159
+
160
+ textarea[solaris-textarea][data-resize='none'] {
161
+ resize: none;
162
+ }
163
+
164
+ textarea[solaris-textarea][data-resize='vertical'] {
165
+ resize: vertical;
166
+ }
167
+
168
+ textarea[solaris-textarea][data-resize='horizontal'] {
169
+ resize: horizontal;
170
+ }
171
+
172
+ textarea[solaris-textarea][data-resize='both'] {
173
+ resize: both;
174
+ }
175
+
176
+ textarea[solaris-textarea][data-full-width] {
177
+ width: 100%;
178
+ }
179
+
180
+ @media (prefers-reduced-motion: reduce) {
181
+ textarea[solaris-textarea] {
182
+ transition: none;
183
+ }
184
+ }
185
+
186
+ [data-reduced-motion='true'] textarea[solaris-textarea] {
187
+ transition: none;
188
+ }
189
+
190
+ @media (prefers-color-scheme: dark) {
191
+ textarea[solaris-textarea]:autofill,
192
+ textarea[solaris-textarea]:-webkit-autofill {
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);
195
+ -webkit-box-shadow: 0 0 0 30px var(--solaris-textarea-background) inset;
196
+ }
197
+ }
198
+
199
+ solaris-form-field textarea[solaris-textarea] {
200
+ // SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
201
+ border: none;
202
+ padding-left: 0;
203
+ border-radius: 0;
204
+ padding-right: 0;
205
+ box-shadow: none;
206
+ background: transparent;
207
+ }
208
+
209
+ solaris-form-field textarea[solaris-textarea]:focus-visible {
210
+ // SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
211
+ box-shadow: none;
212
+ border-color: transparent;
213
+ }
214
+
215
+ solaris-form-field textarea[solaris-textarea][data-invalid] {
216
+ border-color: transparent;
217
+ }
218
+
219
+ solaris-form-field textarea[solaris-textarea][data-invalid]:focus-visible {
220
+ // SOLARIS_TOKEN_EXCEPTION: Resetting box-shadow inside form-field context is intentional to inherit from parent.
221
+ box-shadow: none;
222
+ border-color: transparent;
223
+ }
224
+
225
+ solaris-form-field textarea[solaris-textarea][disabled] {
226
+ opacity: var(--solaris-textarea-disabled-opacity);
227
+ }
228
+
229
+ solaris-form-field textarea[solaris-textarea][readonly] {
230
+ background: transparent;
231
+ }
232
+
233
+ solaris-form-field textarea[solaris-textarea][data-density='compact'] {
234
+ padding-top: var(--solaris-spacing-half);
235
+ padding-bottom: var(--solaris-spacing-half);
236
+ }
237
+
238
+ solaris-form-field textarea[solaris-textarea][data-density='comfortable'] {
239
+ padding-top: var(--solaris-spacing-1);
240
+ padding-bottom: var(--solaris-spacing-1);
241
+ }
242
+
243
+ solaris-form-field textarea[solaris-textarea]:autofill,
244
+ solaris-form-field textarea[solaris-textarea]:-webkit-autofill {
245
+ // SOLARIS_TOKEN_EXCEPTION: WebKit autofill inside form-field requires hardcoded transparent box-shadow inset.
246
+ -webkit-box-shadow: 0 0 0 30px transparent inset;
247
+ -webkit-text-fill-color: var(--solaris-textarea-color);
248
+ }
@@ -1,5 +1,5 @@
1
1
  /// Solaris UI Theme
2
- /// Applies token CSS custom properties based on configuration.
2
+ /// Applies design tokens and default configuration to the document root.
3
3
  ///
4
4
  /// Usage:
5
5
  /// @use '@solaris-ui/angular/styles' as solaris;
@@ -21,6 +21,8 @@
21
21
  @use 'token/z-index';
22
22
  @use 'token/border';
23
23
  @use 'token/opacity';
24
+ @use 'token/focus';
25
+ @use 'token/glass';
24
26
 
25
27
  $-default-config: (
26
28
  color-scheme: system,
@@ -33,6 +35,9 @@ $-default-config: (
33
35
  $merged: map.merge($-default-config, $config);
34
36
 
35
37
  $color-scheme: map.get($merged, color-scheme);
38
+ $density: map.get($merged, density);
39
+ $radius: map.get($merged, radius);
40
+ $motion: map.get($merged, motion);
36
41
 
37
42
  :root {
38
43
  @if $color-scheme == light {
@@ -42,5 +47,34 @@ $-default-config: (
42
47
  } @else {
43
48
  color-scheme: light dark;
44
49
  }
50
+
51
+ @if $density == compact {
52
+ --solaris-density-default: compact;
53
+ } @else {
54
+ --solaris-density-default: comfortable;
55
+ }
56
+
57
+ @if $radius ==
58
+ none or
59
+ $radius ==
60
+ sm or
61
+ $radius ==
62
+ lg or
63
+ $radius ==
64
+ xl or
65
+ $radius ==
66
+ full
67
+ {
68
+ --solaris-radius-default: var(--solaris-radius-#{$radius});
69
+ } @else {
70
+ --solaris-radius-default: var(--solaris-radius-md);
71
+ }
72
+
73
+ @if $motion == reduce {
74
+ --solaris-motion-duration-fast: 0ms;
75
+ --solaris-motion-duration-normal: 0ms;
76
+ --solaris-motion-duration-slow: 0ms;
77
+ --solaris-motion-duration-slower: 0ms;
78
+ }
45
79
  }
46
80
  }
@@ -1,9 +1,9 @@
1
- .solaris-toast-overlay {
2
- position: fixed;
3
- top: 0;
4
- left: 0;
5
- width: 100%;
6
- height: 100%;
7
- pointer-events: none;
8
- z-index: var(--solaris-z-index-toast, 500);
9
- }
1
+ .solaris-toast-overlay {
2
+ top: 0;
3
+ left: 0;
4
+ width: 100%;
5
+ height: 100%;
6
+ position: fixed;
7
+ pointer-events: none;
8
+ z-index: var(--solaris-z-index-toast);
9
+ }
@@ -1,3 +1,5 @@
1
- .solaris-tooltip-panel-overlay {
2
- z-index: var(--solaris-tooltip-z-index, var(--solaris-z-index-tooltip));
3
- }
1
+ .solaris-tooltip-panel-overlay {
2
+ --solaris-tooltip-z-index: var(--solaris-z-index-dropdown);
3
+
4
+ z-index: var(--solaris-tooltip-z-index);
5
+ }
@@ -1,5 +1,6 @@
1
1
  :root {
2
- --solaris-border-width-sm: 0.1rem;
3
- --solaris-border-width-md: 0.2rem;
4
- --solaris-border-width-lg: 0.3rem;
2
+ --solaris-border-width-sm: 1px;
3
+ --solaris-border-width-md: 2px;
4
+ --solaris-border-width-lg: 3px;
5
+ --solaris-border-style-default: solid;
5
6
  }
@@ -4,6 +4,9 @@
4
4
  --solaris-surface-subtle: #222324;
5
5
  --solaris-surface-muted: #333435;
6
6
  --solaris-surface-raised: #202123;
7
+ --solaris-surface-reverse: #f2f5fb;
8
+ --solaris-surface-reverse-subtle: #e1e1e1;
9
+ --solaris-surface-reverse-muted: #d8d8d8;
7
10
  --solaris-backdrop: #000000bf;
8
11
 
9
12
  --solaris-text-strong: #f2f5fb;
@@ -32,7 +35,7 @@
32
35
  --solaris-success-surface: #0d2613;
33
36
  --solaris-success-border: #1a5e28;
34
37
  --solaris-success-text: #a3e0b0;
35
- --solaris-success-on-solid: #0d2613;
38
+ --solaris-success-on-solid: #0e1711;
36
39
 
37
40
  --solaris-warning-base: #fae022;
38
41
  --solaris-warning-hover: #e0c82a;
@@ -40,7 +43,7 @@
40
43
  --solaris-warning-surface: #2b2504;
41
44
  --solaris-warning-border: #5e5208;
42
45
  --solaris-warning-text: #f0e48a;
43
- --solaris-warning-on-solid: #17191e;
46
+ --solaris-warning-on-solid: #2e2a21;
44
47
 
45
48
  --solaris-danger-base: #f23d45;
46
49
  --solaris-danger-hover: #f7535a;
@@ -5,6 +5,9 @@
5
5
  --solaris-surface-subtle: #f0f0f0;
6
6
  --solaris-surface-muted: #e0e0e0;
7
7
  --solaris-surface-raised: #ffffff;
8
+ --solaris-surface-reverse: #000000;
9
+ --solaris-surface-reverse-subtle: #1a1a1a;
10
+ --solaris-surface-reverse-muted: #333333;
8
11
  --solaris-backdrop: #000000e2;
9
12
 
10
13
  --solaris-text-strong: #000000;
@@ -12,10 +15,12 @@
12
15
  --solaris-text-muted: #222222;
13
16
  --solaris-text-subtle: #444444;
14
17
  --solaris-text-inverse: #ffffff;
18
+ --solaris-text-glass: #ffffff;
15
19
 
16
20
  --solaris-border-subtle: #666666;
17
21
  --solaris-border-default: #888888;
18
22
  --solaris-border-strong: #aaaaaa;
23
+ --solaris-border-soft: #cccccc;
19
24
 
20
25
  --solaris-primary-base: #0000cc;
21
26
  --solaris-primary-hover: #000099;
@@ -24,4 +29,115 @@
24
29
  --solaris-primary-border: #9999ff;
25
30
  --solaris-primary-text: #0000aa;
26
31
  --solaris-primary-on-solid: #ffffff;
32
+
33
+ --solaris-success-base: #006600;
34
+ --solaris-success-hover: #004d00;
35
+ --solaris-success-active: #003300;
36
+ --solaris-success-surface: #e6f2e6;
37
+ --solaris-success-border: #99cc99;
38
+ --solaris-success-text: #004d00;
39
+ --solaris-success-on-solid: #ffffff;
40
+
41
+ --solaris-warning-base: #996600;
42
+ --solaris-warning-hover: #7a5200;
43
+ --solaris-warning-active: #5c3d00;
44
+ --solaris-warning-surface: #fff2cc;
45
+ --solaris-warning-border: #ffd633;
46
+ --solaris-warning-text: #664400;
47
+ --solaris-warning-on-solid: #ffffff;
48
+
49
+ --solaris-danger-base: #cc0000;
50
+ --solaris-danger-hover: #990000;
51
+ --solaris-danger-active: #660000;
52
+ --solaris-danger-surface: #ffe6e6;
53
+ --solaris-danger-border: #ff9999;
54
+ --solaris-danger-text: #990000;
55
+ --solaris-danger-on-solid: #ffffff;
56
+
57
+ --solaris-info-base: #0044cc;
58
+ --solaris-info-hover: #003399;
59
+ --solaris-info-active: #002266;
60
+ --solaris-info-surface: #e6eeff;
61
+ --solaris-info-border: #99bbff;
62
+ --solaris-info-text: #003399;
63
+ --solaris-info-on-solid: #ffffff;
64
+
65
+ --solaris-orange-base: #cc6600;
66
+ --solaris-orange-hover: #995200;
67
+ --solaris-orange-active: #663d00;
68
+ --solaris-orange-surface: #fff0e6;
69
+ --solaris-orange-border: #ffcca8;
70
+ --solaris-orange-text: #994d00;
71
+ --solaris-orange-on-solid: #ffffff;
72
+ }
73
+
74
+ @media (prefers-contrast: high) {
75
+ :root:not([data-theme]) {
76
+ --solaris-bg-page: #ffffff;
77
+ --solaris-surface-base: #ffffff;
78
+ --solaris-surface-subtle: #f0f0f0;
79
+ --solaris-surface-muted: #e0e0e0;
80
+ --solaris-surface-raised: #ffffff;
81
+ --solaris-backdrop: #000000e2;
82
+
83
+ --solaris-text-strong: #000000;
84
+ --solaris-text-default: #000000;
85
+ --solaris-text-muted: #222222;
86
+ --solaris-text-subtle: #444444;
87
+ --solaris-text-inverse: #ffffff;
88
+ --solaris-text-glass: #ffffff;
89
+
90
+ --solaris-border-subtle: #666666;
91
+ --solaris-border-default: #888888;
92
+ --solaris-border-strong: #aaaaaa;
93
+ --solaris-border-soft: #cccccc;
94
+
95
+ --solaris-primary-base: #0000cc;
96
+ --solaris-primary-hover: #000099;
97
+ --solaris-primary-active: #000066;
98
+ --solaris-primary-surface: #e6e6ff;
99
+ --solaris-primary-border: #9999ff;
100
+ --solaris-primary-text: #0000aa;
101
+ --solaris-primary-on-solid: #ffffff;
102
+
103
+ --solaris-success-base: #006600;
104
+ --solaris-success-hover: #004d00;
105
+ --solaris-success-active: #003300;
106
+ --solaris-success-surface: #e6f2e6;
107
+ --solaris-success-border: #99cc99;
108
+ --solaris-success-text: #004d00;
109
+ --solaris-success-on-solid: #ffffff;
110
+
111
+ --solaris-warning-base: #996600;
112
+ --solaris-warning-hover: #7a5200;
113
+ --solaris-warning-active: #5c3d00;
114
+ --solaris-warning-surface: #fff2cc;
115
+ --solaris-warning-border: #ffd633;
116
+ --solaris-warning-text: #664400;
117
+ --solaris-warning-on-solid: #ffffff;
118
+
119
+ --solaris-danger-base: #cc0000;
120
+ --solaris-danger-hover: #990000;
121
+ --solaris-danger-active: #660000;
122
+ --solaris-danger-surface: #ffe6e6;
123
+ --solaris-danger-border: #ff9999;
124
+ --solaris-danger-text: #990000;
125
+ --solaris-danger-on-solid: #ffffff;
126
+
127
+ --solaris-info-base: #0044cc;
128
+ --solaris-info-hover: #003399;
129
+ --solaris-info-active: #002266;
130
+ --solaris-info-surface: #e6eeff;
131
+ --solaris-info-border: #99bbff;
132
+ --solaris-info-text: #003399;
133
+ --solaris-info-on-solid: #ffffff;
134
+
135
+ --solaris-orange-base: #cc6600;
136
+ --solaris-orange-hover: #995200;
137
+ --solaris-orange-active: #663d00;
138
+ --solaris-orange-surface: #fff0e6;
139
+ --solaris-orange-border: #ffcca8;
140
+ --solaris-orange-text: #994d00;
141
+ --solaris-orange-on-solid: #ffffff;
142
+ }
27
143
  }
@@ -5,6 +5,9 @@
5
5
  --solaris-surface-subtle: #f7f8fb;
6
6
  --solaris-surface-muted: #eeeeee;
7
7
  --solaris-surface-raised: #ffffff;
8
+ --solaris-surface-reverse: #16191e;
9
+ --solaris-surface-reverse-subtle: #222324;
10
+ --solaris-surface-reverse-muted: #333435;
8
11
  --solaris-backdrop: #000000bf;
9
12
 
10
13
  --solaris-text-strong: #16191e;