@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 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.
@@ -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: inset 0 1px 3px rgba(15, 23, 42, 0.06); /* strand-blue-abyss at 6% opacity */
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 0 1px 3px rgba(15, 23, 42, 0.06);
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.7.1",
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.7.1"
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: inset 0 1px 3px rgba(15, 23, 42, 0.06); /* strand-blue-abyss at 6% opacity */
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 0 1px 3px rgba(15, 23, 42, 0.06);
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
+ }