@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
package/README.md
CHANGED
|
@@ -43,7 +43,7 @@ npm install @digiko-npm/designsystem
|
|
|
43
43
|
<span class="ds-badge ds-badge--success">Active</span>
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
## Components (
|
|
46
|
+
## Components (32)
|
|
47
47
|
|
|
48
48
|
| Core | Essential | Common | Advanced |
|
|
49
49
|
|------|-----------|--------|----------|
|
|
@@ -54,7 +54,10 @@ npm install @digiko-npm/designsystem
|
|
|
54
54
|
| Nav | Tooltip | Accordion | Command |
|
|
55
55
|
| Modal | Avatar | Drawer | |
|
|
56
56
|
| Toast | Skeleton | Progress | |
|
|
57
|
-
| Table | Empty State | | |
|
|
57
|
+
| Table | Empty State | Datepicker | |
|
|
58
|
+
| | | Drop Zone | |
|
|
59
|
+
| | | Custom Select | |
|
|
60
|
+
| | | Sortable | |
|
|
58
61
|
|
|
59
62
|
All components use `ds-` prefix with BEM naming: `.ds-btn`, `.ds-btn--secondary`, `.ds-card__body`.
|
|
60
63
|
|
package/dist/designsystem.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @ds/designsystem v0.3.
|
|
1
|
+
/* @ds/designsystem v0.3.34 */
|
|
2
2
|
/* ==========================================================================
|
|
3
3
|
@digiko-npm/designsystem
|
|
4
4
|
|
|
@@ -361,10 +361,39 @@
|
|
|
361
361
|
--ds-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
|
|
362
362
|
--ds-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
363
363
|
|
|
364
|
+
/* --- Backdrop Blur --- */
|
|
365
|
+
--ds-blur-sm: 4px;
|
|
366
|
+
--ds-blur-md: 12px;
|
|
367
|
+
--ds-blur-lg: 20px;
|
|
368
|
+
|
|
369
|
+
/* --- Indicator Sizes --- */
|
|
370
|
+
--ds-dot-size: 6px;
|
|
371
|
+
|
|
372
|
+
/* --- Accent Border --- */
|
|
373
|
+
--ds-accent-border-width: 3px;
|
|
374
|
+
|
|
375
|
+
/* --- Popover/Tooltip Offset --- */
|
|
376
|
+
--ds-offset-sm: 4px;
|
|
377
|
+
--ds-offset-md: 8px;
|
|
378
|
+
|
|
364
379
|
/* --- Opacity --- */
|
|
365
380
|
--ds-opacity-disabled: 0.5;
|
|
366
381
|
}
|
|
367
382
|
|
|
383
|
+
/* --- Reduced Motion ---
|
|
384
|
+
Zero out duration tokens so every component that uses
|
|
385
|
+
var(--ds-duration-*) transitions instantly.
|
|
386
|
+
Keyframe animations are handled per-component.
|
|
387
|
+
-------------------------------------------------------- */
|
|
388
|
+
@media (prefers-reduced-motion: reduce) {
|
|
389
|
+
:root {
|
|
390
|
+
--ds-duration-fast: 0s;
|
|
391
|
+
--ds-duration-normal: 0s;
|
|
392
|
+
--ds-duration-slow: 0s;
|
|
393
|
+
--ds-duration-slower: 0s;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
368
397
|
|
|
369
398
|
/* ==========================================================================
|
|
370
399
|
Base: Reset
|
|
@@ -470,14 +499,11 @@ input[type="number"]::-webkit-inner-spin-button {
|
|
|
470
499
|
.ds-no-scrollbar::-webkit-scrollbar { display: none; }
|
|
471
500
|
.ds-no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
|
|
472
501
|
|
|
473
|
-
/* Reduce motion
|
|
502
|
+
/* Reduce motion — scroll only.
|
|
503
|
+
Transitions are handled via --ds-duration-* tokens in shadows.css.
|
|
504
|
+
Keyframe animations are handled per-component. */
|
|
474
505
|
@media (prefers-reduced-motion: reduce) {
|
|
475
|
-
|
|
476
|
-
animation-duration: 0.01ms !important;
|
|
477
|
-
animation-iteration-count: 1 !important;
|
|
478
|
-
transition-duration: 0.01ms !important;
|
|
479
|
-
scroll-behavior: auto !important;
|
|
480
|
-
}
|
|
506
|
+
html { scroll-behavior: auto !important; }
|
|
481
507
|
}
|
|
482
508
|
|
|
483
509
|
/* ==========================================================================
|
|
@@ -842,6 +868,10 @@ hr {
|
|
|
842
868
|
to { transform: rotate(360deg); }
|
|
843
869
|
}
|
|
844
870
|
|
|
871
|
+
@media (prefers-reduced-motion: reduce) {
|
|
872
|
+
.ds-btn--loading::after { animation: none; opacity: 0.6; }
|
|
873
|
+
}
|
|
874
|
+
|
|
845
875
|
/* ==========================================================================
|
|
846
876
|
Component: Card
|
|
847
877
|
Surface + border, hover with shadow lift, rounded-xl.
|
|
@@ -864,6 +894,10 @@ hr {
|
|
|
864
894
|
box-shadow: var(--ds-shadow-lg);
|
|
865
895
|
transform: translateY(-4px);
|
|
866
896
|
}
|
|
897
|
+
.ds-card--interactive:focus-visible {
|
|
898
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
899
|
+
outline-offset: var(--ds-ring-offset);
|
|
900
|
+
}
|
|
867
901
|
|
|
868
902
|
/* Elevated card — visible shadow */
|
|
869
903
|
.ds-card--elevated {
|
|
@@ -989,7 +1023,11 @@ hr {
|
|
|
989
1023
|
background-color: var(--ds-color-surface);
|
|
990
1024
|
border: 1px solid var(--ds-color-border);
|
|
991
1025
|
border-radius: var(--ds-radius-lg);
|
|
992
|
-
|
|
1026
|
+
outline: none;
|
|
1027
|
+
transition:
|
|
1028
|
+
border-color var(--ds-duration-fast) var(--ds-ease-default),
|
|
1029
|
+
box-shadow var(--ds-duration-fast) var(--ds-ease-default),
|
|
1030
|
+
background-color var(--ds-duration-fast) var(--ds-ease-default);
|
|
993
1031
|
}
|
|
994
1032
|
|
|
995
1033
|
.ds-input,
|
|
@@ -997,18 +1035,22 @@ hr {
|
|
|
997
1035
|
height: var(--ds-size-3);
|
|
998
1036
|
}
|
|
999
1037
|
|
|
1038
|
+
/* Hover */
|
|
1000
1039
|
.ds-input:hover,
|
|
1001
1040
|
.ds-textarea:hover,
|
|
1002
1041
|
.ds-select:hover {
|
|
1003
1042
|
border-color: var(--ds-color-border-hover);
|
|
1004
1043
|
}
|
|
1005
1044
|
|
|
1006
|
-
.
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1045
|
+
/* Focus — box-shadow ring instead of outline.
|
|
1046
|
+
Inputs always trigger :focus-visible (browser heuristic for text entry),
|
|
1047
|
+
so outline creates unavoidable double-border with offset.
|
|
1048
|
+
box-shadow follows border-radius perfectly and has no gap. */
|
|
1049
|
+
.ds-input:focus-visible,
|
|
1050
|
+
.ds-textarea:focus-visible,
|
|
1051
|
+
.ds-select:focus-visible {
|
|
1052
|
+
border-color: var(--ds-ring-color);
|
|
1053
|
+
box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
|
|
1012
1054
|
}
|
|
1013
1055
|
|
|
1014
1056
|
.ds-input::placeholder,
|
|
@@ -1016,19 +1058,32 @@ hr {
|
|
|
1016
1058
|
color: var(--ds-color-text-tertiary);
|
|
1017
1059
|
}
|
|
1018
1060
|
|
|
1019
|
-
/* States */
|
|
1061
|
+
/* States — error: border + ring match the semantic color */
|
|
1020
1062
|
.ds-input--error,
|
|
1021
1063
|
.ds-textarea--error {
|
|
1022
1064
|
border-color: var(--ds-color-error);
|
|
1023
1065
|
}
|
|
1024
|
-
.ds-input--error:
|
|
1025
|
-
.ds-textarea--error:
|
|
1026
|
-
|
|
1066
|
+
.ds-input--error:hover,
|
|
1067
|
+
.ds-textarea--error:hover {
|
|
1068
|
+
border-color: var(--ds-color-error);
|
|
1069
|
+
}
|
|
1070
|
+
.ds-input--error:focus-visible,
|
|
1071
|
+
.ds-textarea--error:focus-visible {
|
|
1072
|
+
border-color: var(--ds-color-error);
|
|
1073
|
+
box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-color-error);
|
|
1027
1074
|
}
|
|
1028
1075
|
|
|
1076
|
+
/* States — success: border + ring match the semantic color */
|
|
1029
1077
|
.ds-input--success {
|
|
1030
1078
|
border-color: var(--ds-color-success);
|
|
1031
1079
|
}
|
|
1080
|
+
.ds-input--success:hover {
|
|
1081
|
+
border-color: var(--ds-color-success);
|
|
1082
|
+
}
|
|
1083
|
+
.ds-input--success:focus-visible {
|
|
1084
|
+
border-color: var(--ds-color-success);
|
|
1085
|
+
box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-color-success);
|
|
1086
|
+
}
|
|
1032
1087
|
|
|
1033
1088
|
/* Sizes */
|
|
1034
1089
|
.ds-input--xs,
|
|
@@ -1205,8 +1260,8 @@ hr {
|
|
|
1205
1260
|
/* Dot indicator */
|
|
1206
1261
|
.ds-badge--dot::before {
|
|
1207
1262
|
content: '';
|
|
1208
|
-
width:
|
|
1209
|
-
height:
|
|
1263
|
+
width: var(--ds-dot-size);
|
|
1264
|
+
height: var(--ds-dot-size);
|
|
1210
1265
|
border-radius: var(--ds-radius-full);
|
|
1211
1266
|
background-color: currentColor;
|
|
1212
1267
|
}
|
|
@@ -1236,8 +1291,8 @@ hr {
|
|
|
1236
1291
|
height: 4rem;
|
|
1237
1292
|
background-color: var(--ds-color-nav-bg);
|
|
1238
1293
|
border-bottom: 1px solid var(--ds-color-nav-border);
|
|
1239
|
-
backdrop-filter: blur(
|
|
1240
|
-
-webkit-backdrop-filter: blur(
|
|
1294
|
+
backdrop-filter: blur(var(--ds-blur-lg)) saturate(1.5);
|
|
1295
|
+
-webkit-backdrop-filter: blur(var(--ds-blur-lg)) saturate(1.5);
|
|
1241
1296
|
}
|
|
1242
1297
|
|
|
1243
1298
|
.ds-nav--static {
|
|
@@ -1280,6 +1335,11 @@ hr {
|
|
|
1280
1335
|
}
|
|
1281
1336
|
}
|
|
1282
1337
|
|
|
1338
|
+
.ds-nav__link:focus-visible {
|
|
1339
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
1340
|
+
outline-offset: var(--ds-ring-offset);
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1283
1343
|
.ds-nav__link--active {
|
|
1284
1344
|
color: var(--ds-color-text);
|
|
1285
1345
|
}
|
|
@@ -1309,13 +1369,18 @@ hr {
|
|
|
1309
1369
|
}
|
|
1310
1370
|
}
|
|
1311
1371
|
|
|
1372
|
+
.ds-nav__icon-btn:focus-visible {
|
|
1373
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
1374
|
+
outline-offset: var(--ds-ring-offset);
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1312
1377
|
/* --- Mobile nav overlay --- */
|
|
1313
1378
|
.ds-nav__mobile {
|
|
1314
1379
|
overflow: hidden;
|
|
1315
1380
|
max-height: 0;
|
|
1316
1381
|
border-bottom: 0 solid var(--ds-color-nav-border);
|
|
1317
1382
|
background-color: var(--ds-color-nav-bg);
|
|
1318
|
-
backdrop-filter: blur(
|
|
1383
|
+
backdrop-filter: blur(var(--ds-blur-lg));
|
|
1319
1384
|
transition: all var(--ds-duration-slow) var(--ds-ease-out-expo);
|
|
1320
1385
|
}
|
|
1321
1386
|
|
|
@@ -1383,6 +1448,11 @@ hr {
|
|
|
1383
1448
|
}
|
|
1384
1449
|
}
|
|
1385
1450
|
|
|
1451
|
+
.ds-sidebar__link:focus-visible {
|
|
1452
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
1453
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1386
1456
|
.ds-sidebar__link--active {
|
|
1387
1457
|
color: var(--ds-color-text);
|
|
1388
1458
|
background-color: var(--ds-color-bg-elevated);
|
|
@@ -1402,8 +1472,8 @@ hr {
|
|
|
1402
1472
|
justify-content: center;
|
|
1403
1473
|
padding: var(--ds-space-4);
|
|
1404
1474
|
background-color: var(--ds-color-overlay);
|
|
1405
|
-
backdrop-filter: blur(
|
|
1406
|
-
-webkit-backdrop-filter: blur(
|
|
1475
|
+
backdrop-filter: blur(var(--ds-blur-sm));
|
|
1476
|
+
-webkit-backdrop-filter: blur(var(--ds-blur-sm));
|
|
1407
1477
|
opacity: 0;
|
|
1408
1478
|
visibility: hidden;
|
|
1409
1479
|
transition:
|
|
@@ -1472,6 +1542,10 @@ hr {
|
|
|
1472
1542
|
.ds-modal__close:hover {
|
|
1473
1543
|
color: var(--ds-color-text);
|
|
1474
1544
|
}
|
|
1545
|
+
.ds-modal__close:focus-visible {
|
|
1546
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
1547
|
+
outline-offset: var(--ds-ring-offset);
|
|
1548
|
+
}
|
|
1475
1549
|
|
|
1476
1550
|
.ds-modal__body {
|
|
1477
1551
|
padding: var(--ds-space-5);
|
|
@@ -1529,10 +1603,10 @@ hr {
|
|
|
1529
1603
|
animation: ds-toast-in var(--ds-duration-slow) var(--ds-ease-out-expo) forwards;
|
|
1530
1604
|
}
|
|
1531
1605
|
|
|
1532
|
-
.ds-toast--info { border-left:
|
|
1533
|
-
.ds-toast--success { border-left:
|
|
1534
|
-
.ds-toast--warning { border-left:
|
|
1535
|
-
.ds-toast--error { border-left:
|
|
1606
|
+
.ds-toast--info { border-left: var(--ds-accent-border-width) solid var(--ds-color-info); }
|
|
1607
|
+
.ds-toast--success { border-left: var(--ds-accent-border-width) solid var(--ds-color-success); }
|
|
1608
|
+
.ds-toast--warning { border-left: var(--ds-accent-border-width) solid var(--ds-color-warning); }
|
|
1609
|
+
.ds-toast--error { border-left: var(--ds-accent-border-width) solid var(--ds-color-error); }
|
|
1536
1610
|
|
|
1537
1611
|
.ds-toast__message {
|
|
1538
1612
|
flex: 1;
|
|
@@ -1549,6 +1623,10 @@ hr {
|
|
|
1549
1623
|
.ds-toast__close:hover {
|
|
1550
1624
|
color: var(--ds-color-text);
|
|
1551
1625
|
}
|
|
1626
|
+
.ds-toast__close:focus-visible {
|
|
1627
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
1628
|
+
outline-offset: var(--ds-ring-offset);
|
|
1629
|
+
}
|
|
1552
1630
|
|
|
1553
1631
|
@keyframes ds-toast-in {
|
|
1554
1632
|
from { opacity: 0; transform: translateY(-8px); }
|
|
@@ -1563,6 +1641,11 @@ hr {
|
|
|
1563
1641
|
to { opacity: 0; transform: translateX(100%); }
|
|
1564
1642
|
}
|
|
1565
1643
|
|
|
1644
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1645
|
+
.ds-toast { animation: none; }
|
|
1646
|
+
.ds-toast--exit { animation: none; opacity: 0; }
|
|
1647
|
+
}
|
|
1648
|
+
|
|
1566
1649
|
/* ==========================================================================
|
|
1567
1650
|
Component: Table
|
|
1568
1651
|
========================================================================== */
|
|
@@ -1792,7 +1875,7 @@ hr {
|
|
|
1792
1875
|
border: 1px solid var(--ds-color-border);
|
|
1793
1876
|
border-radius: var(--ds-radius-lg);
|
|
1794
1877
|
background-color: var(--ds-color-surface);
|
|
1795
|
-
border-left:
|
|
1878
|
+
border-left: var(--ds-accent-border-width) solid var(--ds-color-border);
|
|
1796
1879
|
}
|
|
1797
1880
|
|
|
1798
1881
|
/* --- Semantic Variants --- */
|
|
@@ -2083,6 +2166,10 @@ hr {
|
|
|
2083
2166
|
background-color: var(--ds-color-bg-elevated);
|
|
2084
2167
|
color: var(--ds-color-text);
|
|
2085
2168
|
}
|
|
2169
|
+
.ds-dropdown__item:focus-visible {
|
|
2170
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
2171
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
2172
|
+
}
|
|
2086
2173
|
|
|
2087
2174
|
.ds-dropdown__item--active {
|
|
2088
2175
|
background-color: var(--ds-color-bg-elevated);
|
|
@@ -2200,7 +2287,7 @@ hr {
|
|
|
2200
2287
|
|
|
2201
2288
|
.ds-tooltip .ds-tooltip__content,
|
|
2202
2289
|
.ds-tooltip--top .ds-tooltip__content {
|
|
2203
|
-
bottom: calc(100% +
|
|
2290
|
+
bottom: calc(100% + var(--ds-offset-md));
|
|
2204
2291
|
left: 50%;
|
|
2205
2292
|
transform: translateX(-50%) translateY(4px);
|
|
2206
2293
|
}
|
|
@@ -2224,7 +2311,7 @@ hr {
|
|
|
2224
2311
|
============================================= */
|
|
2225
2312
|
|
|
2226
2313
|
.ds-tooltip--bottom .ds-tooltip__content {
|
|
2227
|
-
top: calc(100% +
|
|
2314
|
+
top: calc(100% + var(--ds-offset-md));
|
|
2228
2315
|
bottom: auto;
|
|
2229
2316
|
left: 50%;
|
|
2230
2317
|
transform: translateX(-50%) translateY(-4px);
|
|
@@ -2249,7 +2336,7 @@ hr {
|
|
|
2249
2336
|
============================================= */
|
|
2250
2337
|
|
|
2251
2338
|
.ds-tooltip--left .ds-tooltip__content {
|
|
2252
|
-
right: calc(100% +
|
|
2339
|
+
right: calc(100% + var(--ds-offset-md));
|
|
2253
2340
|
left: auto;
|
|
2254
2341
|
bottom: auto;
|
|
2255
2342
|
top: 50%;
|
|
@@ -2276,7 +2363,7 @@ hr {
|
|
|
2276
2363
|
============================================= */
|
|
2277
2364
|
|
|
2278
2365
|
.ds-tooltip--right .ds-tooltip__content {
|
|
2279
|
-
left: calc(100% +
|
|
2366
|
+
left: calc(100% + var(--ds-offset-md));
|
|
2280
2367
|
right: auto;
|
|
2281
2368
|
bottom: auto;
|
|
2282
2369
|
top: 50%;
|
|
@@ -2505,6 +2592,10 @@ hr {
|
|
|
2505
2592
|
}
|
|
2506
2593
|
}
|
|
2507
2594
|
|
|
2595
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2596
|
+
.ds-skeleton { animation: none; }
|
|
2597
|
+
}
|
|
2598
|
+
|
|
2508
2599
|
/* ==========================================================================
|
|
2509
2600
|
Component: Empty State
|
|
2510
2601
|
Centered message for when there's no data to display.
|
|
@@ -2636,11 +2727,16 @@ hr {
|
|
|
2636
2727
|
line-height: 1;
|
|
2637
2728
|
}
|
|
2638
2729
|
|
|
2730
|
+
.ds-datepicker__trigger:focus-visible {
|
|
2731
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
2732
|
+
outline-offset: var(--ds-ring-offset);
|
|
2733
|
+
}
|
|
2734
|
+
|
|
2639
2735
|
/* Calendar panel */
|
|
2640
2736
|
.ds-datepicker__panel {
|
|
2641
2737
|
position: absolute;
|
|
2642
2738
|
z-index: var(--ds-z-dropdown);
|
|
2643
|
-
top: calc(100% +
|
|
2739
|
+
top: calc(100% + var(--ds-offset-sm));
|
|
2644
2740
|
left: 0;
|
|
2645
2741
|
background-color: var(--ds-color-surface);
|
|
2646
2742
|
border: 1px solid var(--ds-color-border);
|
|
@@ -2652,8 +2748,8 @@ hr {
|
|
|
2652
2748
|
visibility: hidden;
|
|
2653
2749
|
transform: scale(0.96);
|
|
2654
2750
|
transition:
|
|
2655
|
-
opacity var(--ds-duration-fast) var(--ds-ease),
|
|
2656
|
-
visibility var(--ds-duration-fast) var(--ds-ease),
|
|
2751
|
+
opacity var(--ds-duration-fast) var(--ds-ease-default),
|
|
2752
|
+
visibility var(--ds-duration-fast) var(--ds-ease-default),
|
|
2657
2753
|
transform var(--ds-duration-fast) var(--ds-ease-out-expo);
|
|
2658
2754
|
}
|
|
2659
2755
|
|
|
@@ -2674,7 +2770,7 @@ hr {
|
|
|
2674
2770
|
|
|
2675
2771
|
.ds-datepicker__title {
|
|
2676
2772
|
font-size: var(--ds-text-sm);
|
|
2677
|
-
font-weight:
|
|
2773
|
+
font-weight: var(--ds-weight-semibold);
|
|
2678
2774
|
color: var(--ds-color-text);
|
|
2679
2775
|
user-select: none;
|
|
2680
2776
|
}
|
|
@@ -2691,13 +2787,17 @@ hr {
|
|
|
2691
2787
|
color: var(--ds-color-text-secondary);
|
|
2692
2788
|
cursor: pointer;
|
|
2693
2789
|
font-size: var(--ds-text-base);
|
|
2694
|
-
transition: all var(--ds-duration-fast) var(--ds-ease);
|
|
2790
|
+
transition: all var(--ds-duration-fast) var(--ds-ease-default);
|
|
2695
2791
|
}
|
|
2696
2792
|
|
|
2697
2793
|
.ds-datepicker__nav:hover {
|
|
2698
2794
|
background-color: var(--ds-color-bg-elevated);
|
|
2699
2795
|
color: var(--ds-color-text);
|
|
2700
2796
|
}
|
|
2797
|
+
.ds-datepicker__nav:focus-visible {
|
|
2798
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
2799
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
2800
|
+
}
|
|
2701
2801
|
|
|
2702
2802
|
/* Weekday header row */
|
|
2703
2803
|
.ds-datepicker__weekdays {
|
|
@@ -2712,7 +2812,7 @@ hr {
|
|
|
2712
2812
|
text-align: center;
|
|
2713
2813
|
padding: var(--ds-space-1) 0;
|
|
2714
2814
|
user-select: none;
|
|
2715
|
-
font-weight:
|
|
2815
|
+
font-weight: var(--ds-weight-medium);
|
|
2716
2816
|
}
|
|
2717
2817
|
|
|
2718
2818
|
/* Day grid */
|
|
@@ -2734,7 +2834,7 @@ hr {
|
|
|
2734
2834
|
font-size: var(--ds-text-sm);
|
|
2735
2835
|
color: var(--ds-color-text);
|
|
2736
2836
|
cursor: pointer;
|
|
2737
|
-
transition: all var(--ds-duration-fast) var(--ds-ease);
|
|
2837
|
+
transition: all var(--ds-duration-fast) var(--ds-ease-default);
|
|
2738
2838
|
padding: 0;
|
|
2739
2839
|
line-height: 1;
|
|
2740
2840
|
user-select: none;
|
|
@@ -2743,18 +2843,22 @@ hr {
|
|
|
2743
2843
|
.ds-datepicker__day:hover {
|
|
2744
2844
|
background-color: var(--ds-color-bg-elevated);
|
|
2745
2845
|
}
|
|
2846
|
+
.ds-datepicker__day:focus-visible {
|
|
2847
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
2848
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
2849
|
+
}
|
|
2746
2850
|
|
|
2747
2851
|
/* Today — subtle ring */
|
|
2748
2852
|
.ds-datepicker__day--today {
|
|
2749
2853
|
box-shadow: inset 0 0 0 1px var(--ds-color-border-active);
|
|
2750
|
-
font-weight:
|
|
2854
|
+
font-weight: var(--ds-weight-semibold);
|
|
2751
2855
|
}
|
|
2752
2856
|
|
|
2753
2857
|
/* Selected — inverted fill */
|
|
2754
2858
|
.ds-datepicker__day--selected {
|
|
2755
2859
|
background-color: var(--ds-color-text);
|
|
2756
2860
|
color: var(--ds-color-bg);
|
|
2757
|
-
font-weight:
|
|
2861
|
+
font-weight: var(--ds-weight-semibold);
|
|
2758
2862
|
}
|
|
2759
2863
|
|
|
2760
2864
|
.ds-datepicker__day--selected:hover {
|
|
@@ -2779,14 +2883,14 @@ hr {
|
|
|
2779
2883
|
|
|
2780
2884
|
.ds-datepicker__today {
|
|
2781
2885
|
font-size: var(--ds-text-xs);
|
|
2782
|
-
font-weight:
|
|
2886
|
+
font-weight: var(--ds-weight-medium);
|
|
2783
2887
|
color: var(--ds-color-text-secondary);
|
|
2784
2888
|
background: none;
|
|
2785
2889
|
border: 1px solid var(--ds-color-border);
|
|
2786
2890
|
border-radius: var(--ds-radius-full);
|
|
2787
2891
|
padding: var(--ds-space-1) var(--ds-space-3);
|
|
2788
2892
|
cursor: pointer;
|
|
2789
|
-
transition: all var(--ds-duration-fast) var(--ds-ease);
|
|
2893
|
+
transition: all var(--ds-duration-fast) var(--ds-ease-default);
|
|
2790
2894
|
}
|
|
2791
2895
|
|
|
2792
2896
|
.ds-datepicker__today:hover {
|
|
@@ -2794,6 +2898,10 @@ hr {
|
|
|
2794
2898
|
color: var(--ds-color-text);
|
|
2795
2899
|
border-color: var(--ds-color-border-hover);
|
|
2796
2900
|
}
|
|
2901
|
+
.ds-datepicker__today:focus-visible {
|
|
2902
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
2903
|
+
outline-offset: var(--ds-ring-offset);
|
|
2904
|
+
}
|
|
2797
2905
|
|
|
2798
2906
|
/* Step arrows — prev/next day buttons beside the date text */
|
|
2799
2907
|
.ds-datepicker__step {
|
|
@@ -2808,7 +2916,7 @@ hr {
|
|
|
2808
2916
|
color: var(--ds-color-text-tertiary);
|
|
2809
2917
|
cursor: pointer;
|
|
2810
2918
|
font-size: var(--ds-text-xs);
|
|
2811
|
-
transition: all var(--ds-duration-fast) var(--ds-ease);
|
|
2919
|
+
transition: all var(--ds-duration-fast) var(--ds-ease-default);
|
|
2812
2920
|
padding: 0;
|
|
2813
2921
|
flex-shrink: 0;
|
|
2814
2922
|
}
|
|
@@ -2817,6 +2925,10 @@ hr {
|
|
|
2817
2925
|
background-color: var(--ds-color-bg-elevated);
|
|
2818
2926
|
color: var(--ds-color-text);
|
|
2819
2927
|
}
|
|
2928
|
+
.ds-datepicker__step:focus-visible {
|
|
2929
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
2930
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
2931
|
+
}
|
|
2820
2932
|
|
|
2821
2933
|
/* Compact mode — for inline table cells */
|
|
2822
2934
|
.ds-datepicker--compact .ds-datepicker__panel {
|
|
@@ -2835,7 +2947,7 @@ hr {
|
|
|
2835
2947
|
}
|
|
2836
2948
|
|
|
2837
2949
|
.ds-datepicker--compact .ds-datepicker__weekday {
|
|
2838
|
-
font-size:
|
|
2950
|
+
font-size: var(--ds-text-2xs);
|
|
2839
2951
|
}
|
|
2840
2952
|
|
|
2841
2953
|
.ds-datepicker--compact .ds-datepicker__day {
|
|
@@ -2843,7 +2955,7 @@ hr {
|
|
|
2843
2955
|
}
|
|
2844
2956
|
|
|
2845
2957
|
.ds-datepicker--compact .ds-datepicker__today {
|
|
2846
|
-
font-size:
|
|
2958
|
+
font-size: var(--ds-text-2xs);
|
|
2847
2959
|
padding: 2px var(--ds-space-2);
|
|
2848
2960
|
}
|
|
2849
2961
|
|
|
@@ -3498,6 +3610,10 @@ button.ds-tag:focus-visible {
|
|
|
3498
3610
|
.ds-accordion__trigger:hover {
|
|
3499
3611
|
background-color: var(--ds-color-overlay);
|
|
3500
3612
|
}
|
|
3613
|
+
.ds-accordion__trigger:focus-visible {
|
|
3614
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
3615
|
+
outline-offset: var(--ds-ring-offset);
|
|
3616
|
+
}
|
|
3501
3617
|
|
|
3502
3618
|
/* Open state – rotate chevron */
|
|
3503
3619
|
.ds-accordion__item--open .ds-accordion__trigger::after {
|
|
@@ -3758,6 +3874,10 @@ button.ds-tag:focus-visible {
|
|
|
3758
3874
|
background-color: var(--ds-color-overlay);
|
|
3759
3875
|
color: var(--ds-color-text);
|
|
3760
3876
|
}
|
|
3877
|
+
.ds-drawer__close:focus-visible {
|
|
3878
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
3879
|
+
outline-offset: var(--ds-ring-offset);
|
|
3880
|
+
}
|
|
3761
3881
|
|
|
3762
3882
|
/* ==========================================================================
|
|
3763
3883
|
* Body
|
|
@@ -4042,6 +4162,10 @@ button.ds-tag:focus-visible {
|
|
|
4042
4162
|
transition:
|
|
4043
4163
|
background-color var(--ds-duration-fast) var(--ds-ease-default);
|
|
4044
4164
|
}
|
|
4165
|
+
.ds-drop-zone:focus-visible {
|
|
4166
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
4167
|
+
outline-offset: var(--ds-ring-offset);
|
|
4168
|
+
}
|
|
4045
4169
|
|
|
4046
4170
|
:root:not(.dark) .ds-drop-zone {
|
|
4047
4171
|
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");
|
|
@@ -4173,6 +4297,12 @@ button.ds-tag:focus-visible {
|
|
|
4173
4297
|
border-color: var(--ds-color-border-hover);
|
|
4174
4298
|
}
|
|
4175
4299
|
|
|
4300
|
+
.ds-custom-select__trigger:focus-visible {
|
|
4301
|
+
border-color: var(--ds-color-border-active);
|
|
4302
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
4303
|
+
outline-offset: -1px;
|
|
4304
|
+
}
|
|
4305
|
+
|
|
4176
4306
|
.ds-custom-select__trigger--open {
|
|
4177
4307
|
border-color: var(--ds-color-border-active);
|
|
4178
4308
|
box-shadow: inset 0 0 0 1px var(--ds-color-border-active);
|
|
@@ -4336,6 +4466,10 @@ button.ds-tag:focus-visible {
|
|
|
4336
4466
|
background-color: var(--ds-color-bg-elevated);
|
|
4337
4467
|
color: var(--ds-color-text);
|
|
4338
4468
|
}
|
|
4469
|
+
.ds-custom-select__option:focus-visible {
|
|
4470
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
4471
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
4472
|
+
}
|
|
4339
4473
|
|
|
4340
4474
|
.ds-custom-select__option--selected {
|
|
4341
4475
|
background-color: var(--ds-color-bg-elevated);
|
|
@@ -4445,6 +4579,15 @@ button.ds-tag:focus-visible {
|
|
|
4445
4579
|
}
|
|
4446
4580
|
}
|
|
4447
4581
|
|
|
4582
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4583
|
+
.ds-custom-select__panel {
|
|
4584
|
+
animation: none;
|
|
4585
|
+
opacity: 1;
|
|
4586
|
+
transform: scale(1);
|
|
4587
|
+
}
|
|
4588
|
+
.ds-custom-select__backdrop { animation: none; opacity: 1; }
|
|
4589
|
+
}
|
|
4590
|
+
|
|
4448
4591
|
/* ==========================================================================
|
|
4449
4592
|
Component: Sortable
|
|
4450
4593
|
Optional drag-to-reorder styles for table rows or list items.
|
|
@@ -4557,7 +4700,7 @@ tr:hover .ds-sortable__handle,
|
|
|
4557
4700
|
/* Placement: bottom (default) */
|
|
4558
4701
|
.ds-popover__content,
|
|
4559
4702
|
.ds-popover--bottom .ds-popover__content {
|
|
4560
|
-
top: calc(100% +
|
|
4703
|
+
top: calc(100% + var(--ds-offset-md));
|
|
4561
4704
|
left: 50%;
|
|
4562
4705
|
transform: translateX(-50%) scale(0.96);
|
|
4563
4706
|
}
|
|
@@ -4569,7 +4712,7 @@ tr:hover .ds-sortable__handle,
|
|
|
4569
4712
|
|
|
4570
4713
|
/* Placement: top */
|
|
4571
4714
|
.ds-popover--top .ds-popover__content {
|
|
4572
|
-
bottom: calc(100% +
|
|
4715
|
+
bottom: calc(100% + var(--ds-offset-md));
|
|
4573
4716
|
top: auto;
|
|
4574
4717
|
left: 50%;
|
|
4575
4718
|
transform: translateX(-50%) scale(0.96);
|
|
@@ -4581,7 +4724,7 @@ tr:hover .ds-sortable__handle,
|
|
|
4581
4724
|
|
|
4582
4725
|
/* Placement: left */
|
|
4583
4726
|
.ds-popover--left .ds-popover__content {
|
|
4584
|
-
right: calc(100% +
|
|
4727
|
+
right: calc(100% + var(--ds-offset-md));
|
|
4585
4728
|
top: 50%;
|
|
4586
4729
|
left: auto;
|
|
4587
4730
|
transform: translateY(-50%) scale(0.96);
|
|
@@ -4593,7 +4736,7 @@ tr:hover .ds-sortable__handle,
|
|
|
4593
4736
|
|
|
4594
4737
|
/* Placement: right */
|
|
4595
4738
|
.ds-popover--right .ds-popover__content {
|
|
4596
|
-
left: calc(100% +
|
|
4739
|
+
left: calc(100% + var(--ds-offset-md));
|
|
4597
4740
|
top: 50%;
|
|
4598
4741
|
transform: translateY(-50%) scale(0.96);
|
|
4599
4742
|
}
|
|
@@ -5071,6 +5214,10 @@ tr:hover .ds-sortable__handle,
|
|
|
5071
5214
|
background-color: var(--ds-color-bg-elevated);
|
|
5072
5215
|
color: var(--ds-color-text);
|
|
5073
5216
|
}
|
|
5217
|
+
.ds-command__item:focus-visible {
|
|
5218
|
+
outline: var(--ds-ring-width) solid var(--ds-ring-color);
|
|
5219
|
+
outline-offset: calc(-1 * var(--ds-ring-offset));
|
|
5220
|
+
}
|
|
5074
5221
|
|
|
5075
5222
|
/* Item icon */
|
|
5076
5223
|
.ds-command__item-icon {
|
|
@@ -5304,11 +5451,15 @@ tr:hover .ds-sortable__handle,
|
|
|
5304
5451
|
.ds-z-60 { z-index: var(--ds-z-sticky); }
|
|
5305
5452
|
|
|
5306
5453
|
/* --- Inset / Position Values --- */
|
|
5307
|
-
.ds-inset-0
|
|
5308
|
-
.ds-
|
|
5309
|
-
.ds-
|
|
5310
|
-
.ds-
|
|
5311
|
-
.ds-
|
|
5454
|
+
.ds-inset-0 { inset: 0; }
|
|
5455
|
+
.ds-inset-x-0 { left: 0; right: 0; }
|
|
5456
|
+
.ds-inset-y-0 { top: 0; bottom: 0; }
|
|
5457
|
+
.ds-top-0 { top: 0; }
|
|
5458
|
+
.ds-top-full { top: 100%; }
|
|
5459
|
+
.ds-right-0 { right: 0; }
|
|
5460
|
+
.ds-bottom-0 { bottom: 0; }
|
|
5461
|
+
.ds-bottom-full { bottom: 100%; }
|
|
5462
|
+
.ds-left-0 { left: 0; }
|
|
5312
5463
|
.ds-top-2 { top: var(--ds-space-2); }
|
|
5313
5464
|
.ds-right-2 { right: var(--ds-space-2); }
|
|
5314
5465
|
.ds-left-2 { left: var(--ds-space-2); }
|