Claude Skill

design-system

Builds and maintains the design system a product is assembled from — tokens for color, type, spacing and elevation, component contracts, and the rules that keep them coherent as the product grows. Use this when starting a new interface, when screens have drifted apart visually, w

LLM Mart · 0 points · 17 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download cbrock84-headcount-plugins_product_skills_design-system-98d1c17.zip · 3 KB
Part of cbrock84/headcount — 160 skills

Install

skills CLI npx skills add https://github.com/cbrock84/headcount/tree/main/plugins/product/skills/design-system
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install cbrock84-headcount@llmmart
Git git clone https://github.com/cbrock84/headcount.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole cbrock84/headcount collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Design system

A design system is a set of constraints that makes consistency the cheap path. If the system is harder to follow than to ignore, it will be ignored.

Tokens first

Define the primitives before any component. Every visual decision references a token; nothing hard-codes a value.

  • Color — semantic names, not literal ones. surface, surface-raised, text-primary, text-muted, border, accent, danger. A token named blue-500 cannot be re-themed.
  • Type — a scale with a stated ratio, and a line-height per step. Four to six steps. More than that and nobody can tell them apart.
  • Spacing — one scale, geometric, used for every gap and inset. Arbitrary spacing is the single most common source of "it looks off but I can't say why."
  • Radius, elevation, motion — small closed sets. Two or three each.

Every token needs a light and dark value defined together. Adding dark mode later means auditing every surface.

Component contracts

A component in the system carries: the states it supports (default, hover, focus, active, disabled, loading, error, empty), the props that vary it, and what it will not do. The last one matters most — a component that accepts arbitrary overrides is a styling function, not a component.

Every interactive component needs a visible focus state and a target big enough to hit. This is not a polish item; it is whether people can use it.

Growth rules

  • A new component enters the system only after the same need appears three times. Before that it is local.
  • Changing a token is a system-wide change — treat it like an API change, because it is.
  • Never remove a token or component because it looks unused. You cannot see every consumer from inside the system. Deprecate, announce, then remove.

Sources

references/sources.md in this skill lists the outside authorities that settle the questions here — what each one is authoritative for, and what you may do with it. Check them before answering on anything they cover, and cite what you used. Most are free to read and not free to reproduce; the use note on each is binding.

Tooling

Design source: Figma, and similar. Component documentation and review: Storybook.

Token pipelines: Style Dictionary, Tokens Studio, Figma variables exported to code, and similar. Visual regression: Chromatic, Percy, Playwright snapshots, and similar.

The system is the code, not the design file. When the two disagree, the code is what ships.

Never

  • Add a component for a single screen. A one-use component is a snippet, not a system.
  • Hard-code a value a token already covers. The exception becomes the next inconsistency.
  • Redefine what an existing token means instead of adding one. Changing a semantic silently redecorates everything downstream.
  • Ship a component without its states documented — empty, loading, error, disabled.

Return contract

Report tokens added or changed, components affected, anything now inconsistent with the system, and what needs migrating.

Files (headcount)
  • references
    • sources.md 2.5 KB
      # Sources — `product:design-system`
      
      <!-- Generated by scripts/build-sources.py from sources/*.toml. Do not edit. -->
      
      Check these before answering on anything they cover, and cite what you used. The use note on each one is binding: most of what a professional cites is free to read and not free to reproduce.
      
      ## Human Interface Guidelines
      
      Apple · global · **read and cite only — copyrighted, do not reproduce**
      
      <https://developer.apple.com/design/human-interface-guidelines>
      
      **Authoritative for:** What correct platform behavior is on Apple platforms — control semantics, navigation structure, touch targets. Its authority is not taste: deviation is grounds for review rejection.
      
      ## SIL Open Font License
      
      SIL International · global · **read and cite only — copyrighted, do not reproduce**
      
      <https://openfontlicense.org/>
      
      **Authoritative for:** Whether a typeface may be embedded in a product, bundled into a design system, modified or redistributed. The font-licensing question that surfaces reliably when a brand system ships.
      
      ## Unicode Common Locale Data Repository
      
      Unicode Consortium · global · free to use with attribution — credit the publisher
      
      <https://cldr.unicode.org/>
      
      **Authoritative for:** Correct date, number, currency, name-order, plural and sort behavior for a locale. Settles how something should render in a given language with data rather than guesswork, and every platform's internationalization library derives from it.
      
      ## WAI-ARIA and the ARIA Authoring Practices Guide
      
      World Wide Web Consortium · global · **read and cite only — copyrighted, do not reproduce**
      
      <https://www.w3.org/WAI/ARIA/apg/>
      
      Machine-readable: <https://www.w3.org/TR/wai-aria-1.2/>
      
      **Authoritative for:** Which roles, states and keyboard interactions a given widget must implement. Settles whether Escape should close a dialog and whether a role is the right one, without appeal to preference.
      
      ## Web Content Accessibility Guidelines 2.2
      
      World Wide Web Consortium · global · **read and cite only — copyrighted, do not reproduce**
      
      <https://www.w3.org/TR/WCAG22/>
      
      **Authoritative for:** Whether a page, email or video is accessible. It is the criteria list that US Section 508, the EU's EN 301 549 and most enterprise procurement point at, so it settles any argument that reaches a buyer's accessibility requirement.
      
      ---
      
      Sources are maintained in `sources/` upstream, not here. If one is wrong, out of date, or missing, fix it there — this file is regenerated and an edit to it is lost.
      
  • SKILL.md 3.4 KB
    ---
    name: design-system
    description: Builds and maintains the design system a product is assembled from — tokens for color, type, spacing and elevation, component contracts, and the rules that keep them coherent as the product grows. Use this when starting a new interface, when screens have drifted apart visually, when the same component exists three times in slightly different forms, or when a token or component needs adding without breaking what exists.
    ---
    
    # Design system
    
    A design system is a set of constraints that makes consistency the cheap path. If the system is
    harder to follow than to ignore, it will be ignored.
    
    ## Tokens first
    
    Define the primitives before any component. Every visual decision references a token; nothing
    hard-codes a value.
    
    - **Color** — semantic names, not literal ones. `surface`, `surface-raised`, `text-primary`,
      `text-muted`, `border`, `accent`, `danger`. A token named `blue-500` cannot be re-themed.
    - **Type** — a scale with a stated ratio, and a line-height per step. Four to six steps. More than
      that and nobody can tell them apart.
    - **Spacing** — one scale, geometric, used for every gap and inset. Arbitrary spacing is the single
      most common source of "it looks off but I can't say why."
    - **Radius, elevation, motion** — small closed sets. Two or three each.
    
    Every token needs a light and dark value defined together. Adding dark mode later means auditing
    every surface.
    
    ## Component contracts
    
    A component in the system carries: the states it supports (default, hover, focus, active, disabled,
    loading, error, empty), the props that vary it, and what it will *not* do. The last one matters
    most — a component that accepts arbitrary overrides is a styling function, not a component.
    
    Every interactive component needs a visible focus state and a target big enough to hit. This is not
    a polish item; it is whether people can use it.
    
    ## Growth rules
    
    - A new component enters the system only after the same need appears three times. Before that it is
      local.
    - Changing a token is a system-wide change — treat it like an API change, because it is.
    - Never remove a token or component because it looks unused. You cannot see every consumer from
      inside the system. Deprecate, announce, then remove.
    
    ## Sources
    
    `references/sources.md` in this skill lists the outside authorities that settle the questions
    here — what each one is authoritative for, and what you may do with it. Check them before
    answering on anything they cover, and cite what you used. Most are free to read and not free
    to reproduce; the use note on each is binding.
    
    ## Tooling
    
    Design source: Figma, and similar. Component documentation and review: Storybook.
    
    Token pipelines: Style Dictionary, Tokens Studio, Figma variables exported to code, and
    similar. Visual regression: Chromatic, Percy, Playwright snapshots, and similar.
    
    The system is the code, not the design file. When the two disagree, the code is what ships.
    
    ## Never
    
    - Add a component for a single screen. A one-use component is a snippet, not a system.
    - Hard-code a value a token already covers. The exception becomes the next inconsistency.
    - Redefine what an existing token means instead of adding one. Changing a semantic silently redecorates everything downstream.
    - Ship a component without its states documented — empty, loading, error, disabled.
    
    ## Return contract
    
    Report tokens added or changed, components affected, anything now inconsistent with the system, and
    what needs migrating.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related