/cs-design-system¶
Run the design-system wizard:
Modes¶
| Flag | Behavior |
|---|---|
| (no flag) | Interactive — walks 10 questions one at a time. Default. |
--defaults |
Zero-touch: writes built-in defaults (#0A1628 navy + #00D4AA teal + Inter + technical + sticky TOC + ./markdown-html-out/) without prompting. Useful for CI or first-test. |
--set key=value |
Non-interactive override (repeatable). Dotted keys supported: brand.primary=#FF6B35, typography.heading_font=Lora, design_style=editorial. |
--show |
Print the 10 questions + the current effective config (project > global > defaults). |
--reset |
Delete the saved config at the chosen scope. |
--scope project |
Save to ./.markdown-html/design-system.json (per-repo override) instead of global ~/.config/markdown-html/design-system.json. |
The 10 questions¶
- Default output directory (path; must be writable)
- Brand primary HEX
- Brand accent HEX (optional; auto-derives if blank)
- Heading Google Font (12 safe defaults)
- Body Google Font
- Design style: editorial / technical / minimal / playful
- Syntax-highlighting theme: light / dark / auto
- TOC behavior: sticky-sidebar / collapsible-top / inline / none
- Company / project name (optional, shows in footer)
- Logo URL (optional, base64-embedded at render time)
Hard refusals¶
default_output_dirempty or unwritable → exit 3. Pick a path you control.- WCAG AA body-text contrast fails (< 4.5:1) → exit 4. Pick a darker primary, blank
brand.bg/brand.textto let derivation pick a passing pair, or overridebrand.textexplicitly. - WCAG link contrast walked iteratively; falls back to a passing color if accent on bg can't reach 4.5:1.
After onboarding¶
Inspect the effective config:
python3 markdown-html/skills/design-system/scripts/config_loader.py --show
python3 markdown-html/skills/design-system/scripts/config_loader.py --status
Then convert markdown via /cs:markdown-html <path>.md.
Bypass¶
MARKDOWN_HTML_NO_CONFIG=1 skips saved config and returns DEFAULTS only. Useful for headless CI, ephemeral test containers, and evaluator loops. Never set it silently for an interactive user.