@digiko-npm/designsystem 0.3.33 → 0.3.34
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/README.md +5 -2
- package/dist/designsystem.css +209 -58
- package/dist/designsystem.min.css +2 -2
- package/package.json +1 -1
- package/src/base/reset.css +4 -7
- package/src/components/accordion.css +4 -0
- package/src/components/alert.css +1 -1
- package/src/components/badge.css +2 -2
- package/src/components/button.css +4 -0
- package/src/components/card.css +4 -0
- package/src/components/command.css +4 -0
- package/src/components/custom-select.css +19 -0
- package/src/components/datepicker.css +35 -14
- package/src/components/drawer.css +4 -0
- package/src/components/drop-zone.css +4 -0
- package/src/components/dropdown.css +4 -0
- package/src/components/input.css +32 -11
- package/src/components/modal.css +6 -2
- package/src/components/nav.css +18 -3
- package/src/components/popover.css +4 -4
- package/src/components/skeleton.css +4 -0
- package/src/components/toast.css +13 -4
- package/src/components/tooltip.css +4 -4
- package/src/tokens/shadows.css +29 -0
- package/src/utilities/layout.css +9 -5
|
@@ -37,6 +37,12 @@
|
|
|
37
37
|
border-color: var(--ds-color-border-hover);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
.ds-custom-select__trigger:focus-visible {
|
|
41
|
+
border-color: var(--ds-color-border-active);
|
|
42
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
43
|
+
outline-offset: -1px;
|
|
44
|
+
}
|
|
45
|
+
|
|
40
46
|
.ds-custom-select__trigger--open {
|
|
41
47
|
border-color: var(--ds-color-border-active);
|
|
42
48
|
box-shadow: inset 0 0 0 1px var(--ds-color-border-active);
|
|
@@ -200,6 +206,10 @@
|
|
|
200
206
|
background-color: var(--ds-color-bg-elevated);
|
|
201
207
|
color: var(--ds-color-text);
|
|
202
208
|
}
|
|
209
|
+
.ds-custom-select__option:focus-visible {
|
|
210
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
211
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
212
|
+
}
|
|
203
213
|
|
|
204
214
|
.ds-custom-select__option--selected {
|
|
205
215
|
background-color: var(--ds-color-bg-elevated);
|
|
@@ -308,3 +318,12 @@
|
|
|
308
318
|
border-radius: 0;
|
|
309
319
|
}
|
|
310
320
|
}
|
|
321
|
+
|
|
322
|
+
@media (prefers-reduced-motion: reduce) {
|
|
323
|
+
.ds-custom-select__panel {
|
|
324
|
+
animation: none;
|
|
325
|
+
opacity: 1;
|
|
326
|
+
transform: scale(1);
|
|
327
|
+
}
|
|
328
|
+
.ds-custom-select__backdrop { animation: none; opacity: 1; }
|
|
329
|
+
}
|
|
@@ -57,11 +57,16 @@
|
|
|
57
57
|
line-height: 1;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
.ds-datepicker__trigger:focus-visible {
|
|
61
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
62
|
+
outline-offset: var(--ds-ring-offset);
|
|
63
|
+
}
|
|
64
|
+
|
|
60
65
|
/* Calendar panel */
|
|
61
66
|
.ds-datepicker__panel {
|
|
62
67
|
position: absolute;
|
|
63
68
|
z-index: var(--ds-z-dropdown);
|
|
64
|
-
top: calc(100% +
|
|
69
|
+
top: calc(100% + var(--ds-offset-sm));
|
|
65
70
|
left: 0;
|
|
66
71
|
background-color: var(--ds-color-surface);
|
|
67
72
|
border: 1px solid var(--ds-color-border);
|
|
@@ -73,8 +78,8 @@
|
|
|
73
78
|
visibility: hidden;
|
|
74
79
|
transform: scale(0.96);
|
|
75
80
|
transition:
|
|
76
|
-
opacity var(--ds-duration-fast) var(--ds-ease),
|
|
77
|
-
visibility var(--ds-duration-fast) var(--ds-ease),
|
|
81
|
+
opacity var(--ds-duration-fast) var(--ds-ease-default),
|
|
82
|
+
visibility var(--ds-duration-fast) var(--ds-ease-default),
|
|
78
83
|
transform var(--ds-duration-fast) var(--ds-ease-out-expo);
|
|
79
84
|
}
|
|
80
85
|
|
|
@@ -95,7 +100,7 @@
|
|
|
95
100
|
|
|
96
101
|
.ds-datepicker__title {
|
|
97
102
|
font-size: var(--ds-text-sm);
|
|
98
|
-
font-weight:
|
|
103
|
+
font-weight: var(--ds-weight-semibold);
|
|
99
104
|
color: var(--ds-color-text);
|
|
100
105
|
user-select: none;
|
|
101
106
|
}
|
|
@@ -112,13 +117,17 @@
|
|
|
112
117
|
color: var(--ds-color-text-secondary);
|
|
113
118
|
cursor: pointer;
|
|
114
119
|
font-size: var(--ds-text-base);
|
|
115
|
-
transition: all var(--ds-duration-fast) var(--ds-ease);
|
|
120
|
+
transition: all var(--ds-duration-fast) var(--ds-ease-default);
|
|
116
121
|
}
|
|
117
122
|
|
|
118
123
|
.ds-datepicker__nav:hover {
|
|
119
124
|
background-color: var(--ds-color-bg-elevated);
|
|
120
125
|
color: var(--ds-color-text);
|
|
121
126
|
}
|
|
127
|
+
.ds-datepicker__nav:focus-visible {
|
|
128
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
129
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
130
|
+
}
|
|
122
131
|
|
|
123
132
|
/* Weekday header row */
|
|
124
133
|
.ds-datepicker__weekdays {
|
|
@@ -133,7 +142,7 @@
|
|
|
133
142
|
text-align: center;
|
|
134
143
|
padding: var(--ds-space-1) 0;
|
|
135
144
|
user-select: none;
|
|
136
|
-
font-weight:
|
|
145
|
+
font-weight: var(--ds-weight-medium);
|
|
137
146
|
}
|
|
138
147
|
|
|
139
148
|
/* Day grid */
|
|
@@ -155,7 +164,7 @@
|
|
|
155
164
|
font-size: var(--ds-text-sm);
|
|
156
165
|
color: var(--ds-color-text);
|
|
157
166
|
cursor: pointer;
|
|
158
|
-
transition: all var(--ds-duration-fast) var(--ds-ease);
|
|
167
|
+
transition: all var(--ds-duration-fast) var(--ds-ease-default);
|
|
159
168
|
padding: 0;
|
|
160
169
|
line-height: 1;
|
|
161
170
|
user-select: none;
|
|
@@ -164,18 +173,22 @@
|
|
|
164
173
|
.ds-datepicker__day:hover {
|
|
165
174
|
background-color: var(--ds-color-bg-elevated);
|
|
166
175
|
}
|
|
176
|
+
.ds-datepicker__day:focus-visible {
|
|
177
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
178
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
179
|
+
}
|
|
167
180
|
|
|
168
181
|
/* Today — subtle ring */
|
|
169
182
|
.ds-datepicker__day--today {
|
|
170
183
|
box-shadow: inset 0 0 0 1px var(--ds-color-border-active);
|
|
171
|
-
font-weight:
|
|
184
|
+
font-weight: var(--ds-weight-semibold);
|
|
172
185
|
}
|
|
173
186
|
|
|
174
187
|
/* Selected — inverted fill */
|
|
175
188
|
.ds-datepicker__day--selected {
|
|
176
189
|
background-color: var(--ds-color-text);
|
|
177
190
|
color: var(--ds-color-bg);
|
|
178
|
-
font-weight:
|
|
191
|
+
font-weight: var(--ds-weight-semibold);
|
|
179
192
|
}
|
|
180
193
|
|
|
181
194
|
.ds-datepicker__day--selected:hover {
|
|
@@ -200,14 +213,14 @@
|
|
|
200
213
|
|
|
201
214
|
.ds-datepicker__today {
|
|
202
215
|
font-size: var(--ds-text-xs);
|
|
203
|
-
font-weight:
|
|
216
|
+
font-weight: var(--ds-weight-medium);
|
|
204
217
|
color: var(--ds-color-text-secondary);
|
|
205
218
|
background: none;
|
|
206
219
|
border: 1px solid var(--ds-color-border);
|
|
207
220
|
border-radius: var(--ds-radius-full);
|
|
208
221
|
padding: var(--ds-space-1) var(--ds-space-3);
|
|
209
222
|
cursor: pointer;
|
|
210
|
-
transition: all var(--ds-duration-fast) var(--ds-ease);
|
|
223
|
+
transition: all var(--ds-duration-fast) var(--ds-ease-default);
|
|
211
224
|
}
|
|
212
225
|
|
|
213
226
|
.ds-datepicker__today:hover {
|
|
@@ -215,6 +228,10 @@
|
|
|
215
228
|
color: var(--ds-color-text);
|
|
216
229
|
border-color: var(--ds-color-border-hover);
|
|
217
230
|
}
|
|
231
|
+
.ds-datepicker__today:focus-visible {
|
|
232
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
233
|
+
outline-offset: var(--ds-ring-offset);
|
|
234
|
+
}
|
|
218
235
|
|
|
219
236
|
/* Step arrows — prev/next day buttons beside the date text */
|
|
220
237
|
.ds-datepicker__step {
|
|
@@ -229,7 +246,7 @@
|
|
|
229
246
|
color: var(--ds-color-text-tertiary);
|
|
230
247
|
cursor: pointer;
|
|
231
248
|
font-size: var(--ds-text-xs);
|
|
232
|
-
transition: all var(--ds-duration-fast) var(--ds-ease);
|
|
249
|
+
transition: all var(--ds-duration-fast) var(--ds-ease-default);
|
|
233
250
|
padding: 0;
|
|
234
251
|
flex-shrink: 0;
|
|
235
252
|
}
|
|
@@ -238,6 +255,10 @@
|
|
|
238
255
|
background-color: var(--ds-color-bg-elevated);
|
|
239
256
|
color: var(--ds-color-text);
|
|
240
257
|
}
|
|
258
|
+
.ds-datepicker__step:focus-visible {
|
|
259
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
260
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
261
|
+
}
|
|
241
262
|
|
|
242
263
|
/* Compact mode — for inline table cells */
|
|
243
264
|
.ds-datepicker--compact .ds-datepicker__panel {
|
|
@@ -256,7 +277,7 @@
|
|
|
256
277
|
}
|
|
257
278
|
|
|
258
279
|
.ds-datepicker--compact .ds-datepicker__weekday {
|
|
259
|
-
font-size:
|
|
280
|
+
font-size: var(--ds-text-2xs);
|
|
260
281
|
}
|
|
261
282
|
|
|
262
283
|
.ds-datepicker--compact .ds-datepicker__day {
|
|
@@ -264,7 +285,7 @@
|
|
|
264
285
|
}
|
|
265
286
|
|
|
266
287
|
.ds-datepicker--compact .ds-datepicker__today {
|
|
267
|
-
font-size:
|
|
288
|
+
font-size: var(--ds-text-2xs);
|
|
268
289
|
padding: 2px var(--ds-space-2);
|
|
269
290
|
}
|
|
270
291
|
|
|
@@ -185,6 +185,10 @@
|
|
|
185
185
|
background-color: var(--ds-color-overlay);
|
|
186
186
|
color: var(--ds-color-text);
|
|
187
187
|
}
|
|
188
|
+
.ds-drawer__close:focus-visible {
|
|
189
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
190
|
+
outline-offset: var(--ds-ring-offset);
|
|
191
|
+
}
|
|
188
192
|
|
|
189
193
|
/* ==========================================================================
|
|
190
194
|
* Body
|
|
@@ -39,6 +39,10 @@
|
|
|
39
39
|
transition:
|
|
40
40
|
background-color var(--ds-duration-fast) var(--ds-ease-default);
|
|
41
41
|
}
|
|
42
|
+
.ds-drop-zone:focus-visible {
|
|
43
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
44
|
+
outline-offset: var(--ds-ring-offset);
|
|
45
|
+
}
|
|
42
46
|
|
|
43
47
|
:root:not(.dark) .ds-drop-zone {
|
|
44
48
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect x='1' y='1' width='99%25' height='99%25' rx='16' ry='16' fill='none' stroke='%23d4d4d8' stroke-width='2' stroke-dasharray='10 8'/%3E%3C/svg%3E");
|
|
@@ -85,6 +85,10 @@
|
|
|
85
85
|
background-color: var(--ds-color-bg-elevated);
|
|
86
86
|
color: var(--ds-color-text);
|
|
87
87
|
}
|
|
88
|
+
.ds-dropdown__item:focus-visible {
|
|
89
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
90
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
91
|
+
}
|
|
88
92
|
|
|
89
93
|
.ds-dropdown__item--active {
|
|
90
94
|
background-color: var(--ds-color-bg-elevated);
|
package/src/components/input.css
CHANGED
|
@@ -23,7 +23,11 @@
|
|
|
23
23
|
background-color: var(--ds-color-surface);
|
|
24
24
|
border: 1px solid var(--ds-color-border);
|
|
25
25
|
border-radius: var(--ds-radius-lg);
|
|
26
|
-
|
|
26
|
+
outline: none;
|
|
27
|
+
transition:
|
|
28
|
+
border-color var(--ds-duration-fast) var(--ds-ease-default),
|
|
29
|
+
box-shadow var(--ds-duration-fast) var(--ds-ease-default),
|
|
30
|
+
background-color var(--ds-duration-fast) var(--ds-ease-default);
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
.ds-input,
|
|
@@ -31,18 +35,22 @@
|
|
|
31
35
|
height: var(--ds-size-3);
|
|
32
36
|
}
|
|
33
37
|
|
|
38
|
+
/* Hover */
|
|
34
39
|
.ds-input:hover,
|
|
35
40
|
.ds-textarea:hover,
|
|
36
41
|
.ds-select:hover {
|
|
37
42
|
border-color: var(--ds-color-border-hover);
|
|
38
43
|
}
|
|
39
44
|
|
|
40
|
-
.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
/* Focus — box-shadow ring instead of outline.
|
|
46
|
+
Inputs always trigger :focus-visible (browser heuristic for text entry),
|
|
47
|
+
so outline creates unavoidable double-border with offset.
|
|
48
|
+
box-shadow follows border-radius perfectly and has no gap. */
|
|
49
|
+
.ds-input:focus-visible,
|
|
50
|
+
.ds-textarea:focus-visible,
|
|
51
|
+
.ds-select:focus-visible {
|
|
52
|
+
border-color: var(--ds-ring-color);
|
|
53
|
+
box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
|
|
46
54
|
}
|
|
47
55
|
|
|
48
56
|
.ds-input::placeholder,
|
|
@@ -50,19 +58,32 @@
|
|
|
50
58
|
color: var(--ds-color-text-tertiary);
|
|
51
59
|
}
|
|
52
60
|
|
|
53
|
-
/* States */
|
|
61
|
+
/* States — error: border + ring match the semantic color */
|
|
54
62
|
.ds-input--error,
|
|
55
63
|
.ds-textarea--error {
|
|
56
64
|
border-color: var(--ds-color-error);
|
|
57
65
|
}
|
|
58
|
-
.ds-input--error:
|
|
59
|
-
.ds-textarea--error:
|
|
60
|
-
|
|
66
|
+
.ds-input--error:hover,
|
|
67
|
+
.ds-textarea--error:hover {
|
|
68
|
+
border-color: var(--ds-color-error);
|
|
69
|
+
}
|
|
70
|
+
.ds-input--error:focus-visible,
|
|
71
|
+
.ds-textarea--error:focus-visible {
|
|
72
|
+
border-color: var(--ds-color-error);
|
|
73
|
+
box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-color-error);
|
|
61
74
|
}
|
|
62
75
|
|
|
76
|
+
/* States — success: border + ring match the semantic color */
|
|
63
77
|
.ds-input--success {
|
|
64
78
|
border-color: var(--ds-color-success);
|
|
65
79
|
}
|
|
80
|
+
.ds-input--success:hover {
|
|
81
|
+
border-color: var(--ds-color-success);
|
|
82
|
+
}
|
|
83
|
+
.ds-input--success:focus-visible {
|
|
84
|
+
border-color: var(--ds-color-success);
|
|
85
|
+
box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-color-success);
|
|
86
|
+
}
|
|
66
87
|
|
|
67
88
|
/* Sizes */
|
|
68
89
|
.ds-input--xs,
|
package/src/components/modal.css
CHANGED
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
justify-content: center;
|
|
13
13
|
padding: var(--ds-space-4);
|
|
14
14
|
background-color: var(--ds-color-overlay);
|
|
15
|
-
backdrop-filter: blur(
|
|
16
|
-
-webkit-backdrop-filter: blur(
|
|
15
|
+
backdrop-filter: blur(var(--ds-blur-sm));
|
|
16
|
+
-webkit-backdrop-filter: blur(var(--ds-blur-sm));
|
|
17
17
|
opacity: 0;
|
|
18
18
|
visibility: hidden;
|
|
19
19
|
transition:
|
|
@@ -82,6 +82,10 @@
|
|
|
82
82
|
.ds-modal__close:hover {
|
|
83
83
|
color: var(--ds-color-text);
|
|
84
84
|
}
|
|
85
|
+
.ds-modal__close:focus-visible {
|
|
86
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
87
|
+
outline-offset: var(--ds-ring-offset);
|
|
88
|
+
}
|
|
85
89
|
|
|
86
90
|
.ds-modal__body {
|
|
87
91
|
padding: var(--ds-space-5);
|
package/src/components/nav.css
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
height: 4rem;
|
|
16
16
|
background-color: var(--ds-color-nav-bg);
|
|
17
17
|
border-bottom: 1px solid var(--ds-color-nav-border);
|
|
18
|
-
backdrop-filter: blur(
|
|
19
|
-
-webkit-backdrop-filter: blur(
|
|
18
|
+
backdrop-filter: blur(var(--ds-blur-lg)) saturate(1.5);
|
|
19
|
+
-webkit-backdrop-filter: blur(var(--ds-blur-lg)) saturate(1.5);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.ds-nav--static {
|
|
@@ -59,6 +59,11 @@
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
.ds-nav__link:focus-visible {
|
|
63
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
64
|
+
outline-offset: var(--ds-ring-offset);
|
|
65
|
+
}
|
|
66
|
+
|
|
62
67
|
.ds-nav__link--active {
|
|
63
68
|
color: var(--ds-color-text);
|
|
64
69
|
}
|
|
@@ -88,13 +93,18 @@
|
|
|
88
93
|
}
|
|
89
94
|
}
|
|
90
95
|
|
|
96
|
+
.ds-nav__icon-btn:focus-visible {
|
|
97
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
98
|
+
outline-offset: var(--ds-ring-offset);
|
|
99
|
+
}
|
|
100
|
+
|
|
91
101
|
/* --- Mobile nav overlay --- */
|
|
92
102
|
.ds-nav__mobile {
|
|
93
103
|
overflow: hidden;
|
|
94
104
|
max-height: 0;
|
|
95
105
|
border-bottom: 0 solid var(--ds-color-nav-border);
|
|
96
106
|
background-color: var(--ds-color-nav-bg);
|
|
97
|
-
backdrop-filter: blur(
|
|
107
|
+
backdrop-filter: blur(var(--ds-blur-lg));
|
|
98
108
|
transition: all var(--ds-duration-slow) var(--ds-ease-out-expo);
|
|
99
109
|
}
|
|
100
110
|
|
|
@@ -162,6 +172,11 @@
|
|
|
162
172
|
}
|
|
163
173
|
}
|
|
164
174
|
|
|
175
|
+
.ds-sidebar__link:focus-visible {
|
|
176
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
177
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
178
|
+
}
|
|
179
|
+
|
|
165
180
|
.ds-sidebar__link--active {
|
|
166
181
|
color: var(--ds-color-text);
|
|
167
182
|
background-color: var(--ds-color-bg-elevated);
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
/* Placement: bottom (default) */
|
|
55
55
|
.ds-popover__content,
|
|
56
56
|
.ds-popover--bottom .ds-popover__content {
|
|
57
|
-
top: calc(100% +
|
|
57
|
+
top: calc(100% + var(--ds-offset-md));
|
|
58
58
|
left: 50%;
|
|
59
59
|
transform: translateX(-50%) scale(0.96);
|
|
60
60
|
}
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
|
|
67
67
|
/* Placement: top */
|
|
68
68
|
.ds-popover--top .ds-popover__content {
|
|
69
|
-
bottom: calc(100% +
|
|
69
|
+
bottom: calc(100% + var(--ds-offset-md));
|
|
70
70
|
top: auto;
|
|
71
71
|
left: 50%;
|
|
72
72
|
transform: translateX(-50%) scale(0.96);
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
|
|
79
79
|
/* Placement: left */
|
|
80
80
|
.ds-popover--left .ds-popover__content {
|
|
81
|
-
right: calc(100% +
|
|
81
|
+
right: calc(100% + var(--ds-offset-md));
|
|
82
82
|
top: 50%;
|
|
83
83
|
left: auto;
|
|
84
84
|
transform: translateY(-50%) scale(0.96);
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
|
|
91
91
|
/* Placement: right */
|
|
92
92
|
.ds-popover--right .ds-popover__content {
|
|
93
|
-
left: calc(100% +
|
|
93
|
+
left: calc(100% + var(--ds-offset-md));
|
|
94
94
|
top: 50%;
|
|
95
95
|
transform: translateY(-50%) scale(0.96);
|
|
96
96
|
}
|
package/src/components/toast.css
CHANGED
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
animation: ds-toast-in var(--ds-duration-slow) var(--ds-ease-out-expo) forwards;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
.ds-toast--info { border-left:
|
|
39
|
-
.ds-toast--success { border-left:
|
|
40
|
-
.ds-toast--warning { border-left:
|
|
41
|
-
.ds-toast--error { border-left:
|
|
38
|
+
.ds-toast--info { border-left: var(--ds-accent-border-width) solid var(--ds-color-info); }
|
|
39
|
+
.ds-toast--success { border-left: var(--ds-accent-border-width) solid var(--ds-color-success); }
|
|
40
|
+
.ds-toast--warning { border-left: var(--ds-accent-border-width) solid var(--ds-color-warning); }
|
|
41
|
+
.ds-toast--error { border-left: var(--ds-accent-border-width) solid var(--ds-color-error); }
|
|
42
42
|
|
|
43
43
|
.ds-toast__message {
|
|
44
44
|
flex: 1;
|
|
@@ -55,6 +55,10 @@
|
|
|
55
55
|
.ds-toast__close:hover {
|
|
56
56
|
color: var(--ds-color-text);
|
|
57
57
|
}
|
|
58
|
+
.ds-toast__close:focus-visible {
|
|
59
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
60
|
+
outline-offset: var(--ds-ring-offset);
|
|
61
|
+
}
|
|
58
62
|
|
|
59
63
|
@keyframes ds-toast-in {
|
|
60
64
|
from { opacity: 0; transform: translateY(-8px); }
|
|
@@ -68,3 +72,8 @@
|
|
|
68
72
|
@keyframes ds-toast-out {
|
|
69
73
|
to { opacity: 0; transform: translateX(100%); }
|
|
70
74
|
}
|
|
75
|
+
|
|
76
|
+
@media (prefers-reduced-motion: reduce) {
|
|
77
|
+
.ds-toast { animation: none; }
|
|
78
|
+
.ds-toast--exit { animation: none; opacity: 0; }
|
|
79
|
+
}
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
|
|
63
63
|
.ds-tooltip .ds-tooltip__content,
|
|
64
64
|
.ds-tooltip--top .ds-tooltip__content {
|
|
65
|
-
bottom: calc(100% +
|
|
65
|
+
bottom: calc(100% + var(--ds-offset-md));
|
|
66
66
|
left: 50%;
|
|
67
67
|
transform: translateX(-50%) translateY(4px);
|
|
68
68
|
}
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
============================================= */
|
|
87
87
|
|
|
88
88
|
.ds-tooltip--bottom .ds-tooltip__content {
|
|
89
|
-
top: calc(100% +
|
|
89
|
+
top: calc(100% + var(--ds-offset-md));
|
|
90
90
|
bottom: auto;
|
|
91
91
|
left: 50%;
|
|
92
92
|
transform: translateX(-50%) translateY(-4px);
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
============================================= */
|
|
112
112
|
|
|
113
113
|
.ds-tooltip--left .ds-tooltip__content {
|
|
114
|
-
right: calc(100% +
|
|
114
|
+
right: calc(100% + var(--ds-offset-md));
|
|
115
115
|
left: auto;
|
|
116
116
|
bottom: auto;
|
|
117
117
|
top: 50%;
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
============================================= */
|
|
139
139
|
|
|
140
140
|
.ds-tooltip--right .ds-tooltip__content {
|
|
141
|
-
left: calc(100% +
|
|
141
|
+
left: calc(100% + var(--ds-offset-md));
|
|
142
142
|
right: auto;
|
|
143
143
|
bottom: auto;
|
|
144
144
|
top: 50%;
|
package/src/tokens/shadows.css
CHANGED
|
@@ -21,6 +21,35 @@
|
|
|
21
21
|
--ds-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
|
|
22
22
|
--ds-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
23
23
|
|
|
24
|
+
/* --- Backdrop Blur --- */
|
|
25
|
+
--ds-blur-sm: 4px;
|
|
26
|
+
--ds-blur-md: 12px;
|
|
27
|
+
--ds-blur-lg: 20px;
|
|
28
|
+
|
|
29
|
+
/* --- Indicator Sizes --- */
|
|
30
|
+
--ds-dot-size: 6px;
|
|
31
|
+
|
|
32
|
+
/* --- Accent Border --- */
|
|
33
|
+
--ds-accent-border-width: 3px;
|
|
34
|
+
|
|
35
|
+
/* --- Popover/Tooltip Offset --- */
|
|
36
|
+
--ds-offset-sm: 4px;
|
|
37
|
+
--ds-offset-md: 8px;
|
|
38
|
+
|
|
24
39
|
/* --- Opacity --- */
|
|
25
40
|
--ds-opacity-disabled: 0.5;
|
|
26
41
|
}
|
|
42
|
+
|
|
43
|
+
/* --- Reduced Motion ---
|
|
44
|
+
Zero out duration tokens so every component that uses
|
|
45
|
+
var(--ds-duration-*) transitions instantly.
|
|
46
|
+
Keyframe animations are handled per-component.
|
|
47
|
+
-------------------------------------------------------- */
|
|
48
|
+
@media (prefers-reduced-motion: reduce) {
|
|
49
|
+
:root {
|
|
50
|
+
--ds-duration-fast: 0s;
|
|
51
|
+
--ds-duration-normal: 0s;
|
|
52
|
+
--ds-duration-slow: 0s;
|
|
53
|
+
--ds-duration-slower: 0s;
|
|
54
|
+
}
|
|
55
|
+
}
|
package/src/utilities/layout.css
CHANGED
|
@@ -192,11 +192,15 @@
|
|
|
192
192
|
.ds-z-60 { z-index: var(--ds-z-sticky); }
|
|
193
193
|
|
|
194
194
|
/* --- Inset / Position Values --- */
|
|
195
|
-
.ds-inset-0
|
|
196
|
-
.ds-
|
|
197
|
-
.ds-
|
|
198
|
-
.ds-
|
|
199
|
-
.ds-
|
|
195
|
+
.ds-inset-0 { inset: 0; }
|
|
196
|
+
.ds-inset-x-0 { left: 0; right: 0; }
|
|
197
|
+
.ds-inset-y-0 { top: 0; bottom: 0; }
|
|
198
|
+
.ds-top-0 { top: 0; }
|
|
199
|
+
.ds-top-full { top: 100%; }
|
|
200
|
+
.ds-right-0 { right: 0; }
|
|
201
|
+
.ds-bottom-0 { bottom: 0; }
|
|
202
|
+
.ds-bottom-full { bottom: 100%; }
|
|
203
|
+
.ds-left-0 { left: 0; }
|
|
200
204
|
.ds-top-2 { top: var(--ds-space-2); }
|
|
201
205
|
.ds-right-2 { right: var(--ds-space-2); }
|
|
202
206
|
.ds-left-2 { left: var(--ds-space-2); }
|