@dillingerstaffing/strand-ui 0.11.0 → 0.12.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/dist/css/strand-ui.css
CHANGED
|
@@ -1140,6 +1140,32 @@
|
|
|
1140
1140
|
outline-offset: 2px;
|
|
1141
1141
|
}
|
|
1142
1142
|
|
|
1143
|
+
/* ── CTA link variant ── */
|
|
1144
|
+
.strand-link--cta {
|
|
1145
|
+
display: inline-flex;
|
|
1146
|
+
align-items: center;
|
|
1147
|
+
min-height: var(--strand-touch-target);
|
|
1148
|
+
padding-block: var(--strand-space-2);
|
|
1149
|
+
font-size: var(--strand-text-sm);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
.strand-link--cta:hover {
|
|
1153
|
+
color: var(--strand-blue-vivid);
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
/* ── Monospace link variant (footer, overline-style) ── */
|
|
1157
|
+
.strand-link--mono {
|
|
1158
|
+
font-family: var(--strand-font-mono);
|
|
1159
|
+
font-size: var(--strand-text-xs);
|
|
1160
|
+
letter-spacing: var(--strand-tracking-wider);
|
|
1161
|
+
color: var(--strand-gray-400);
|
|
1162
|
+
background-image: none;
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
.strand-link--mono:hover {
|
|
1166
|
+
color: var(--strand-blue-primary);
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1143
1169
|
/* ── Reduced motion ── */
|
|
1144
1170
|
@media (prefers-reduced-motion: reduce) {
|
|
1145
1171
|
.strand-link {
|
|
@@ -1551,11 +1577,35 @@
|
|
|
1551
1577
|
.strand-reveal-group > .strand-reveal:nth-child(5) { transition-delay: calc(var(--strand-stagger-delay) * 4); }
|
|
1552
1578
|
.strand-reveal-group > .strand-reveal:nth-child(6) { transition-delay: var(--strand-duration-slow); }
|
|
1553
1579
|
|
|
1580
|
+
/* ── CSS-only scroll-driven animation (no JS required) ── */
|
|
1581
|
+
@supports (animation-timeline: view()) {
|
|
1582
|
+
.strand-reveal {
|
|
1583
|
+
opacity: 0;
|
|
1584
|
+
transform: translateY(24px);
|
|
1585
|
+
transition: none;
|
|
1586
|
+
animation: strand-reveal-up linear both;
|
|
1587
|
+
animation-timeline: view();
|
|
1588
|
+
animation-range: entry 0% entry 100%;
|
|
1589
|
+
}
|
|
1590
|
+
|
|
1591
|
+
.strand-reveal-group > .strand-reveal {
|
|
1592
|
+
animation: strand-reveal-up linear both;
|
|
1593
|
+
animation-timeline: view();
|
|
1594
|
+
animation-range: entry 0% entry 100%;
|
|
1595
|
+
}
|
|
1596
|
+
|
|
1597
|
+
@keyframes strand-reveal-up {
|
|
1598
|
+
from { opacity: 0; transform: translateY(24px); }
|
|
1599
|
+
to { opacity: 1; transform: translateY(0); }
|
|
1600
|
+
}
|
|
1601
|
+
}
|
|
1602
|
+
|
|
1554
1603
|
@media (prefers-reduced-motion: reduce) {
|
|
1555
1604
|
.strand-reveal {
|
|
1556
1605
|
opacity: 1;
|
|
1557
1606
|
transform: none;
|
|
1558
1607
|
transition: none;
|
|
1608
|
+
animation: none;
|
|
1559
1609
|
}
|
|
1560
1610
|
}
|
|
1561
1611
|
|
|
@@ -1590,6 +1640,11 @@
|
|
|
1590
1640
|
background-color: var(--strand-surface-recessed);
|
|
1591
1641
|
}
|
|
1592
1642
|
|
|
1643
|
+
/* ── Border variant ── */
|
|
1644
|
+
.strand-section--border-top {
|
|
1645
|
+
border-top: 1px solid var(--strand-gray-200);
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1593
1648
|
|
|
1594
1649
|
/* Select */
|
|
1595
1650
|
/*! Strand UI | MIT License | dillingerstaffing.com */
|
|
@@ -2829,4 +2884,44 @@
|
|
|
2829
2884
|
color: var(--strand-gray-400);
|
|
2830
2885
|
}
|
|
2831
2886
|
|
|
2887
|
+
/* ══════════════════════════════════════════════════
|
|
2888
|
+
UTILITIES
|
|
2889
|
+
══════════════════════════════════════════════════ */
|
|
2890
|
+
|
|
2891
|
+
/* ── Screen reader only ── */
|
|
2892
|
+
.strand-sr-only {
|
|
2893
|
+
position: absolute;
|
|
2894
|
+
width: 1px;
|
|
2895
|
+
height: 1px;
|
|
2896
|
+
padding: 0;
|
|
2897
|
+
margin: -1px;
|
|
2898
|
+
overflow: hidden;
|
|
2899
|
+
clip: rect(0, 0, 0, 0);
|
|
2900
|
+
white-space: nowrap;
|
|
2901
|
+
border: 0;
|
|
2902
|
+
}
|
|
2903
|
+
|
|
2904
|
+
/* ── Section header ──
|
|
2905
|
+
Derivation: section-boundary production (DL 11.10).
|
|
2906
|
+
Centered heading group with bottom margin. */
|
|
2907
|
+
.strand-section-header {
|
|
2908
|
+
margin-bottom: clamp(2rem, 4vw, 4rem);
|
|
2909
|
+
}
|
|
2910
|
+
|
|
2911
|
+
/* ── Step indicator ──
|
|
2912
|
+
Numbered position indicator for sequential steps. */
|
|
2913
|
+
.strand-step-indicator {
|
|
2914
|
+
display: inline-flex;
|
|
2915
|
+
align-items: center;
|
|
2916
|
+
justify-content: center;
|
|
2917
|
+
width: var(--strand-space-8);
|
|
2918
|
+
height: var(--strand-space-8);
|
|
2919
|
+
border-radius: var(--strand-radius-full);
|
|
2920
|
+
background: var(--strand-blue-glow);
|
|
2921
|
+
color: var(--strand-blue-primary);
|
|
2922
|
+
font-family: var(--strand-font-mono);
|
|
2923
|
+
font-size: var(--strand-text-sm);
|
|
2924
|
+
font-weight: var(--strand-weight-semibold);
|
|
2925
|
+
}
|
|
2926
|
+
|
|
2832
2927
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dillingerstaffing/strand-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Strand UI - Preact/React component library built on the Strand Design Language",
|
|
5
5
|
"author": "Dillinger Staffing <engineering@dillingerstaffing.com> (https://dillingerstaffing.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@dillingerstaffing/strand": "^0.
|
|
63
|
+
"@dillingerstaffing/strand": "^0.12.0"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@testing-library/preact": "^3.2.0",
|
|
@@ -22,6 +22,32 @@
|
|
|
22
22
|
outline-offset: 2px;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/* ── CTA link variant ── */
|
|
26
|
+
.strand-link--cta {
|
|
27
|
+
display: inline-flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
min-height: var(--strand-touch-target);
|
|
30
|
+
padding-block: var(--strand-space-2);
|
|
31
|
+
font-size: var(--strand-text-sm);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.strand-link--cta:hover {
|
|
35
|
+
color: var(--strand-blue-vivid);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* ── Monospace link variant (footer, overline-style) ── */
|
|
39
|
+
.strand-link--mono {
|
|
40
|
+
font-family: var(--strand-font-mono);
|
|
41
|
+
font-size: var(--strand-text-xs);
|
|
42
|
+
letter-spacing: var(--strand-tracking-wider);
|
|
43
|
+
color: var(--strand-gray-400);
|
|
44
|
+
background-image: none;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.strand-link--mono:hover {
|
|
48
|
+
color: var(--strand-blue-primary);
|
|
49
|
+
}
|
|
50
|
+
|
|
25
51
|
/* ── Reduced motion ── */
|
|
26
52
|
@media (prefers-reduced-motion: reduce) {
|
|
27
53
|
.strand-link {
|
|
@@ -20,10 +20,34 @@
|
|
|
20
20
|
.strand-reveal-group > .strand-reveal:nth-child(5) { transition-delay: calc(var(--strand-stagger-delay) * 4); }
|
|
21
21
|
.strand-reveal-group > .strand-reveal:nth-child(6) { transition-delay: var(--strand-duration-slow); }
|
|
22
22
|
|
|
23
|
+
/* ── CSS-only scroll-driven animation (no JS required) ── */
|
|
24
|
+
@supports (animation-timeline: view()) {
|
|
25
|
+
.strand-reveal {
|
|
26
|
+
opacity: 0;
|
|
27
|
+
transform: translateY(24px);
|
|
28
|
+
transition: none;
|
|
29
|
+
animation: strand-reveal-up linear both;
|
|
30
|
+
animation-timeline: view();
|
|
31
|
+
animation-range: entry 0% entry 100%;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.strand-reveal-group > .strand-reveal {
|
|
35
|
+
animation: strand-reveal-up linear both;
|
|
36
|
+
animation-timeline: view();
|
|
37
|
+
animation-range: entry 0% entry 100%;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@keyframes strand-reveal-up {
|
|
41
|
+
from { opacity: 0; transform: translateY(24px); }
|
|
42
|
+
to { opacity: 1; transform: translateY(0); }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
23
46
|
@media (prefers-reduced-motion: reduce) {
|
|
24
47
|
.strand-reveal {
|
|
25
48
|
opacity: 1;
|
|
26
49
|
transform: none;
|
|
27
50
|
transition: none;
|
|
51
|
+
animation: none;
|
|
28
52
|
}
|
|
29
53
|
}
|
package/src/static.css
CHANGED
|
@@ -255,3 +255,43 @@
|
|
|
255
255
|
text-transform: uppercase;
|
|
256
256
|
color: var(--strand-gray-400);
|
|
257
257
|
}
|
|
258
|
+
|
|
259
|
+
/* ══════════════════════════════════════════════════
|
|
260
|
+
UTILITIES
|
|
261
|
+
══════════════════════════════════════════════════ */
|
|
262
|
+
|
|
263
|
+
/* ── Screen reader only ── */
|
|
264
|
+
.strand-sr-only {
|
|
265
|
+
position: absolute;
|
|
266
|
+
width: 1px;
|
|
267
|
+
height: 1px;
|
|
268
|
+
padding: 0;
|
|
269
|
+
margin: -1px;
|
|
270
|
+
overflow: hidden;
|
|
271
|
+
clip: rect(0, 0, 0, 0);
|
|
272
|
+
white-space: nowrap;
|
|
273
|
+
border: 0;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/* ── Section header ──
|
|
277
|
+
Derivation: section-boundary production (DL 11.10).
|
|
278
|
+
Centered heading group with bottom margin. */
|
|
279
|
+
.strand-section-header {
|
|
280
|
+
margin-bottom: clamp(2rem, 4vw, 4rem);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* ── Step indicator ──
|
|
284
|
+
Numbered position indicator for sequential steps. */
|
|
285
|
+
.strand-step-indicator {
|
|
286
|
+
display: inline-flex;
|
|
287
|
+
align-items: center;
|
|
288
|
+
justify-content: center;
|
|
289
|
+
width: var(--strand-space-8);
|
|
290
|
+
height: var(--strand-space-8);
|
|
291
|
+
border-radius: var(--strand-radius-full);
|
|
292
|
+
background: var(--strand-blue-glow);
|
|
293
|
+
color: var(--strand-blue-primary);
|
|
294
|
+
font-family: var(--strand-font-mono);
|
|
295
|
+
font-size: var(--strand-text-sm);
|
|
296
|
+
font-weight: var(--strand-weight-semibold);
|
|
297
|
+
}
|