--- name: -design-system description: Design system for the project. Color tokens, typography, spacing, radii, shadows, density, motion, accessibility tokens, and component vocabulary. Load and apply whenever building UI for this project — generating mocks, writing components, picking colors, configuring Tailwind, styling native screens, building themes, designing CSS, or making any visual decision. The canonical visual reference for this project; if anything visible is being touched, this skill should be in context. Pairs with -interaction-design. --- # design system > **Status: ** > Generated by Composer's `ui-system` phase. Re-running that phase > updates this skill (with confirmation on overwrite). ## How to use this skill When generating or editing UI for this project — a mock, a real component, a theme, a CSS file — read this SKILL.md and `tokens.ts` first, then use the tokens. Never hardcode visual values. Don't introduce new components without proposing them in `components.md`. Sidecar files in this skill directory: - `tokens.ts` — machine-readable token export. Import in mocks/code. - `components.md` — component vocabulary, anatomy, states. ## Visual posture ## Color ### Brand - **Primary**: `<#hex>` — - **Secondary** *(if any)*: `<#hex>` — ### Neutrals - **Tone**: - **Scale**: 50 / 100 / 200 / 300 / 400 / 500 / 600 / 700 / 800 / 900 / 950 - See `tokens.ts` for hex values. ### Semantic | Role | Light | Dark *(if dark mode)* | |---|---|---| | Success | `<#hex>` | `<#hex>` | | Warning | `<#hex>` | `<#hex>` | | Error | `<#hex>` | `<#hex>` | | Info | `<#hex>` | `<#hex>` | ### Dark mode - **Posture**: - **Token mapping**: see `tokens.ts` `colorDark` (if applicable) ### Accessibility contrast - **Target**: WCAG - **Verified pairings** (against `neutral.50` light bg, `neutral.950` dark bg): - body text: — ✅ - UI components: — ✅ - ## Typography - **Display family**: , weights - **Body family**: , weights - **Mono family** *(if used)*: - **Scale base**: , ratio <1.125 | 1.2 | 1.25 | 1.333 | 1.5> - **Sizes**: see `tokens.ts` `fontSize` — xs / sm / base / lg / xl / 2xl / 3xl / 4xl - **Line-height**: - Tight (display): - Normal (body): - Relaxed (long-form): - **Letter-spacing** *(if customized)*: ## Spacing - **Base unit**: <4px | 8px> - **Scale (in base units)**: 0, 0.5, 1, 1.5, 2, 3, 4, 6, 8, 12, 16, 24 - See `tokens.ts` `spacing` for px values. ## Radii - **Posture**: - `sm` · `md` · `lg` · `pill` 9999px · `full` 9999px ## Shadows & elevation - **Posture**: - Scale: `xs / sm / md / lg / xl` — see `tokens.ts` `shadow` - (Or "no shadows in this system" if posture is flat — use borders for elevation hierarchy.) ## Density - **Default**: - **Padding tokens**: see `tokens.ts` `padding` — `tight / default / loose` - **Component impact**: list components whose default density differs from the global default. ## Visual motion - **Default duration**: (token: `motion.duration.default`) - **Default easing**: (token: `motion.easing.standard`) - **Reduced-motion fallback**: linear, instant where appropriate Behavioral motion (when things animate, what triggers them) is in the **interaction-design** skill, not here. ## Accessibility tokens - **Focus ring**: