The ultimate guide to building a design system in Confluence

Decorative header showing building blocks with different design system elements
Christopher (Berry) Dunford
April 17, 2025

In a previous article, we looked at why it’s better to build a design system in Confluence than in design tools like Figma, or developer tools like Storybook. It’s because Figma and Storybook aren’t knowledge bases or documentation platforms, and Confluence is both. It’s also where all your teams are already working.

In this ultimate guide, we’ll look at how to structure, build, and maintain a Confluence design system in 8 steps. Then we’ll look at a design system documentation template for how you can structure your Confluence space. Finally we’ll look at a Confluence page template for documenting components.  

Step 1: Decide on the overarching goals of your Confluence design system

If you’ve decided to build a design system, you probably already know your goals, or at least, you have a vague idea of them. But it’s important to get these crystallized and written down. And sometimes, you don’t know the exact purpose of your design system until you ask the right questions. So start with these:

  1. Why are we creating this design system? (Example answers: improve design consistency, speed up development, enhance accessibility of design assets.)
  2. What problems are we solving? (Example answers: reduce user interface (UI) inconsistencies, improve designer-developer collaboration, improve collaboration with external partners, improve scalability of product development.)
  3. What outcomes do we expect? (Example answers: faster product development, better user experiences, better brand alignment.)

Once you have answers to these questions, use them to articulate some overarching goals, which could be:

  • Ensure UI consistency across all digital products
  • Reduce duplication in the design and development process
  • Make sure all teams understand the brand
  • Create a single source of truth for all teams

Step 2: Identify who’s going to use your design system

Design systems serve multiple teams with different needs. Now that you’ve listed some broad goals, create some more specific ones by identifying the core audience/s of your design system and what they need from it. This will help shape the contents, structure, and maintenance of your Confluence design system.

Here are some common audiences and their needs:

Audience How they would use the design system Key needs
Designers Use components, patterns, and brand guidelines to design consistent UIs. Design principles, clear documentation, Figma-Confluence integration
Developers Implement tokens, components, and patterns in code, ensuring consistency across platforms Tokens, code snippets, usage guidelines, and compatibility with front-end frameworks
Product owners Champion design system adoption and ensure products align with the design system and meet users' needs High-level documentation on goals, design principles, and brand guidelines
Quality assurance (QA) experts Check product features comply with design system guidelines and best practices Usage guidelines, accessibility standards, clear documentation on components and patterns
Marketing teams Maintain brand consistency in marketing content Brand guidelines covering how to use logos, fonts, icons, and tone of voice

Step 3: Decide if you need external teams to have access

Although Confluence was designed for internal use, its anonymous access feature enables teams to make a space public. You may want to do this to show customers that you have a mature brand and you are proud of how your products are designed. It also increases accountability and can serve as a brilliant recruiting tool. And of course, it lets you work with external contractors and freelancers on product design.

If you decide not to make your Confluence design system public, you can still work with external partners because Confluence allows you to add guest users to a space (up to 5 guests per paid user).

Step 4: Determine who is going to contribute

You’ll need someone to take the lead on creating your design system. More often than not, the design system lead is a designer or team of designers. But in order to serve multiple audiences, the designer will need to work with other contributors to make sure everyone’s needs are covered.

For example, designers will need to work first and foremost with developers. Designers and developers will be the principal users of the design system, and it’s most important that it includes everything they need.

Designers should also work with product owners to make sure the design system documentation aligns with business goals and is structured in a way so as to encourage its adoption across teams.  

A designer may also work with a copywriter to make sure tone of voice, grammar, and language requirements are all documented.  

Step 5: Work out a structure in Confluence for your design system

Determining how your Confluence design system will be structured is key to making sure it’s a useful and easily navigable resource. Here are some things to consider when deciding on your structure:

  • Create a dedicated Confluence space: don’t put your design system in an existing Confluence space. Equally, don’t spread design system content across multiple spaces, e.g. brand guidelines in a marketing space, tokens and code snippets in a development space. Create a single, dedicated space so that your design system becomes a distinct and accessible resource.
  • Define your core sections: your main sections or ‘chapters’ will likely encompass design principles, foundations, components, patterns, and brand guidelines. Use Confluence’s page tree structure to organize this content logically under appropriate parent pages.
  • Use Confluence page templates: you can standardize the look and feel of your design system documentation by using Confluence page templates, improving usability and maintainability. For example, you can create your own templates for component documentation, with sections for usage, code snippets, and accessibility. We’ll look at a design system documentation template for components later.
  • Use macros: Confluence macros also help with usability and maintainability. The page tree and children display macros help users navigate the space. The page properties macro lets you summarize component statuses in tables. “Excerpt include” and “include page” allow you to reuse sections or whole pages in other places. And the code block/code snippet macro displays formatted code snippets.
  • Add labels: aid searchability of your design system content by tagging pages with keywords like “component”, “brand-guidelines”, “code-snippet”, “accessibility”, and “foundation”.
  • Create a changelog page: enable design system users to track updates to the design system in a central place. You can use the page properties macro and the page properties report macro to create a dynamic changelog that automatically pulls in updates. This will help make your Confluence design system more transparent, efficient, and scalable.

Step 6: Create your design system content

Now we come to the biggest step and the one that will take the longest. The most logical place to start is at the highest level, and work your way down to the detail. So, write the design principles and goals/purpose first. You could also create a “how to use this space” page, detailing the intended audience, how to request changes and improvements, who to reach out to for help, etc.

After that, move on to your foundations and brand guidelines, and then get into the nitty-gritty of your tokens, components, and patterns.

When you get to the stage of documenting design assets such as components and logos, this is when you’ll want to leverage some Atlassian Marketplace add-ons. Marketplace apps help make design systems more useful, maintainable, and scalable.

You can find dedicated developer integration apps for displaying live components and source code that users can interact with and inspect.

You can also embed Figma frames in Confluence pages using CollabSoft’s Figma for Confluence app. This saves you having to duplicate assets in the design system, and manually update them every time they change. The files live in Figma, but can be viewed in and downloaded from Confluence in whatever format you wish. Meanwhile, the app has a live sync with Figma that enables design updates to propagate automatically to Confluence.

In order to advocate your design system as a single source of truth, you can also use Figma for Confluence to pin a specific version to your Confluence page. This makes sure your design system is only showing fixed assets. Alternatively, you could institute a protocol within Figma itself to make sure designers don’t iterate on the frame linked to the design system. That they create a new version of the file, and only update the linked frame when the work is complete.

Either way, the ability to embed a locked-in Figma design is unique to CollabSoft’s Figma for Confluence app. Figma’s own Confluence feature doesn’t let you embed specific versions, so you’ll only ever see the live design. This makes instituting a policy in Figma your only option to make sure designs in the design system aren’t constantly changing while people are trying to use them.

The other thing that distinguishes CollabSoft’s app is that Confluence users don’t need a Figma license to see design assets on Confluence pages. With Figma’s native embed feature, Confluence users have to log in to Figma. You shouldn’t have to buy Figma licenses for non-designers just so they can use the design system.

Step 7: Encourage collaboration

When you’re creating your design system pages, you can use comments and @mentions in Confluence get input from team members on the content.

You can also create and share draft pages in Confluence, so that you can collaborate on the documentation before you finalize it. Alternatively, you can restrict access to a published page so that only those who need to contribute can see it. These options are especially important if you have made your design system space public using Confluence’s anonymous access feature.

Even when your pages are complete, it’s important to collect feedback from users, to make sure your design system documentation is meeting everyone’s needs. This will improve its quality and accuracy and encourage adoption across teams. It will also foster a culture of shared ownership, i.e. everyone plays a part in maintaining the design system, which helps it stay relevant and keep evolving.

Step 8: Update your Confluence design system regularly

A design system should be stable, but not static. Figma designs for logos shouldn’t be constantly changing while a marketing team is trying to use them in promotional materials. But equally, when design assets and patterns evolve, or accessibility standards change, the design system needs to be updated so that everyone’s singing from the same hymn sheet.

You should assign a design system maintenance lead to manage documentation updates, and designate team members within design and development as update owners. Update owners are responsible for informing the maintenance lead when there are code changes, new components or logos, and patterns that are outdated and need to be removed.

You could also create a request form in Jira for team members across the company to suggest improvements, so that you can continue to seek feedback on your design system long after it’s published.

What’s vitally important is that changes are communicated, which is why you need a changelog. You should also announce major updates likely to impact people’s work via team meetings and Slack/Google Chat. And you can set up Confluence notifications to alert users whenever there are changes to design system pages.

Now let’s look at some templates you can use to build your design system in Confluence.

A design system documentation template for your Confluence space

Since Confluence only offers page templates, not space templates, we thought we’d make one ourselves.

So, here is a Confluence space template which you can use as a reference when building your design system page tree.

Design system (space name)

Shortcuts

  • Changelog
  • How to request changes

Content

  • Overview
    • Purpose of the design system
    • Design principles
    • How to use this space
    • Links to external resources (Figma, Storybook, GitHub, etc.)
    • Changelog
  • Foundations
    • Colors
    • Typography
    • Grid and spacing
    • Logos
    • Icons
    • Imagery
    • Motion and animation
    • Accessibility guidelines
  • Brand Guidelines
    • Visual identity
    • How to use our colors
    • How to use our logos
    • How to use our icons
    • How to use imagery
    • Language and grammar
    • Voice and tone
  • Tokens
    • Color
    • Typography
    • Spacing and sizing
    • Border and radius
    • Elevation and shadows
    • Motion and animation
  • Components
    • Buttons
    • Form elements
    • Tables
    • Cards
    • Modals and dialogs
    • Tooltips
    • (+ more components as needed)
  • Patterns
    • Layout and responsiveness
    • Navigation
    • Forms and validation
    • Error states and feedback
    • Dark mode guidelines

A design component page template

[Component]

[Brief description of what the component does.]

Name Description Code
[Component type 1, e.g. a primary button] [purpose of component, e.g. the primary button is for the most important call to action]
[Component type 2, e.g. a warning button] [purpose of component, e.g. the warning button alerts people that a problem might occur if they proceed]
[Component state 1, e.g. size] [how the component should behave, e.g. you can choose from a small or medium-sized button]
[e.g. component state 2, e.g. icon] [how the component should behave, e.g. an icon will display to the left of the button text]

When to use it

[Give an overview of how the component should be used, e.g. use buttons when users need to either navigate through a product or perform a specific action.]

Usage guidelines

DO DON’T
[e.g. do always think about how important the action is when choosing a button type] [e.g. don’t capitalize all the words in the button label, only the first word, along with names of brands/products]

Component variations

Variation 1, e.g. button types

[Describe when each variation should be used, e.g. primary buttons for the most important actions, secondary buttons for actions that complement the primary action, or when multiple actions of equal importance are required]

Variation 2, e.g. button sizes

[Describe when each variation should be used, e.g. medium-sized as default, small when space is limited]

Additional guidance

Accessibility Provide any accessibility guidelines that are relevant to this component
Mobile Provide guidance on how to apply this component in mobile environments
Best practices If there are industry standards for the component, list them here
Related List related components or patterns and include links

Conclusion

The 8 steps described above will help you build a design system in Confluence that people want to use. A design system that serves the primary purpose of satisfying users and protecting your brand, by helping you keep the look and feel of your products and experiences consistent.

Defining goals and target audiences, working out a logical Confluence structure, and doing diligent design system maintenance are all essential for making sure the people who need to reference guidelines or access components can find them quickly and easily.

Meanwhile, organizing contributors and encouraging shared ownership of the documentation helps to speed adoption. This facilitates better developer-designer collaboration and improves speed and efficiency both at design handoff and during implementation.

If you’re looking at creating a Confluence design system, and you want to embed components and brand assets from Figma in your Confluence pages, try Figma for Confluence Pro free for 1 month.  

Christopher (Berry) Dunford

A former lawyer, Berry loves theme parks, has published a sci-fi conspiracy thriller trilogy called Million Eyes to rave reviews, and is a specialist in writing content for tech companies.

Other posts