DESIGN

Raw
DESIGN.mdlatestv1 (current)Retrieved 2026-05-12

DESIGN.md — Atlassian Design System (Atlaskit)

Design System

Name: Atlassian Design System (Atlaskit) Maintainer: Atlassian Version: v1 / current (packages versioned independently under @atlaskit/) Target platforms: Web (React primary) Audience: Teams building Atlassian product UI (Jira, Confluence, Trello, Bitbucket, etc.)


Color

Color model: Semantic token system (color.*) over a raw palette. Tokens encode property + role + emphasis + state. Themes: Light (default) and Dark — tokens resolve to different palette values per theme Primary brand color: Blue 700 (#1868DB) — used for primary actions, selected states, links

Token naming

color.<property>.<role>.<emphasis>.<state>

Examples:
  color.background.brand.bold          → #1868DB (primary button background)
  color.background.brand.bold.hovered  → #1558BC
  color.text                           → #292A2E (default text)
  color.text.subtle                    → #505258
  color.text.subtlest                  → #6B6E76
  color.text.disabled                  → rgba(8, 15, 33, 0.29)
  color.text.inverse                   → #FFFFFF (text on bold backgrounds)
  color.text.danger                    → #AE2E24
  color.text.warning                   → #9E4C00
  color.text.success                   → #4C6B1F
  color.text.discovery                 → #803FA5
  color.text.information               → #1558BC
  color.icon.brand                     → #1868DB
  color.border.focused                 → #4688EC
  color.border.input                   → #8C8F97
  elevation.surface                    → #FFFFFF
  elevation.surface.sunken             → #F8F8F8 (recessed surfaces)
  elevation.surface.overlay            → #FFFFFF (modals, popovers)

Color roles

RoleUsed for
neutralDefault UI, secondary buttons, nav elements
brandPrimary actions, Atlassian brand identity
informationIn-progress, informational states
successFavorable outcomes
warningCaution, potential errors
dangerErrors, destructive actions
discoveryNew features, onboarding
accentSemantic-free color labels (lime, red, green, blue, yellow, orange, teal, purple, magenta, gray)
inverseContent on bold-emphasis backgrounds
inputForm field fills

Emphasis levels

Backgrounds have 4 emphasis tiers: subtlestsubtlersubtlebold (highest contrast)

Interaction states

States encoded in token name: .hovered, .pressed. Disabled uses alpha values rather than tint.

Accessibility

WCAG AA target: 4.5:1 for small text, 3:1 for large text and UI components.


Typography

Typeface: Atlassian Sans (product UI), Atlassian Mono (code)

  • Body/Heading: "Atlassian Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Ubuntu, system-ui, sans-serif
  • Code: "Atlassian Mono", ui-monospace, Menlo, 'Segoe UI Mono', Ubuntu Mono, monospace
  • Brand (marketing only): Charlie Display / Charlie Text

Unit system: rem (base 16px)

Type scale

TokenSizeLine-heightWeight
font.heading.xxlarge2rem / 32px2.25rem653
font.heading.xlarge1.75rem / 28px2rem653
font.heading.large1.5rem / 24px1.75rem653
font.heading.medium1.25rem / 20px1.5rem653
font.heading.small1rem / 16px1.25rem653
font.heading.xsmall0.875rem / 14px1.25rem653
font.heading.xxsmall0.75rem / 12px1rem653
font.body.large1rem / 16px1.5rem400
font.body0.875rem / 14px1.25rem400
font.body.small0.75rem / 12px1rem400
font.code0.875em1400

Note: Weight 653 is Atlassian's custom bold tuned for Atlassian Sans.


Spacing

Scale: space.* tokens, rem-based

space.0:    0rem      (0px)
space.025:  0.125rem  (2px)
space.050:  0.25rem   (4px)
space.075:  0.375rem  (6px)
space.100:  0.5rem    (8px)
space.150:  0.75rem   (12px)
space.200:  1rem      (16px)
space.250:  1.25rem   (20px)
space.300:  1.5rem    (24px)
space.400:  2rem      (32px)
space.500:  2.5rem    (40px)
space.600:  3rem      (48px)
space.800:  4rem      (64px)
space.1000: 5rem      (80px)

Negative spacing: space.negative.025 through space.negative.400.


Shape (Border Radius)

Scale: radius.* tokens

radius.xsmall:  0.125rem / 2px
radius.small:   0.25rem  / 4px
radius.medium:  0.375rem / 6px
radius.large:   0.5rem   / 8px
radius.xlarge:  0.75rem  / 12px
radius.xxlarge: 1rem     / 16px
radius.full:    624.9375rem (pill)
radius.tile:    25% (avatar tiles)

Elevation

Elevation is expressed through surface background tokens and shadow tokens (not opacity-based):

elevation.surface:           #FFFFFF  (default page)
elevation.surface.sunken:    #F8F8F8  (recessed areas)
elevation.surface.raised:    #FFFFFF  (cards, with shadow)
elevation.surface.overlay:   #FFFFFF  (modals, dropdowns, with shadow)

elevation.shadow.raised:   0px 1px 1px rgba(30,31,33,0.25), 0px 0px 1px rgba(30,31,33,0.31)
elevation.shadow.overlay:  0px 8px 12px rgba(30,31,33,0.15), 0px 0px 1px rgba(30,31,33,0.31)

Token Architecture

Single tier: All-semantic, no explicit primitive tier exposed to consumers.

Tokens reference internal palette primitives that are not meant for direct use. Consumer-facing tokens are all role-based and follow the dot-path naming convention.

Token package: @atlaskit/tokens CSS custom property prefix: --ds-* JavaScript API: token('color.background.brand.bold')


Installation

yarn add @atlaskit/tokens
yarn add @atlaskit/primitives
yarn add @atlaskit/button @atlaskit/heading  # per component
import { setGlobalTheme } from '@atlaskit/tokens';
setGlobalTheme({ colorMode: 'light' });  // or 'dark', 'auto'
import { Box, Stack } from '@atlaskit/primitives';
import { token } from '@atlaskit/tokens';

function MyComponent() {
  return (
    <Box
      backgroundColor="elevation.surface.raised"
      padding="space.300"
    >
      content
    </Box>
  );
}

Build target: React 16.8+, Node.js 18+, Webpack/Vite/etc.