Initial commit: FA 2.0 Design System foundation

Token pipeline (Style Dictionary v4, DTCG format):
- Primitive tokens: colour palettes (brand, sage, neutral, feedback),
  typography (3 font families, 21-variant type scale), spacing (4px grid),
  border radius, shadows, opacity
- Semantic tokens: text, surface, border, interactive, feedback colours;
  typography roles; layout spacing
- Component tokens: Button (4 sizes), Input (2 sizes)
- Generated outputs: CSS custom properties, JS ES6 module, flat JSON

Atoms (3 components):
- Button: contained/soft/outlined/text × primary/secondary, 4 sizes,
  loading state, underline for text variant
- Typography: 21 variants across display/heading/body/label/caption/overline,
  maxLines truncation
- Input: external label, helper text, error/success validation,
  start/end icons, required indicator, 2 sizes, multiline support

Infrastructure:
- MUI v5 theme with full token mapping
- Storybook 8 with autodocs
- Claude Code agents and skills for token/component workflows
- Design system documentation and cross-session memory

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-25 15:08:15 +11:00
commit 732c872576
56 changed files with 12690 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
{
"shadow": {
"$description": "Elevation shadows for layered UI. Values are CSS box-shadow shorthand strings.",
"sm": {
"$value": "0 1px 2px rgba(0,0,0,0.05)",
"$description": "Subtle lift — resting buttons, input focus subtle elevation"
},
"md": {
"$value": "0 4px 6px rgba(0,0,0,0.07)",
"$description": "Medium elevation — cards at rest, dropdowns, popovers"
},
"lg": {
"$value": "0 10px 15px rgba(0,0,0,0.1)",
"$description": "High elevation — modals, popovers, card hover states"
},
"xl": {
"$value": "0 20px 25px rgba(0,0,0,0.1)",
"$description": "Maximum elevation — elevated panels, dialog boxes"
}
},
"opacity": {
"$type": "number",
"$description": "Opacity values for interactive states and overlays.",
"disabled": { "$value": 0.4, "$description": "Disabled state — 40% opacity. Clearly diminished but still distinguishable" },
"hover": { "$value": 0.08, "$description": "Hover overlay — subtle 8% tint applied over backgrounds on hover" },
"overlay": { "$value": 0.5, "$description": "Modal/dialog backdrop — 50% black overlay behind modals" }
}
}