Brand system
Author a production-grade brand book + design system for a web product — a long-form BRAND.md (20 sections covering the core idea, logo system, color, typography, spacing, surfaces, motion, voice, accessibility, components, and Tailwind v4 @theme tokens), a printable BRAND.html + PDF sibling, and a matched tokens.css / tokens.json with primitive/semantic/component tiering. Use when the user asks to create, draft, author, scaffold, or update a brand book, brand guidelines, design system, design tokens, style guide, visual identity, or BRAND.md; or when a new product needs its first documented identity.From its SKILL.md
npx -y skills add shaharsha/claude-skills --skill brand-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
- 5 stars5 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
11.2 KB, as published. Nobody here has run it
Brand System
Scaffolds a brand book + design system that sits at the root of a web
product's repo — long-form BRAND.md (the working reference, 20
sections) paired with BRAND.html (the printable stakeholder
distillation, ~7 A4 pages, rendered to BRAND.pdf via Chrome
headless) and a matched tokens.css for Tailwind v4 @theme.
This skill authors the document. Its sibling brand-assets produces the pixels (SVG favicons, PWA pack, apple-touch-icon). Call both in sequence for a complete brand rollout.
The five artifacts
| Artifact | What | How |
|---|---|---|
BRAND.md | Long-form 20-section working reference | templates/BRAND.md.tmpl via scripts/new-brand-book.sh |
BRAND.html | 7-page A4 printable distillation | templates/BRAND.html.tmpl via same script |
BRAND.pdf | Rendered via Chrome headless | scripts/render-pdf.sh |
tokens.css | Tailwind v4 @theme + :root + [data-theme="dark"] | templates/tokens.css.tmpl + scripts/extract-tokens.py |
tokens.json | W3C DTCG format for Style Dictionary / Tokens Studio | scripts/extract-tokens.py --format dtcg |
Workflow (decision tree)
-
Starting fresh? — run the signature-moves interview first: copy templates/signature-interview.md.tmpl into the repo and answer every question before scaffolding. See reference/signature-moves.md for why each question matters. Without this, the output is a template; with it, it's a brand.
-
Scaffolding a new book? — run scripts/new-brand-book.sh with the interview answers as flags. Emits
BRAND.md,BRAND.html,tokens.css,signature-interview.mdinto the output dir. -
Drafting a specific chapter? — load the matching reference:
- §0 the idea / §2 primitive / §3 signature moves → reference/signature-moves.md
- §5 logo + favicon pack → reference/favicon-pack.md
- §6 colour → reference/color.md + reference/tokens.md
- §7 typography → reference/typography.md
- §10 surfaces & materials → reference/surfaces.md
- §11 motion → reference/motion.md
- §13 voice & tone → reference/voice-and-tone.md
- §14 accessibility → reference/accessibility.md
- §17 Tailwind v4
@theme→ reference/tailwind-v4.md - Hebrew / Arabic / RTL → reference/rtl.md
-
Favicon + PWA pack? — do not generate assets in this skill. reference/favicon-pack.md specs the requirements (system-aware SVG favicon, opaque apple-touch-icon, maskable PWA, OG light+dark pair). Hand the spec + a source SVG to the brand-assets skill's
icon-pack.sh. -
Contrast audit before shipping → scripts/audit-contrast.py. WCAG 2.2 AA on body (4.5:1), 3:1 on large / UI / focus rings. Runs per theme (light + dark). Paste the matrix into §14.
-
Rendering the PDF → scripts/render-pdf.sh. Chrome headless. Produces
BRAND.pdffromBRAND.html. -
Auditing an existing book → scripts/audit-outline.py. Validates the 20-section outline, flags missing decision log entries, warns if §2 signature primitive has <8 use-sites documented.
-
Catching drift between BRAND.md and production CSS → scripts/check-consistency.py. Brand books fail when code silently diverges from them. Diffs colour tokens in BRAND.md against one or more target CSS files and exits non-zero on hex drift. Wire into CI.
-
Enforcing the interview before scaffolding → pass
--require-interview path/to/signature-interview.mdto scripts/new-brand-book.sh. Refuses to scaffold if the interview still has unfilled{{PLACEHOLDER}},{{TODO}}, or> …answer lines. Strongly recommended.
House rules
-
Require the anti-template moves before scaffolding. The interview is not optional. One invented proper noun, three falsifiable principles, three real don'ts from past mistakes, a 150-word voice sample in the brand's voice, and one signature move that deliberately breaks a best practice. Without these, the book is a template. See reference/signature-moves.md.
-
Accent constant across light/dark. Only surface and text semantic tokens swap between themes. The one saturated brand colour is identical in both modes — that's what lets a signature primitive mean the same thing regardless of system preference. Encoded in templates/tokens.css.tmpl.
-
Three-tier tokens per Nathan Curtis taxonomy. Primitive (
--color-cream: #F3EAD3) → semantic (--bg: var(--color-cream)) → component (--btn-bg: var(--bg-elevated)). Primitives go in@theme, semantics in:root, dark-mode overrides in[data-theme="dark"]. See reference/tokens.md. -
WCAG 2.2 AA is the legal floor in 2026. Not APCA — APCA was pulled from WCAG 3 in July 2023 and has not returned. AA means 4.5:1 body, 3:1 large/UI/focus, 24×24 target-size-minimum. Audited with scripts/audit-contrast.py; see reference/accessibility.md.
-
RTL is a foundation, not an appendix. If the product ships in Hebrew or Arabic, use CSS logical properties (
margin-inline-start, notmargin-left) from day one; the retrofit cost is 10–50× designing-for-it upfront. See reference/rtl.md. -
The brand book is itself an instance of the brand. The
BRAND.htmltemplate uses the product's own palette + type — so the document looks like the brand on page 1. If the brand book's own styling doesn't pass the rules it preaches, it's wrong. -
System-first, toggle-second for dark mode. Respect
prefers-color-schemeby default; persist explicit user overrides inlocalStorage. A visible dark-mode toggle in the nav is an anti-pattern. The system-aware SVG favicon rule in reference/favicon-pack.md follows the same logic.
Non-goals
- Generating logo artwork — that's image-generation.
- Mechanical asset pipelines (vectorize PNG → SVG, icon-pack generation, rasterize at size) — that's brand-assets.
- Building the actual components — §18 of
BRAND.mddocuments the specs; implement them in your own component layer — Anthropic's frontend-design skill is a good companion for that step. - Brand storytelling / marketing copywriting — §13 governs how to write, not what.
- Translating copy — the skill scaffolds RTL-aware structure but doesn't translate.
- Versioning the brand book as a product — update in place, commit with a clear message, one source of truth at the repo root.
Canonical 20-section outline (what BRAND.md.tmpl emits)
| # | Section | Core must-have |
|---|---|---|
| 0 | The idea | One-sentence core idea + the "strip everything but X" test |
| 1 | Reading the mark | 3–5 simultaneous readings of the logo |
| 2 | Signature primitive | The semantic token that appears across every surface — 8+ use sites |
| 3 | Signature moves | 5–7 things that identify the brand without the logo |
| 4 | Brand essence | What we are / are not / tone / positioning sentence |
| 5 | Logo system | Variants, clear space, min size, don'ts, favicon + PWA pack requirements |
| 6 | Colour system | Core + extended + neutrals + semantic tokens, 62/30/8 ratio, light/dark parity |
| 7 | Typography | Face, tabular nums, scale, measure, RTL moves, wordmark treatment |
| 8 | Iconography | Style, colour rules (accent never used), size tokens, RTL flipping |
| 9 | Spacing & layout | 8-point grid, containers, radii + concentric-radii rule |
| 10 | Surfaces & materials | Default + floating material, grain overlay, hero backgrounds |
| 11 | Motion | Principle, tokens, the signature animation, reduced-motion behaviour |
| 12 | Imagery & illustration | Photography rules, illustration style, anti-patterns |
| 13 | Voice & tone | Rules, tone matrix by emotional state, 3-levels-of-same-thought, RTL specifics |
| 14 | Accessibility | WCAG 2.2 AA contrast matrix, focus rings, reduced motion, RTL equivalence |
| 15 | Reference set | What shelf the brand sits on + what it's not |
| 16 | Anti-patterns | Specific "don't do this" list — concrete bad habits banned |
| 17 | Implementation — Tailwind v4 @theme | Full block, :root + [data-theme="dark"], body rules |
| 18 | Components | Buttons, links, inputs, cards, badges, nav, alerts, dialogs, prose, landing primitives |
| 19 | Migration plan | What's being retired; ✅/⚠️/❌ per token/pattern; dates |
| 20 | What this is not + Decision log | Non-goals + dated table of decisions with rationale |
Quick invocation
# Scaffold a new brand book at the repo root
~/.claude/skills/brand-system/scripts/new-brand-book.sh \
--product "Agentiko" \
--positioning "A real worker who lives inside WhatsApp." \
--palette-bg '#F3EAD3' \
--palette-fg '#0E1320' \
--palette-accent '#B85A3A' \
--signature-primitive "voice dot" \
--primary-font "Rubik" \
--locale "he" \
--output-dir .
# Audit contrast
~/.claude/skills/brand-system/scripts/audit-contrast.py \
--bg '#F3EAD3' --fg '#0E1320' --accent '#B85A3A'
# Render the printable
~/.claude/skills/brand-system/scripts/render-pdf.sh BRAND.html BRAND.pdf
# Later: check an existing book against the outline
~/.claude/skills/brand-system/scripts/audit-outline.py BRAND.md
Related skills
- brand-assets — mechanical SVG/PNG pipelines; run after this skill to produce the favicon pack.
- image-generation — design logo/hero imagery before this skill runs.
- Anthropic's frontend-design — implement §18 components in production code.