--- system: atlassian category: implementation topic: getting-started content_type: implementation status: latest version_label: "v1 (current)" retrieved: 2026-05-12 source_url: https://atlassian.design/get-started tags: [getting-started, installation, atlaskit, tokens, react, primitives] --- # Atlassian Design System — Getting Started ## Overview The Atlassian Design System is implemented through **Atlaskit** — a collection of packages providing components, design tokens, icons, and utilities for building Atlassian product interfaces. All packages are published to npm under the `@atlaskit/` scope. The repository source is available on Bitbucket: `bitbucket.org/atlassian/atlassian-frontend-mirror`. --- ## Core Packages | Package | Purpose | |---|---| | `@atlaskit/tokens` | Design tokens (CSS custom properties, JS constants) | | `@atlaskit/primitives` | Layout and composition primitives (Box, Stack, Inline, Flex, Grid) | | `@atlaskit/heading` | Heading component with correct token application | | `@atlaskit/button` | Button component variants | | `@atlaskit/icon` | Icon components | | `@atlaskit/theme` | Global theme setup and theming utilities | --- ## Installation Install the tokens package first — all other components depend on it: ```bash yarn add @atlaskit/tokens ``` Install individual component packages as needed: ```bash yarn add @atlaskit/primitives yarn add @atlaskit/button yarn add @atlaskit/heading ``` --- ## Setting Up Tokens Tokens are applied via a theme stylesheet that sets CSS custom properties (`--ds-*`). Include the light theme to activate tokens: ```html ``` Or apply programmatically in React: ```tsx import { setGlobalTheme } from '@atlaskit/tokens'; // Apply light theme (default) setGlobalTheme({ colorMode: 'light' }); // Apply dark theme setGlobalTheme({ colorMode: 'dark' }); // Auto-detect from system preference setGlobalTheme({ colorMode: 'auto' }); ``` --- ## Using Tokens in Code The `token()` function provides type-safe access to design token values: ```tsx import { token } from '@atlaskit/tokens'; const buttonStyle = { background: token('color.background.brand.bold'), color: token('color.text.inverse'), borderRadius: token('radius.medium'), padding: `${token('space.100')} ${token('space.200')}`, }; ``` A Babel plugin transforms `token()` calls into CSS variable references at build time: ```bash yarn add --dev @atlaskit/tokens/babel-plugin ``` --- ## Using Primitives The `@atlaskit/primitives` package provides layout components that consume spacing and color tokens directly: ```tsx import { Box, Stack, Inline } from '@atlaskit/primitives'; function Card() { return ( Card title Card content ); } ``` --- ## Build Requirements - **React** 16.8+ (hooks required) - **Node.js** 18+ - **Bundler**: Webpack, Vite, or similar (SSR supported) - **Babel** (optional, for `token()` transform) No specific CSS preprocessor is required — tokens are available as CSS custom properties. --- ## Resources - [Atlaskit component library](https://atlassian.design/components) - [Design token reference](https://atlassian.design/components/tokens/all-tokens) - [Source code (Bitbucket)](https://bitbucket.org/atlassian/atlassian-frontend-mirror)