@dillingerstaffing/strand-ui 0.7.1 → 0.8.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/HTML_REFERENCE.md +31 -0
- package/dist/css/strand-ui.css +41 -2
- package/package.json +2 -2
- package/src/components/CodeBlock/CodeBlock.css +1 -1
- package/src/static.css +40 -1
package/HTML_REFERENCE.md
CHANGED
|
@@ -834,3 +834,34 @@ All container components (Grid, Stack, Card, Container) enforce boundary integri
|
|
|
834
834
|
> **Keyboard navigation:** Tab/Shift+Tab reaches all interactive elements. Arrow keys navigate within Tabs and menus (requires JavaScript). Escape closes overlays. Enter/Space activates buttons. Dialog must trap focus. See [DL L1197-1204](./DESIGN_LANGUAGE.md#L1197).
|
|
835
835
|
|
|
836
836
|
> **Motion anti-patterns (never do):** Never re-animate on viewport exit/re-enter. Never hijack scroll. Never animate width/height/margin/padding (use transform). Never use bounce/elastic easing. Never animate more than 3-4 elements simultaneously. Never use parallax on text. See [DL L671-680](./DESIGN_LANGUAGE.md#L671).
|
|
837
|
+
|
|
838
|
+
---
|
|
839
|
+
|
|
840
|
+
## Utility Classes
|
|
841
|
+
|
|
842
|
+
### Overline
|
|
843
|
+
|
|
844
|
+
```html
|
|
845
|
+
<span class="strand-overline">Specimen Label</span>
|
|
846
|
+
```
|
|
847
|
+
|
|
848
|
+
The monospace uppercase tracked label pattern. Used for section labels, category headers, and data annotations.
|
|
849
|
+
|
|
850
|
+
> **DL foundation:** This is the laboratory specimen label pattern from [DL Part IV.5 (L386-L396)](./DESIGN_LANGUAGE.md#L386).
|
|
851
|
+
|
|
852
|
+
### Headline
|
|
853
|
+
|
|
854
|
+
```html
|
|
855
|
+
<div class="strand-headline strand-headline--xl">STRAND</div>
|
|
856
|
+
<h2 class="strand-headline strand-headline--lg">Section Title</h2>
|
|
857
|
+
```
|
|
858
|
+
|
|
859
|
+
**Sizes:** `--xl` (hero, fluid 2.5rem-5rem) | `--lg` (section, fluid 1.5rem-2.5rem)
|
|
860
|
+
|
|
861
|
+
### Lead
|
|
862
|
+
|
|
863
|
+
```html
|
|
864
|
+
<p class="strand-lead">Design tokens + UI components. Zero-runtime CSS. Ship faster.</p>
|
|
865
|
+
```
|
|
866
|
+
|
|
867
|
+
Intro paragraph. Max 50 characters per line. Used after headlines.
|
package/dist/css/strand-ui.css
CHANGED
|
@@ -672,7 +672,7 @@
|
|
|
672
672
|
line-height: var(--strand-leading-relaxed);
|
|
673
673
|
color: var(--strand-blue-midnight);
|
|
674
674
|
background: var(--strand-surface-recessed);
|
|
675
|
-
box-shadow:
|
|
675
|
+
box-shadow: var(--strand-shadow-inset);
|
|
676
676
|
border-radius: var(--strand-radius-lg);
|
|
677
677
|
padding: var(--strand-space-3) var(--strand-space-4);
|
|
678
678
|
overflow-x: auto;
|
|
@@ -2603,9 +2603,48 @@
|
|
|
2603
2603
|
|
|
2604
2604
|
.strand-viewport {
|
|
2605
2605
|
background: var(--strand-surface-recessed);
|
|
2606
|
-
box-shadow: inset
|
|
2606
|
+
box-shadow: var(--strand-shadow-inset);
|
|
2607
2607
|
border-radius: var(--strand-radius-lg);
|
|
2608
2608
|
padding: var(--strand-space-6);
|
|
2609
2609
|
}
|
|
2610
2610
|
|
|
2611
|
+
/* ── Overline (specimen label pattern, DL Part IV.5) ── */
|
|
2612
|
+
.strand-overline {
|
|
2613
|
+
font-family: var(--strand-font-mono);
|
|
2614
|
+
font-size: var(--strand-text-xs);
|
|
2615
|
+
font-weight: var(--strand-weight-medium);
|
|
2616
|
+
letter-spacing: var(--strand-tracking-ultra);
|
|
2617
|
+
text-transform: uppercase;
|
|
2618
|
+
color: var(--strand-gray-500);
|
|
2619
|
+
line-height: var(--strand-leading-normal);
|
|
2620
|
+
}
|
|
2621
|
+
|
|
2622
|
+
/* ── Headline (display heading, DL Part IV.5) ── */
|
|
2623
|
+
.strand-headline {
|
|
2624
|
+
font-family: var(--strand-font-mono);
|
|
2625
|
+
font-weight: var(--strand-weight-light);
|
|
2626
|
+
letter-spacing: var(--strand-tracking-widest);
|
|
2627
|
+
text-transform: uppercase;
|
|
2628
|
+
color: var(--strand-blue-midnight);
|
|
2629
|
+
line-height: var(--strand-leading-tight);
|
|
2630
|
+
}
|
|
2631
|
+
|
|
2632
|
+
.strand-headline--xl {
|
|
2633
|
+
font-size: clamp(2.5rem, 5vw + 1rem, 5rem);
|
|
2634
|
+
letter-spacing: 0.35em;
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2637
|
+
.strand-headline--lg {
|
|
2638
|
+
font-size: clamp(1.5rem, 3vw + 0.5rem, 2.5rem);
|
|
2639
|
+
letter-spacing: var(--strand-tracking-tighter);
|
|
2640
|
+
}
|
|
2641
|
+
|
|
2642
|
+
/* ── Lead (intro paragraph, DL Part IV.6) ── */
|
|
2643
|
+
.strand-lead {
|
|
2644
|
+
font-size: var(--strand-text-lg);
|
|
2645
|
+
color: var(--strand-gray-500);
|
|
2646
|
+
max-width: 50ch;
|
|
2647
|
+
line-height: var(--strand-leading-relaxed);
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2611
2650
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dillingerstaffing/strand-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.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.8.0"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@testing-library/preact": "^3.2.0",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
line-height: var(--strand-leading-relaxed);
|
|
25
25
|
color: var(--strand-blue-midnight);
|
|
26
26
|
background: var(--strand-surface-recessed);
|
|
27
|
-
box-shadow:
|
|
27
|
+
box-shadow: var(--strand-shadow-inset);
|
|
28
28
|
border-radius: var(--strand-radius-lg);
|
|
29
29
|
padding: var(--strand-space-3) var(--strand-space-4);
|
|
30
30
|
overflow-x: auto;
|
package/src/static.css
CHANGED
|
@@ -41,7 +41,46 @@
|
|
|
41
41
|
|
|
42
42
|
.strand-viewport {
|
|
43
43
|
background: var(--strand-surface-recessed);
|
|
44
|
-
box-shadow: inset
|
|
44
|
+
box-shadow: var(--strand-shadow-inset);
|
|
45
45
|
border-radius: var(--strand-radius-lg);
|
|
46
46
|
padding: var(--strand-space-6);
|
|
47
47
|
}
|
|
48
|
+
|
|
49
|
+
/* ── Overline (specimen label pattern, DL Part IV.5) ── */
|
|
50
|
+
.strand-overline {
|
|
51
|
+
font-family: var(--strand-font-mono);
|
|
52
|
+
font-size: var(--strand-text-xs);
|
|
53
|
+
font-weight: var(--strand-weight-medium);
|
|
54
|
+
letter-spacing: var(--strand-tracking-ultra);
|
|
55
|
+
text-transform: uppercase;
|
|
56
|
+
color: var(--strand-gray-500);
|
|
57
|
+
line-height: var(--strand-leading-normal);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* ── Headline (display heading, DL Part IV.5) ── */
|
|
61
|
+
.strand-headline {
|
|
62
|
+
font-family: var(--strand-font-mono);
|
|
63
|
+
font-weight: var(--strand-weight-light);
|
|
64
|
+
letter-spacing: var(--strand-tracking-widest);
|
|
65
|
+
text-transform: uppercase;
|
|
66
|
+
color: var(--strand-blue-midnight);
|
|
67
|
+
line-height: var(--strand-leading-tight);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.strand-headline--xl {
|
|
71
|
+
font-size: clamp(2.5rem, 5vw + 1rem, 5rem);
|
|
72
|
+
letter-spacing: 0.35em;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.strand-headline--lg {
|
|
76
|
+
font-size: clamp(1.5rem, 3vw + 0.5rem, 2.5rem);
|
|
77
|
+
letter-spacing: var(--strand-tracking-tighter);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* ── Lead (intro paragraph, DL Part IV.6) ── */
|
|
81
|
+
.strand-lead {
|
|
82
|
+
font-size: var(--strand-text-lg);
|
|
83
|
+
color: var(--strand-gray-500);
|
|
84
|
+
max-width: 50ch;
|
|
85
|
+
line-height: var(--strand-leading-relaxed);
|
|
86
|
+
}
|