ngx-strata 0.5.0 → 0.5.2

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 (29) hide show
  1. package/assets/styles/components/_breadcrumb.scss +4 -0
  2. package/assets/styles/components/_number-stepper.scss +260 -0
  3. package/assets/styles/components/_skeleton.scss +115 -0
  4. package/assets/styles/components/action-menu.scss +20 -2
  5. package/assets/styles/components/input-field.scss +19 -2
  6. package/assets/styles/components/item.scss +15 -2
  7. package/assets/styles/components/modal.scss +237 -22
  8. package/assets/styles/components/notification.scss +287 -41
  9. package/assets/styles/components/segmented-control.scss +20 -0
  10. package/assets/styles/components/select.scss +18 -0
  11. package/assets/styles/components/sidemenu.scss +8 -1
  12. package/assets/styles/components/tabs.scss +7 -0
  13. package/assets/styles/public-api.scss +2 -0
  14. package/assets/styles/semantics/color-semantic.scss +8 -0
  15. package/dist/strata/strata.css +1 -1
  16. package/fesm2022/ngx-strata.mjs +695 -51
  17. package/fesm2022/ngx-strata.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/skills/ngx-strata/SKILL.md +5 -1
  20. package/skills/ngx-strata/components/badge.md +24 -0
  21. package/skills/ngx-strata/components/breadcrumb.md +4 -1
  22. package/skills/ngx-strata/components/item.md +21 -9
  23. package/skills/ngx-strata/components/modal.md +36 -5
  24. package/skills/ngx-strata/components/notification.md +51 -5
  25. package/skills/ngx-strata/components/number-stepper.md +84 -0
  26. package/skills/ngx-strata/components/segmented-control.md +3 -0
  27. package/skills/ngx-strata/components/skeleton.md +59 -0
  28. package/skills/ngx-strata/components/tabs.md +6 -1
  29. package/types/ngx-strata.d.ts +200 -17
@@ -1,79 +1,280 @@
1
1
  st-notification {
2
- --st-notification-background-color: var(--st-color-bg-raised);
3
- --st-notification-text-color: var(--st-color-text-primary);
2
+ --st-notification-bg: var(--st-color-bg-raised);
3
+ --st-notification-border-color: var(--st-color-border-subtle);
4
+ --st-notification-border-width: var(--st-border-width);
5
+ --st-notification-border-style: solid;
6
+ --st-notification-shadow: var(--st-shadow-3);
4
7
  --st-notification-border-radius: var(--st-border-radius-lg);
8
+ --st-notification-text-primary: var(--st-color-text-primary);
9
+ --st-notification-text-secondary: var(--st-color-text-secondary);
10
+ --st-notification-min-width: 320px;
11
+ --st-notification-max-width: var(--st-breakpoint-sm);
12
+ --st-notification-min-height: calc(var(--st-space-12) + var(--st-space-1));
13
+ --st-notification-padding-y: var(--st-space-3);
14
+ --st-notification-padding-right: var(--st-space-4);
15
+ --st-notification-accent-color: transparent;
16
+ --st-notification-accent-width: var(--st-space-1);
17
+ --st-notification-accent-inset: var(--st-space-3);
18
+ --st-notification-accent-radius: var(--st-border-radius-full);
19
+ --st-notification-padding-left: var(--st-space-4);
20
+ --st-notification-gap: var(--st-space-3);
21
+ --st-notification-content-gap: var(--st-space-1);
22
+
23
+ --st-notification-icon-bg: var(--st-color-bg-subtle);
24
+ --st-notification-icon-color: var(--st-color-text-primary);
25
+ --st-notification-icon-size: var(--st-space-8);
26
+ --st-notification-icon-glyph-size: var(--st-space-4);
27
+ --st-notification-icon-radius: var(--st-border-radius-md);
28
+ --st-notification-icon-offset-y: var(--st-size-xxxxs);
29
+
30
+ --st-notification-title-font-size: var(--st-font-md);
31
+ --st-notification-title-font-weight: var(--st-font-weight-semibold);
32
+ --st-notification-title-line-height: 1.25;
33
+
34
+ --st-notification-message-font-size: var(--st-font-md);
35
+ --st-notification-message-line-height: 1.4;
36
+
37
+ --st-notification-actions-gap: var(--st-space-2);
38
+ --st-notification-actions-margin-top: var(--st-space-2);
39
+
40
+ --st-notification-close-size: var(--st-interactive-element-height-sm);
41
+ --st-notification-close-glyph-size: var(--st-font-md);
42
+ --st-notification-close-radius: var(--st-border-radius-sm);
43
+ --st-notification-close-color: var(--st-color-text-tertiary);
44
+ --st-notification-close-hover-color: var(--st-color-text-primary);
45
+ --st-notification-close-hover-bg: var(--st-color-control-bg-hover);
46
+
47
+ --st-notification-focus-ring-width: var(--st-focus-ring-width);
48
+ --st-notification-focus-ring-style: var(--st-focus-ring-style);
49
+ --st-notification-focus-ring-color: var(--st-color-border-strong);
50
+ --st-notification-focus-ring-offset: var(--st-focus-ring-offset);
51
+
52
+ --st-notification-progress-color: var(--st-color-border-strong);
53
+ --st-notification-progress-height: 3px;
54
+
55
+ position: relative;
5
56
  display: flex;
6
57
  flex-direction: row;
7
- padding: var(--st-size-sm);
8
- min-width: 250px;
9
- min-height: var(--st-size-lg);
10
- box-shadow: var(--st-shadow-2);
11
- background-color: var(--st-notification-background-color);
12
- color: var(--st-notification-text-color);
13
- align-content: center;
14
58
  align-items: center;
15
- justify-content: flex-start;
59
+ padding: var(--st-notification-padding-y) var(--st-notification-padding-right) var(--st-notification-padding-y) var(--st-notification-padding-left);
60
+ width: 100%;
61
+ min-height: var(--st-notification-min-height);
62
+ box-sizing: border-box;
63
+ background-color: var(--st-notification-bg);
64
+ border: var(--st-notification-border-width) var(--st-notification-border-style) var(--st-notification-border-color);
65
+ box-shadow: var(--st-notification-shadow);
16
66
  border-radius: var(--st-notification-border-radius);
17
- gap: 8px;
18
- font-size: 16px;
67
+ color: var(--st-notification-text-primary);
68
+ gap: var(--st-notification-gap);
69
+ overflow: hidden;
19
70
  pointer-events: auto;
20
71
 
21
- .notification-message {
72
+ @media (min-width: 768px) {
73
+ width: auto;
74
+ min-width: var(--st-notification-min-width);
75
+ max-width: var(--st-notification-max-width);
76
+ }
77
+
78
+ &::before {
79
+ content: '';
80
+ position: absolute;
81
+ top: var(--st-notification-accent-inset);
82
+ bottom: var(--st-notification-accent-inset);
83
+ left: var(--st-notification-accent-inset);
84
+ width: var(--st-notification-accent-width);
85
+ border-radius: var(--st-notification-accent-radius);
86
+ background-color: var(--st-notification-accent-color);
87
+ }
88
+
89
+ .st-notification-icon-wrapper {
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ flex-shrink: 0;
94
+ width: var(--st-notification-icon-size);
95
+ height: var(--st-notification-icon-size);
96
+ border-radius: var(--st-notification-icon-radius);
97
+ background-color: var(--st-notification-icon-bg);
98
+ color: var(--st-notification-icon-color);
99
+
100
+ st-icon {
101
+ --st-icon-size: var(--st-notification-icon-glyph-size);
102
+ }
103
+ }
104
+
105
+ .st-notification-content {
106
+ display: flex;
107
+ flex-direction: column;
22
108
  flex: 1;
109
+ min-width: 0;
110
+ gap: var(--st-notification-content-gap);
111
+
112
+ .st-notification-title {
113
+ font-size: var(--st-notification-title-font-size);
114
+ font-weight: var(--st-notification-title-font-weight);
115
+ color: var(--st-notification-text-primary);
116
+ line-height: var(--st-notification-title-line-height);
117
+ }
118
+
119
+ .st-notification-message {
120
+ font-size: var(--st-notification-message-font-size);
121
+ color: var(--st-notification-text-secondary);
122
+ line-height: var(--st-notification-message-line-height);
123
+ word-break: break-word;
124
+ }
125
+
126
+ .st-notification-actions {
127
+ display: flex;
128
+ flex-wrap: wrap;
129
+ gap: var(--st-notification-actions-gap);
130
+ margin-top: var(--st-notification-actions-margin-top);
131
+ }
23
132
  }
24
133
 
25
- .notification-close-btn {
134
+ .st-notification-close-btn {
26
135
  display: inline-flex;
27
136
  align-items: center;
28
137
  justify-content: center;
138
+ flex-shrink: 0;
139
+ width: var(--st-notification-close-size);
140
+ height: var(--st-notification-close-size);
141
+ margin-left: auto;
29
142
  background: none;
30
143
  border: none;
31
144
  padding: 0;
32
- margin-left: auto;
33
- color: inherit;
34
- opacity: 0.7;
145
+ color: var(--st-notification-close-color);
35
146
  cursor: pointer;
36
- border-radius: var(--st-border-radius-sm);
37
- transition: opacity var(--st-transition-fast), background-color var(--st-transition-fast);
147
+ border-radius: var(--st-notification-close-radius);
148
+ transition: color var(--st-transition-fast), background-color var(--st-transition-fast);
38
149
 
39
150
  &:hover {
40
- opacity: 1;
151
+ color: var(--st-notification-close-hover-color);
152
+ background-color: var(--st-notification-close-hover-bg);
41
153
  }
42
154
 
43
155
  &:focus-visible {
44
- outline: 2px solid currentColor;
45
- outline-offset: 2px;
156
+ outline: var(--st-notification-focus-ring-width) var(--st-notification-focus-ring-style) var(--st-notification-focus-ring-color);
157
+ outline-offset: var(--st-notification-focus-ring-offset);
158
+ }
159
+
160
+ st-icon {
161
+ --st-icon-size: var(--st-notification-close-glyph-size);
46
162
  }
47
163
  }
48
164
 
49
- &.st-theme-brand {
50
- --st-notification-background-color: var(--st-color-accent-subtle);
51
- --st-notification-text-color: var(--st-color-accent-text);
165
+ &:has(.st-notification-actions),
166
+ &:has(.st-notification-title) {
167
+ align-items: flex-start;
168
+
169
+ .st-notification-icon-wrapper {
170
+ margin-top: var(--st-notification-icon-offset-y);
171
+ }
172
+
173
+ .st-notification-close-btn {
174
+ margin-top: 0;
175
+ }
176
+ }
177
+
178
+ .st-notification-progress-bar {
179
+ position: absolute;
180
+ bottom: 0;
181
+ left: 0;
182
+ right: 0;
183
+ height: var(--st-notification-progress-height);
184
+ background-color: var(--st-notification-progress-color);
185
+ transform-origin: left;
186
+ animation: st-notification-progress-anim var(--st-notification-duration, 3000ms) linear forwards;
187
+ }
188
+
189
+ &.st-is-paused .st-notification-progress-bar {
190
+ animation-play-state: paused;
191
+ }
192
+
193
+ &.st-theme-default {
194
+ --st-notification-accent-color: transparent;
195
+ --st-notification-padding-left: var(--st-space-4);
196
+ --st-notification-icon-bg: var(--st-color-bg-subtle);
197
+ --st-notification-icon-color: var(--st-color-text-primary);
198
+ --st-notification-progress-color: var(--st-color-border-strong);
52
199
  }
53
200
 
54
201
  &.st-theme-info {
55
- --st-notification-background-color: var(--st-color-feedback-info-subtle);
56
- --st-notification-text-color: var(--st-color-feedback-info-text);
202
+ --st-notification-accent-color: var(--st-color-feedback-info-default);
203
+ --st-notification-padding-left: calc(var(--st-notification-accent-inset) * 2 + var(--st-notification-accent-width));
204
+ --st-notification-icon-bg: var(--st-color-feedback-info-subtle);
205
+ --st-notification-icon-color: var(--st-color-feedback-info-default);
206
+ --st-notification-progress-color: var(--st-color-feedback-info-default);
57
207
  }
58
208
 
59
209
  &.st-theme-success {
60
- --st-notification-background-color: var(--st-color-feedback-success-subtle);
61
- --st-notification-text-color: var(--st-color-feedback-success-text);
210
+ --st-notification-accent-color: var(--st-color-feedback-success-default);
211
+ --st-notification-padding-left: calc(var(--st-notification-accent-inset) * 2 + var(--st-notification-accent-width));
212
+ --st-notification-icon-bg: var(--st-color-feedback-success-subtle);
213
+ --st-notification-icon-color: var(--st-color-feedback-success-default);
214
+ --st-notification-progress-color: var(--st-color-feedback-success-default);
215
+ }
216
+
217
+ &.st-theme-warning {
218
+ --st-notification-accent-color: var(--st-color-feedback-warning-default);
219
+ --st-notification-padding-left: calc(var(--st-notification-accent-inset) * 2 + var(--st-notification-accent-width));
220
+ --st-notification-icon-bg: var(--st-color-feedback-warning-subtle);
221
+ --st-notification-icon-color: var(--st-color-feedback-warning-default);
222
+ --st-notification-progress-color: var(--st-color-feedback-warning-default);
62
223
  }
63
224
 
64
225
  &.st-theme-danger {
65
- --st-notification-background-color: var(--st-color-feedback-error-subtle);
66
- --st-notification-text-color: var(--st-color-feedback-error-text);
226
+ --st-notification-accent-color: var(--st-color-feedback-error-default);
227
+ --st-notification-padding-left: calc(var(--st-notification-accent-inset) * 2 + var(--st-notification-accent-width));
228
+ --st-notification-icon-bg: var(--st-color-feedback-error-subtle);
229
+ --st-notification-icon-color: var(--st-color-feedback-error-default);
230
+ --st-notification-progress-color: var(--st-color-feedback-error-default);
67
231
  }
68
232
 
69
- &.st-theme-warning {
70
- --st-notification-background-color: var(--st-color-feedback-warning-subtle);
71
- --st-notification-text-color: var(--st-color-feedback-warning-text);
233
+ &.st-theme-brand {
234
+ --st-notification-accent-color: var(--st-color-accent-default);
235
+ --st-notification-padding-left: calc(var(--st-notification-accent-inset) * 2 + var(--st-notification-accent-width));
236
+ --st-notification-icon-bg: var(--st-color-accent-subtle);
237
+ --st-notification-icon-color: var(--st-color-accent-default);
238
+ --st-notification-progress-color: var(--st-color-accent-default);
72
239
  }
73
240
  }
74
241
 
242
+ @keyframes st-notification-progress-anim {
243
+ from {
244
+ transform: scaleX(1);
245
+ }
246
+ to {
247
+ transform: scaleX(0);
248
+ }
249
+ }
75
250
 
76
251
  st-notification-container {
252
+ --st-notification-container-gap: var(--st-space-2);
253
+ --st-notification-container-padding-mobile: var(--st-space-3);
254
+ --st-notification-container-padding-desktop: var(--st-space-4);
255
+ --st-notification-container-z-index: 1100;
256
+
257
+ --st-notification-overflow-bg: var(--st-color-bg-raised);
258
+ --st-notification-overflow-border-color: var(--st-color-border-subtle);
259
+ --st-notification-overflow-border-width: var(--st-border-width);
260
+ --st-notification-overflow-border-style: solid;
261
+ --st-notification-overflow-shadow: var(--st-shadow-2);
262
+ --st-notification-overflow-text-color: var(--st-color-text-secondary);
263
+ --st-notification-overflow-font-size: var(--st-font-sm);
264
+ --st-notification-overflow-font-weight: var(--st-font-weight-medium);
265
+ --st-notification-overflow-line-height: 1.4;
266
+ --st-notification-overflow-padding-y: var(--st-space-1);
267
+ --st-notification-overflow-padding-x: var(--st-space-3);
268
+ --st-notification-overflow-gap: var(--st-space-2);
269
+ --st-notification-overflow-radius: var(--st-border-radius-full);
270
+ --st-notification-overflow-clear-size: calc(var(--st-space-4) + var(--st-size-xxxxs));
271
+ --st-notification-overflow-clear-glyph-size: var(--st-font-sm);
272
+ --st-notification-overflow-clear-radius: var(--st-border-radius-full);
273
+ --st-notification-overflow-clear-color: var(--st-color-text-tertiary);
274
+ --st-notification-overflow-clear-hover-color: var(--st-color-text-primary);
275
+ --st-notification-overflow-clear-hover-bg: var(--st-color-control-bg-hover);
276
+
277
+ box-sizing: border-box;
77
278
  width: 100%;
78
279
  height: 100%;
79
280
  position: fixed;
@@ -81,21 +282,66 @@ st-notification-container {
81
282
  left: 0;
82
283
  overflow: hidden;
83
284
  display: flex;
84
- z-index: 1100;
285
+ z-index: var(--st-notification-container-z-index);
85
286
  pointer-events: none;
86
- gap: var(--st-size-xs);
87
-
88
- // Small screen defaults: top center, full width
287
+ gap: var(--st-notification-container-gap);
89
288
  flex-direction: column;
90
289
  align-items: stretch;
91
290
  justify-content: flex-start;
92
- padding: var(--st-size-sm);
291
+ padding: var(--st-notification-container-padding-mobile);
93
292
 
94
- // Big screen overrides: bottom right, stacking upwards
95
293
  @media (min-width: 768px) {
96
294
  flex-direction: column-reverse;
97
295
  align-items: flex-end;
98
296
  justify-content: flex-start;
99
- padding: var(--st-size-md);
297
+ padding: var(--st-notification-container-padding-desktop);
298
+ }
299
+
300
+ .st-notification-overflow {
301
+ display: inline-flex;
302
+ align-items: center;
303
+ align-self: center;
304
+ gap: var(--st-notification-overflow-gap);
305
+ padding: var(--st-notification-overflow-padding-y) var(--st-notification-overflow-padding-x);
306
+ background-color: var(--st-notification-overflow-bg);
307
+ border: var(--st-notification-overflow-border-width) var(--st-notification-overflow-border-style) var(--st-notification-overflow-border-color);
308
+ border-radius: var(--st-notification-overflow-radius);
309
+ box-shadow: var(--st-notification-overflow-shadow);
310
+ color: var(--st-notification-overflow-text-color);
311
+ font-size: var(--st-notification-overflow-font-size);
312
+ font-weight: var(--st-notification-overflow-font-weight);
313
+ pointer-events: auto;
314
+
315
+ @media (min-width: 768px) {
316
+ align-self: flex-end;
317
+ }
318
+
319
+ .st-notification-overflow-text {
320
+ line-height: var(--st-notification-overflow-line-height);
321
+ }
322
+
323
+ .st-notification-overflow-clear {
324
+ display: inline-flex;
325
+ align-items: center;
326
+ justify-content: center;
327
+ width: var(--st-notification-overflow-clear-size);
328
+ height: var(--st-notification-overflow-clear-size);
329
+ padding: 0;
330
+ border: none;
331
+ background: transparent;
332
+ border-radius: var(--st-notification-overflow-clear-radius);
333
+ color: var(--st-notification-overflow-clear-color);
334
+ cursor: pointer;
335
+ transition: color var(--st-transition-fast), background-color var(--st-transition-fast);
336
+
337
+ &:hover {
338
+ color: var(--st-notification-overflow-clear-hover-color);
339
+ background-color: var(--st-notification-overflow-clear-hover-bg);
340
+ }
341
+
342
+ st-icon {
343
+ --st-icon-size: var(--st-notification-overflow-clear-glyph-size);
344
+ }
345
+ }
100
346
  }
101
347
  }
@@ -129,6 +129,7 @@ st-segmented-control {
129
129
  display: flex;
130
130
  align-items: center;
131
131
  justify-content: center;
132
+ gap: var(--st-space-2, 8px);
132
133
  height: var(--st-segmented-control-item-height);
133
134
  padding: 0 var(--st-segmented-control-padding-x);
134
135
  border-radius: calc(var(--st-segmented-control-border-radius) - 2px);
@@ -138,11 +139,30 @@ st-segmented-control {
138
139
  transition: background-color var(--st-transition-fast), color var(--st-transition-fast);
139
140
  }
140
141
 
142
+ st-segmented-control-item {
143
+ position: relative;
144
+ z-index: 1;
145
+
146
+ &[aria-selected="true"] {
147
+ color: var(--st-color-control-primary-text);
148
+
149
+ &:hover {
150
+ background-color: transparent;
151
+ }
152
+ }
153
+
154
+ st-badge {
155
+ flex-shrink: 0;
156
+ }
157
+ }
158
+
141
159
  #selection-indicator {
142
160
  cursor: default;
143
161
  position: absolute;
144
162
  top: 0;
145
163
  left: 0;
164
+ z-index: 0;
165
+ pointer-events: none;
146
166
  border-radius: calc(var(--st-segmented-control-border-radius) - 2px);
147
167
  background-color: var(--st-color-control-primary-bg);
148
168
  color: var(--st-color-control-primary-text);
@@ -110,10 +110,19 @@ st-single-select {
110
110
  transition:
111
111
  background-color var(--st-transition-fast),
112
112
  color var(--st-transition-fast);
113
+
114
+ .st-label {
115
+ transition: color var(--st-transition-fast);
116
+ }
113
117
  }
114
118
 
115
119
  .single-select-item:hover {
116
120
  background-color: var(--st-color-control-bg-hover, var(--st-color-bg-default));
121
+
122
+ &.st-label,
123
+ .st-label {
124
+ color: var(--st-color-text-secondary);
125
+ }
117
126
  }
118
127
  }
119
128
  }
@@ -207,10 +216,19 @@ st-single-select {
207
216
  transition:
208
217
  background-color var(--st-transition-fast),
209
218
  color var(--st-transition-fast);
219
+
220
+ .st-label {
221
+ transition: color var(--st-transition-fast);
222
+ }
210
223
  }
211
224
 
212
225
  .single-select-item:hover {
213
226
  background-color: var(--st-color-control-bg-hover, var(--st-color-bg-default));
227
+
228
+ &.st-label,
229
+ .st-label {
230
+ color: var(--st-color-text-secondary);
231
+ }
214
232
  }
215
233
  }
216
234
 
@@ -52,8 +52,15 @@ st-sidemenu {
52
52
  opacity: 0.5;
53
53
  }
54
54
 
55
- st-tag {
55
+ st-tag,
56
+ st-badge {
56
57
  margin-left: auto;
58
+ flex-shrink: 0;
59
+ }
60
+
61
+ st-tag + .st-sidemenu-item-secondary-action,
62
+ st-badge + .st-sidemenu-item-secondary-action {
63
+ margin-left: var(--st-space-2, 8px);
57
64
  }
58
65
 
59
66
  st-icon:not(.st-sidemenu-item-group-icon) {
@@ -13,6 +13,9 @@ st-tabs {
13
13
  }
14
14
 
15
15
  st-tab-item {
16
+ display: inline-flex;
17
+ align-items: center;
18
+ gap: var(--st-space-2, 8px);
16
19
  padding: 12px 16px;
17
20
  font-size: 14px;
18
21
  font-weight: 500;
@@ -25,6 +28,10 @@ st-tabs {
25
28
  margin-bottom: -1px;
26
29
  outline: none;
27
30
 
31
+ st-badge {
32
+ flex-shrink: 0;
33
+ }
34
+
28
35
  &:focus,
29
36
  &:active {
30
37
  outline: none;
@@ -27,6 +27,7 @@
27
27
  @use "./components/item";
28
28
  @use "./components/modal";
29
29
  @use "./components/number-display";
30
+ @use "./components/number-stepper";
30
31
  @use "./components/notification";
31
32
  @use "./components/overlay";
32
33
  @use "./components/pagination";
@@ -34,6 +35,7 @@
34
35
  @use "./components/radio";
35
36
  @use "./components/segmented-control";
36
37
  @use "./components/select";
38
+ @use "./components/skeleton";
37
39
  @use "./components/slider";
38
40
  @use "./components/spinner";
39
41
  @use "./components/table";
@@ -76,6 +76,10 @@
76
76
  --st-color-control-primary-bg: var(--st-color-neutral-900);
77
77
  --st-color-control-primary-bg-hover: var(--st-color-neutral-800);
78
78
  --st-color-control-primary-text: var(--st-color-neutral-0);
79
+
80
+ /* --- Skeleton Placeholder --- */
81
+ --st-color-skeleton-bg: var(--st-color-neutral-200);
82
+ --st-color-skeleton-shimmer: var(--st-color-neutral-50);
79
83
  }
80
84
 
81
85
 
@@ -156,4 +160,8 @@
156
160
  --st-color-control-primary-bg: var(--st-color-neutral-50);
157
161
  --st-color-control-primary-bg-hover: var(--st-color-neutral-200);
158
162
  --st-color-control-primary-text: var(--st-color-neutral-900);
163
+
164
+ /* --- Skeleton Placeholder --- */
165
+ --st-color-skeleton-bg: var(--st-color-neutral-700);
166
+ --st-color-skeleton-shimmer: var(--st-color-neutral-600);
159
167
  }