Design md to shadcn
Applies an external DESIGN.md (Google Labs design-token format) to a project's shadcn/ui theme. Activate when the user provides or references a DESIGN.md / design.md file, a designmd.app or Stitch design system, a downloaded brand design system, or asks to 'apply a design system / theme' to a shadcn project. Translates DESIGN.md tokens into shadcn CSS variables in the project's theme CSS file and turns the prose into component guidance. Inbound-only: does not extract a DESIGN.md from the project.From its SKILL.md
npx -y skills add douinc/agent-skills --skill design-md-to-shadcnAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
DESIGN.md → shadcn/ui
Take an external DESIGN.md (the Google Labs design-token format, version alpha, Apache-2.0) and apply it to the project's shadcn/ui theme.
What this skill is for
The DESIGN.md format pairs machine-readable YAML front matter (design tokens) with markdown prose (rationale + guidance). It uses a Material-3-style token namespace (primary, secondary, tertiary, neutral, surface, on-surface, surface-container-*, on-primary, …) that does not map 1:1 to shadcn's fixed semantic tokens.
The official design.md export --format css-tailwind emits --color-primary etc. — single-mode, no foreground pairs — which is not usable by shadcn. This skill provides the missing mapping layer: DESIGN.md tokens → shadcn :root / .dark CSS variables, plus prose → component guidance.
- Direction: inbound only (external DESIGN.md → the project). Do not generate a DESIGN.md from the project.
- Dependencies: none. No
@google/design.mdCLI, no package installs. Pure parsing + the mapping table in rules/token-mapping.md.
Project target (locate, then verify before editing)
First find the project's shadcn theme CSS file and config — don't assume a path:
- Theme CSS file: the file holding shadcn tokens as CSS variables in
:root(light) and.dark. Common locations:app/globals.css,src/index.css,src/app.css,resources/css/app.css,styles/globals.css. Confirm by grepping for--background,--primary, or--radius. components.json(repo root): readstyle,baseColor,cssVariables,tailwind.css(points to the theme file), and thealiases. Note whether tokens are HSL/oklch()/raw and match that convention.- Composition rules (Card/Dialog/Tabs/etc.) and component install belong to the
shadcnskill — defer to it for step 5.
Re-read the theme CSS file before editing; its token blocks are the source of truth and may differ from any assumptions.
Workflow
1. Collect the input
Get the DESIGN.md as a file path, pasted text, or URL. If a URL, fetch the raw markdown (e.g. WebFetch). Confirm it has --- front matter; if it's prose-only, extract what tokens you can and note the gaps.
2. Parse
- Front matter (between the
---fences):name,colors,typography,rounded,spacing,components. - Body (
##sections, canonical order): Overview / Colors / Typography / Layout / Elevation & Depth / Shapes / Components / Do's and Don'ts. Section aliases exist (Overview≡"Brand & Style", Layout≡"Layout & Spacing", Elevation≡"Elevation & Depth"). - Resolve token references
{path.to.token}(e.g.{colors.primary},{rounded.md}) to their values before mapping.
3. Map tokens → shadcn (the core step)
Follow rules/token-mapping.md exactly:
- Color tokens → shadcn semantic variables (with foreground pairs).
rounded.md/DEFAULT→--radius.- Detect light vs dark from the background's lightness; fill the matching block, derive the opposite block (flag it for review).
- Normalize every color to the theme file's existing convention (
oklch(), HSL channels, or raw) — match what's already there; keep the original value in a trailing comment.
4. Apply to the theme CSS file
Edit only the variable lines inside :root and .dark. Preserve everything else: @imports, fonts, @theme {} (including any --color-* → var(--*) aliases and the --radius-* calc scale), and @layer base {}.
- Use targeted
Editcalls per variable block — never overwrite the whole file. - Present a concise summary of the changes (old → new per token) before/with the edit.
- Unmapped DESIGN.md tokens: keep them as extra custom vars with a comment, or report them — do not silently drop.
5. Component & layout guidance
Summarize the prose (Overview, Layout, Elevation & Depth, Shapes, Components, Do's and Don'ts) into concrete rules for any UI built next — e.g. "one primary action per screen", radius/elevation conventions, component variants. Then hand off actual component selection / install / composition to the shadcn skill.
Guardrails
- Never overwrite the theme CSS file wholesale — edit token lines only; keep imports/fonts/
@theme/@layer baseintact. - Show the token diff before applying so the user can sanity-check.
- Color conversions (to
oklch()/HSL) are approximations — recommend a visual check; do not claim exact color fidelity. - This skill maps tokens and surfaces guidance; it does not install components (that's the
shadcnskill) and does not add dependencies. - After editing, the user must rebuild/restart the dev server to see changes — use the project's own build command (e.g.
npm run build/dev,pnpm,bun, orvendor/bin/sail …for Laravel Sail setups). Checkpackage.jsonscripts if unsure.
What ships with it: 1 file
5.4 KB alongside SKILL.md
rules/
- token-mapping.md5.4 KB
Gives 0 of the 12 instructions most design systems skills give in ~1.2k tokens
Counted across 501 of the 520 authors here whose files we hold, read 2026-09-06
- Extract colors, typography, spacing, radii, shadows, breakpointsin 20 of 501, across 10 files
- Create a self-contained dependency-free HTML preview pagein 20 of 501, across 10 files
- Keep touch targets at least 44x44pxin 20 of 501
- Score the UI across ten dimensionsin 18 of 501, across 8 files
- Animate exclusively via transform and opacityin 18 of 501, across 15 files
- Ensure WCAG AA color contrastin 18 of 501, across 13 files
- Generate DESIGN.md with rationale for each decisionin 17 of 501, across 7 files
- Ensure proper contrast and readabilityin 15 of 501, across 10 files
- Scan the codebase for existing style patternsin 15 of 501, across 6 files
- Give every interactive element a visible focus indicatorin 15 of 501, across 13 files
- Propose a design token setin 14 of 501, across 5 files
- Create a custom theme when none fitin 14 of 501, across 9 files
Said here and by no other author read
- Locate the theme CSS file by grepping for tokens
- Re-read the theme CSS file before editing
- Read components.json to match existing conventions
- Confirm the DESIGN.md has front matter
- Resolve token references to values before mapping
- Follow the token mapping rules exactly
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.