Design system
Skill fusengine/agents/plugins/design-expert/skills/design-system
Redefining development through cognitive automation and collaborative agent systems.
npx -y skills add fusengine/agents --skill design-systemAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 22 stars22 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.
What its author says it does
Copied from the file, not written here
Use when starting any design task, before choosing or auditing a color/type/spacing token or writing design-system.md — routing step 1.
SKILL.md
7.8 KB, as published. Nobody here has run it
Also defines the canonical output format of design-system.md — the file the harness gates on — including its 4 hard requirements (the ## Design Reference heading, a real inspiration URL, at least one chroma-positive OKLCH token, and the hard-forbidden font exclusions).
This is routing step 1 of design-method/SKILL.md: read it before design-web, design-webapp, design-ios, or design-android, and before picking or auditing a single color/type/spacing value.
</objective>
Design System — Token Core
Single source for token strategy — not values, values live in references/*.md and are
read from there, never re-derived here. design-method/SKILL.md reads this file
unconditionally as routing step 1, once per task, before dispatching to any move or
target skill — that read is also what advances the harness past phase 0. If a design
question is purely about a token (a color, a type pair, a spacing value) this file plus its
reference index already answers it; otherwise continue back into design-method's routing.
Color strategy
- OKLCH only for new tokens:
oklch(L% C H). Never hex/HSL/RGB for anything you're defining fresh (existing legacy tokens in an inherited codebase are a different problem — don't rewrite what wasn't asked for). - Neutrals — tint every neutral toward the brand hue, chroma 0.005–0.015. Never a
pure gray (chroma 0), never
#000/#fff. - Accent commitment — pick the strategy BEFORE picking hues:
- Restrained — tinted neutrals + one accent ≤10% of surface. Product register default.
- Committed — one saturated color carries 30–60% of surface. Brand register default.
- Full palette (3–4 named roles) / Drenched (surface IS the color) — brand
campaigns, product data-viz. See
design-method/references/register/brand.md§4 andregister/product.md§1 for which strategy each register defaults to and when to deviate.
- Reduce chroma as lightness approaches 0 or 100 — high chroma at the extremes reads garish.
- Mechanics:
references/oklch-system.md. Concrete per-sector values:references/sector-palettes.md. Contrast floors:references/contrast-ratios.md— WCAG AA 4.5:1 body text / 3:1 large text + UI components (AAA 7:1 where feasible).
Typography scale
- Ratio ≥1.25 between steps (1.25 major-third is the default, 1.333 for editorial), 6–8 sizes max, ≤3 contrast variations per view.
- Line-height: body 1.5×, display 1.05–1.15×. Body measure 65–75ch.
- Validated pairs:
references/typography-pairs.md. Forbidden/flagged fonts — canonical list, don't restate it anywhere else in this plugin:references/forbidden-fonts.md.
Spacing
- 8pt grid: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96.
- Density profile (Enterprise Dense / Standard / Editorial) chosen per register:
references/spacing-density.md— product defaults dense, brand defaults editorial (seeregister/brand.md§4 andregister/product.md§1).
Touch targets
iOS 44×44pt · Android 48×48dp · WCAG 2.5.8 minimum 24×24 CSS px regardless of platform.
The design-system.md output — canonical format
This is the generated file the harness gates on (gates-pipeline.ts triggers on any read
path ending design-system.md; gates.ts validates its contents). Every requirement below
is a present/absent check, not a suggestion — missing one fails the gate silently
downstream, with no error surfaced at write time.
## Design Reference
Inspiration: https://example.com/the-actual-site-browsed-in-generate-step-2
### Colors
--color-accent: oklch(0.62 0.19 250);
--color-neutral-900: oklch(0.18 0.01 250);
... (full token set — chroma > 0 required on at least the accent token)
### Typography
--font-display: "Fraunces", ui-serif;
--font-body: "Public Sans", ui-sans-serif;
... (never the four hard-forbidden families below, whichever fonts are actually chosen)
The 4 hard requirements (all must hold):
- Heading
## Design Referencepresent verbatim. - At least one
https?://URL — the real inspiration source browsed indesign-web/references/design-inspiration.mdstep 2, not a placeholder. - At least one
oklch(...)token with chroma > 0 — a chroma-0 neutral alone does not satisfy this; the accent (or any committed-strategy token) must carry chroma. - Must not contain
Inter,Roboto,Arial, orOpen Sansanywhere in the file — this is the harness-checked subset of the full 6-font hard-forbidden tier inreferences/forbidden-fonts.md(which also bansLato/Poppins, not harness-checked but still enforced by this skill).
Check this list explicitly before writing design-system.md — don't rely on having "used
OKLCH generally" earlier in the task; the gate reads the file, not the process.
Reference index (data lives here, read from source, never restated above)
| Concern | File |
|---|---|
| OKLCH mechanics | references/oklch-system.md |
| Contrast ratios (WCAG) | references/contrast-ratios.md |
| Sector palettes (concrete OKLCH) | references/sector-palettes.md |
| Typography pairs | references/typography-pairs.md |
| Forbidden/flagged fonts (canonical) | references/forbidden-fonts.md |
| Spacing / density profiles | references/spacing-density.md |
| Identity brief questionnaire | references/identity-brief.md |
| Design Read + the 3 dials (VARIANCE/DENSITY/MOTION) | references/design-read-dials.md |
| Color-token mapping | references/color-mapping.md |
| Gradients | references/gradients-guide.md |
| Fluid typography | references/fluid-typography.md |
| Breakpoints | references/breakpoint-patterns.md |
| Container queries | references/container-queries.md |
| Multi-brand theming | references/multi-brand.md |
| Complex themes (dark mode etc.) | references/complex-themes.md |
| Motion personality | references/motion-personality.md |
| UI hierarchy / spacing rhythm | references/ui-hierarchy.md, references/ui-spacing.md |
| UI trends 2026 | references/ui-trends-2026.md |
| Visual technique matrix | references/visual-technique-matrix.md |
| Edge cases (empty/error/loading) | references/edge-cases.md |
| Image handling | references/image-handling.md |
| Tailwind config / utilities / perf | references/tailwind-config.md, tailwind-utilities.md, tailwind-performance.md |
Per-sector design-system.md templates | references/templates/*.md |
Next
This read is design-method/SKILL.md routing step 1, not a standalone task — return there
for Register resolution, Gate 0, and move dispatch. A pure token question is already
answered by the sections above; everything else (page structure, moves, register floors)
lives in design-method and the target-platform skills.