design-system
Captures the user's brand identity once via a 10-question onboarding wizard (primary/accent HEX + heading + body Google Fonts + design style editorial/technical/minimal/playful + default output directory + syntax theme + TOC behavior + optional logo/company), validates body-text and link contrast against WCAG 2.2 AA, derives 12 CSS custom properties in HSL space, and stores the result for every markdown-html converter to consume. Use before any markdown-html conversion. Triggers on first-run onboarding ("set up the brand", "configure markdown-html", "run onboarding"), on explicit reset ("reset
npx skills add alirezarezvani/claude-skills --skill design-system --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Design System — Onboarding + Shared Brand Tokens The design-system skill is the **shared brand owner** for the markdown-html plugin. Run its onboarding once. Every converter (`md-document`, `md-review`, `md-slides`) reads the resulting config via `config_loader.py` and applies the same 12 CSS custom properties to its output. Without this, conversions render with placeholder defaults — technically functional but unbranded. This skill ships exactly three Python tools: 1. **`onboard.py`** — interactive (or `--defaults` / `--set` / `--show` / `--reset`) wizard. 2. **`config_loader.py`** — importable customization loader with project > global > defaults precedence and `MARKDOWN_HTML_NO_CONFIG=1` bypass. 3. **`brand_palette_validator.py`** — WCAG-AA contrast checker + HSL palette deriver. All three are stdlib-only and contain no LLM calls (deterministic per Path-B discipline). ## When to invoke | Symptom | Action | |---|---| | User says "convert this markdown to HTML" for the first time in this workspace | Run `python3 markdown-html/skills/design-system/scripts/onboard.py` | | `~/.config/markdown-html/design-system.json` doesn't exist OR `setup_completed_at` is null | Refuse conversion
- When to invoke
- Onboarding question set (10 questions)
- Hard rules
- Derived 12-token palette
- Forcing-question library (Matt Pocock grill-with-docs pattern)
- Customization in use (worked example)
- Assumptions
- Non-goals
- Distinct from
- Output artifact
- Anti-patterns (do not)
- References
First-run onboarding (interactive, walks all 10 questions) python3 markdown-html/skills/design-system/scripts/onboard.py Zero-touch defaults for CI / first-test python3 .../onboard.py --defaults Change just the primary color and design style python3 .../onboard.py --set brand.primary=#FF6B35 --set design_style=editorial Per-repo override python3 .../onboard.py --scope project --set design_style=minimal Reset and re-onboard python3 .../onboard.py --reset
What does the design-system skill do?
Captures the user's brand identity once via a 10-question onboarding wizard (primary/accent HEX + heading + body Google Fonts + design style editorial/technical/minimal/playful + default output directory + syntax theme + TOC behavior + optional logo/company), validates body-text and link contrast against WCAG 2.2 AA, derives 12 CSS custom properties in HSL space, and stores the result for every markdown-html converter to consume. Use before any markdown-html conversion. Triggers on first-run onboarding ("set up the brand", "configure markdown-html", "run onboarding"), on explicit reset ("reset
How do I install it?
Run `npx skills add alirezarezvani/claude-skills --skill design-system --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From alirezarezvani/claude-skills, a repository with 23,791 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.