How to Create a Brand Book That Designers and Developers Use
I've seen dozens of brand books over the years. Beautiful PDFs with gorgeous typography, carefully curated color palettes, and inspirational mood boards. And almost every single one gets ignored within three months of delivery.
The problem isn't that teams don't care about brand consistency. It's that most brand books are built for boardroom presentations, not for the people who actually implement the brand every day -- designers opening Figma at 9 AM and developers writing CSS at midnight. If your brand guidelines live in a 47-page PDF that nobody can search, copy from, or integrate into their workflow, you've built a museum piece, not a tool.
I'm going to walk you through how to create a brand book that actually gets used. Not the theoretical kind. The kind where a developer can grab a design token in seconds, a designer can check spacing rules without asking Slack, and a new team member can ship brand-consistent work on their first week.
Table of Contents
- Why Most Brand Books Fail
- What Belongs in a Functional Brand Book
- The Format Question: PDF vs. Web vs. Both
- Building the Design Token Foundation
- Writing Guidelines That People Actually Read
- Component Documentation That Bridges Design and Code
- Voice and Tone: The Part Everyone Skips
- Keeping Your Brand Book Alive
- Tools and Platforms for Brand Documentation
- Real-World Brand Book Architecture
- FAQ

Why Most Brand Books Fail
Let's be honest about the failure modes. I've inherited brand guidelines from agencies, in-house teams, and freelancers, and the same problems keep showing up.
They're Static Documents in a Dynamic World
A PDF made sense in 2010. In 2026, your brand lives across web apps, mobile apps, email templates, social media, documentation sites, and probably a few platforms that didn't exist when the brand book was written. A static document can't keep up.
When your brand book is a PDF, every update means re-exporting, re-uploading, and hoping everyone downloads the new version. Spoiler: they won't.
They Speak Designer but Not Developer
Most brand books are created by brand designers or agencies. They'll specify that the primary blue is "Pantone 2935 C" but won't mention that it's #0057B8 in hex, rgb(0, 87, 184) in RGB, or hsl(212, 100%, 36%) in HSL. They'll show a button with rounded corners but won't tell you the border-radius is 8px or that the hover state darkens by 10%.
Developers need implementation details, not just visual references.
They Answer the Wrong Questions
A brand book that spends six pages on logo clear space but doesn't address what to do when the logo appears on a dark background in a mobile nav bar has its priorities wrong. The best brand books answer the questions that people actually ask day-to-day.
There's No Single Source of Truth
I've worked on projects where the brand colors in the Figma library didn't match the brand book, which didn't match the CSS variables in production. When there's no clear canonical source, every team develops their own interpretation. That's how you end up with five different shades of "brand blue."
What Belongs in a Functional Brand Book
Here's what I'd include, organized by who needs it and how urgently they need it:
| Section | Primary Audience | Update Frequency | Format Priority |
|---|---|---|---|
| Brand Foundation (mission, values, personality) | Everyone | Rarely | Written narrative |
| Logo Usage | Designers, Marketing | Occasionally | Visual examples + downloads |
| Color System | Designers + Developers | Occasionally | Tokens + visual swatches |
| Typography | Designers + Developers | Occasionally | Tokens + specimens |
| Spacing & Layout | Developers + Designers | Occasionally | Tokens + grid specs |
| Iconography | Designers + Developers | Frequently | Library + usage rules |
| Component Patterns | Developers + Designers | Frequently | Live examples + code |
| Voice & Tone | Writers, Marketing, Support | Rarely | Written guide + examples |
| Photography & Illustration | Designers, Marketing | Occasionally | Style examples + do/don't |
| Motion & Animation | Developers + Designers | Occasionally | Specs + video examples |
Notice that "frequently updated" sections need a format that supports easy updates. That's a hint about the next section.
The Format Question: PDF vs. Web vs. Both
This is the most consequential decision you'll make, and I have a strong opinion: your brand book should be a website.
Here's why:
- Searchable. A designer wondering about the secondary color palette can Cmd+F instead of scrolling through 30 pages.
- Linkable. You can share a URL to the exact section someone needs. "Check the button specs at brand.company.com/components/buttons" is infinitely more useful than "It's on page 34 of the PDF."
- Always current. Update once, everyone sees the change immediately.
- Interactive. You can embed live code examples, color pickers, token generators, and component previews.
- Copy-friendly. Developers can copy hex codes, CSS variables, and code snippets directly.
We've built brand documentation sites using both Next.js and Astro, and both work well for this use case. Astro is particularly good here because brand books are mostly content with some interactive islands -- exactly what Astro's architecture is designed for.
That said, keep a PDF export for the occasions when someone needs an offline reference or a client wants something to print. But the PDF should be the secondary artifact, not the primary one.
A Practical Architecture
For a web-based brand book, I'd structure it something like this:
brand-docs/
├── src/
│ ├── content/
│ │ ├── foundations/
│ │ │ ├── mission.mdx
│ │ │ ├── colors.mdx
│ │ │ ├── typography.mdx
│ │ │ └── spacing.mdx
│ │ ├── identity/
│ │ │ ├── logo.mdx
│ │ │ ├── photography.mdx
│ │ │ └── illustration.mdx
│ │ ├── components/
│ │ │ ├── buttons.mdx
│ │ │ ├── forms.mdx
│ │ │ └── cards.mdx
│ │ └── voice/
│ │ ├── tone.mdx
│ │ └── writing-guidelines.mdx
│ ├── tokens/
│ │ ├── colors.json
│ │ ├── typography.json
│ │ └── spacing.json
│ └── components/
│ ├── ColorSwatch.astro
│ ├── TokenTable.astro
│ └── ComponentPreview.astro
Using MDX means your content team can write in Markdown while embedding interactive components where needed. The tokens/ directory becomes the single source of truth that feeds both the documentation site and your production code.

Building the Design Token Foundation
Design tokens are the bridge between your brand book and your actual codebase. If you're not using them yet, they're named entities that store visual design decisions -- colors, fonts, spacing, shadows, etc. -- in a format that can be consumed by multiple platforms.
Here's a practical example of a tokens file:
{
"color": {
"brand": {
"primary": {
"$value": "#0057B8",
"$type": "color",
"$description": "Primary brand blue. Use for primary actions, key UI elements, and branded accents."
},
"primary-light": {
"$value": "#3385D6",
"$type": "color",
"$description": "Lighter variant of primary. Use for hover states and secondary emphasis."
},
"primary-dark": {
"$value": "#003D80",
"$type": "color",
"$description": "Darker variant of primary. Use for active/pressed states."
}
},
"semantic": {
"success": { "$value": "#16A34A", "$type": "color" },
"warning": { "$value": "#EAB308", "$type": "color" },
"error": { "$value": "#DC2626", "$type": "color" },
"info": { "$value": "{color.brand.primary}", "$type": "color" }
}
},
"spacing": {
"xs": { "$value": "4px", "$type": "dimension" },
"sm": { "$value": "8px", "$type": "dimension" },
"md": { "$value": "16px", "$type": "dimension" },
"lg": { "$value": "24px", "$type": "dimension" },
"xl": { "$value": "32px", "$type": "dimension" },
"2xl": { "$value": "48px", "$type": "dimension" },
"3xl": { "$value": "64px", "$type": "dimension" }
}
}
This follows the W3C Design Tokens Community Group format (which became a candidate recommendation in 2025). Tools like Style Dictionary, Tokens Studio, or the newer Cobalt UI can transform these tokens into CSS custom properties, Tailwind config values, iOS Swift constants, Android XML resources -- whatever your platforms need.
The key insight: your brand book and your production code should consume the same token files. When the brand blue changes, you update one JSON file, and it propagates everywhere.
/* Generated from tokens */
:root {
--color-brand-primary: #0057B8;
--color-brand-primary-light: #3385D6;
--color-brand-primary-dark: #003D80;
--spacing-xs: 4px;
--spacing-sm: 8px;
--spacing-md: 16px;
/* ... */
}
Writing Guidelines That People Actually Read
Here's a hard truth: nobody reads long prose explanations in a brand book. They scan. They look for answers to specific questions. Your writing needs to account for that.
Use the Do/Don't Format Religiously
Every rule should come with a visual or textual example of correct and incorrect usage. Not just "maintain adequate clear space around the logo." Show the logo with correct spacing. Show it crammed into a corner. Label one "Do" and the other "Don't." Done.
Write for Scanning
- Use bullet points generously
- Bold the key information in each paragraph
- Keep paragraphs to 2-3 sentences max
- Use tables for specifications
- Include a quick-reference section at the top of each page
Explain the Why
This is what separates a brand book that people follow from one they work around. When you say "Don't place the logo on busy photographic backgrounds," also say why: "The logo's fine detail gets lost, reducing recognition at small sizes."
When people understand the reasoning, they can make good judgment calls in situations the brand book didn't anticipate. And there will always be situations you didn't anticipate.
Include Edge Cases
The brand book says the minimum logo size is 24px height. Great. But what about favicons? App icons? Social media avatars? Email signatures? Address the real-world edge cases that trip people up, not just the ideal scenarios.
Component Documentation That Bridges Design and Code
This is where most brand books stop and design systems begin, but I'd argue your brand book should include at least the foundational components. Buttons, form inputs, cards, navigation patterns -- the building blocks that show up on every page.
For each component, document:
Visual Specifications
| Property | Value |
|---|---|
| Border Radius | var(--radius-md) / 8px |
| Padding | var(--spacing-sm) var(--spacing-md) / 8px 16px |
| Font Size | var(--font-size-sm) / 14px |
| Font Weight | var(--font-weight-semibold) / 600 |
| Min Height | 40px |
| Transition | all 150ms ease-in-out |
State Definitions
Default, hover, active, focus, disabled, loading. For each state, specify the exact visual changes. Don't make developers guess what "hover" looks like.
Code Examples
// React example
<Button variant="primary" size="md">
Get Started
</Button>
// HTML + CSS classes example
<button class="btn btn-primary btn-md">
Get Started
</button>
Usage Guidelines
When to use a primary button vs. secondary. How many primary buttons per page (hint: one). What the label conventions are ("Save" not "Save Changes", or whatever your brand decides).
If you're working with a headless CMS setup, these component patterns become especially important because content editors need to know which components are available and how they're meant to be used.
Voice and Tone: The Part Everyone Skips
Developers tend to skip this section, and that's a mistake. If you've ever written an error message, a tooltip, a confirmation dialog, a placeholder text, or a 404 page, you've been a brand voice writer. Developers write more user-facing copy than most people realize.
A good voice and tone section includes:
Brand Voice Attributes
Pick 3-5 adjectives that describe how your brand communicates. For each one, provide a spectrum:
| We are... | But not... |
|---|---|
| Friendly | Casual or sloppy |
| Knowledgeable | Condescending |
| Direct | Blunt or cold |
| Confident | Arrogant |
Tone Variations by Context
Your voice stays consistent, but tone shifts with context. A success message after a purchase should feel different from an error message during checkout.
- Success states: Warm, brief, celebratory but not over the top. "Your order is confirmed!" not "WOOHOO! 🎉🎉🎉"
- Error states: Empathetic, clear, solution-oriented. "We couldn't process your payment. Check your card details and try again." not "Payment failed."
- Empty states: Helpful, encouraging. "No projects yet. Create your first one to get started." not "No data."
A Word List
This is unglamorous but incredibly useful. Create a table of preferred terms:
| Use | Don't Use |
|---|---|
| Sign in | Log in |
| Email address | |
| Free trial | Trial period |
| Dashboard | Home page |
| Team members | Users |
Consistency in terminology matters more than most teams realize.
Keeping Your Brand Book Alive
The biggest risk isn't building a bad brand book. It's building a good one that slowly becomes irrelevant because nobody maintains it.
Assign Ownership
Someone needs to own the brand book. Not "the design team" -- a specific person. They don't need to make every update themselves, but they're responsible for reviewing changes, resolving conflicts, and ensuring accuracy.
Use Version Control
If your brand book is a website (as it should be), store it in Git. This gives you:
- A changelog of every modification
- The ability to review changes before they go live (pull requests)
- Branching for proposed updates that need stakeholder approval
- Rollback if something goes wrong
Schedule Quarterly Reviews
Put a recurring calendar event for a quarterly brand book review. Walk through each section: Is it still accurate? Are there new patterns that should be documented? Are people working around any guidelines because they don't work in practice?
Make Contributing Easy
The best brand books accept contributions from across the team. A developer notices that the documented button padding doesn't account for icon buttons? They should be able to submit a fix. Use a contribution model similar to open-source projects: propose a change, get it reviewed, merge it.
Tools and Platforms for Brand Documentation
Here's what I'd actually consider in 2026:
| Tool | Best For | Price Range | Approach |
|---|---|---|---|
| Supernova | Design system docs from Figma | $49-199/mo | Automated from design tools |
| zeroheight | Brand + design system docs | $79-299/mo | Hybrid: visual editor + Figma sync |
| Storybook | Component documentation | Free (open source) | Code-first, lives with codebase |
| Astro + MDX | Custom brand book site | Free (self-hosted) | Full control, developer-friendly |
| Next.js + MDX | Custom with dynamic features | Free (self-hosted) | Full control, React ecosystem |
| Notion | Lightweight / early stage | Free-$10/user/mo | Quick to set up, limited customization |
| Frontify | Enterprise brand management | Custom pricing | Full DAM + guidelines |
For most teams we work with, a custom-built solution using Astro or Next.js ends up being the best long-term investment. It's more upfront work, but you get complete control over the experience, you can integrate design tokens directly, and you don't have a recurring SaaS bill. If you want to explore that path, we'd be happy to discuss the architecture.
For teams that need something running this week, zeroheight has improved significantly and its Figma integration means designers can contribute without touching code.
Real-World Brand Book Architecture
Let me describe the architecture we've used successfully on several client projects. It's opinionated, but it works.
Layer 1: Design Tokens (Source of Truth)
A Git repository containing JSON token files in the W3C Design Tokens format. These are transformed via Style Dictionary into platform-specific outputs: CSS custom properties, Tailwind config, Figma variables (via Tokens Studio), and Swift/Kotlin constants.
Layer 2: Figma Libraries
Figma component libraries that consume the tokens via Tokens Studio. Designers work in Figma, and the components there match the tokens. Changes to tokens propagate to Figma (with review).
Layer 3: Code Component Library
A React (or framework-agnostic) component library that consumes the CSS custom properties generated from the same tokens. This lives in its own package or monorepo workspace.
Layer 4: Documentation Site (The Brand Book)
An Astro site that:
- Reads the token JSON files and generates visual documentation automatically
- Renders live component previews from the code component library
- Includes MDX content for brand narrative, voice/tone, and usage guidelines
- Deploys automatically when any layer below it changes
graph TD
A[Design Tokens JSON] --> B[Style Dictionary]
B --> C[CSS Custom Properties]
B --> D[Figma Variables]
B --> E[Tailwind Config]
B --> F[Mobile Constants]
C --> G[Component Library]
G --> H[Brand Documentation Site]
A --> H
The beauty of this architecture is that the brand book isn't a separate document that needs manual updating. It's generated from the same source that powers your production code. When a token changes, the documentation updates automatically on the next deploy.
This is the kind of engineering we do regularly at Social Animal for headless CMS projects and Next.js builds. The principles are the same whether you're building a design system for a startup or an enterprise.
FAQ
How long does it take to create a brand book from scratch?
For a thorough brand book with design tokens, component documentation, and a web-based format, expect 4-8 weeks of focused work. That assumes you already have a defined brand identity (logo, colors, typography chosen). If you're starting from zero on brand identity, add another 4-6 weeks for that discovery and design phase. A minimal viable brand book -- colors, typography, logo usage, basic voice guidelines -- can be done in 2 weeks.
Should developers be involved in creating the brand book?
Absolutely. This is one of the biggest missed opportunities I see. Involve at least one senior developer from the start. They'll catch impractical specifications early ("this font doesn't have a monospace variant for code blocks"), ensure the token structure makes sense for implementation, and advocate for the kind of documentation they'll actually use. The best brand books are co-authored by design and engineering.
What's the difference between a brand book and a design system?
A brand book defines what the brand looks like, sounds like, and feels like. A design system provides the implementation -- the actual components, patterns, and code needed to build with the brand. In practice, the line is blurry, and the best approach combines both. Your brand book should contain enough implementation detail to be useful, and your design system should reference brand principles so people understand the "why" behind components.
How do you handle brand book versioning when the brand evolves?
Use semantic versioning for your tokens and document breaking changes clearly. A minor color tweak is a patch. Adding a new color to the palette is a minor version. Changing the primary brand color is a major version. When your brand book lives in Git, you get this for free. Tag releases, write changelogs, and communicate changes through the same channels you use for code releases.
What are design tokens, and do we really need them?
Design tokens are named values that represent your design decisions -- color-brand-primary: #0057B8 instead of hardcoding hex values everywhere. You need them if you have more than one developer, more than one platform, or any intention of maintaining consistency over time. They're the mechanism that turns your brand book from a reference document into an enforceable system. The W3C Design Tokens spec has matured significantly since its 2025 candidate recommendation, and tooling support is solid in 2026.
Should we use a SaaS tool or build a custom brand book site?
Depends on your team size and technical capacity. Under 10 people with no dedicated frontend developer? Use zeroheight or Notion to get something live fast. Over 10 people, multiple products, or a development team that can maintain it? Build a custom site. The custom route costs more upfront but pays off in flexibility, integration with your token pipeline, and zero ongoing licensing fees. Check our pricing page for a sense of what custom documentation site builds involve.
How detailed should component documentation be in a brand book?
Detailed enough that a new developer could implement a component correctly without asking questions. That means visual specs for every state, code examples in your primary framework, usage guidelines (when to use it, when not to), accessibility requirements, and responsive behavior notes. If you find yourself answering the same Slack question twice about a component, the answer should go in the brand book.
How do you get team buy-in for actually using the brand book?
Three tactics that work: First, make it faster to check the brand book than to ask on Slack -- this means good search, clear navigation, and copy-paste-ready values. Second, integrate it into your workflow -- add brand book links in PR review checklists, Figma file descriptions, and onboarding docs. Third, let people contribute to it. When the team owns the brand book collectively, they're invested in its success. The worst thing you can do is treat it as a mandate from above that nobody had input on.