@misoto22/design 0.7.0 → 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/AGENTS.md +87 -0
- package/CLAUDE.md +1 -0
- package/README.md +50 -5
- package/bin/misoto22-design.mjs +59 -13
- package/dist/agent/Accordion.md +24 -1
- package/dist/agent/Alert.md +23 -1
- package/dist/agent/AppShell.md +30 -2
- package/dist/agent/ArchitectureFigure.md +25 -2
- package/dist/agent/AreaChart.md +27 -2
- package/dist/agent/Article.md +26 -3
- package/dist/agent/AspectRatio.md +57 -0
- package/dist/agent/Avatar.md +25 -5
- package/dist/agent/Badge.md +22 -1
- package/dist/agent/BarChart.md +29 -2
- package/dist/agent/BarList.md +27 -1
- package/dist/agent/BigNumber.md +26 -2
- package/dist/agent/BoxPlot.md +24 -1
- package/dist/agent/Breadcrumb.md +24 -2
- package/dist/agent/BulletChart.md +23 -1
- package/dist/agent/Button.md +25 -1
- package/dist/agent/Calendar.md +37 -3
- package/dist/agent/Card.md +24 -2
- package/dist/agent/Checkbox.md +23 -2
- package/dist/agent/Code.md +50 -0
- package/dist/agent/CodeBlock.md +74 -0
- package/dist/agent/Collapsible.md +22 -1
- package/dist/agent/Combobox.md +29 -3
- package/dist/agent/Command.md +25 -2
- package/dist/agent/ComposedChart.md +26 -2
- package/dist/agent/ContextMenu.md +37 -4
- package/dist/agent/DataflowFigure.md +22 -1
- package/dist/agent/DatePicker.md +34 -6
- package/dist/agent/DescriptionList.md +68 -0
- package/dist/agent/Diagram.md +27 -3
- package/dist/agent/DiagramCanvas.md +24 -1
- package/dist/agent/DiagramExportMenu.md +29 -3
- package/dist/agent/DiagramInspector.md +23 -1
- package/dist/agent/DiagramLegend.md +22 -1
- package/dist/agent/DiagramMinimap.md +24 -4
- package/dist/agent/DiagramToolbar.md +23 -1
- package/dist/agent/Dialog.md +26 -3
- package/dist/agent/DropdownMenu.md +45 -6
- package/dist/agent/EmptyState.md +26 -1
- package/dist/agent/ErrorState.md +27 -2
- package/dist/agent/Facet.md +25 -1
- package/dist/agent/Field.md +45 -4
- package/dist/agent/FigureBand.md +24 -1
- package/dist/agent/FloatingIconButton.md +23 -1
- package/dist/agent/FunnelChart.md +23 -1
- package/dist/agent/Heading.md +64 -0
- package/dist/agent/Heatmap.md +25 -1
- package/dist/agent/Histogram.md +26 -2
- package/dist/agent/Input.md +22 -1
- package/dist/agent/Kbd.md +19 -1
- package/dist/agent/LifecycleFigure.md +22 -1
- package/dist/agent/LineChart.md +26 -2
- package/dist/agent/LinkArrow.md +20 -1
- package/dist/agent/Markdown.md +68 -0
- package/dist/agent/NativeSelect.md +23 -2
- package/dist/agent/NavItem.md +21 -1
- package/dist/agent/Pagination.md +28 -2
- package/dist/agent/PieChart.md +26 -2
- package/dist/agent/Popover.md +23 -1
- package/dist/agent/Progress.md +27 -3
- package/dist/agent/RadarChart.md +26 -2
- package/dist/agent/RadialChart.md +26 -3
- package/dist/agent/RadioGroup.md +23 -2
- package/dist/agent/SankeyChart.md +25 -2
- package/dist/agent/ScatterChart.md +27 -2
- package/dist/agent/ScrollArea.md +24 -3
- package/dist/agent/SearchableMenu.md +23 -1
- package/dist/agent/Select.md +29 -3
- package/dist/agent/Separator.md +28 -4
- package/dist/agent/SequenceFigure.md +23 -1
- package/dist/agent/Sheet.md +25 -2
- package/dist/agent/Skeleton.md +24 -2
- package/dist/agent/Slider.md +27 -4
- package/dist/agent/Sparkline.md +23 -1
- package/dist/agent/Spinner.md +24 -2
- package/dist/agent/StatusDot.md +20 -1
- package/dist/agent/StatusPill.md +28 -2
- package/dist/agent/Steps.md +24 -1
- package/dist/agent/Switch.md +21 -1
- package/dist/agent/Table.md +26 -3
- package/dist/agent/Tabs.md +24 -2
- package/dist/agent/Tag.md +40 -9
- package/dist/agent/Text.md +65 -0
- package/dist/agent/Textarea.md +20 -1
- package/dist/agent/Timestamp.md +64 -0
- package/dist/agent/Toast.md +26 -2
- package/dist/agent/ToggleGroup.md +24 -2
- package/dist/agent/Toolbar.md +71 -0
- package/dist/agent/Tooltip.md +23 -1
- package/dist/agent/TreemapChart.md +24 -1
- package/dist/agent/WaterfallChart.md +24 -1
- package/dist/agent/WorkflowFigure.md +24 -2
- package/dist/agent/catalog.json +5602 -745
- package/dist/agent/index.md +13 -4
- package/dist/article.css +16 -4
- package/dist/charts/AreaChart/AreaChart.d.ts +9 -2
- package/dist/charts/AreaChart/AreaChart.js +12 -13
- package/dist/charts/AreaChart/AreaChart.js.map +1 -1
- package/dist/charts/BarChart/BarChart.d.ts +14 -3
- package/dist/charts/BarChart/BarChart.js +20 -12
- package/dist/charts/BarChart/BarChart.js.map +1 -1
- package/dist/charts/BarList/BarList.d.ts +9 -1
- package/dist/charts/BarList/BarList.js +9 -1
- package/dist/charts/BarList/BarList.js.map +1 -1
- package/dist/charts/BigNumber/BigNumber.d.ts +19 -3
- package/dist/charts/BigNumber/BigNumber.js +25 -5
- package/dist/charts/BigNumber/BigNumber.js.map +1 -1
- package/dist/charts/BoxPlot/BoxPlot.js +4 -2
- package/dist/charts/BoxPlot/BoxPlot.js.map +1 -1
- package/dist/charts/BulletChart/BulletChart.js +28 -7
- package/dist/charts/BulletChart/BulletChart.js.map +1 -1
- package/dist/charts/ComposedChart/ComposedChart.d.ts +9 -2
- package/dist/charts/ComposedChart/ComposedChart.js +10 -10
- package/dist/charts/ComposedChart/ComposedChart.js.map +1 -1
- package/dist/charts/FunnelChart/FunnelChart.d.ts +7 -2
- package/dist/charts/FunnelChart/FunnelChart.js +6 -16
- package/dist/charts/FunnelChart/FunnelChart.js.map +1 -1
- package/dist/charts/Heatmap/Heatmap.d.ts +17 -3
- package/dist/charts/Heatmap/Heatmap.js +20 -11
- package/dist/charts/Heatmap/Heatmap.js.map +1 -1
- package/dist/charts/Histogram/Histogram.d.ts +24 -1
- package/dist/charts/Histogram/Histogram.js +43 -11
- package/dist/charts/Histogram/Histogram.js.map +1 -1
- package/dist/charts/LineChart/LineChart.d.ts +9 -2
- package/dist/charts/LineChart/LineChart.js +11 -12
- package/dist/charts/LineChart/LineChart.js.map +1 -1
- package/dist/charts/PieChart/PieChart.d.ts +15 -3
- package/dist/charts/PieChart/PieChart.js +14 -6
- package/dist/charts/PieChart/PieChart.js.map +1 -1
- package/dist/charts/RadarChart/RadarChart.d.ts +15 -3
- package/dist/charts/RadarChart/RadarChart.js +11 -9
- package/dist/charts/RadarChart/RadarChart.js.map +1 -1
- package/dist/charts/RadialChart/RadialChart.d.ts +22 -4
- package/dist/charts/RadialChart/RadialChart.js +28 -6
- package/dist/charts/RadialChart/RadialChart.js.map +1 -1
- package/dist/charts/SankeyChart/SankeyChart.d.ts +16 -4
- package/dist/charts/SankeyChart/SankeyChart.js +14 -6
- package/dist/charts/SankeyChart/SankeyChart.js.map +1 -1
- package/dist/charts/ScatterChart/ScatterChart.d.ts +24 -3
- package/dist/charts/ScatterChart/ScatterChart.js +21 -15
- package/dist/charts/ScatterChart/ScatterChart.js.map +1 -1
- package/dist/charts/Sparkline/Sparkline.js +5 -3
- package/dist/charts/Sparkline/Sparkline.js.map +1 -1
- package/dist/charts/TreemapChart/TreemapChart.d.ts +7 -2
- package/dist/charts/TreemapChart/TreemapChart.js +20 -11
- package/dist/charts/TreemapChart/TreemapChart.js.map +1 -1
- package/dist/charts/WaterfallChart/WaterfallChart.js +4 -2
- package/dist/charts/WaterfallChart/WaterfallChart.js.map +1 -1
- package/dist/charts/lib/export.d.ts +1 -0
- package/dist/charts/lib/figure.d.ts +21 -1
- package/dist/charts/lib/figure.js +5 -2
- package/dist/charts/lib/figure.js.map +1 -1
- package/dist/charts/lib/scale.d.ts +23 -0
- package/dist/charts/lib/scale.js +13 -0
- package/dist/charts/lib/scale.js.map +1 -0
- package/dist/charts/lib/selection.d.ts +20 -0
- package/dist/charts/lib/selection.js +18 -0
- package/dist/charts/lib/selection.js.map +1 -0
- package/dist/charts/lib/toolbar.d.ts +1 -0
- package/dist/components/Accordion/Accordion.js +8 -1
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/AppShell/AppShell.d.ts +6 -0
- package/dist/components/AppShell/AppShell.js +34 -4
- package/dist/components/AppShell/AppShell.js.map +1 -1
- package/dist/components/Article/Article.d.ts +11 -4
- package/dist/components/Article/Article.js +13 -0
- package/dist/components/Article/Article.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.d.ts +46 -0
- package/dist/components/AspectRatio/AspectRatio.js +33 -0
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +12 -3
- package/dist/components/Avatar/Avatar.js +6 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +6 -0
- package/dist/components/Breadcrumb/Breadcrumb.js +15 -0
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/Button/Button.js +14 -0
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +29 -3
- package/dist/components/Calendar/Calendar.js +60 -12
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/Card/Card.d.ts +6 -0
- package/dist/components/Card/Card.js +1 -1
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +5 -2
- package/dist/components/Checkbox/Checkbox.js +12 -2
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Code/Code.d.ts +30 -0
- package/dist/components/Code/Code.js +21 -0
- package/dist/components/Code/Code.js.map +1 -0
- package/dist/components/CodeBlock/CodeBlock.d.ts +141 -0
- package/dist/components/CodeBlock/CodeBlock.js +123 -0
- package/dist/components/CodeBlock/CodeBlock.js.map +1 -0
- package/dist/components/Collapsible/Collapsible.js +10 -2
- package/dist/components/Collapsible/Collapsible.js.map +1 -1
- package/dist/components/Combobox/Combobox.d.ts +15 -1
- package/dist/components/Combobox/Combobox.js +25 -5
- package/dist/components/Combobox/Combobox.js.map +1 -1
- package/dist/components/Command/Command.d.ts +4 -2
- package/dist/components/Command/Command.js +13 -1
- package/dist/components/Command/Command.js.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.d.ts +30 -5
- package/dist/components/ContextMenu/ContextMenu.js +32 -2
- package/dist/components/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +36 -4
- package/dist/components/DatePicker/DatePicker.js +55 -12
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DescriptionList/DescriptionList.d.ts +73 -0
- package/dist/components/DescriptionList/DescriptionList.js +35 -0
- package/dist/components/DescriptionList/DescriptionList.js.map +1 -0
- package/dist/components/Diagram/Diagram.d.ts +8 -3
- package/dist/components/Diagram/Diagram.js +82 -10
- package/dist/components/Diagram/Diagram.js.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts +18 -3
- package/dist/components/Dialog/Dialog.js +20 -2
- package/dist/components/Dialog/Dialog.js.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +49 -11
- package/dist/components/DropdownMenu/DropdownMenu.js +32 -2
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/components/EmptyState/EmptyState.d.ts +25 -1
- package/dist/components/EmptyState/EmptyState.js +3 -1
- package/dist/components/EmptyState/EmptyState.js.map +1 -1
- package/dist/components/ErrorState/ErrorState.d.ts +22 -1
- package/dist/components/ErrorState/ErrorState.js +11 -2
- package/dist/components/ErrorState/ErrorState.js.map +1 -1
- package/dist/components/Field/Field.d.ts +70 -3
- package/dist/components/Field/Field.js +53 -12
- package/dist/components/Field/Field.js.map +1 -1
- package/dist/components/Field/field-control.d.ts +31 -0
- package/dist/components/Field/field-control.js +12 -0
- package/dist/components/Field/field-control.js.map +1 -0
- package/dist/components/FloatingIconButton/FloatingIconButton.js +2 -0
- package/dist/components/FloatingIconButton/FloatingIconButton.js.map +1 -1
- package/dist/components/Heading/Heading.d.ts +62 -0
- package/dist/components/Heading/Heading.js +44 -0
- package/dist/components/Heading/Heading.js.map +1 -0
- package/dist/components/Markdown/Markdown.d.ts +139 -0
- package/dist/components/Markdown/Markdown.js +135 -0
- package/dist/components/Markdown/Markdown.js.map +1 -0
- package/dist/components/Markdown/inline.d.ts +29 -0
- package/dist/components/Markdown/inline.js +74 -0
- package/dist/components/Markdown/inline.js.map +1 -0
- package/dist/components/Markdown/nodes.d.ts +65 -0
- package/dist/components/Markdown/nodes.js +1 -0
- package/dist/components/Markdown/nodes.js.map +1 -0
- package/dist/components/Markdown/parse.d.ts +24 -0
- package/dist/components/Markdown/parse.js +110 -0
- package/dist/components/Markdown/parse.js.map +1 -0
- package/dist/components/Markdown/slug.d.ts +15 -0
- package/dist/components/Markdown/slug.js +7 -0
- package/dist/components/Markdown/slug.js.map +1 -0
- package/dist/components/NativeSelect/NativeSelect.d.ts +6 -0
- package/dist/components/NativeSelect/NativeSelect.js +2 -3
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/Pagination/Pagination.d.ts +24 -1
- package/dist/components/Pagination/Pagination.js +6 -3
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Progress/Progress.d.ts +17 -5
- package/dist/components/Progress/Progress.js +18 -6
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +6 -0
- package/dist/components/RadioGroup/RadioGroup.js +11 -1
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.d.ts +15 -0
- package/dist/components/ScrollArea/ScrollArea.js +2 -2
- package/dist/components/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/components/SearchableMenu/SearchableMenu.d.ts +11 -2
- package/dist/components/SearchableMenu/SearchableMenu.js +24 -2
- package/dist/components/SearchableMenu/SearchableMenu.js.map +1 -1
- package/dist/components/Select/Select.d.ts +18 -2
- package/dist/components/Select/Select.js +20 -3
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Separator/Separator.d.ts +21 -3
- package/dist/components/Separator/Separator.js +9 -1
- package/dist/components/Separator/Separator.js.map +1 -1
- package/dist/components/Sheet/Sheet.d.ts +3 -0
- package/dist/components/Sheet/Sheet.js +11 -2
- package/dist/components/Sheet/Sheet.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +8 -1
- package/dist/components/Skeleton/Skeleton.js +1 -1
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Slider/Slider.d.ts +21 -3
- package/dist/components/Slider/Slider.js +54 -27
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts +8 -0
- package/dist/components/Spinner/Spinner.js +3 -2
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/StatusPill/StatusPill.d.ts +5 -0
- package/dist/components/StatusPill/StatusPill.js +6 -0
- package/dist/components/StatusPill/StatusPill.js.map +1 -1
- package/dist/components/Table/Table.d.ts +6 -0
- package/dist/components/Table/Table.js +3 -1
- package/dist/components/Table/Table.js.map +1 -1
- package/dist/components/Tag/Tag.d.ts +68 -9
- package/dist/components/Tag/Tag.js +50 -10
- package/dist/components/Tag/Tag.js.map +1 -1
- package/dist/components/Text/Text.d.ts +62 -0
- package/dist/components/Text/Text.js +30 -0
- package/dist/components/Text/Text.js.map +1 -0
- package/dist/components/Timestamp/Timestamp.d.ts +59 -0
- package/dist/components/Timestamp/Timestamp.js +56 -0
- package/dist/components/Timestamp/Timestamp.js.map +1 -0
- package/dist/components/Toast/Toast.d.ts +9 -1
- package/dist/components/Toast/Toast.js +27 -4
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.d.ts +6 -1
- package/dist/components/ToggleGroup/ToggleGroup.js +11 -1
- package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
- package/dist/components/Toolbar/Toolbar.d.ts +55 -0
- package/dist/components/Toolbar/Toolbar.js +43 -0
- package/dist/components/Toolbar/Toolbar.js.map +1 -0
- package/dist/diagrams/ArchitectureFigure/ArchitectureFigure.d.ts +6 -0
- package/dist/diagrams/ArchitectureFigure/ArchitectureFigure.js +48 -8
- package/dist/diagrams/ArchitectureFigure/ArchitectureFigure.js.map +1 -1
- package/dist/diagrams/DataflowFigure/DataflowFigure.js +21 -2
- package/dist/diagrams/DataflowFigure/DataflowFigure.js.map +1 -1
- package/dist/diagrams/DiagramCanvas/DiagramCanvas.d.ts +14 -0
- package/dist/diagrams/DiagramCanvas/DiagramCanvas.js +14 -7
- package/dist/diagrams/DiagramCanvas/DiagramCanvas.js.map +1 -1
- package/dist/diagrams/DiagramExportMenu/DiagramExportMenu.d.ts +38 -4
- package/dist/diagrams/DiagramExportMenu/DiagramExportMenu.js +14 -16
- package/dist/diagrams/DiagramExportMenu/DiagramExportMenu.js.map +1 -1
- package/dist/diagrams/DiagramInspector/DiagramInspector.js +2 -2
- package/dist/diagrams/DiagramInspector/DiagramInspector.js.map +1 -1
- package/dist/diagrams/DiagramMinimap/DiagramMinimap.d.ts +23 -7
- package/dist/diagrams/DiagramMinimap/DiagramMinimap.js +45 -18
- package/dist/diagrams/DiagramMinimap/DiagramMinimap.js.map +1 -1
- package/dist/diagrams/LifecycleFigure/LifecycleFigure.js +44 -12
- package/dist/diagrams/LifecycleFigure/LifecycleFigure.js.map +1 -1
- package/dist/diagrams/SequenceFigure/SequenceFigure.js +35 -5
- package/dist/diagrams/SequenceFigure/SequenceFigure.js.map +1 -1
- package/dist/diagrams/WorkflowFigure/WorkflowFigure.d.ts +3 -1
- package/dist/diagrams/WorkflowFigure/WorkflowFigure.js +76 -28
- package/dist/diagrams/WorkflowFigure/WorkflowFigure.js.map +1 -1
- package/dist/diagrams/index.d.ts +1 -0
- package/dist/diagrams/index.js +10 -0
- package/dist/diagrams/index.js.map +1 -1
- package/dist/diagrams/lib/dev.d.ts +61 -0
- package/dist/diagrams/lib/dev.js +96 -0
- package/dist/diagrams/lib/dev.js.map +1 -0
- package/dist/diagrams/lib/frame.d.ts +48 -7
- package/dist/diagrams/lib/frame.js +17 -2
- package/dist/diagrams/lib/frame.js.map +1 -1
- package/dist/diagrams/lib/wires.js.map +1 -1
- package/dist/diagrams/spec.d.ts +64 -12
- package/dist/index.d.ts +16 -4
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/keyframes.css +57 -3
- package/dist/lib/overlay-container.d.ts +14 -4
- package/dist/lib/overlay-container.js.map +1 -1
- package/dist/lib/warn.d.ts +73 -0
- package/dist/lib/warn.js +38 -0
- package/dist/lib/warn.js.map +1 -0
- package/dist/semantic.css +17 -6
- package/dist/styles.css +1 -1
- package/dist/tokens.css +20 -2
- package/dist/tokens.d.ts +1 -1
- package/dist/tokens.js +39 -36
- package/dist/tokens.json +39 -36
- package/llms.txt +35 -0
- package/package.json +5 -2
- package/skills/misoto22-design/evals/evals.json +84 -0
- package/skills/misoto22-design/rules/a11y.md +55 -3
- package/skills/misoto22-design/rules/forms.md +5 -0
package/dist/tokens.js
CHANGED
|
@@ -297,37 +297,37 @@ export const TOKENS = {
|
|
|
297
297
|
"fs-title": {
|
|
298
298
|
"layer": "tokens",
|
|
299
299
|
"category": "type",
|
|
300
|
-
"light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)"
|
|
300
|
+
"light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)",
|
|
301
|
+
"comment": "page h1 40 → 54px"
|
|
301
302
|
},
|
|
302
303
|
"fs-lead": {
|
|
303
304
|
"layer": "tokens",
|
|
304
305
|
"category": "type",
|
|
305
306
|
"light": "clamp(1.875rem, calc(3 * var(--fluid)), 2.625rem)",
|
|
306
|
-
"comment": "
|
|
307
|
+
"comment": "band heading 30 → 42px"
|
|
307
308
|
},
|
|
308
309
|
"fs-heading": {
|
|
309
310
|
"layer": "tokens",
|
|
310
311
|
"category": "type",
|
|
311
312
|
"light": "clamp(1.5rem, calc(2.1 * var(--fluid)), 1.8125rem)",
|
|
312
|
-
"comment": "
|
|
313
|
+
"comment": "record title 24 → 29px"
|
|
313
314
|
},
|
|
314
315
|
"fs-sub": {
|
|
315
316
|
"layer": "tokens",
|
|
316
317
|
"category": "type",
|
|
317
318
|
"light": "clamp(1.3125rem, calc(1.7 * var(--fluid)), 1.5625rem)",
|
|
318
|
-
"comment": "
|
|
319
|
+
"comment": "card sub-head 21 → 25px"
|
|
319
320
|
},
|
|
320
321
|
"fs-item": {
|
|
321
322
|
"layer": "tokens",
|
|
322
323
|
"category": "type",
|
|
323
324
|
"light": "clamp(1.125rem, calc(1.35 * var(--fluid)), 1.25rem)",
|
|
324
|
-
"comment": "card
|
|
325
|
+
"comment": "in-card title 18 → 20px"
|
|
325
326
|
},
|
|
326
327
|
"pad": {
|
|
327
328
|
"layer": "tokens",
|
|
328
329
|
"category": "space",
|
|
329
|
-
"light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)"
|
|
330
|
-
"comment": "in-card title 18 → 20px"
|
|
330
|
+
"light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)"
|
|
331
331
|
},
|
|
332
332
|
"sec": {
|
|
333
333
|
"layer": "tokens",
|
|
@@ -354,111 +354,114 @@ export const TOKENS = {
|
|
|
354
354
|
"layer": "tokens",
|
|
355
355
|
"category": "radius",
|
|
356
356
|
"light": "calc(4px * var(--radius-factor))",
|
|
357
|
-
"comment": "
|
|
357
|
+
"comment": "a mark inside a tight box"
|
|
358
358
|
},
|
|
359
359
|
"radius-sm": {
|
|
360
360
|
"layer": "tokens",
|
|
361
361
|
"category": "radius",
|
|
362
362
|
"light": "calc(6px * var(--radius-factor))",
|
|
363
|
-
"comment": "
|
|
363
|
+
"comment": "chips, keys, list rows"
|
|
364
364
|
},
|
|
365
365
|
"radius": {
|
|
366
366
|
"layer": "tokens",
|
|
367
367
|
"category": "radius",
|
|
368
368
|
"light": "calc(8px * var(--radius-factor))",
|
|
369
|
-
"comment": "
|
|
369
|
+
"comment": "inputs, code, small plates"
|
|
370
370
|
},
|
|
371
371
|
"radius-lg": {
|
|
372
372
|
"layer": "tokens",
|
|
373
373
|
"category": "radius",
|
|
374
374
|
"light": "calc(12px * var(--radius-factor))",
|
|
375
|
-
"comment": "
|
|
375
|
+
"comment": "cards, dialogs, menu panels"
|
|
376
376
|
},
|
|
377
377
|
"radius-pill": {
|
|
378
378
|
"layer": "tokens",
|
|
379
379
|
"category": "radius",
|
|
380
380
|
"light": "calc(999px * var(--radius-factor))",
|
|
381
|
-
"comment": "
|
|
381
|
+
"comment": "capsules and counters"
|
|
382
382
|
},
|
|
383
383
|
"radius-row": {
|
|
384
384
|
"layer": "tokens",
|
|
385
385
|
"category": "radius",
|
|
386
386
|
"light": "max(0px, calc(var(--radius-lg) - 0.375rem))",
|
|
387
|
-
"comment": "
|
|
387
|
+
"comment": "a row in a 6px-padded panel"
|
|
388
388
|
},
|
|
389
389
|
"radius-frame": {
|
|
390
390
|
"layer": "tokens",
|
|
391
391
|
"category": "radius",
|
|
392
392
|
"light": "calc(var(--radius-lg) + 1rem * var(--radius-gate))",
|
|
393
|
-
"comment": "a
|
|
393
|
+
"comment": "a frame 16px outside a panel"
|
|
394
394
|
},
|
|
395
395
|
"control-h-sm": {
|
|
396
396
|
"layer": "tokens",
|
|
397
397
|
"category": "density",
|
|
398
|
-
"light": "
|
|
398
|
+
"light": "2.25rem",
|
|
399
|
+
"comment": "36px"
|
|
399
400
|
},
|
|
400
401
|
"control-h-md": {
|
|
401
402
|
"layer": "tokens",
|
|
402
403
|
"category": "density",
|
|
403
|
-
"light": "2.
|
|
404
|
-
"comment": "
|
|
404
|
+
"light": "2.75rem",
|
|
405
|
+
"comment": "44px — WCAG 2.5.5"
|
|
405
406
|
},
|
|
406
407
|
"control-h-lg": {
|
|
407
408
|
"layer": "tokens",
|
|
408
409
|
"category": "density",
|
|
409
|
-
"light": "
|
|
410
|
-
"comment": "
|
|
410
|
+
"light": "3rem",
|
|
411
|
+
"comment": "48px"
|
|
411
412
|
},
|
|
412
413
|
"control-px-sm": {
|
|
413
414
|
"layer": "tokens",
|
|
414
415
|
"category": "density",
|
|
415
|
-
"light": "
|
|
416
|
-
"comment": "40px"
|
|
416
|
+
"light": "1rem"
|
|
417
417
|
},
|
|
418
418
|
"control-px-md": {
|
|
419
419
|
"layer": "tokens",
|
|
420
420
|
"category": "density",
|
|
421
|
-
"light": "
|
|
421
|
+
"light": "1.5rem"
|
|
422
422
|
},
|
|
423
423
|
"control-px-lg": {
|
|
424
424
|
"layer": "tokens",
|
|
425
425
|
"category": "density",
|
|
426
|
-
"light": "1.
|
|
426
|
+
"light": "1.75rem"
|
|
427
427
|
},
|
|
428
428
|
"control-py-sm": {
|
|
429
429
|
"layer": "tokens",
|
|
430
430
|
"category": "density",
|
|
431
|
-
"light": "0.
|
|
431
|
+
"light": "0.5rem",
|
|
432
|
+
"comment": "The vertical padding is part of the axis too, and has to be: a control whose padding alone exceeds the compact height never shrinks, because `min-height` is a floor and not a ceiling."
|
|
432
433
|
},
|
|
433
434
|
"control-py-md": {
|
|
434
435
|
"layer": "tokens",
|
|
435
436
|
"category": "density",
|
|
436
|
-
"light": "0.
|
|
437
|
+
"light": "0.75rem"
|
|
437
438
|
},
|
|
438
439
|
"control-py-lg": {
|
|
439
440
|
"layer": "tokens",
|
|
440
441
|
"category": "density",
|
|
441
|
-
"light": "0.
|
|
442
|
+
"light": "0.75rem"
|
|
442
443
|
},
|
|
443
444
|
"control-gap": {
|
|
444
445
|
"layer": "tokens",
|
|
445
446
|
"category": "density",
|
|
446
|
-
"light": "0.
|
|
447
|
+
"light": "0.625rem"
|
|
447
448
|
},
|
|
448
449
|
"field-px": {
|
|
449
450
|
"layer": "tokens",
|
|
450
451
|
"category": "density",
|
|
451
|
-
"light": "0.
|
|
452
|
+
"light": "0.875rem",
|
|
453
|
+
"comment": "Text inputs are measured separately: they are read as much as they are hit, so their padding tracks the type rather than the target."
|
|
452
454
|
},
|
|
453
455
|
"field-py": {
|
|
454
456
|
"layer": "tokens",
|
|
455
457
|
"category": "density",
|
|
456
|
-
"light": "0.
|
|
458
|
+
"light": "0.625rem"
|
|
457
459
|
},
|
|
458
460
|
"table-pad-y": {
|
|
459
461
|
"layer": "tokens",
|
|
460
462
|
"category": "other",
|
|
461
|
-
"light": "0.
|
|
463
|
+
"light": "0.875rem",
|
|
464
|
+
"comment": "A table's own row padding. Separate from the control scale because a table row is neither a control nor a field — it is a line of text with a rule under it, and it tightens on its own axis."
|
|
462
465
|
},
|
|
463
466
|
"table-pad-x": {
|
|
464
467
|
"layer": "tokens",
|
|
@@ -507,7 +510,7 @@ export const TOKENS = {
|
|
|
507
510
|
"layer": "tokens",
|
|
508
511
|
"category": "layer",
|
|
509
512
|
"light": "1",
|
|
510
|
-
"comment": "─── Stacking ─── seven ranks, named for what sits at each."
|
|
513
|
+
"comment": "─── Stacking ─── seven ranks, named for what sits at each. Every overlay in the package portals to document.body, so all of them are siblings in the ROOT stacking context and the rank is the whole of the decision — there is no ancestor left to nest one inside another. Read it as a sentence: a sticky header clears the page, a drawer clears the header, a scrim covers both, a modal sits on its scrim, an ANCHORED panel clears the modal it was opened from, and a toast clears everything because it is the only rank that has to survive a modal asking a question. --z-anchored is the one that is not obvious, and it is the one that was wrong. A popover, a menu or a select listbox is opened FROM something, and the surface it is most often opened from is a modal — a select inside a modal form is one of the most ordinary shapes in an application. Ranked below the modal, as it was, the panel is painted behind the very dialog that summoned it. The rank it replaced, --z-palette, was read by nothing: a command palette is a Dialog, so it lands at --z-modal, and its order against a second modal is settled by document order — which is the right answer, because it moves a scrim and its panel together."
|
|
511
514
|
},
|
|
512
515
|
"z-sticky": {
|
|
513
516
|
"layer": "tokens",
|
|
@@ -529,7 +532,7 @@ export const TOKENS = {
|
|
|
529
532
|
"category": "layer",
|
|
530
533
|
"light": "210"
|
|
531
534
|
},
|
|
532
|
-
"z-
|
|
535
|
+
"z-anchored": {
|
|
533
536
|
"layer": "tokens",
|
|
534
537
|
"category": "layer",
|
|
535
538
|
"light": "220"
|
|
@@ -800,7 +803,7 @@ export const TOKENS = {
|
|
|
800
803
|
"layer": "semantic",
|
|
801
804
|
"category": "depth",
|
|
802
805
|
"light": "transparent",
|
|
803
|
-
"comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have.
|
|
806
|
+
"comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have. --lift below is the sanctioned offset idiom for anything that must read as raised."
|
|
804
807
|
},
|
|
805
808
|
"shadow-sm": {
|
|
806
809
|
"layer": "semantic",
|
|
@@ -821,7 +824,7 @@ export const TOKENS = {
|
|
|
821
824
|
"layer": "semantic",
|
|
822
825
|
"category": "depth",
|
|
823
826
|
"light": "3px 3px 0 0 var(--shadow-offset)",
|
|
824
|
-
"comment": "The one depth cue the system does have: a hard 3px ink offset, no blur.
|
|
827
|
+
"comment": "The one depth cue the system does have: a hard 3px ink offset, no blur, in the accent rather than a grey because --shadow-offset points at --clay. PUBLISHED, NOT CONSUMED. No component in this package sets either one — there is not a single shadow-(--lift) in src/. What the library actually separates with is a hairline, a change of ground, and the reversal that Card variant=\"plate\" reaches for. These two exist so a consumer building a raised plate of their own has the system's answer instead of inventing a blur; do not read them as describing what the library does."
|
|
825
828
|
},
|
|
826
829
|
"lift-sm": {
|
|
827
830
|
"layer": "semantic",
|
|
@@ -872,8 +875,8 @@ export const TOKENS = {
|
|
|
872
875
|
"z-dropdown": {
|
|
873
876
|
"layer": "semantic",
|
|
874
877
|
"category": "layer",
|
|
875
|
-
"light": "var(--z-
|
|
876
|
-
"comment": "─── Stacking ───
|
|
878
|
+
"light": "var(--z-anchored)",
|
|
879
|
+
"comment": "─── Stacking ─── two component-facing names onto the seven ranks. ────── The other five ranks are read by their own names; only these two had a component-facing spelling that outlived the rank it pointed at. --z-dropdown pointed at --z-drawer, 100, which put every anchored panel under the modal at 210 that opened it."
|
|
877
880
|
},
|
|
878
881
|
"z-overlay": {
|
|
879
882
|
"layer": "semantic",
|
package/dist/tokens.json
CHANGED
|
@@ -296,37 +296,37 @@
|
|
|
296
296
|
"fs-title": {
|
|
297
297
|
"layer": "tokens",
|
|
298
298
|
"category": "type",
|
|
299
|
-
"light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)"
|
|
299
|
+
"light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)",
|
|
300
|
+
"comment": "page h1 40 → 54px"
|
|
300
301
|
},
|
|
301
302
|
"fs-lead": {
|
|
302
303
|
"layer": "tokens",
|
|
303
304
|
"category": "type",
|
|
304
305
|
"light": "clamp(1.875rem, calc(3 * var(--fluid)), 2.625rem)",
|
|
305
|
-
"comment": "
|
|
306
|
+
"comment": "band heading 30 → 42px"
|
|
306
307
|
},
|
|
307
308
|
"fs-heading": {
|
|
308
309
|
"layer": "tokens",
|
|
309
310
|
"category": "type",
|
|
310
311
|
"light": "clamp(1.5rem, calc(2.1 * var(--fluid)), 1.8125rem)",
|
|
311
|
-
"comment": "
|
|
312
|
+
"comment": "record title 24 → 29px"
|
|
312
313
|
},
|
|
313
314
|
"fs-sub": {
|
|
314
315
|
"layer": "tokens",
|
|
315
316
|
"category": "type",
|
|
316
317
|
"light": "clamp(1.3125rem, calc(1.7 * var(--fluid)), 1.5625rem)",
|
|
317
|
-
"comment": "
|
|
318
|
+
"comment": "card sub-head 21 → 25px"
|
|
318
319
|
},
|
|
319
320
|
"fs-item": {
|
|
320
321
|
"layer": "tokens",
|
|
321
322
|
"category": "type",
|
|
322
323
|
"light": "clamp(1.125rem, calc(1.35 * var(--fluid)), 1.25rem)",
|
|
323
|
-
"comment": "card
|
|
324
|
+
"comment": "in-card title 18 → 20px"
|
|
324
325
|
},
|
|
325
326
|
"pad": {
|
|
326
327
|
"layer": "tokens",
|
|
327
328
|
"category": "space",
|
|
328
|
-
"light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)"
|
|
329
|
-
"comment": "in-card title 18 → 20px"
|
|
329
|
+
"light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)"
|
|
330
330
|
},
|
|
331
331
|
"sec": {
|
|
332
332
|
"layer": "tokens",
|
|
@@ -353,111 +353,114 @@
|
|
|
353
353
|
"layer": "tokens",
|
|
354
354
|
"category": "radius",
|
|
355
355
|
"light": "calc(4px * var(--radius-factor))",
|
|
356
|
-
"comment": "
|
|
356
|
+
"comment": "a mark inside a tight box"
|
|
357
357
|
},
|
|
358
358
|
"radius-sm": {
|
|
359
359
|
"layer": "tokens",
|
|
360
360
|
"category": "radius",
|
|
361
361
|
"light": "calc(6px * var(--radius-factor))",
|
|
362
|
-
"comment": "
|
|
362
|
+
"comment": "chips, keys, list rows"
|
|
363
363
|
},
|
|
364
364
|
"radius": {
|
|
365
365
|
"layer": "tokens",
|
|
366
366
|
"category": "radius",
|
|
367
367
|
"light": "calc(8px * var(--radius-factor))",
|
|
368
|
-
"comment": "
|
|
368
|
+
"comment": "inputs, code, small plates"
|
|
369
369
|
},
|
|
370
370
|
"radius-lg": {
|
|
371
371
|
"layer": "tokens",
|
|
372
372
|
"category": "radius",
|
|
373
373
|
"light": "calc(12px * var(--radius-factor))",
|
|
374
|
-
"comment": "
|
|
374
|
+
"comment": "cards, dialogs, menu panels"
|
|
375
375
|
},
|
|
376
376
|
"radius-pill": {
|
|
377
377
|
"layer": "tokens",
|
|
378
378
|
"category": "radius",
|
|
379
379
|
"light": "calc(999px * var(--radius-factor))",
|
|
380
|
-
"comment": "
|
|
380
|
+
"comment": "capsules and counters"
|
|
381
381
|
},
|
|
382
382
|
"radius-row": {
|
|
383
383
|
"layer": "tokens",
|
|
384
384
|
"category": "radius",
|
|
385
385
|
"light": "max(0px, calc(var(--radius-lg) - 0.375rem))",
|
|
386
|
-
"comment": "
|
|
386
|
+
"comment": "a row in a 6px-padded panel"
|
|
387
387
|
},
|
|
388
388
|
"radius-frame": {
|
|
389
389
|
"layer": "tokens",
|
|
390
390
|
"category": "radius",
|
|
391
391
|
"light": "calc(var(--radius-lg) + 1rem * var(--radius-gate))",
|
|
392
|
-
"comment": "a
|
|
392
|
+
"comment": "a frame 16px outside a panel"
|
|
393
393
|
},
|
|
394
394
|
"control-h-sm": {
|
|
395
395
|
"layer": "tokens",
|
|
396
396
|
"category": "density",
|
|
397
|
-
"light": "
|
|
397
|
+
"light": "2.25rem",
|
|
398
|
+
"comment": "36px"
|
|
398
399
|
},
|
|
399
400
|
"control-h-md": {
|
|
400
401
|
"layer": "tokens",
|
|
401
402
|
"category": "density",
|
|
402
|
-
"light": "2.
|
|
403
|
-
"comment": "
|
|
403
|
+
"light": "2.75rem",
|
|
404
|
+
"comment": "44px — WCAG 2.5.5"
|
|
404
405
|
},
|
|
405
406
|
"control-h-lg": {
|
|
406
407
|
"layer": "tokens",
|
|
407
408
|
"category": "density",
|
|
408
|
-
"light": "
|
|
409
|
-
"comment": "
|
|
409
|
+
"light": "3rem",
|
|
410
|
+
"comment": "48px"
|
|
410
411
|
},
|
|
411
412
|
"control-px-sm": {
|
|
412
413
|
"layer": "tokens",
|
|
413
414
|
"category": "density",
|
|
414
|
-
"light": "
|
|
415
|
-
"comment": "40px"
|
|
415
|
+
"light": "1rem"
|
|
416
416
|
},
|
|
417
417
|
"control-px-md": {
|
|
418
418
|
"layer": "tokens",
|
|
419
419
|
"category": "density",
|
|
420
|
-
"light": "
|
|
420
|
+
"light": "1.5rem"
|
|
421
421
|
},
|
|
422
422
|
"control-px-lg": {
|
|
423
423
|
"layer": "tokens",
|
|
424
424
|
"category": "density",
|
|
425
|
-
"light": "1.
|
|
425
|
+
"light": "1.75rem"
|
|
426
426
|
},
|
|
427
427
|
"control-py-sm": {
|
|
428
428
|
"layer": "tokens",
|
|
429
429
|
"category": "density",
|
|
430
|
-
"light": "0.
|
|
430
|
+
"light": "0.5rem",
|
|
431
|
+
"comment": "The vertical padding is part of the axis too, and has to be: a control whose padding alone exceeds the compact height never shrinks, because `min-height` is a floor and not a ceiling."
|
|
431
432
|
},
|
|
432
433
|
"control-py-md": {
|
|
433
434
|
"layer": "tokens",
|
|
434
435
|
"category": "density",
|
|
435
|
-
"light": "0.
|
|
436
|
+
"light": "0.75rem"
|
|
436
437
|
},
|
|
437
438
|
"control-py-lg": {
|
|
438
439
|
"layer": "tokens",
|
|
439
440
|
"category": "density",
|
|
440
|
-
"light": "0.
|
|
441
|
+
"light": "0.75rem"
|
|
441
442
|
},
|
|
442
443
|
"control-gap": {
|
|
443
444
|
"layer": "tokens",
|
|
444
445
|
"category": "density",
|
|
445
|
-
"light": "0.
|
|
446
|
+
"light": "0.625rem"
|
|
446
447
|
},
|
|
447
448
|
"field-px": {
|
|
448
449
|
"layer": "tokens",
|
|
449
450
|
"category": "density",
|
|
450
|
-
"light": "0.
|
|
451
|
+
"light": "0.875rem",
|
|
452
|
+
"comment": "Text inputs are measured separately: they are read as much as they are hit, so their padding tracks the type rather than the target."
|
|
451
453
|
},
|
|
452
454
|
"field-py": {
|
|
453
455
|
"layer": "tokens",
|
|
454
456
|
"category": "density",
|
|
455
|
-
"light": "0.
|
|
457
|
+
"light": "0.625rem"
|
|
456
458
|
},
|
|
457
459
|
"table-pad-y": {
|
|
458
460
|
"layer": "tokens",
|
|
459
461
|
"category": "other",
|
|
460
|
-
"light": "0.
|
|
462
|
+
"light": "0.875rem",
|
|
463
|
+
"comment": "A table's own row padding. Separate from the control scale because a table row is neither a control nor a field — it is a line of text with a rule under it, and it tightens on its own axis."
|
|
461
464
|
},
|
|
462
465
|
"table-pad-x": {
|
|
463
466
|
"layer": "tokens",
|
|
@@ -506,7 +509,7 @@
|
|
|
506
509
|
"layer": "tokens",
|
|
507
510
|
"category": "layer",
|
|
508
511
|
"light": "1",
|
|
509
|
-
"comment": "─── Stacking ─── seven ranks, named for what sits at each."
|
|
512
|
+
"comment": "─── Stacking ─── seven ranks, named for what sits at each. Every overlay in the package portals to document.body, so all of them are siblings in the ROOT stacking context and the rank is the whole of the decision — there is no ancestor left to nest one inside another. Read it as a sentence: a sticky header clears the page, a drawer clears the header, a scrim covers both, a modal sits on its scrim, an ANCHORED panel clears the modal it was opened from, and a toast clears everything because it is the only rank that has to survive a modal asking a question. --z-anchored is the one that is not obvious, and it is the one that was wrong. A popover, a menu or a select listbox is opened FROM something, and the surface it is most often opened from is a modal — a select inside a modal form is one of the most ordinary shapes in an application. Ranked below the modal, as it was, the panel is painted behind the very dialog that summoned it. The rank it replaced, --z-palette, was read by nothing: a command palette is a Dialog, so it lands at --z-modal, and its order against a second modal is settled by document order — which is the right answer, because it moves a scrim and its panel together."
|
|
510
513
|
},
|
|
511
514
|
"z-sticky": {
|
|
512
515
|
"layer": "tokens",
|
|
@@ -528,7 +531,7 @@
|
|
|
528
531
|
"category": "layer",
|
|
529
532
|
"light": "210"
|
|
530
533
|
},
|
|
531
|
-
"z-
|
|
534
|
+
"z-anchored": {
|
|
532
535
|
"layer": "tokens",
|
|
533
536
|
"category": "layer",
|
|
534
537
|
"light": "220"
|
|
@@ -799,7 +802,7 @@
|
|
|
799
802
|
"layer": "semantic",
|
|
800
803
|
"category": "depth",
|
|
801
804
|
"light": "transparent",
|
|
802
|
-
"comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have.
|
|
805
|
+
"comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have. --lift below is the sanctioned offset idiom for anything that must read as raised."
|
|
803
806
|
},
|
|
804
807
|
"shadow-sm": {
|
|
805
808
|
"layer": "semantic",
|
|
@@ -820,7 +823,7 @@
|
|
|
820
823
|
"layer": "semantic",
|
|
821
824
|
"category": "depth",
|
|
822
825
|
"light": "3px 3px 0 0 var(--shadow-offset)",
|
|
823
|
-
"comment": "The one depth cue the system does have: a hard 3px ink offset, no blur.
|
|
826
|
+
"comment": "The one depth cue the system does have: a hard 3px ink offset, no blur, in the accent rather than a grey because --shadow-offset points at --clay. PUBLISHED, NOT CONSUMED. No component in this package sets either one — there is not a single shadow-(--lift) in src/. What the library actually separates with is a hairline, a change of ground, and the reversal that Card variant=\"plate\" reaches for. These two exist so a consumer building a raised plate of their own has the system's answer instead of inventing a blur; do not read them as describing what the library does."
|
|
824
827
|
},
|
|
825
828
|
"lift-sm": {
|
|
826
829
|
"layer": "semantic",
|
|
@@ -871,8 +874,8 @@
|
|
|
871
874
|
"z-dropdown": {
|
|
872
875
|
"layer": "semantic",
|
|
873
876
|
"category": "layer",
|
|
874
|
-
"light": "var(--z-
|
|
875
|
-
"comment": "─── Stacking ───
|
|
877
|
+
"light": "var(--z-anchored)",
|
|
878
|
+
"comment": "─── Stacking ─── two component-facing names onto the seven ranks. ────── The other five ranks are read by their own names; only these two had a component-facing spelling that outlived the rank it pointed at. --z-dropdown pointed at --z-drawer, 100, which put every anchored panel under the modal at 210 that opened it."
|
|
876
879
|
},
|
|
877
880
|
"z-overlay": {
|
|
878
881
|
"layer": "semantic",
|
package/llms.txt
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# @misoto22/design
|
|
2
|
+
|
|
3
|
+
> A monochrome design system for software, writing and photography: portable CSS
|
|
4
|
+
> tokens and accessible React 19 primitives, charts and diagrams. Components ship
|
|
5
|
+
> compiled — import them, do not copy them.
|
|
6
|
+
|
|
7
|
+
This file is a stub on purpose. It carries no prop tables and no version, so it
|
|
8
|
+
cannot go stale between releases; everything it points at is generated from the
|
|
9
|
+
source in this same tarball at build time.
|
|
10
|
+
|
|
11
|
+
## In this package, offline
|
|
12
|
+
|
|
13
|
+
- [dist/agent/index.md](./dist/agent/index.md): every component, one line each, plus the theme axes read out of the stylesheets.
|
|
14
|
+
- [dist/agent/<Component>.md](./dist/agent/): one component in full — every prop with its type and default, the exported unions, the keyboard contract, the accessibility promises, the examples.
|
|
15
|
+
- [skills/misoto22-design/SKILL.md](./skills/misoto22-design/SKILL.md): the conventions an agent gets wrong from habit — the names that diverge from shadcn/ui, and colour that is never a raw class.
|
|
16
|
+
- [AGENTS.md](./AGENTS.md): the short version of this, plus what to know when working on the package itself.
|
|
17
|
+
|
|
18
|
+
Prefer the CLI over reading these by path — it resolves parts and types, not
|
|
19
|
+
just components:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx misoto22-design docs Button
|
|
23
|
+
npx misoto22-design docs --installed
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## On the web
|
|
27
|
+
|
|
28
|
+
- [https://ui.misoto22.com/llms.txt](https://ui.misoto22.com/llms.txt): the site's index.
|
|
29
|
+
- [https://ui.misoto22.com/llms-full.txt](https://ui.misoto22.com/llms-full.txt): every component inline, in one file.
|
|
30
|
+
- [https://ui.misoto22.com](https://ui.misoto22.com): the rendered documentation.
|
|
31
|
+
|
|
32
|
+
## Optional
|
|
33
|
+
|
|
34
|
+
- [README.md](./README.md): install, theming, and the same three commands for a human reader.
|
|
35
|
+
- [CHANGELOG.md](./CHANGELOG.md)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@misoto22/design",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Monochrome design system — CSS tokens and accessible React primitives",
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
"dist",
|
|
14
14
|
"skills",
|
|
15
15
|
"bin",
|
|
16
|
+
"AGENTS.md",
|
|
17
|
+
"CLAUDE.md",
|
|
18
|
+
"llms.txt",
|
|
16
19
|
"LICENSE",
|
|
17
20
|
"README.md"
|
|
18
21
|
],
|
|
@@ -143,7 +146,7 @@
|
|
|
143
146
|
},
|
|
144
147
|
"scripts": {
|
|
145
148
|
"build:fonts": "node scripts/vendor-fonts.mjs",
|
|
146
|
-
"build:js": "NODE_OPTIONS=--max-old-space-size=
|
|
149
|
+
"build:js": "NODE_OPTIONS=--max-old-space-size=8192 tsup",
|
|
147
150
|
"build:css": "tailwindcss -i ./src/styles/index.css -o ./dist/styles.css --minify && node scripts/copy-portable-css.mjs && node scripts/emit-tokens.mjs",
|
|
148
151
|
"build:agent": "node scripts/emit-agent.mjs",
|
|
149
152
|
"build": "pnpm run build:fonts && pnpm run build:js && pnpm run build:css && pnpm run build:agent",
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Prompts a real agent runs against this skill, and what its output has to show. This is the half `claims.json` cannot reach: that file proves the rules match the package, which is necessary and does not prove an agent given the rules writes correct code. Each `must_use` identifier is checked for existence by `skill.test.ts`, so an eval cannot quietly start expecting something the package no longer exports.",
|
|
3
|
+
"skill_name": "misoto22-design",
|
|
4
|
+
"evals": [
|
|
5
|
+
{
|
|
6
|
+
"id": 1,
|
|
7
|
+
"prompt": "Using @misoto22/design, build a settings form with fields for full name and email address, and show a validation error under email when it is invalid.",
|
|
8
|
+
"expected_output": "A React component using one Field per control, the error prop rather than a red border, and gap-* on the form.",
|
|
9
|
+
"must_use": ["Field", "Input", "Button"],
|
|
10
|
+
"must_not_contain": ["space-y-", "border-red", "text-red-", "<label", "aria-describedby="],
|
|
11
|
+
"expectations": [
|
|
12
|
+
"Wraps each control in its own Field with a label, not a hand-rolled <label> plus input plus error div",
|
|
13
|
+
"Puts the validation message in Field's error prop, which sets aria-invalid on the control for it",
|
|
14
|
+
"Does not also pass invalid on the Input inside a Field with an error — that is redundant",
|
|
15
|
+
"Never a wrapper div between Field and its control, which would wire the div instead",
|
|
16
|
+
"Lays the form out with flex and gap-*, not space-y-*"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": 2,
|
|
21
|
+
"prompt": "Using @misoto22/design, add a confirmation dialog for deleting a project. It needs a heading, an explanation, and Cancel and Delete buttons.",
|
|
22
|
+
"expected_output": "A Dialog whose title and description are props on DialogContent, with a danger-variant Delete button.",
|
|
23
|
+
"must_use": ["Dialog", "DialogTrigger", "DialogContent", "Button"],
|
|
24
|
+
"must_not_contain": ["DialogTitle", "DialogHeader", "DialogDescription", "DialogFooter"],
|
|
25
|
+
"expectations": [
|
|
26
|
+
"Passes title and description as props on DialogContent — there is no DialogTitle or DialogHeader export here",
|
|
27
|
+
"Uses variant=\"danger\" for the destructive action",
|
|
28
|
+
"Wraps the trigger with asChild rather than nesting a button inside a button",
|
|
29
|
+
"Sets no z-index: the overlay handles its own stacking"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": 3,
|
|
34
|
+
"prompt": "Using @misoto22/design, render a table of open invoices with client, due date and amount, with the amount column right-aligned.",
|
|
35
|
+
"expected_output": "A Table with a real caption and the short part names, amount aligned with the align prop.",
|
|
36
|
+
"must_use": ["Table", "THead", "TBody", "TR", "TH", "TD"],
|
|
37
|
+
"must_not_contain": ["TableHeader", "TableBody", "TableRow", "TableHead", "TableCell", "text-right"],
|
|
38
|
+
"expectations": [
|
|
39
|
+
"Uses THead / TBody / TR / TH / TD — the shadcn/ui names are not exported here",
|
|
40
|
+
"Gives caption a real sentence saying what the table lists, not an empty string and not the word \"Table\"",
|
|
41
|
+
"Right-aligns with align=\"end\" on TH and TD, not a text-right class, so the table stays RTL-correct"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": 4,
|
|
46
|
+
"prompt": "Using @misoto22/design, build a dashboard row of four stat cards. Each shows a title, a big number, a change badge, and a loading state.",
|
|
47
|
+
"expected_output": "Full Card composition, Skeleton for loading, Badge for the change, semantic tokens throughout.",
|
|
48
|
+
"must_use": ["Card", "CardHeader", "CardTitle", "CardBody", "Badge", "Skeleton"],
|
|
49
|
+
"must_not_contain": ["CardContent", "animate-pulse", "bg-green-", "text-red-", "dark:"],
|
|
50
|
+
"expectations": [
|
|
51
|
+
"Uses CardBody, not CardContent",
|
|
52
|
+
"Composes CardHeader and CardTitle rather than putting everything in one block",
|
|
53
|
+
"Uses Skeleton for the loading placeholder, not a custom animate-pulse div",
|
|
54
|
+
"Uses Badge for the change rather than a styled span",
|
|
55
|
+
"Writes no raw colour and no dark: variant — semantic tokens resolve in both modes"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": 5,
|
|
60
|
+
"prompt": "Using @misoto22/design, add a small area chart of monthly revenue above the stat cards.",
|
|
61
|
+
"expected_output": "A chart imported from the charts entry point, with the peers named.",
|
|
62
|
+
"must_use": ["AreaChart"],
|
|
63
|
+
"must_not_contain": ["from '@misoto22/design'\nimport { AreaChart"],
|
|
64
|
+
"expectations": [
|
|
65
|
+
"Imports the chart from '@misoto22/design/charts', not from the root specifier — the root does not export it and the import throws",
|
|
66
|
+
"Mentions that recharts and motion are peer dependencies the project needs installed",
|
|
67
|
+
"Does not reach for recharts directly to build the chart by hand"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": 6,
|
|
72
|
+
"prompt": "Using @misoto22/design, add an icon-only button that copies the current URL, and a toast confirming it.",
|
|
73
|
+
"expected_output": "An iconOnly Button with an accessible name, and toast imported from this package.",
|
|
74
|
+
"must_use": ["Button", "toast", "Toaster"],
|
|
75
|
+
"must_not_contain": ["from 'sonner'"],
|
|
76
|
+
"expectations": [
|
|
77
|
+
"Gives the iconOnly Button an aria-label naming the action — without one it is announced as \"button\" and nothing else",
|
|
78
|
+
"Imports toast from '@misoto22/design', not from sonner",
|
|
79
|
+
"Renders Toaster once at the app root rather than beside the button",
|
|
80
|
+
"Puts no sizing class on the icon"
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|