@hirobius/design-system 0.19.1 → 0.21.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/AGENTS.md +123 -0
- package/CONSUMING.md +11 -6
- package/DESIGN.md +34 -21
- package/NOTICE.md +1 -1
- package/README.md +48 -13
- package/codemods/hds-prefix.mjs +231 -0
- package/codemods/jsx-fold.mjs +515 -0
- package/codemods/not-found-pattern.mjs +71 -0
- package/codemods/patterns-subpath.mjs +242 -81
- package/codemods/patterns-subpath.names.json +41 -15
- package/codemods/removed-0.20.json +194 -0
- package/codemods/tile-grid.mjs +283 -0
- package/codemods/unrewritable.mjs +291 -0
- package/dist/chunks/DemoStateContext-Cz5TmrYu.js +32 -0
- package/dist/chunks/empty-state-DNoThgfV.js +1227 -0
- package/dist/chunks/form-By82qZcC.js +66 -0
- package/dist/contexts.js +157 -78
- package/dist/fonts/geist-mono-400.woff2 +0 -0
- package/dist/fonts/satoshi-400.woff2 +0 -0
- package/dist/fonts/satoshi-500.woff2 +0 -0
- package/dist/fonts/satoshi-700.woff2 +0 -0
- package/dist/fonts.css +53 -0
- package/dist/form.js +1 -1
- package/dist/hirobius-ui.js +1600 -5354
- package/dist/manifest.js +12 -13
- package/dist/patterns.js +796 -510
- package/dist/styles.css +2 -2
- package/dist/tokens.css +1 -1
- package/dist/tokens.js +165 -65
- package/dist/types/src/app/components/alert-dialog.d.ts +5 -0
- package/dist/types/src/app/components/asset-img.d.ts +1 -0
- package/dist/types/src/app/components/avatar-group.d.ts +2 -2
- package/dist/types/src/app/components/badge.d.ts +8 -3
- package/dist/types/src/app/components/blockquote.d.ts +2 -2
- package/dist/types/src/app/components/box-sx.d.ts +110 -13
- package/dist/types/src/app/components/box.d.ts +6 -3
- package/dist/types/src/app/components/breadcrumb.d.ts +0 -5
- package/dist/types/src/app/components/button.d.ts +35 -4
- package/dist/types/src/app/components/card.d.ts +10 -10
- package/dist/types/src/app/components/combobox.d.ts +47 -11
- package/dist/types/src/app/components/container.d.ts +2 -2
- package/dist/types/src/app/components/data-table-section.d.ts +2 -1
- package/dist/types/src/app/components/destructive-section.d.ts +1 -0
- package/dist/types/src/app/components/dialog.d.ts +8 -1
- package/dist/types/src/app/components/disclosure.d.ts +1 -5
- package/dist/types/src/app/components/error-pattern.d.ts +6 -1
- package/dist/types/src/app/components/field.d.ts +1 -2
- package/dist/types/src/app/components/form-actions.d.ts +1 -0
- package/dist/types/src/app/components/form-control.d.ts +10 -0
- package/dist/types/src/app/components/grid.d.ts +15 -6
- package/dist/types/src/app/components/hds-tooltip.d.ts +12 -2
- package/dist/types/src/app/components/icon.d.ts +1 -0
- package/dist/types/src/app/components/inline-code.d.ts +1 -2
- package/dist/types/src/app/components/input.d.ts +8 -5
- package/dist/types/src/app/components/kbd.d.ts +2 -2
- package/dist/types/src/app/components/metadata-list.d.ts +2 -2
- package/dist/types/src/app/components/metric-tiles.d.ts +1 -0
- package/dist/types/src/app/components/page-header.d.ts +0 -2
- package/dist/types/src/app/components/popover.d.ts +8 -0
- package/dist/types/src/app/components/progress.d.ts +33 -6
- package/dist/types/src/app/components/segmented-control.d.ts +2 -26
- package/dist/types/src/app/components/select.d.ts +10 -1
- package/dist/types/src/app/components/skeleton.d.ts +3 -4
- package/dist/types/src/app/components/spinner.d.ts +1 -2
- package/dist/types/src/app/components/stack.d.ts +4 -1
- package/dist/types/src/app/components/stat.d.ts +5 -5
- package/dist/types/src/app/components/status-list-item.d.ts +1 -2
- package/dist/types/src/app/components/status-tile.d.ts +3 -2
- package/dist/types/src/app/components/surface.d.ts +2 -3
- package/dist/types/src/app/components/switcher.d.ts +1 -1
- package/dist/types/src/app/components/table.d.ts +6 -15
- package/dist/types/src/app/components/tag.d.ts +0 -6
- package/dist/types/src/app/components/text.d.ts +54 -8
- package/dist/types/src/app/components/textarea.d.ts +1 -2
- package/dist/types/src/app/components/timestamp.d.ts +1 -0
- package/dist/types/src/app/components/toast.d.ts +1 -2
- package/dist/types/src/app/components/tooltip.d.ts +1 -1
- package/dist/types/src/app/context/DemoStateContext.d.ts +1 -1
- package/dist/types/src/app/context/RouterContext.d.ts +5 -5
- package/dist/types/src/app/data/manifest-types.d.ts +10 -5
- package/dist/types/src/app/design-system/generated-token-refs.d.ts +45 -28
- package/dist/types/src/app/design-system/generated-token-values.d.ts +4 -0
- package/dist/types/src/app/design-system/tokens.d.ts +139 -18
- package/dist/types/src/icons.d.ts +1 -1
- package/dist/types/src/index.d.ts +76 -164
- package/dist/types/src/patterns.d.ts +20 -25
- package/dist/variables.css +47 -33
- package/docs/CONSUMING.md +80 -48
- package/hirobius.tokens.json +125 -88
- package/llms.txt +166 -59
- package/mcp/catalog.mjs +366 -0
- package/mcp/guide.mjs +315 -0
- package/mcp/hds-mcp.mjs +49 -0
- package/mcp/server.mjs +94 -0
- package/package.json +48 -27
- package/public/hds-manifest.json +2667 -6705
- package/public/llms/components.txt +45 -426
- package/public/llms/layout.txt +5 -5
- package/public/llms-full.txt +245 -506
- package/public/llms.txt +166 -59
- package/scripts/eslint-plugin-hds/index.d.mts +29 -0
- package/scripts/eslint-plugin-hds/index.mjs +55 -0
- package/scripts/eslint-plugin-hds/package.json +30 -0
- package/scripts/eslint-plugin-hds/rules/no-raw-controls.mjs +47 -0
- package/scripts/eslint-plugin-hds/rules/no-raw-hex.mjs +70 -0
- package/scripts/eslint-plugin-hds/rules/no-raw-px-spacing.mjs +125 -0
- package/scripts/eslint-plugin-hds/rules/prefer-hds-layout-primitive.mjs +54 -0
- package/scripts/eslint-plugin-hds/rules/sx-token-first.mjs +111 -0
- package/scripts/eslint-plugin-hds/rules/utils.mjs +66 -0
- package/src/app/data/component-api.json +1082 -2913
- package/dist/chunks/LanguageContext-BxdCwiFg.js +0 -95
- package/dist/chunks/TokenDisplayContext-DKYJMVWk.js +0 -26
- package/dist/chunks/activity-feed-BGQ6v3wc.js +0 -22040
- package/dist/chunks/form-COP3vK9_.js +0 -66
- package/dist/types/src/app/components/activity-feed.d.ts +0 -73
- package/dist/types/src/app/components/app-shell.d.ts +0 -40
- package/dist/types/src/app/components/aspect-ratio.d.ts +0 -25
- package/dist/types/src/app/components/bleed.d.ts +0 -39
- package/dist/types/src/app/components/button-group.d.ts +0 -22
- package/dist/types/src/app/components/calendar.d.ts +0 -22
- package/dist/types/src/app/components/carousel.d.ts +0 -26
- package/dist/types/src/app/components/center.d.ts +0 -36
- package/dist/types/src/app/components/cinematic-link.d.ts +0 -18
- package/dist/types/src/app/components/circular-progress.d.ts +0 -28
- package/dist/types/src/app/components/cluster.d.ts +0 -39
- package/dist/types/src/app/components/command-palette.d.ts +0 -46
- package/dist/types/src/app/components/component-instance-matrix.d.ts +0 -27
- package/dist/types/src/app/components/context-menu.d.ts +0 -78
- package/dist/types/src/app/components/cover.d.ts +0 -43
- package/dist/types/src/app/components/date-input.d.ts +0 -31
- package/dist/types/src/app/components/date-range-input.d.ts +0 -34
- package/dist/types/src/app/components/date-time-input.d.ts +0 -30
- package/dist/types/src/app/components/doc-link-card.d.ts +0 -32
- package/dist/types/src/app/components/error-boundary.d.ts +0 -25
- package/dist/types/src/app/components/file-input.d.ts +0 -30
- package/dist/types/src/app/components/foundation-swatch.d.ts +0 -45
- package/dist/types/src/app/components/frame.d.ts +0 -38
- package/dist/types/src/app/components/heading-stack.d.ts +0 -52
- package/dist/types/src/app/components/history-card.d.ts +0 -12
- package/dist/types/src/app/components/hover-card.d.ts +0 -46
- package/dist/types/src/app/components/icon-button.d.ts +0 -22
- package/dist/types/src/app/components/image-lightbox.d.ts +0 -14
- package/dist/types/src/app/components/input-group.d.ts +0 -23
- package/dist/types/src/app/components/multi-selector.d.ts +0 -40
- package/dist/types/src/app/components/nav-group.d.ts +0 -29
- package/dist/types/src/app/components/nav-item.d.ts +0 -33
- package/dist/types/src/app/components/not-found-pattern.d.ts +0 -1
- package/dist/types/src/app/components/overflow-list.d.ts +0 -21
- package/dist/types/src/app/components/selectable-card.d.ts +0 -29
- package/dist/types/src/app/components/side-nav.d.ts +0 -23
- package/dist/types/src/app/components/sketch.d.ts +0 -19
- package/dist/types/src/app/components/stacked-card-rail.d.ts +0 -32
- package/dist/types/src/app/components/status-dot.d.ts +0 -25
- package/dist/types/src/app/components/stepper-field.d.ts +0 -12
- package/dist/types/src/app/components/stepper.d.ts +0 -33
- package/dist/types/src/app/components/text-lockup.d.ts +0 -38
- package/dist/types/src/app/components/tile-grid.d.ts +0 -17
- package/dist/types/src/app/components/time-input.d.ts +0 -24
- package/dist/types/src/app/components/toggle-button.d.ts +0 -32
- package/dist/types/src/app/components/token.d.ts +0 -90
- package/dist/types/src/app/components/tokenUtils.d.ts +0 -38
- package/dist/types/src/app/components/tokenizer.d.ts +0 -24
- package/dist/types/src/app/components/toolbar.d.ts +0 -36
- package/dist/types/src/app/components/top-nav.d.ts +0 -23
- package/dist/types/src/app/components/tree-list.d.ts +0 -30
- package/dist/types/src/app/data/nav-model.d.ts +0 -39
- package/dist/types/src/app/hooks/useFocusVisible.d.ts +0 -9
- package/dist/types/src/app/layouts/CaseStudyLayout.d.ts +0 -20
- package/dist/types/src/app/layouts/DocLayout.d.ts +0 -14
- package/dist/types/src/app/layouts/EmbeddedDocLayoutContext.d.ts +0 -6
- package/dist/types/src/app/layouts/HdsDocsShell.d.ts +0 -72
- package/dist/types/src/app/layouts/HdsSystemDocLayout.d.ts +0 -14
- package/dist/types/src/app/lib/hds-search.d.ts +0 -45
- package/dist/types/src/app/lib/nav-active.d.ts +0 -16
- package/dist/types/src/app/lib/navLevels.d.ts +0 -4
package/hirobius.tokens.json
CHANGED
|
@@ -486,7 +486,7 @@
|
|
|
486
486
|
"Segoe UI",
|
|
487
487
|
"sans-serif"
|
|
488
488
|
],
|
|
489
|
-
"$description": "Display face: Satoshi Bold (ITF), bound to display
|
|
489
|
+
"$description": "Display face: Satoshi Bold (ITF), bound to the display and title composites."
|
|
490
490
|
},
|
|
491
491
|
"mono": {
|
|
492
492
|
"$value": ["Geist Mono", "Courier New", "monospace"],
|
|
@@ -564,6 +564,13 @@
|
|
|
564
564
|
"unit": "px"
|
|
565
565
|
},
|
|
566
566
|
"$description": "Swiss-canon display size (hds#283 ramp). Static desktop value; fluid in theme.css. Tailwind 4 default text-6xl."
|
|
567
|
+
},
|
|
568
|
+
"code": {
|
|
569
|
+
"$value": {
|
|
570
|
+
"value": 13,
|
|
571
|
+
"unit": "px"
|
|
572
|
+
},
|
|
573
|
+
"$description": "13px code size. The mono role (hds#485): one px below ui so code sits level with 14px prose."
|
|
567
574
|
}
|
|
568
575
|
},
|
|
569
576
|
"weight": {
|
|
@@ -599,6 +606,14 @@
|
|
|
599
606
|
"relaxed": {
|
|
600
607
|
"$value": 1.625,
|
|
601
608
|
"$description": "Swiss-canon relaxed rhythm (10t-5). Used by body/small/mono composites for long-form prose comfort."
|
|
609
|
+
},
|
|
610
|
+
"display": {
|
|
611
|
+
"$value": 1.05,
|
|
612
|
+
"$description": "Display role leading (hds#485)."
|
|
613
|
+
},
|
|
614
|
+
"body": {
|
|
615
|
+
"$value": 1.6,
|
|
616
|
+
"$description": "Body role leading (hds#485)."
|
|
602
617
|
}
|
|
603
618
|
},
|
|
604
619
|
"letterSpacing": {
|
|
@@ -830,6 +845,14 @@
|
|
|
830
845
|
},
|
|
831
846
|
"$description": "96px size step."
|
|
832
847
|
},
|
|
848
|
+
"120": {
|
|
849
|
+
"$type": "dimension",
|
|
850
|
+
"$value": {
|
|
851
|
+
"value": 120,
|
|
852
|
+
"unit": "px"
|
|
853
|
+
},
|
|
854
|
+
"$description": "120px size step. Backs semantic.size.tile."
|
|
855
|
+
},
|
|
833
856
|
"$description": "Unaliased dimensional values.",
|
|
834
857
|
"interactive": {
|
|
835
858
|
"$description": "Interactive control size minimums.",
|
|
@@ -847,7 +870,7 @@
|
|
|
847
870
|
"value": 24,
|
|
848
871
|
"unit": "px"
|
|
849
872
|
},
|
|
850
|
-
"$description": "
|
|
873
|
+
"$description": "Compact inline control target minimum, e.g. a chip's remove button: WCAG 2.2 AA (2.5.8), not the 44px AAA floor (2.5.5)."
|
|
851
874
|
}
|
|
852
875
|
},
|
|
853
876
|
"width": {
|
|
@@ -886,7 +909,7 @@
|
|
|
886
909
|
"value": 280,
|
|
887
910
|
"unit": "px"
|
|
888
911
|
},
|
|
889
|
-
"$description": "Docs-shell rail width (hds#280)
|
|
912
|
+
"$description": "Docs-shell rail width (hds#280): our own number, not HeroUI's 268px; fits the longest top-level nav label with room."
|
|
890
913
|
}
|
|
891
914
|
}
|
|
892
915
|
},
|
|
@@ -981,7 +1004,7 @@
|
|
|
981
1004
|
"distance": {
|
|
982
1005
|
"$type": "dimension",
|
|
983
1006
|
"$value": "{primitive.space.6}",
|
|
984
|
-
"$description": "
|
|
1007
|
+
"$description": "Scroll-reveal translateY travel distance. Equals semantic.space.scale.md today, but names motion travel, not a spacing tier (hds#242)."
|
|
985
1008
|
}
|
|
986
1009
|
},
|
|
987
1010
|
"color": {
|
|
@@ -1456,13 +1479,29 @@
|
|
|
1456
1479
|
}
|
|
1457
1480
|
}
|
|
1458
1481
|
}
|
|
1482
|
+
},
|
|
1483
|
+
"state": {
|
|
1484
|
+
"pressed": {
|
|
1485
|
+
"overlay": {
|
|
1486
|
+
"$value": "{primitive.color.neutral.black}",
|
|
1487
|
+
"$description": "Opaque pressed wash over a control's own fill: black in light, white in dark. Alpha in the class (inset-shadow-pressed-overlay/5).",
|
|
1488
|
+
"$extensions": {
|
|
1489
|
+
"com.figma.variables": {
|
|
1490
|
+
"modes": {
|
|
1491
|
+
"Light": "{primitive.color.neutral.black}",
|
|
1492
|
+
"Dark": "{primitive.color.neutral.white}"
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
}
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1459
1498
|
}
|
|
1460
1499
|
},
|
|
1461
1500
|
"space": {
|
|
1462
1501
|
"$type": "dimension",
|
|
1463
1502
|
"$description": "Semantic spacing tiers: subgrid, component, layout, section, scale.",
|
|
1464
1503
|
"scale": {
|
|
1465
|
-
"$description": "hds#206
|
|
1504
|
+
"$description": "hds#206: the canonical spacing vocabulary, one monotonic t-shirt scale (xs to xl) for padding, margin and gap. Supersedes deprecated names.",
|
|
1466
1505
|
"xs": {
|
|
1467
1506
|
"$value": "{primitive.space.2}",
|
|
1468
1507
|
"$description": "8px — smallest step. Same value as component.gap (deprecated alias)."
|
|
@@ -1473,7 +1512,7 @@
|
|
|
1473
1512
|
},
|
|
1474
1513
|
"md": {
|
|
1475
1514
|
"$value": "{primitive.space.6}",
|
|
1476
|
-
"$description": "24px
|
|
1515
|
+
"$description": "24px. Default of the overridable roles surface.padding and region.gutter. The deprecated layout.normal has the same value."
|
|
1477
1516
|
},
|
|
1478
1517
|
"lg": {
|
|
1479
1518
|
"$value": "{primitive.space.8}",
|
|
@@ -1485,17 +1524,17 @@
|
|
|
1485
1524
|
}
|
|
1486
1525
|
},
|
|
1487
1526
|
"surface": {
|
|
1488
|
-
"$description": "hds#206
|
|
1527
|
+
"$description": "hds#206 surface inset role. Tenants override it per brand and density, always with a scale step.",
|
|
1489
1528
|
"padding": {
|
|
1490
1529
|
"$value": "{semantic.space.scale.md}",
|
|
1491
|
-
"$description": "24px (scale.md)
|
|
1530
|
+
"$description": "24px (scale.md) inset for cards, forms and panels. Tenants override it per brand and density. Replaces component.padding."
|
|
1492
1531
|
}
|
|
1493
1532
|
},
|
|
1494
1533
|
"region": {
|
|
1495
|
-
"$description": "hds#206
|
|
1534
|
+
"$description": "hds#206 region gutter role. theme.css retunes it per viewport, always with a scale step.",
|
|
1496
1535
|
"gutter": {
|
|
1497
1536
|
"$value": "{semantic.space.scale.md}",
|
|
1498
|
-
"$description": "24px (scale.md) column and region gutters
|
|
1537
|
+
"$description": "24px (scale.md) column and region gutters; theme.css sets scale.lg (32px), and scale.sm (16px) below 640px. Replaces layout.gutter."
|
|
1499
1538
|
}
|
|
1500
1539
|
},
|
|
1501
1540
|
"subgrid": {
|
|
@@ -1524,7 +1563,7 @@
|
|
|
1524
1563
|
},
|
|
1525
1564
|
"padding": {
|
|
1526
1565
|
"$value": "{semantic.space.surface.padding}",
|
|
1527
|
-
"$description": "24px
|
|
1566
|
+
"$description": "24px inset for cards, forms and panels. DEPRECATED alias (hds#206) — use semantic.space.surface.padding; kept live, no removal yet.",
|
|
1528
1567
|
"$deprecated": "hds#206 — use semantic.space.surface.padding"
|
|
1529
1568
|
}
|
|
1530
1569
|
},
|
|
@@ -1551,7 +1590,7 @@
|
|
|
1551
1590
|
},
|
|
1552
1591
|
"spacious": {
|
|
1553
1592
|
"$value": "{primitive.space.12}",
|
|
1554
|
-
"$description": "48px
|
|
1593
|
+
"$description": "48px break between major content blocks. DEPRECATED alias (hds#206) — use semantic.space.scale.xl; kept live, no removal yet.",
|
|
1555
1594
|
"$deprecated": "hds#206 — use semantic.space.scale.xl"
|
|
1556
1595
|
}
|
|
1557
1596
|
},
|
|
@@ -1589,7 +1628,7 @@
|
|
|
1589
1628
|
"railWidth": {
|
|
1590
1629
|
"$type": "dimension",
|
|
1591
1630
|
"$value": "{primitive.size.width.280}",
|
|
1592
|
-
"$description": "Docs-shell
|
|
1631
|
+
"$description": "Docs-shell nav and TOC rail width (hds#280), one token for both rails; 0 below their breakpoint (see HdsDocsShell)."
|
|
1593
1632
|
}
|
|
1594
1633
|
}
|
|
1595
1634
|
},
|
|
@@ -1653,84 +1692,40 @@
|
|
|
1653
1692
|
},
|
|
1654
1693
|
"typography": {
|
|
1655
1694
|
"$type": "typography",
|
|
1656
|
-
"$description": "
|
|
1695
|
+
"$description": "5-role type ramp plus mono (hds#483): display, title, body, ui, caption, mono. h1, h2, h3 and eyebrow are deprecated aliases.",
|
|
1657
1696
|
"display": {
|
|
1658
|
-
"$value": {
|
|
1659
|
-
"fontFamily": "{primitive.typography.family.display}",
|
|
1660
|
-
"fontSize": "{primitive.typography.size.6xl}",
|
|
1661
|
-
"fontWeight": "{primitive.typography.weight.bold}",
|
|
1662
|
-
"letterSpacing": "{primitive.typography.letterSpacing.tight}",
|
|
1663
|
-
"lineHeight": "{primitive.typography.lineHeight.none}"
|
|
1664
|
-
},
|
|
1665
|
-
"$description": "Display headline. 60px / Satoshi bold 700 / leading-none (hds#283: was 72px/5xl).",
|
|
1666
|
-
"$extensions": {
|
|
1667
|
-
"com.figma.variables": {
|
|
1668
|
-
"fontSize": "clamp(40px, 8vw, 60px)",
|
|
1669
|
-
"note": "Figma stores the 60px desktop-max static value. Browser CSS overrides with fluid scaling (40px min → 60px max). See src/styles/theme.css."
|
|
1670
|
-
}
|
|
1671
|
-
}
|
|
1672
|
-
},
|
|
1673
|
-
"h1": {
|
|
1674
1697
|
"$value": {
|
|
1675
1698
|
"fontFamily": "{primitive.typography.family.display}",
|
|
1676
1699
|
"fontSize": "{primitive.typography.size.5xl}",
|
|
1677
1700
|
"fontWeight": "{primitive.typography.weight.bold}",
|
|
1678
1701
|
"letterSpacing": "{primitive.typography.letterSpacing.tight}",
|
|
1679
|
-
"lineHeight": "{primitive.typography.lineHeight.
|
|
1702
|
+
"lineHeight": "{primitive.typography.lineHeight.display}"
|
|
1680
1703
|
},
|
|
1681
|
-
"$description": "
|
|
1682
|
-
"$extensions": {
|
|
1683
|
-
"com.figma.variables": {
|
|
1684
|
-
"fontSize": "clamp(32px, 6vw, 48px)",
|
|
1685
|
-
"note": "Figma stores the 48px desktop-max static value. Browser CSS overrides with fluid scaling (32px min → 48px max). See src/styles/theme.css."
|
|
1686
|
-
}
|
|
1687
|
-
}
|
|
1704
|
+
"$description": "One per page, hero only. 48px / 1.05 / 700. Role 1 of 6."
|
|
1688
1705
|
},
|
|
1689
|
-
"
|
|
1706
|
+
"title": {
|
|
1690
1707
|
"$value": {
|
|
1691
1708
|
"fontFamily": "{primitive.typography.family.display}",
|
|
1692
|
-
"fontSize": "{primitive.typography.size.
|
|
1709
|
+
"fontSize": "{primitive.typography.size.2xl}",
|
|
1693
1710
|
"fontWeight": "{primitive.typography.weight.bold}",
|
|
1694
1711
|
"letterSpacing": "{primitive.typography.letterSpacing.tight}",
|
|
1695
|
-
"lineHeight": "
|
|
1696
|
-
},
|
|
1697
|
-
"$description": "Secondary section headings (h2). Satoshi bold 700, 30px, line-height 40px (hds#283: rung renamed, was 42px).",
|
|
1698
|
-
"$extensions": {
|
|
1699
|
-
"com.figma.variables": {
|
|
1700
|
-
"fontSize": "clamp(24px, 3.5vw, 30px)",
|
|
1701
|
-
"note": "Figma stores the 30px desktop-max static value. Browser CSS overrides with fluid scaling (24px min → 30px max). See src/styles/theme.css."
|
|
1702
|
-
}
|
|
1703
|
-
}
|
|
1704
|
-
},
|
|
1705
|
-
"h3": {
|
|
1706
|
-
"$value": {
|
|
1707
|
-
"fontFamily": "{primitive.typography.family.display}",
|
|
1708
|
-
"fontSize": "{primitive.typography.size.xl}",
|
|
1709
|
-
"fontWeight": "{primitive.typography.weight.bold}",
|
|
1710
|
-
"letterSpacing": "{primitive.typography.letterSpacing.normal}",
|
|
1711
|
-
"lineHeight": "28px"
|
|
1712
|
+
"lineHeight": "{primitive.typography.lineHeight.tight}"
|
|
1712
1713
|
},
|
|
1713
|
-
"$description": "
|
|
1714
|
-
"$extensions": {
|
|
1715
|
-
"com.figma.variables": {
|
|
1716
|
-
"fontSize": "clamp(18px, 2vw, 20px)",
|
|
1717
|
-
"note": "Figma stores the 20px desktop-max static value. Browser CSS overrides with fluid scaling (18px min → 20px max). See src/styles/theme.css."
|
|
1718
|
-
}
|
|
1719
|
-
}
|
|
1714
|
+
"$description": "Section and card headings. 24px / 1.25 / 700. Role 2 of 6."
|
|
1720
1715
|
},
|
|
1721
1716
|
"body": {
|
|
1722
1717
|
"$value": {
|
|
1723
1718
|
"fontFamily": "{primitive.typography.family.primary}",
|
|
1724
1719
|
"fontSize": "{primitive.typography.size.base}",
|
|
1725
|
-
"fontWeight": "{primitive.typography.weight.
|
|
1720
|
+
"fontWeight": "{primitive.typography.weight.regular}",
|
|
1726
1721
|
"letterSpacing": "{primitive.typography.letterSpacing.normal}",
|
|
1727
|
-
"lineHeight": "
|
|
1722
|
+
"lineHeight": "{primitive.typography.lineHeight.body}",
|
|
1728
1723
|
"maxWidth": {
|
|
1729
1724
|
"value": 60,
|
|
1730
1725
|
"unit": "ch"
|
|
1731
1726
|
}
|
|
1732
1727
|
},
|
|
1733
|
-
"$description": "
|
|
1728
|
+
"$description": "Prose. 16px / 1.6 / 400, 60ch measure. Role 3 of 6."
|
|
1734
1729
|
},
|
|
1735
1730
|
"ui": {
|
|
1736
1731
|
"$value": {
|
|
@@ -1738,13 +1733,13 @@
|
|
|
1738
1733
|
"fontSize": "{primitive.typography.size.sm}",
|
|
1739
1734
|
"fontWeight": "{primitive.typography.weight.medium}",
|
|
1740
1735
|
"letterSpacing": "{primitive.typography.letterSpacing.normal}",
|
|
1741
|
-
"lineHeight": "
|
|
1736
|
+
"lineHeight": "{primitive.typography.lineHeight.normal}",
|
|
1742
1737
|
"maxWidth": {
|
|
1743
1738
|
"value": 60,
|
|
1744
1739
|
"unit": "ch"
|
|
1745
1740
|
}
|
|
1746
1741
|
},
|
|
1747
|
-
"$description": "
|
|
1742
|
+
"$description": "Controls, nav, table text, values. 14px / 1.5 / 500. Role 4 of 6."
|
|
1748
1743
|
},
|
|
1749
1744
|
"caption": {
|
|
1750
1745
|
"$value": {
|
|
@@ -1752,34 +1747,67 @@
|
|
|
1752
1747
|
"fontSize": "{primitive.typography.size.xs}",
|
|
1753
1748
|
"fontWeight": "{primitive.typography.weight.medium}",
|
|
1754
1749
|
"letterSpacing": "{primitive.typography.letterSpacing.normal}",
|
|
1755
|
-
"lineHeight": "
|
|
1750
|
+
"lineHeight": "{primitive.typography.lineHeight.normal}"
|
|
1756
1751
|
},
|
|
1757
|
-
"$description": "
|
|
1758
|
-
},
|
|
1759
|
-
"eyebrow": {
|
|
1760
|
-
"$value": {
|
|
1761
|
-
"fontFamily": "{primitive.typography.family.primary}",
|
|
1762
|
-
"fontSize": "{primitive.typography.size.xs}",
|
|
1763
|
-
"fontWeight": "{primitive.typography.weight.medium}",
|
|
1764
|
-
"letterSpacing": "{primitive.typography.letterSpacing.caps}",
|
|
1765
|
-
"lineHeight": "16px",
|
|
1766
|
-
"textTransform": "uppercase"
|
|
1767
|
-
},
|
|
1768
|
-
"$description": "Eyebrow / kicker label. Satoshi medium, 12px, caps tracking, uppercase (hds#283: was 13px/20px)."
|
|
1752
|
+
"$description": "Metadata, help text and labels, in sentence case. 12px / 1.5 / 500. Role 5 of 6."
|
|
1769
1753
|
},
|
|
1770
1754
|
"mono": {
|
|
1771
1755
|
"$value": {
|
|
1772
1756
|
"fontFamily": "{primitive.typography.family.mono}",
|
|
1773
|
-
"fontSize": "{primitive.typography.size.
|
|
1757
|
+
"fontSize": "{primitive.typography.size.code}",
|
|
1774
1758
|
"fontWeight": "{primitive.typography.weight.regular}",
|
|
1775
1759
|
"letterSpacing": "{primitive.typography.letterSpacing.normal}",
|
|
1776
|
-
"lineHeight": "
|
|
1760
|
+
"lineHeight": "{primitive.typography.lineHeight.normal}",
|
|
1777
1761
|
"maxWidth": {
|
|
1778
1762
|
"value": 60,
|
|
1779
1763
|
"unit": "ch"
|
|
1780
1764
|
}
|
|
1781
1765
|
},
|
|
1782
|
-
"$description": "
|
|
1766
|
+
"$description": "Code and ids. 13px / 1.5 / 400. The mono companion, role 6 of 6."
|
|
1767
|
+
},
|
|
1768
|
+
"h1": {
|
|
1769
|
+
"$value": {
|
|
1770
|
+
"fontFamily": "{primitive.typography.family.display}",
|
|
1771
|
+
"fontSize": "{primitive.typography.size.2xl}",
|
|
1772
|
+
"fontWeight": "{primitive.typography.weight.bold}",
|
|
1773
|
+
"letterSpacing": "{primitive.typography.letterSpacing.tight}",
|
|
1774
|
+
"lineHeight": "{primitive.typography.lineHeight.tight}"
|
|
1775
|
+
},
|
|
1776
|
+
"$description": "deprecated: use semantic.typography.title",
|
|
1777
|
+
"$deprecated": "hds#483 — use semantic.typography.title"
|
|
1778
|
+
},
|
|
1779
|
+
"h2": {
|
|
1780
|
+
"$value": {
|
|
1781
|
+
"fontFamily": "{primitive.typography.family.display}",
|
|
1782
|
+
"fontSize": "{primitive.typography.size.2xl}",
|
|
1783
|
+
"fontWeight": "{primitive.typography.weight.bold}",
|
|
1784
|
+
"letterSpacing": "{primitive.typography.letterSpacing.tight}",
|
|
1785
|
+
"lineHeight": "{primitive.typography.lineHeight.tight}"
|
|
1786
|
+
},
|
|
1787
|
+
"$description": "deprecated: use semantic.typography.title",
|
|
1788
|
+
"$deprecated": "hds#483 — use semantic.typography.title"
|
|
1789
|
+
},
|
|
1790
|
+
"h3": {
|
|
1791
|
+
"$value": {
|
|
1792
|
+
"fontFamily": "{primitive.typography.family.display}",
|
|
1793
|
+
"fontSize": "{primitive.typography.size.2xl}",
|
|
1794
|
+
"fontWeight": "{primitive.typography.weight.bold}",
|
|
1795
|
+
"letterSpacing": "{primitive.typography.letterSpacing.tight}",
|
|
1796
|
+
"lineHeight": "{primitive.typography.lineHeight.tight}"
|
|
1797
|
+
},
|
|
1798
|
+
"$description": "deprecated: use semantic.typography.title",
|
|
1799
|
+
"$deprecated": "hds#483 — use semantic.typography.title"
|
|
1800
|
+
},
|
|
1801
|
+
"eyebrow": {
|
|
1802
|
+
"$value": {
|
|
1803
|
+
"fontFamily": "{primitive.typography.family.primary}",
|
|
1804
|
+
"fontSize": "{primitive.typography.size.xs}",
|
|
1805
|
+
"fontWeight": "{primitive.typography.weight.medium}",
|
|
1806
|
+
"letterSpacing": "{primitive.typography.letterSpacing.normal}",
|
|
1807
|
+
"lineHeight": "{primitive.typography.lineHeight.normal}"
|
|
1808
|
+
},
|
|
1809
|
+
"$description": "deprecated: use semantic.typography.caption",
|
|
1810
|
+
"$deprecated": "hds#483 — use semantic.typography.caption"
|
|
1783
1811
|
},
|
|
1784
1812
|
"lineHeight": {
|
|
1785
1813
|
"none": {
|
|
@@ -1915,7 +1943,7 @@
|
|
|
1915
1943
|
"control": {
|
|
1916
1944
|
"$type": "dimension",
|
|
1917
1945
|
"$value": "{primitive.radius.4}",
|
|
1918
|
-
"$description": "Corner radius for small
|
|
1946
|
+
"$description": "Corner radius for small control glyphs such as the checkbox box: not fully round, and distinct from semantic.radius.action (hds#242)."
|
|
1919
1947
|
}
|
|
1920
1948
|
},
|
|
1921
1949
|
"borderWidth": {
|
|
@@ -1982,7 +2010,7 @@
|
|
|
1982
2010
|
},
|
|
1983
2011
|
"size": {
|
|
1984
2012
|
"$type": "dimension",
|
|
1985
|
-
"$description": "
|
|
2013
|
+
"$description": "Sizing roles for control glyphs, avatars and table rows. Roles sharing a value stay separate so each can change (hds#242).",
|
|
1986
2014
|
"control": {
|
|
1987
2015
|
"$description": "Interactive control glyph/element sizing (checkbox glyph box, radio dot, slider track/fill, code-block copy-button-matched footprint).",
|
|
1988
2016
|
"sm": {
|
|
@@ -2015,7 +2043,11 @@
|
|
|
2015
2043
|
},
|
|
2016
2044
|
"avatar": {
|
|
2017
2045
|
"$value": "{primitive.size.40}",
|
|
2018
|
-
"$description": "Avatar
|
|
2046
|
+
"$description": "Avatar size (width and height) for activity feeds and identity glyphs. Same pixels as row.compact today, a separate role (hds#242)."
|
|
2047
|
+
},
|
|
2048
|
+
"tile": {
|
|
2049
|
+
"$value": "{primitive.size.120}",
|
|
2050
|
+
"$description": "Minimum height of a metric tile, one height for every tile so rows line up (hds#403)."
|
|
2019
2051
|
},
|
|
2020
2052
|
"row": {
|
|
2021
2053
|
"$description": "Table row minimum height by density.",
|
|
@@ -2507,6 +2539,11 @@
|
|
|
2507
2539
|
"$value": "{semantic.color.surface.scrim}",
|
|
2508
2540
|
"$description": "Modal backdrop colour role. Apply alpha in the class, e.g. bg-scrim/60."
|
|
2509
2541
|
},
|
|
2542
|
+
"pressed-overlay": {
|
|
2543
|
+
"$type": "color",
|
|
2544
|
+
"$value": "{semantic.color.state.pressed.overlay}",
|
|
2545
|
+
"$description": "Pressed-state overlay colour role. Apply alpha in the class, e.g. inset-shadow-pressed-overlay/5."
|
|
2546
|
+
},
|
|
2510
2547
|
"popover-foreground": {
|
|
2511
2548
|
"$type": "color",
|
|
2512
2549
|
"$value": "{semantic.color.content.primary}",
|