@shift-css/core 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/components/button.css +4 -2
- package/dist/components/card.css +35 -1
- package/dist/components/input.css +14 -2
- package/dist/components/menu.css +3 -1
- package/dist/components/modal.css +62 -17
- package/dist/components/select.css +169 -0
- package/dist/components/skip-link.css +8 -3
- package/dist/components/surface.css +9 -5
- package/dist/components/tooltip.css +14 -8
- package/dist/reset.css +1 -1
- package/dist/shift.css +658 -40
- package/dist/shift.css.map +1 -1
- package/dist/shift.min.css +1 -1
- package/dist/utils/functions.css +103 -0
- package/dist/utils/scroll.css +233 -0
- package/package.json +8 -3
package/dist/shift.css
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
-webkit-font-smoothing: antialiased;
|
|
19
19
|
-moz-osx-font-smoothing: grayscale;
|
|
20
|
-
text-rendering:
|
|
20
|
+
text-rendering: optimizelegibility;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
body {
|
|
@@ -367,7 +367,10 @@
|
|
|
367
367
|
container: surface / inline-size;
|
|
368
368
|
|
|
369
369
|
@supports (color: oklch(from red l c h)) {
|
|
370
|
-
color: oklch(from var(--_surface-bg)
|
|
370
|
+
color: oklch(from var(--_surface-bg)
|
|
371
|
+
/* If L < 0.55, use light text (0.95); otherwise dark text (0.15)
|
|
372
|
+
Threshold 0.55 ensures 4.5:1 contrast per WCAG 2.1 AA */
|
|
373
|
+
clamp(.15, calc((.55 - l) * 1000 + .15), .95) 0 0);
|
|
371
374
|
}
|
|
372
375
|
|
|
373
376
|
@supports (color: contrast-color(red)) {
|
|
@@ -404,7 +407,8 @@
|
|
|
404
407
|
|
|
405
408
|
[s-surface][s-interactive] {
|
|
406
409
|
cursor: pointer;
|
|
407
|
-
transition: transform var(--s-duration-150) var(--s-ease-out),
|
|
410
|
+
transition: transform var(--s-duration-150) var(--s-ease-out),
|
|
411
|
+
box-shadow var(--s-duration-150) var(--s-ease-out);
|
|
408
412
|
|
|
409
413
|
&:hover {
|
|
410
414
|
box-shadow: var(--s-shadow-lg);
|
|
@@ -448,7 +452,7 @@
|
|
|
448
452
|
background-color: #d4edda;
|
|
449
453
|
background-color: var(--_surface-bg);
|
|
450
454
|
border-left: 4px solid var(--s-state-success);
|
|
451
|
-
color: #1a1a1a;
|
|
455
|
+
color: light-dark(#1a1a1a, #e5e5e5);
|
|
452
456
|
}
|
|
453
457
|
|
|
454
458
|
[s-surface="warning"] {
|
|
@@ -456,7 +460,7 @@
|
|
|
456
460
|
background-color: #fff3cd;
|
|
457
461
|
background-color: var(--_surface-bg);
|
|
458
462
|
border-left: 4px solid var(--s-state-warning);
|
|
459
|
-
color: #1a1a1a;
|
|
463
|
+
color: light-dark(#1a1a1a, #e5e5e5);
|
|
460
464
|
}
|
|
461
465
|
|
|
462
466
|
[s-surface="danger"] {
|
|
@@ -464,7 +468,7 @@
|
|
|
464
468
|
background-color: #f8d7da;
|
|
465
469
|
background-color: var(--_surface-bg);
|
|
466
470
|
border-left: 4px solid var(--s-state-danger);
|
|
467
|
-
color: #1a1a1a;
|
|
471
|
+
color: light-dark(#1a1a1a, #e5e5e5);
|
|
468
472
|
}
|
|
469
473
|
|
|
470
474
|
@container (width <= 20rem) {
|
|
@@ -505,7 +509,9 @@
|
|
|
505
509
|
color: contrast-color(var(--_btn-bg));
|
|
506
510
|
}
|
|
507
511
|
|
|
508
|
-
transition: background-color var(--s-duration-150) var(--s-ease-out),
|
|
512
|
+
transition: background-color var(--s-duration-150) var(--s-ease-out),
|
|
513
|
+
border-color var(--s-duration-150) var(--s-ease-out),
|
|
514
|
+
transform var(--s-duration-100) var(--s-ease-out);
|
|
509
515
|
cursor: pointer;
|
|
510
516
|
user-select: none;
|
|
511
517
|
|
|
@@ -625,7 +631,7 @@
|
|
|
625
631
|
}
|
|
626
632
|
|
|
627
633
|
[s-btn][s-loading] {
|
|
628
|
-
color:
|
|
634
|
+
color: #0000;
|
|
629
635
|
pointer-events: none;
|
|
630
636
|
position: relative;
|
|
631
637
|
|
|
@@ -753,6 +759,12 @@
|
|
|
753
759
|
color: var(--s-text-secondary);
|
|
754
760
|
}
|
|
755
761
|
|
|
762
|
+
[s-card-actions] {
|
|
763
|
+
gap: var(--s-space-2);
|
|
764
|
+
margin-top: var(--s-space-4);
|
|
765
|
+
display: flex;
|
|
766
|
+
}
|
|
767
|
+
|
|
756
768
|
[s-card="flat"] {
|
|
757
769
|
--_card-shadow: none;
|
|
758
770
|
--_card-border: var(--s-border-default);
|
|
@@ -776,7 +788,9 @@
|
|
|
776
788
|
|
|
777
789
|
[s-card][s-interactive] {
|
|
778
790
|
cursor: pointer;
|
|
779
|
-
transition: transform var(--s-duration-200) var(--s-ease-out),
|
|
791
|
+
transition: transform var(--s-duration-200) var(--s-ease-out),
|
|
792
|
+
box-shadow var(--s-duration-200) var(--s-ease-out),
|
|
793
|
+
border-color var(--s-duration-200) var(--s-ease-out);
|
|
780
794
|
|
|
781
795
|
&:hover {
|
|
782
796
|
--_card-shadow: var(--s-shadow-xl);
|
|
@@ -880,6 +894,32 @@
|
|
|
880
894
|
}
|
|
881
895
|
}
|
|
882
896
|
|
|
897
|
+
@supports selector(:scope) {
|
|
898
|
+
@scope ([s-card]) to ([s-card]) {
|
|
899
|
+
[s-card-header] {
|
|
900
|
+
border-bottom: 1px solid var(--_card-border, var(--s-border-muted));
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
[s-card-footer] {
|
|
904
|
+
border-top: 1px solid var(--_card-border, var(--s-border-muted));
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
[s-card-title] {
|
|
908
|
+
color: inherit;
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
[s-card-subtitle] {
|
|
912
|
+
color: var(--s-text-secondary);
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
[s-card-actions] {
|
|
916
|
+
gap: var(--s-space-2);
|
|
917
|
+
margin-top: var(--s-space-4);
|
|
918
|
+
display: flex;
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
|
|
883
923
|
:where([s-input]) {
|
|
884
924
|
--_input-bg: var(--s-surface-base);
|
|
885
925
|
--_input-border: var(--s-border-default);
|
|
@@ -895,7 +935,8 @@
|
|
|
895
935
|
color: var(--_input-text);
|
|
896
936
|
font-size: var(--s-text-sm);
|
|
897
937
|
line-height: var(--s-leading-normal);
|
|
898
|
-
transition: border-color var(--s-duration-150) var(--s-ease-out),
|
|
938
|
+
transition: border-color var(--s-duration-150) var(--s-ease-out),
|
|
939
|
+
box-shadow var(--s-duration-150) var(--s-ease-out);
|
|
899
940
|
display: block;
|
|
900
941
|
|
|
901
942
|
&::placeholder {
|
|
@@ -946,6 +987,16 @@
|
|
|
946
987
|
min-height: 6rem;
|
|
947
988
|
}
|
|
948
989
|
|
|
990
|
+
textarea[s-input][s-autosize] {
|
|
991
|
+
resize: none;
|
|
992
|
+
|
|
993
|
+
@supports (field-sizing: content) {
|
|
994
|
+
field-sizing: content;
|
|
995
|
+
min-height: 3lh;
|
|
996
|
+
max-height: 20lh;
|
|
997
|
+
}
|
|
998
|
+
}
|
|
999
|
+
|
|
949
1000
|
select[s-input] {
|
|
950
1001
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
|
|
951
1002
|
background-repeat: no-repeat;
|
|
@@ -1027,7 +1078,8 @@
|
|
|
1027
1078
|
cursor: pointer;
|
|
1028
1079
|
width: 1.25rem;
|
|
1029
1080
|
height: 1.25rem;
|
|
1030
|
-
transition: background-color var(--s-duration-150) var(--s-ease-out),
|
|
1081
|
+
transition: background-color var(--s-duration-150) var(--s-ease-out),
|
|
1082
|
+
border-color var(--s-duration-150) var(--s-ease-out);
|
|
1031
1083
|
|
|
1032
1084
|
&:checked {
|
|
1033
1085
|
background-color: var(--s-interactive-primary);
|
|
@@ -1151,6 +1203,176 @@
|
|
|
1151
1203
|
}
|
|
1152
1204
|
}
|
|
1153
1205
|
|
|
1206
|
+
@supports (appearance: base-select) {
|
|
1207
|
+
[s-select], [s-select]::picker(select) {
|
|
1208
|
+
appearance: base-select;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
:where([s-select]) {
|
|
1212
|
+
--_select-bg: var(--s-surface-base);
|
|
1213
|
+
--_select-border: var(--s-border-default);
|
|
1214
|
+
--_select-text: var(--s-text-primary);
|
|
1215
|
+
--_select-radius: var(--s-radius-md);
|
|
1216
|
+
align-items: center;
|
|
1217
|
+
gap: var(--s-space-2);
|
|
1218
|
+
min-width: 10rem;
|
|
1219
|
+
padding: var(--s-space-2) var(--s-space-3);
|
|
1220
|
+
background-color: var(--_select-bg);
|
|
1221
|
+
border: 2px solid var(--_select-border);
|
|
1222
|
+
border-radius: var(--_select-radius);
|
|
1223
|
+
color: var(--_select-text);
|
|
1224
|
+
font-size: var(--s-text-sm);
|
|
1225
|
+
line-height: var(--s-leading-normal);
|
|
1226
|
+
cursor: pointer;
|
|
1227
|
+
transition: border-color var(--s-duration-150) var(--s-ease-out),
|
|
1228
|
+
box-shadow var(--s-duration-150) var(--s-ease-out);
|
|
1229
|
+
display: inline-flex;
|
|
1230
|
+
|
|
1231
|
+
&:hover:not(:disabled) {
|
|
1232
|
+
--_select-border: var(--s-border-strong);
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
&:open {
|
|
1236
|
+
--_select-border: var(--s-interactive-primary);
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
&:focus-visible {
|
|
1240
|
+
--_select-border: var(--s-interactive-primary);
|
|
1241
|
+
outline: 2px solid var(--s-focus-ring);
|
|
1242
|
+
outline-offset: 2px;
|
|
1243
|
+
|
|
1244
|
+
@supports (color: oklch(from red l c h)) {
|
|
1245
|
+
outline-color: oklch(from var(--s-interactive-primary) l c h / .3);
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
&:disabled {
|
|
1250
|
+
opacity: .5;
|
|
1251
|
+
cursor: not-allowed;
|
|
1252
|
+
background-color: var(--s-surface-sunken);
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
[s-select]::picker-icon {
|
|
1257
|
+
color: var(--s-text-tertiary);
|
|
1258
|
+
transition: rotate var(--s-duration-200) var(--s-ease-out);
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
[s-select]:open::picker-icon {
|
|
1262
|
+
rotate: 180deg;
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
[s-select]::picker(select) {
|
|
1266
|
+
background: var(--s-surface-base);
|
|
1267
|
+
border: 2px solid var(--s-border-default);
|
|
1268
|
+
border-radius: var(--s-radius-md);
|
|
1269
|
+
box-shadow: var(--s-shadow-lg);
|
|
1270
|
+
padding: var(--s-space-1);
|
|
1271
|
+
inset: auto;
|
|
1272
|
+
top: anchor(bottom);
|
|
1273
|
+
left: anchor(left);
|
|
1274
|
+
min-width: anchor-size(width);
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
[s-select] option {
|
|
1278
|
+
align-items: center;
|
|
1279
|
+
gap: var(--s-space-2);
|
|
1280
|
+
padding: var(--s-space-2) var(--s-space-3);
|
|
1281
|
+
border-radius: var(--s-radius-sm);
|
|
1282
|
+
color: var(--s-text-primary);
|
|
1283
|
+
cursor: pointer;
|
|
1284
|
+
transition: background-color var(--s-duration-150) var(--s-ease-out);
|
|
1285
|
+
display: flex;
|
|
1286
|
+
|
|
1287
|
+
&:hover {
|
|
1288
|
+
background-color: var(--s-surface-hover);
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
&:checked {
|
|
1292
|
+
background-color: var(--s-interactive-primary);
|
|
1293
|
+
color: var(--s-text-on-primary);
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
[s-select] option::checkmark {
|
|
1298
|
+
opacity: 0;
|
|
1299
|
+
order: 1;
|
|
1300
|
+
margin-left: auto;
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
[s-select] option:checked::checkmark {
|
|
1304
|
+
opacity: 1;
|
|
1305
|
+
}
|
|
1306
|
+
|
|
1307
|
+
[s-select][s-size="sm"] {
|
|
1308
|
+
padding: var(--s-space-1) var(--s-space-2);
|
|
1309
|
+
font-size: var(--s-text-xs);
|
|
1310
|
+
min-width: 8rem;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
[s-select][s-size="lg"] {
|
|
1314
|
+
padding: var(--s-space-3) var(--s-space-4);
|
|
1315
|
+
font-size: var(--s-text-base);
|
|
1316
|
+
min-width: 12rem;
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
@container surface style(--_surface-depth: 1) {
|
|
1320
|
+
:where([s-select]) {
|
|
1321
|
+
--_select-bg: var(--s-surface-sunken);
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
@container surface style(--_surface-depth: 2) {
|
|
1326
|
+
:where([s-select]) {
|
|
1327
|
+
--_select-bg: var(--s-surface-sunken);
|
|
1328
|
+
--_select-border: var(--s-border-strong);
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
@container surface style(--_surface-depth: -1) {
|
|
1333
|
+
:where([s-select]) {
|
|
1334
|
+
--_select-bg: var(--s-surface-raised);
|
|
1335
|
+
--_select-border: var(--s-border-muted);
|
|
1336
|
+
}
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
@supports not (appearance: base-select) {
|
|
1341
|
+
[s-select] {
|
|
1342
|
+
appearance: none;
|
|
1343
|
+
width: 100%;
|
|
1344
|
+
padding: var(--s-space-2) var(--s-space-3);
|
|
1345
|
+
padding-right: var(--s-space-10);
|
|
1346
|
+
background-color: var(--s-surface-base);
|
|
1347
|
+
border: 2px solid var(--s-border-default);
|
|
1348
|
+
border-radius: var(--s-radius-md);
|
|
1349
|
+
color: var(--s-text-primary);
|
|
1350
|
+
font-size: var(--s-text-sm);
|
|
1351
|
+
line-height: var(--s-leading-normal);
|
|
1352
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
|
|
1353
|
+
background-repeat: no-repeat;
|
|
1354
|
+
background-position: right var(--s-space-3) center;
|
|
1355
|
+
transition: border-color var(--s-duration-150) var(--s-ease-out),
|
|
1356
|
+
box-shadow var(--s-duration-150) var(--s-ease-out);
|
|
1357
|
+
display: block;
|
|
1358
|
+
|
|
1359
|
+
&:hover:not(:disabled) {
|
|
1360
|
+
border-color: var(--s-border-strong);
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
&:focus-visible {
|
|
1364
|
+
border-color: var(--s-interactive-primary);
|
|
1365
|
+
outline: 2px solid var(--s-focus-ring);
|
|
1366
|
+
outline-offset: 2px;
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
&:disabled {
|
|
1370
|
+
opacity: .5;
|
|
1371
|
+
cursor: not-allowed;
|
|
1372
|
+
}
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1154
1376
|
dialog[s-modal]:not([open]) {
|
|
1155
1377
|
display: none;
|
|
1156
1378
|
}
|
|
@@ -1181,29 +1403,50 @@
|
|
|
1181
1403
|
}
|
|
1182
1404
|
|
|
1183
1405
|
dialog[s-modal][open] {
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1406
|
+
opacity: 1;
|
|
1407
|
+
transition: opacity var(--s-duration-200) var(--s-ease-out),
|
|
1408
|
+
transform var(--s-duration-200) var(--s-ease-out),
|
|
1409
|
+
overlay var(--s-duration-200) var(--s-ease-out) allow-discrete,
|
|
1410
|
+
display var(--s-duration-200) var(--s-ease-out) allow-discrete;
|
|
1411
|
+
transform: scale(1)translateY(0);
|
|
1190
1412
|
}
|
|
1191
1413
|
|
|
1192
|
-
@
|
|
1193
|
-
|
|
1414
|
+
@starting-style {
|
|
1415
|
+
dialog[s-modal][open] {
|
|
1194
1416
|
opacity: 0;
|
|
1195
1417
|
transform: scale(.95)translateY(-10px);
|
|
1196
1418
|
}
|
|
1419
|
+
}
|
|
1197
1420
|
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1421
|
+
@supports not (transition-behavior: allow-discrete) {
|
|
1422
|
+
dialog[s-modal][open] {
|
|
1423
|
+
animation: s-modal-scale-in var(--s-duration-200) var(--s-ease-out);
|
|
1201
1424
|
}
|
|
1425
|
+
|
|
1426
|
+
@keyframes s-modal-scale-in {
|
|
1427
|
+
from {
|
|
1428
|
+
opacity: 0;
|
|
1429
|
+
transform: scale(.95)translateY(-10px);
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
to {
|
|
1433
|
+
opacity: 1;
|
|
1434
|
+
transform: scale(1)translateY(0);
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
dialog[s-modal]:focus-visible {
|
|
1440
|
+
outline: 2px solid var(--s-focus-ring);
|
|
1441
|
+
outline-offset: 2px;
|
|
1202
1442
|
}
|
|
1203
1443
|
|
|
1204
1444
|
dialog[s-modal]::backdrop {
|
|
1205
1445
|
backdrop-filter: blur(4px);
|
|
1206
|
-
|
|
1446
|
+
opacity: 1;
|
|
1447
|
+
transition: opacity var(--s-duration-200) var(--s-ease-out),
|
|
1448
|
+
overlay var(--s-duration-200) var(--s-ease-out) allow-discrete,
|
|
1449
|
+
display var(--s-duration-200) var(--s-ease-out) allow-discrete;
|
|
1207
1450
|
background: oklch(0% 0 0 / .5);
|
|
1208
1451
|
|
|
1209
1452
|
@supports (color: oklch(from red l c h)) {
|
|
@@ -1211,13 +1454,25 @@
|
|
|
1211
1454
|
}
|
|
1212
1455
|
}
|
|
1213
1456
|
|
|
1214
|
-
@
|
|
1215
|
-
|
|
1457
|
+
@starting-style {
|
|
1458
|
+
dialog[s-modal]::backdrop {
|
|
1216
1459
|
opacity: 0;
|
|
1217
1460
|
}
|
|
1461
|
+
}
|
|
1218
1462
|
|
|
1219
|
-
|
|
1220
|
-
|
|
1463
|
+
@supports not (transition-behavior: allow-discrete) {
|
|
1464
|
+
dialog[s-modal]::backdrop {
|
|
1465
|
+
animation: s-modal-backdrop-in var(--s-duration-200) var(--s-ease-out);
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
@keyframes s-modal-backdrop-in {
|
|
1469
|
+
from {
|
|
1470
|
+
opacity: 0;
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
to {
|
|
1474
|
+
opacity: 1;
|
|
1475
|
+
}
|
|
1221
1476
|
}
|
|
1222
1477
|
}
|
|
1223
1478
|
|
|
@@ -1313,7 +1568,8 @@
|
|
|
1313
1568
|
min-height: 2.75rem;
|
|
1314
1569
|
font-size: var(--s-text-xl);
|
|
1315
1570
|
color: var(--s-text-secondary);
|
|
1316
|
-
transition: background-color var(--s-duration-150) var(--s-ease-out),
|
|
1571
|
+
transition: background-color var(--s-duration-150) var(--s-ease-out),
|
|
1572
|
+
color var(--s-duration-150) var(--s-ease-out);
|
|
1317
1573
|
background: none;
|
|
1318
1574
|
border: none;
|
|
1319
1575
|
justify-content: center;
|
|
@@ -1337,6 +1593,17 @@
|
|
|
1337
1593
|
}
|
|
1338
1594
|
}
|
|
1339
1595
|
|
|
1596
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1597
|
+
dialog[s-modal][open] {
|
|
1598
|
+
transition: none;
|
|
1599
|
+
transform: none;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
dialog[s-modal]::backdrop {
|
|
1603
|
+
transition: none;
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1340
1607
|
@media (forced-colors: active) {
|
|
1341
1608
|
dialog[s-modal] {
|
|
1342
1609
|
border: 2px solid canvastext;
|
|
@@ -1637,7 +1904,8 @@
|
|
|
1637
1904
|
border-radius: var(--_skip-radius);
|
|
1638
1905
|
box-shadow: var(--_skip-shadow);
|
|
1639
1906
|
white-space: nowrap;
|
|
1640
|
-
transition: top var(--s-duration-200) var(--s-ease-out),
|
|
1907
|
+
transition: top var(--s-duration-200) var(--s-ease-out),
|
|
1908
|
+
opacity var(--s-duration-200) var(--s-ease-out);
|
|
1641
1909
|
opacity: 0;
|
|
1642
1910
|
text-decoration: none;
|
|
1643
1911
|
display: inline-flex;
|
|
@@ -1650,7 +1918,9 @@
|
|
|
1650
1918
|
[s-skip-link]:focus, [s-skip-link]:focus-visible {
|
|
1651
1919
|
top: var(--s-space-4);
|
|
1652
1920
|
opacity: 1;
|
|
1653
|
-
box-shadow: var(--_skip-shadow),
|
|
1921
|
+
box-shadow: var(--_skip-shadow),
|
|
1922
|
+
0 0 0 3px white,
|
|
1923
|
+
0 0 0 5px var(--_skip-bg);
|
|
1654
1924
|
outline: none;
|
|
1655
1925
|
}
|
|
1656
1926
|
|
|
@@ -1699,7 +1969,9 @@
|
|
|
1699
1969
|
}
|
|
1700
1970
|
|
|
1701
1971
|
[s-skip-link]:focus, [s-skip-link]:focus-visible {
|
|
1702
|
-
box-shadow: var(--_skip-shadow),
|
|
1972
|
+
box-shadow: var(--_skip-shadow),
|
|
1973
|
+
0 0 0 3px var(--s-neutral-900),
|
|
1974
|
+
0 0 0 5px var(--_skip-bg);
|
|
1703
1975
|
}
|
|
1704
1976
|
}
|
|
1705
1977
|
|
|
@@ -1899,7 +2171,8 @@
|
|
|
1899
2171
|
transform: translateX(-50%)translateY(4px);
|
|
1900
2172
|
|
|
1901
2173
|
@supports (color: oklch(from red l c h)) {
|
|
1902
|
-
border: 1px solid
|
|
2174
|
+
border: 1px solid
|
|
2175
|
+
oklch(from var(--_tooltip-bg) max(calc(l - .1), .05) c h);
|
|
1903
2176
|
}
|
|
1904
2177
|
|
|
1905
2178
|
font-size: var(--s-text-xs);
|
|
@@ -1907,10 +2180,13 @@
|
|
|
1907
2180
|
line-height: var(--s-leading-tight);
|
|
1908
2181
|
text-align: center;
|
|
1909
2182
|
text-wrap: balance;
|
|
1910
|
-
min-width: min(100%,
|
|
2183
|
+
min-width: min(100%,
|
|
2184
|
+
var(--_tooltip-max-width));
|
|
1911
2185
|
max-width: var(--_tooltip-max-width);
|
|
1912
2186
|
pointer-events: none;
|
|
1913
|
-
transition: opacity var(--s-duration-150) var(--s-ease-out),
|
|
2187
|
+
transition: opacity var(--s-duration-150) var(--s-ease-out),
|
|
2188
|
+
visibility var(--s-duration-150) var(--s-ease-out),
|
|
2189
|
+
transform var(--s-duration-150) var(--s-ease-out);
|
|
1914
2190
|
}
|
|
1915
2191
|
|
|
1916
2192
|
:where([s-tooltip]):before {
|
|
@@ -1918,12 +2194,14 @@
|
|
|
1918
2194
|
visibility: hidden;
|
|
1919
2195
|
opacity: 0;
|
|
1920
2196
|
z-index: 9999;
|
|
1921
|
-
margin-bottom: calc(var(--_tooltip-offset)
|
|
2197
|
+
margin-bottom: calc(var(--_tooltip-offset) - var(--_tooltip-arrow-size));
|
|
1922
2198
|
border-left: var(--_tooltip-arrow-size) solid transparent;
|
|
1923
2199
|
border-right: var(--_tooltip-arrow-size) solid transparent;
|
|
1924
2200
|
border-top: var(--_tooltip-arrow-size) solid var(--_tooltip-bg);
|
|
1925
2201
|
pointer-events: none;
|
|
1926
|
-
transition: opacity var(--s-duration-150) var(--s-ease-out),
|
|
2202
|
+
transition: opacity var(--s-duration-150) var(--s-ease-out),
|
|
2203
|
+
visibility var(--s-duration-150) var(--s-ease-out),
|
|
2204
|
+
transform var(--s-duration-150) var(--s-ease-out);
|
|
1927
2205
|
position: absolute;
|
|
1928
2206
|
bottom: 100%;
|
|
1929
2207
|
left: 50%;
|
|
@@ -1946,7 +2224,7 @@
|
|
|
1946
2224
|
|
|
1947
2225
|
[s-tooltip-pos="bottom"]:before {
|
|
1948
2226
|
margin-bottom: 0;
|
|
1949
|
-
margin-top: calc(var(--_tooltip-offset)
|
|
2227
|
+
margin-top: calc(var(--_tooltip-offset) - var(--_tooltip-arrow-size));
|
|
1950
2228
|
border-top: none;
|
|
1951
2229
|
border-bottom: var(--_tooltip-arrow-size) solid var(--_tooltip-bg);
|
|
1952
2230
|
top: 100%;
|
|
@@ -1967,7 +2245,7 @@
|
|
|
1967
2245
|
|
|
1968
2246
|
[s-tooltip-pos="left"]:before {
|
|
1969
2247
|
margin-bottom: 0;
|
|
1970
|
-
margin-right: calc(var(--_tooltip-offset)
|
|
2248
|
+
margin-right: calc(var(--_tooltip-offset) - var(--_tooltip-arrow-size));
|
|
1971
2249
|
border-top: var(--_tooltip-arrow-size) solid transparent;
|
|
1972
2250
|
border-bottom: var(--_tooltip-arrow-size) solid transparent;
|
|
1973
2251
|
border-left: var(--_tooltip-arrow-size) solid var(--_tooltip-bg);
|
|
@@ -1991,7 +2269,7 @@
|
|
|
1991
2269
|
|
|
1992
2270
|
[s-tooltip-pos="right"]:before {
|
|
1993
2271
|
margin-bottom: 0;
|
|
1994
|
-
margin-left: calc(var(--_tooltip-offset)
|
|
2272
|
+
margin-left: calc(var(--_tooltip-offset) - var(--_tooltip-arrow-size));
|
|
1995
2273
|
border-top: var(--_tooltip-arrow-size) solid transparent;
|
|
1996
2274
|
border-bottom: var(--_tooltip-arrow-size) solid transparent;
|
|
1997
2275
|
border-right: var(--_tooltip-arrow-size) solid var(--_tooltip-bg);
|
|
@@ -2071,7 +2349,9 @@
|
|
|
2071
2349
|
color: var(--s-text-primary);
|
|
2072
2350
|
opacity: 0;
|
|
2073
2351
|
visibility: hidden;
|
|
2074
|
-
transition: opacity var(--s-duration-150) var(--s-ease-out),
|
|
2352
|
+
transition: opacity var(--s-duration-150) var(--s-ease-out),
|
|
2353
|
+
transform var(--s-duration-150) var(--s-ease-out),
|
|
2354
|
+
visibility var(--s-duration-150);
|
|
2075
2355
|
flex-direction: column;
|
|
2076
2356
|
display: flex;
|
|
2077
2357
|
position: absolute;
|
|
@@ -4065,4 +4345,342 @@
|
|
|
4065
4345
|
.s-opacity-100 {
|
|
4066
4346
|
opacity: 1;
|
|
4067
4347
|
}
|
|
4348
|
+
|
|
4349
|
+
[s-scroll-progress] {
|
|
4350
|
+
--_scroll-progress-z: var(--s-scroll-progress-z, 1000);
|
|
4351
|
+
height: 3px;
|
|
4352
|
+
z-index: var(--_scroll-progress-z);
|
|
4353
|
+
background: var(--s-interactive-primary);
|
|
4354
|
+
transform-origin: 0;
|
|
4355
|
+
position: fixed;
|
|
4356
|
+
top: 0;
|
|
4357
|
+
left: 0;
|
|
4358
|
+
right: 0;
|
|
4359
|
+
transform: scaleX(0);
|
|
4360
|
+
}
|
|
4361
|
+
|
|
4362
|
+
@supports (animation-timeline: scroll()) {
|
|
4363
|
+
[s-scroll-progress] {
|
|
4364
|
+
animation-name: s-scroll-progress-grow;
|
|
4365
|
+
animation-duration: 1ms;
|
|
4366
|
+
animation-timing-function: linear;
|
|
4367
|
+
animation-fill-mode: both;
|
|
4368
|
+
animation-timeline: scroll();
|
|
4369
|
+
}
|
|
4370
|
+
|
|
4371
|
+
@keyframes s-scroll-progress-grow {
|
|
4372
|
+
from {
|
|
4373
|
+
transform: scaleX(0);
|
|
4374
|
+
}
|
|
4375
|
+
|
|
4376
|
+
to {
|
|
4377
|
+
transform: scaleX(1);
|
|
4378
|
+
}
|
|
4379
|
+
}
|
|
4380
|
+
}
|
|
4381
|
+
|
|
4382
|
+
[s-scroll-progress="secondary"] {
|
|
4383
|
+
background: var(--s-secondary-500);
|
|
4384
|
+
}
|
|
4385
|
+
|
|
4386
|
+
[s-scroll-progress="accent"] {
|
|
4387
|
+
background: var(--s-accent-500);
|
|
4388
|
+
}
|
|
4389
|
+
|
|
4390
|
+
[s-scroll-progress="gradient"] {
|
|
4391
|
+
background: linear-gradient(90deg,
|
|
4392
|
+
var(--s-primary-500),
|
|
4393
|
+
var(--s-secondary-500),
|
|
4394
|
+
var(--s-accent-500));
|
|
4395
|
+
}
|
|
4396
|
+
|
|
4397
|
+
[s-scroll-reveal] {
|
|
4398
|
+
opacity: 1;
|
|
4399
|
+
}
|
|
4400
|
+
|
|
4401
|
+
@supports (animation-timeline: view()) {
|
|
4402
|
+
[s-scroll-reveal] {
|
|
4403
|
+
animation: linear both s-scroll-fade-in view();
|
|
4404
|
+
animation-range: entry;
|
|
4405
|
+
}
|
|
4406
|
+
|
|
4407
|
+
@keyframes s-scroll-fade-in {
|
|
4408
|
+
from {
|
|
4409
|
+
opacity: 0;
|
|
4410
|
+
}
|
|
4411
|
+
|
|
4412
|
+
to {
|
|
4413
|
+
opacity: 1;
|
|
4414
|
+
}
|
|
4415
|
+
}
|
|
4416
|
+
|
|
4417
|
+
[s-scroll-reveal="slide-up"] {
|
|
4418
|
+
animation-name: s-scroll-slide-up;
|
|
4419
|
+
}
|
|
4420
|
+
|
|
4421
|
+
@keyframes s-scroll-slide-up {
|
|
4422
|
+
from {
|
|
4423
|
+
opacity: 0;
|
|
4424
|
+
transform: translateY(2rem);
|
|
4425
|
+
}
|
|
4426
|
+
|
|
4427
|
+
to {
|
|
4428
|
+
opacity: 1;
|
|
4429
|
+
transform: translateY(0);
|
|
4430
|
+
}
|
|
4431
|
+
}
|
|
4432
|
+
|
|
4433
|
+
[s-scroll-reveal="slide-down"] {
|
|
4434
|
+
animation-name: s-scroll-slide-down;
|
|
4435
|
+
}
|
|
4436
|
+
|
|
4437
|
+
@keyframes s-scroll-slide-down {
|
|
4438
|
+
from {
|
|
4439
|
+
opacity: 0;
|
|
4440
|
+
transform: translateY(-2rem);
|
|
4441
|
+
}
|
|
4442
|
+
|
|
4443
|
+
to {
|
|
4444
|
+
opacity: 1;
|
|
4445
|
+
transform: translateY(0);
|
|
4446
|
+
}
|
|
4447
|
+
}
|
|
4448
|
+
|
|
4449
|
+
[s-scroll-reveal="slide-left"] {
|
|
4450
|
+
animation-name: s-scroll-slide-left;
|
|
4451
|
+
}
|
|
4452
|
+
|
|
4453
|
+
@keyframes s-scroll-slide-left {
|
|
4454
|
+
from {
|
|
4455
|
+
opacity: 0;
|
|
4456
|
+
transform: translateX(2rem);
|
|
4457
|
+
}
|
|
4458
|
+
|
|
4459
|
+
to {
|
|
4460
|
+
opacity: 1;
|
|
4461
|
+
transform: translateX(0);
|
|
4462
|
+
}
|
|
4463
|
+
}
|
|
4464
|
+
|
|
4465
|
+
[s-scroll-reveal="slide-right"] {
|
|
4466
|
+
animation-name: s-scroll-slide-right;
|
|
4467
|
+
}
|
|
4468
|
+
|
|
4469
|
+
@keyframes s-scroll-slide-right {
|
|
4470
|
+
from {
|
|
4471
|
+
opacity: 0;
|
|
4472
|
+
transform: translateX(-2rem);
|
|
4473
|
+
}
|
|
4474
|
+
|
|
4475
|
+
to {
|
|
4476
|
+
opacity: 1;
|
|
4477
|
+
transform: translateX(0);
|
|
4478
|
+
}
|
|
4479
|
+
}
|
|
4480
|
+
|
|
4481
|
+
[s-scroll-reveal="scale"] {
|
|
4482
|
+
animation-name: s-scroll-scale-up;
|
|
4483
|
+
}
|
|
4484
|
+
|
|
4485
|
+
@keyframes s-scroll-scale-up {
|
|
4486
|
+
from {
|
|
4487
|
+
opacity: 0;
|
|
4488
|
+
transform: scale(.9);
|
|
4489
|
+
}
|
|
4490
|
+
|
|
4491
|
+
to {
|
|
4492
|
+
opacity: 1;
|
|
4493
|
+
transform: scale(1);
|
|
4494
|
+
}
|
|
4495
|
+
}
|
|
4496
|
+
}
|
|
4497
|
+
|
|
4498
|
+
@supports (animation-timeline: scroll()) {
|
|
4499
|
+
[s-scroll-parallax] {
|
|
4500
|
+
animation: linear s-scroll-parallax-slow scroll();
|
|
4501
|
+
}
|
|
4502
|
+
|
|
4503
|
+
@keyframes s-scroll-parallax-slow {
|
|
4504
|
+
from {
|
|
4505
|
+
transform: translateY(0);
|
|
4506
|
+
}
|
|
4507
|
+
|
|
4508
|
+
to {
|
|
4509
|
+
transform: translateY(-10%);
|
|
4510
|
+
}
|
|
4511
|
+
}
|
|
4512
|
+
|
|
4513
|
+
[s-scroll-parallax="fast"] {
|
|
4514
|
+
animation-name: s-scroll-parallax-fast;
|
|
4515
|
+
}
|
|
4516
|
+
|
|
4517
|
+
@keyframes s-scroll-parallax-fast {
|
|
4518
|
+
from {
|
|
4519
|
+
transform: translateY(0);
|
|
4520
|
+
}
|
|
4521
|
+
|
|
4522
|
+
to {
|
|
4523
|
+
transform: translateY(-25%);
|
|
4524
|
+
}
|
|
4525
|
+
}
|
|
4526
|
+
|
|
4527
|
+
[s-scroll-parallax="reverse"] {
|
|
4528
|
+
animation-name: s-scroll-parallax-reverse;
|
|
4529
|
+
}
|
|
4530
|
+
|
|
4531
|
+
@keyframes s-scroll-parallax-reverse {
|
|
4532
|
+
from {
|
|
4533
|
+
transform: translateY(0);
|
|
4534
|
+
}
|
|
4535
|
+
|
|
4536
|
+
to {
|
|
4537
|
+
transform: translateY(10%);
|
|
4538
|
+
}
|
|
4539
|
+
}
|
|
4540
|
+
|
|
4541
|
+
[s-scroll-rotate] {
|
|
4542
|
+
animation: linear s-scroll-rotate scroll();
|
|
4543
|
+
}
|
|
4544
|
+
|
|
4545
|
+
@keyframes s-scroll-rotate {
|
|
4546
|
+
from {
|
|
4547
|
+
transform: rotate(0);
|
|
4548
|
+
}
|
|
4549
|
+
|
|
4550
|
+
to {
|
|
4551
|
+
transform: rotate(360deg);
|
|
4552
|
+
}
|
|
4553
|
+
}
|
|
4554
|
+
|
|
4555
|
+
[s-scroll-rotate="reverse"] {
|
|
4556
|
+
animation-name: s-scroll-rotate-reverse;
|
|
4557
|
+
}
|
|
4558
|
+
|
|
4559
|
+
@keyframes s-scroll-rotate-reverse {
|
|
4560
|
+
from {
|
|
4561
|
+
transform: rotate(0);
|
|
4562
|
+
}
|
|
4563
|
+
|
|
4564
|
+
to {
|
|
4565
|
+
transform: rotate(-360deg);
|
|
4566
|
+
}
|
|
4567
|
+
}
|
|
4568
|
+
}
|
|
4569
|
+
|
|
4570
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4571
|
+
[s-scroll-reveal], [s-scroll-parallax], [s-scroll-rotate] {
|
|
4572
|
+
opacity: 1 !important;
|
|
4573
|
+
animation: none !important;
|
|
4574
|
+
transform: none !important;
|
|
4575
|
+
}
|
|
4576
|
+
|
|
4577
|
+
[s-scroll-progress] {
|
|
4578
|
+
transform: scaleX(1);
|
|
4579
|
+
animation: none !important;
|
|
4580
|
+
}
|
|
4581
|
+
}
|
|
4582
|
+
|
|
4583
|
+
@function --s-alpha(--color, --opacity) {
|
|
4584
|
+
result: oklch(from var(--color) l c h / var(--opacity));
|
|
4585
|
+
}
|
|
4586
|
+
|
|
4587
|
+
@function --s-lighten(--color, --amount) {
|
|
4588
|
+
result: oklch(from var(--color) calc(l + var(--amount)) c h);
|
|
4589
|
+
}
|
|
4590
|
+
|
|
4591
|
+
@function --s-darken(--color, --amount) {
|
|
4592
|
+
result: oklch(from var(--color) calc(l - var(--amount)) c h);
|
|
4593
|
+
}
|
|
4594
|
+
|
|
4595
|
+
@function --s-saturate(--color, --amount) {
|
|
4596
|
+
result: oklch(from var(--color) l calc(c + var(--amount)) h);
|
|
4597
|
+
}
|
|
4598
|
+
|
|
4599
|
+
@function --s-desaturate(--color, --amount) {
|
|
4600
|
+
result: oklch(from var(--color) l calc(c - var(--amount)) h);
|
|
4601
|
+
}
|
|
4602
|
+
|
|
4603
|
+
@function --s-hue-rotate(--color, --degrees) {
|
|
4604
|
+
result: oklch(from var(--color) l c calc(h + var(--degrees)));
|
|
4605
|
+
}
|
|
4606
|
+
|
|
4607
|
+
@function --s-complement(--color) {
|
|
4608
|
+
result: oklch(from var(--color) l c calc(h + 180));
|
|
4609
|
+
}
|
|
4610
|
+
|
|
4611
|
+
@function --s-glow(--color, --intensity) {
|
|
4612
|
+
result: 0 0 calc(var(--intensity) * 10px) oklch(from var(--color) l c h / .5),
|
|
4613
|
+
0 0 calc(var(--intensity) * 20px) oklch(from var(--color) l c h / .3),
|
|
4614
|
+
0 0 calc(var(--intensity) * 30px) oklch(from var(--color) l c h / .1);
|
|
4615
|
+
}
|
|
4616
|
+
|
|
4617
|
+
@function --s-text-shadow-glow(--color, --intensity) {
|
|
4618
|
+
result: 0 0 calc(var(--intensity) * 5px) oklch(from var(--color) l c h / .8),
|
|
4619
|
+
0 0 calc(var(--intensity) * 10px) oklch(from var(--color) l c h / .5);
|
|
4620
|
+
}
|
|
4621
|
+
|
|
4622
|
+
@function --s-contrast-text(--bg) {
|
|
4623
|
+
result: oklch(from var(--bg) clamp(.15, calc((.6 - l) * 1000 + .15), .95) 0 0);
|
|
4624
|
+
}
|
|
4625
|
+
|
|
4626
|
+
@function --s-readable-on(--bg, --text) {
|
|
4627
|
+
/* Mix text with inverted bg lightness (achromatic) to push toward contrast */
|
|
4628
|
+
/* Dark bg (l≈0) → mix with light (1-l≈1), Light bg (l≈1) → mix with dark (1-l≈0) */
|
|
4629
|
+
result: color-mix(in oklch,
|
|
4630
|
+
var(--text) 60%,
|
|
4631
|
+
oklch(from var(--bg) clamp(.2, calc(1 - l), .9) 0 0));
|
|
4632
|
+
}
|
|
4633
|
+
|
|
4634
|
+
@function --s-fluid(--min, --max) {
|
|
4635
|
+
result: clamp(var(--min),
|
|
4636
|
+
calc(var(--min) + (var(--max) - var(--min)) * ((100vw - 320px) / (1200px - 320px))),
|
|
4637
|
+
var(--max));
|
|
4638
|
+
}
|
|
4639
|
+
|
|
4640
|
+
@function --s-space-scale(--base, --factor) {
|
|
4641
|
+
result: calc(var(--base) * var(--factor));
|
|
4642
|
+
}
|
|
4643
|
+
|
|
4644
|
+
[s-card][s-auto-contrast] {
|
|
4645
|
+
color: if(supports(color: oklch(62.7955% .257683 29.2339)):
|
|
4646
|
+
--s-contrast-text(var(--_card-bg));
|
|
4647
|
+
else: var(--s-text-primary););
|
|
4648
|
+
}
|
|
4649
|
+
|
|
4650
|
+
[s-responsive-padding] {
|
|
4651
|
+
padding: var(--s-space-4);
|
|
4652
|
+
padding: if(media(width < 640px): var(--s-space-2);
|
|
4653
|
+
media(width < 1024px): var(--s-space-4);
|
|
4654
|
+
else: var(--s-space-6););
|
|
4655
|
+
}
|
|
4656
|
+
|
|
4657
|
+
[s-motion-safe] {
|
|
4658
|
+
transition-duration: var(--s-duration-200);
|
|
4659
|
+
transition-duration: if(media(prefers-reduced-motion: reduce): 0s;
|
|
4660
|
+
else: var(--s-duration-200););
|
|
4661
|
+
}
|
|
4662
|
+
|
|
4663
|
+
[s-dark-aware] {
|
|
4664
|
+
--_bg: if(media(prefers-color-scheme: dark): var(--s-surface-sunken);
|
|
4665
|
+
else: var(--s-surface-raised););
|
|
4666
|
+
background-color: var(--_bg);
|
|
4667
|
+
background-color: var(--_bg);
|
|
4668
|
+
}
|
|
4669
|
+
|
|
4670
|
+
[s-size-aware] {
|
|
4671
|
+
padding: var(--s-space-4);
|
|
4672
|
+
font-size: var(--s-text-base);
|
|
4673
|
+
padding: if(style(--size: sm): var(--s-space-2);
|
|
4674
|
+
style(--size: lg): var(--s-space-6);
|
|
4675
|
+
else: var(--s-space-4););
|
|
4676
|
+
font-size: if(style(--size: sm): var(--s-text-sm);
|
|
4677
|
+
style(--size: lg): var(--s-text-lg);
|
|
4678
|
+
else: var(--s-text-base););
|
|
4679
|
+
}
|
|
4680
|
+
|
|
4681
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4682
|
+
[s-motion-safe] {
|
|
4683
|
+
transition-duration: 0s !important;
|
|
4684
|
+
}
|
|
4685
|
+
}
|
|
4068
4686
|
}
|