HTML / CSS

What is a Design System According to Atlassian?

What a design system really is, using Atlassian's as the model, and why most internal ones fail while a few succeed, from someone who has built several.

8 Sept 2024

What is a Design System According to Atlassian?

I've worked with design systems at multiple companies. Some worked. Most didn't. The ones that failed treated the design system as a side project. The ones that worked treated it as a product.

Atlassian's design system is one of the better public examples. Here's how they structure it — and what I think other teams can steal from their approach.

Core Elements

1. Foundations

Foundations set the visual language. Think of them as the raw materials before you build components.

  • Color: A curated palette with primary, secondary, and accent colors. All combinations are tested for accessibility.
  • Typography: Rules for font usage, sizing, line height, and text hierarchy. Consistency here prevents the "every page looks different" problem.
  • Spacing and Layout: A grid system with consistent spacing units. This is what makes responsive design feel cohesive instead of patched together.
  • Icons and Illustrations: A shared library that keeps visual language unified across products.
  • Motion: Standards for animations and transitions. Without these, you get a mix of bouncy, fady, and slidey elements fighting each other.

2. Components

The heart of any design system. Pre-built, reusable UI pieces.

  • Buttons: Multiple styles (primary, secondary, destructive) with clear guidelines on when to use each.
  • Forms: Input fields, checkboxes, dropdowns, and validation rules. Forms are where inconsistency hurts users most.
  • Navigation: Sidebars, breadcrumbs, and menus. These need to feel identical across products or users get lost.
  • Modals and Dialogs: Overlays, confirmations, and alerts. Standardizing these prevents every team from inventing their own dialog pattern.
  • Tables and Lists: Structured components for data display.

Complex components combine these primitives for specific use cases — things like comment containers or dynamic data tables.

3. Patterns

Patterns go beyond individual components. They define how components work together for common scenarios.

  • Authentication: Login, sign-up, and password recovery flows.
  • Notifications: Standards for alerts and messaging.
  • Onboarding: Tooltips, walkthroughs, and progressive disclosure.
  • Content Layout: Templates for dashboards, detail pages, and list views.

Patterns are where a design system stops being a component library and starts being a real system.

4. Accessibility

Accessibility isn't a bolt-on at Atlassian. It's baked into the system.

  • Contrast Ratios: Text and background colors meet WCAG guidelines.
  • Keyboard Navigation: Every interactive element works without a mouse.
  • Screen Reader Support: ARIA roles and properties are built into components.

This is the right approach. Retrofitting accessibility is expensive. Building it in from the start is cheap.

5. Design Tokens

Tokens store values for colors, typography, spacing, and other design attributes. Change a token, and every component using it updates.

Think of tokens as variables for your entire design language. They're what make "rebrand the whole product" a configuration change instead of a six-month project.

6. Contribution Model

A design system that only one team can modify is a design system that dies. Atlassian encourages contributions from designers, developers, and product managers.

The key is having a clear review process. Open contribution without quality gates leads to bloat. Locked-down systems without contribution channels lead to resentment and workarounds.

7. Versioning and Change Management

Atlassian versions their system like an open-source project.

  • Version Numbers: Semantic versioning (e.g., v5.2.0) so teams know what changed.
  • Detailed Release Notes: Every release documents new components, updates, and deprecations.
  • Breaking Changes: Clearly marked so teams can plan migrations.

This is critical. Without versioning, teams either never update (because they're scared of breakage) or update blindly (and things break in production).

Who Uses What

  • Designers: Figma libraries and design kits for mockups and prototypes.
  • Developers: Pre-built React components, design tokens, and documented code snippets.
  • Product Managers: Alignment tools to ensure features maintain consistent UX.

The Trade-offs

Benefits: Consistency across products, faster development, accessibility compliance, and reduced design debt.

Costs: Upfront investment is significant. Maintaining a design system is a full-time job for a team. Components that try to serve every use case become bloated. Components that don't serve enough use cases get abandoned.

The Atlassian system works because they staff it like a product team, not a side project. If your organization can't commit to that level of investment, start smaller — pick a few high-impact components and nail those first.

Keep reading