Design tokens

Design tokens are the single source of truth to name and store design decisions.

Neutral selected-state tokens

When the platform-dst-tokens-finesse feature flag is enabled, color tokens for selected states use neutral colors instead of blue.

20.1.0

Minor Changes

  • 5ba2e4b714c03, (opens new window) - Adds tab text color and neutral underline opacity transitions, plus directional selected-indicator motion behind the platform-dst-motion-uplift-tab feature gate.

20.0.0

Major Changes

  • 0c7c7be927bde, (opens new window) - Remove deprecated Volt re-export shims from public package entry points. Consumers should import from the replacement subpaths or implementation entry points instead.

Patch Changes

  • Updated dependencies

19.0.0

Major Changes

  • 7470fe5b0b5e7, (opens new window) - Remove motion.input.hovered and motion.input.focused in favor of motion.input. Consumers using token('motion.input.hovered') or token('motion.input.focused') must update to token('motion.input'). Use motion.input for input hover, focus, and error state transitions.

18.3.0

Minor Changes

  • 7356d483a3b72, (opens new window) - Add a shared text color transition and directional indicator motion tokens for Tabs, and correct slide-out keyframe names to match their distances.

18.2.1

Patch Changes

  • e9115c37cd99c, (opens new window) - Improve static theme loading for server-rendered applications. When platform-static-theme-loading is enabled with React 19 streaming SSR, ThemeProvider streams the CSS required by the active standard themes and finesse overrides before the themed subtree. During hydration, it reuses the server-rendered CSS before hoisting styles to the document head, avoiding a flash of unthemed content and hydration mismatches. React 18 continues to use the existing no-inline-CSS fallback.

    Expose the Tokens theme preference resolvers used to select the standard and finesse override theme styles.

18.2.0

Minor Changes

  • 78264aeafd321, (opens new window) - Add reusable grid-column enter and exit keyframe tokens and update the motion.label animations. Updated consumers apply the new motion behind platform-dst-motion-uplift-labels.

18.1.0

Minor Changes

18.0.0

Major Changes

  • 20b3e525959eb, (opens new window) - The shape theme is now enabled by default and is no longer behind a feature gate. The ThemeState type now requires a value for the shape property to be provided.

Minor Changes

17.0.1

Patch Changes

  • c7333edc6dfa2, (opens new window) - Align panel content motion token timing and easing with the design specification by removing the built-in enter delay. Panel open applies its 100ms content-enter delay separately, while panel content replacement starts the enter motion after the preceding 50ms exit motion completes.

17.0.0

Major Changes

  • 98fa516d85430, (opens new window) - The shape theme is now enabled by default and is no longer behind a feature gate. The ThemeState type now requires a value for the shape property to be provided.

16.12.0

Minor Changes

  • 73b74955b8418, (opens new window) - Added color.border.input.search for search input borders. Navigation System Search uses the new token when platform-dst-tokens-finesse is enabled; the existing border is unchanged when the gate is disabled.

16.11.3

Patch Changes

16.11.2

Patch Changes

  • 7d49f4cfcd044, (opens new window) - Adds dedicated color and smaller-heading typography override themes behind platform-dst-tokens-finesse, including softer neutral subtle interaction states, while preserving the existing future themes.

16.11.1

Patch Changes

16.11.0

Minor Changes

  • 1646c59e857d9, (opens new window) - Add granular subpath exports ./utils/get-css-custom-property, ./utils/get-fully-qualified-token-id, and ./utils/get-token-id, giving Volt Stage-1 clean, non-deprecated homes for the getCSSCustomProperty, getFullyQualifiedTokenId, and getTokenId values previously reachable only via the @deprecated @atlaskit/tokens/token-ids re-export shim. The shim's @deprecated messages are updated to point at the new clean subpaths (they previously pointed back at the deprecated token-ids surface). Removal of the shim is tracked by VOLTC-139.

16.10.0

Minor Changes

Patch Changes

  • Updated dependencies

16.9.0

Minor Changes

  • e3de502bac0ff, (opens new window) - The following legacy exports are deprecated and will be removed in a future release. Replace each import with its dedicated entry point.

    Old importReplacement
    import { token } from '@atlaskit/tokens';import { token } from '@atlaskit/tokens/token';
    import { token } from '@atlaskit/tokens/get-token';import { token } from '@atlaskit/tokens/token';
    import { light } from '@atlaskit/tokens/tokens-raw';import light from '@atlaskit/tokens/atlassian-light';
    import { dark } from '@atlaskit/tokens/tokens-raw';import dark from '@atlaskit/tokens/atlassian-dark';
    import { spacing } from '@atlaskit/tokens/tokens-raw';import spacing from '@atlaskit/tokens/atlassian-spacing';
    import { typography } from '@atlaskit/tokens/tokens-raw';import typography from '@atlaskit/tokens/atlassian-typography';
    import { shape } from '@atlaskit/tokens/tokens-raw';import shape from '@atlaskit/tokens/atlassian-shape';
    import { motion } from '@atlaskit/tokens/tokens-raw';import motion from '@atlaskit/tokens/atlassian-motion';
    import tokens from '@atlaskit/tokens/palettes-raw';import tokens from '@atlaskit/tokens/palette';
    import { typographyPalette } from '@atlaskit/tokens/palettes-raw';import typographyPalette from '@atlaskit/tokens/typography-palette';
    import { themeStringToObject } from '@atlaskit/tokens/theme-state-transformer';import { themeStringToObject } from '@atlaskit/tokens/theme-string-to-object';
    import { themeObjectToString } from '@atlaskit/tokens/theme-state-transformer';import { themeObjectToString } from '@atlaskit/tokens/theme-object-to-string';
    import { themeColorModes, type ThemeColorModes } from '@atlaskit/tokens/theme-config';import { themeColorModes, type ThemeColorModes } from '@atlaskit/tokens/theme-color-modes';
    import { themeIds, type ThemeIds } from '@atlaskit/tokens/theme-config';import { themeIds, type ThemeIds } from '@atlaskit/tokens/theme-ids';
    import { themeStateDefaults } from '@atlaskit/tokens/theme-config';import { themeStateDefaults } from '@atlaskit/tokens/theme-state-defaults';
    import { UNSAFE_loadCustomThemeStyles } from '@atlaskit/tokens/custom-themes';import { UNSAFE_loadCustomThemeStyles } from '@atlaskit/tokens/unsafe-load-custom-theme-styles';

16.8.1

Patch Changes

  • 906386bf1d4fa, (opens new window) - [ux] Update motion token curves for sidenav exit and panel content exit. motion.sidenav.exit.left and motion.sidenav.exit.right now use EaseBoldOut (cubic-bezier(0, 0.4, 0, 1)) to match their enter counterparts, and motion.panel.content.exit now uses EasePracticalIn (cubic-bezier(0.6, 0, 0.8, 0.6)).

16.8.0

Minor Changes

  • d82e6f76528ab, (opens new window) - Add direct subpath package exports as part of the linking-platform, search, media, and design-system barrel-removal (de-barrel) migration.

    These packages now expose their individual modules via explicit package.json exports subpaths so that consumers can import directly from the leaf module (e.g. @atlaskit/pkg/thing) instead of the package barrel/index. This adds new public entry points without changing or removing any existing exports, so it is a backwards-compatible additive change.

    No runtime behaviour changes; this is an API-surface (entry-point) addition to support tree-shaking and to unblock removal of the barrel index files.

16.7.0

Minor Changes

  • 0195cea826a48, (opens new window) - Use directional motion tokens for RTL-aware panel slide animations. Adds new motion.panel.content.enter and motion.panel.content.exit motion tokens, applied to the Panel to soften the content when opening and closing.

16.6.0

Minor Changes

  • ed721ba4263f4, (opens new window) - Added motion.panel.enter.left, motion.panel.enter.right, motion.panel.exit.left and motion.panel.exit.right tokens for direction-aware Panel slide transitions. These replace motion.panel.enter and motion.panel.exit, which remain available.

16.5.0

Minor Changes

  • 160059b7df6cc, (opens new window) - Add motion tokens for label elements: motion.label.enter and motion.label.exit (used by the tag component). Also adds two new motion keyframes to the palette: ScaleXIn80to100 and ScaleXOut100to0 for horizontal collapse/expand animations.

16.4.1

Patch Changes

  • 77c80a1010e70, (opens new window) - Include border-color in button motion transitions and apply the motion to interactive lozenge dropdown triggers behind the button motion feature flag.

16.4.0

Minor Changes

  • ae67b39dceca0, (opens new window) - Added motion.sidenav.enter.left, motion.sidenav.enter.right, motion.sidenav.exit.left and motion.sidenav.exit.right tokens for Side Nav slide transitions.

16.3.0

Minor Changes

  • 2a6fe72f2d5f2, (opens new window) - Add alpha-aware color palette tokens for added and removed code diff lines.

    The existing color.background.code.added.line and color.background.code.removed.line semantic tokens now resolve to alpha-channel values in light, dark, and increased-contrast themes so code diff lines retain their intended transparency.

16.2.0

Minor Changes

  • b1453699ad8be, (opens new window) - Add semantic code syntax tokens:

    • color.background.code.default
    • color.background.code.gutter
    • color.background.code.highlight
    • color.background.code.added.line
    • color.background.code.added.highlight
    • color.background.code.removed.line
    • color.background.code.removed.highlight
    • color.border.code
    • color.text.code.default
    • color.text.code.comments
    • color.text.code.operators
    • color.text.code.keywords
    • color.text.code.strings
    • color.text.code.numbers
    • color.text.code.functions
    • color.text.code.tags
    • color.text.code.accent.1
    • color.text.code.accent.2
    • color.text.code.gutter
    import { token } from '@atlaskit/tokens'; const keywordColor = token('color.text.code.keywords', '#AE2E24'); // Or via CSS variable: var(--ds-text-code-keywords)

    Update BackgroundColorToken to support the new code background tokens.

Unreleased

Minor Changes

  • Add alpha-aware code diff line palette tokens: color.palette.Green200A40, color.palette.Green900A70, color.palette.Red200A40, and color.palette.Red900A70.

  • Update color.background.code.added.line and color.background.code.removed.line to use transparent values across light, dark, and increased-contrast themes.

  • Add semantic code syntax tokens:

    • color.background.code.default
    • color.background.code.gutter
    • color.background.code.highlight
    • color.background.code.added.line
    • color.background.code.added.highlight
    • color.background.code.removed.line
    • color.background.code.removed.highlight
    • color.border.code
    • color.text.code.default
    • color.text.code.comments
    • color.text.code.operators
    • color.text.code.keywords
    • color.text.code.strings
    • color.text.code.numbers
    • color.text.code.functions
    • color.text.code.tags
    • color.text.code.accent.1
    • color.text.code.accent.2
    • color.text.code.gutter

16.1.0

Minor Changes

  • cad86b0c0e613, (opens new window) - Add optional fill property to motion tokens supporting 'forwards' and 'backwards' animation fill modes. Adds AnimationFillModeForwards and AnimationFillModeBackwards base palette tokens, extends MotionPaletteToken and MotionScaleTokenSchema, and updates the animation builder to include fill-mode in generated CSS animation shorthands.

16.0.0

Major Changes

  • ecc5823dc898c, (opens new window) - ## Breaking change: barrel file exports removed from @atlaskit/tokens

    The main entry point (@atlaskit/tokens) now only exports the token function. All other named exports have been moved to dedicated sub-path entry-points to reduce bundle size, improve build times, and minimise the package's overall footprint.

    Why we're doing this

    Large barrel files (a single index that re-exports everything) force bundlers to load the entire package even when only a small subset is used. By splitting exports into individual entry-points, consumers can import only what they need, leading to:

    • Faster build and typecheck times
    • Smaller production bundles
    • Clearer dependency boundaries

    What's changed

    Previously you could import anything from the root:

    import { token, getTokenValue, setGlobalTheme, useThemeObserver, ThemeState, COLOR_MODE_ATTRIBUTE, } from '@atlaskit/tokens';

    Now only token remains in the root. Everything else must be imported from its own entry-point:

    import { token } from '@atlaskit/tokens'; import { getTokenValue } from '@atlaskit/tokens/get-token-value'; import { setGlobalTheme } from '@atlaskit/tokens/set-global-theme'; import { useThemeObserver } from '@atlaskit/tokens/use-theme-observer'; import type { ThemeState } from '@atlaskit/tokens/theme-config'; import { COLOR_MODE_ATTRIBUTE } from '@atlaskit/tokens/constants';

    Full entry-point reference

    Export(s)New import path
    token@atlaskit/tokens (unchanged)
    getTokenValue@atlaskit/tokens/get-token-value
    setGlobalTheme@atlaskit/tokens/set-global-theme
    enableGlobalTheme@atlaskit/tokens/enable-global-theme
    getThemeStyles@atlaskit/tokens/get-theme-styles
    getThemeHtmlAttrs@atlaskit/tokens/get-theme-html-attrs
    getSSRAutoScript@atlaskit/tokens/get-ssr-auto-script
    useThemeObserver@atlaskit/tokens/use-theme-observer
    ThemeMutationObserver@atlaskit/tokens/theme-mutation-observer
    getGlobalTheme@atlaskit/tokens/get-global-theme
    themeStringToObject, themeObjectToString@atlaskit/tokens/theme-state-transformer
    themeConfig, ThemeColorModes, ThemeContrastModes, Themes, ThemeFileNames, ThemeIds, ThemeOptionsSchema, ThemeState, ActiveThemeState@atlaskit/tokens/theme-config
    themeImportMap@atlaskit/tokens/artifacts/theme-import-map
    CSSToken, CSSTokenMap@atlaskit/tokens/token-names
    ActiveTokens@atlaskit/tokens/artifacts/types
    FontFamilyToken, FontWeightToken, Groups, OpacityToken, PaintToken, RawToken, ShadowToken, SpacingToken, ShapeToken, TypographyToken, MotionToken@atlaskit/tokens/types
    COLOR_MODE_ATTRIBUTE, CURRENT_SURFACE_CSS_VAR, SUBTREE_THEME_ATTRIBUTE, THEME_DATA_ATTRIBUTE@atlaskit/tokens/constants

    Automated migration with codemod

    A codemod is available to automatically update your imports. Run it with:

    npx @hypermod/cli --packages @atlaskit/tokens@<version> --preset migrate-to-entry-points <path-to-your-source>

    For example, to migrate all files in your src/ directory:

    npx @hypermod/cli --packages @atlaskit/tokens@<version> --preset migrate-to-entry-points ./src

    The codemod will:

    • Leave import { token } from '@atlaskit/tokens' untouched
    • Split all other imports out to their appropriate entry-points
    • Preserve type-only imports (import type) and per-specifier type modifiers
    • Preserve import aliases (e.g. import { getTokenValue as getValue })
    • Group multiple imports that share the same entry-point into a single declaration

15.8.0

Minor Changes

15.7.0

Minor Changes

15.6.1

Patch Changes

15.6.0

Minor Changes

  • b00a6d183e0c4, (opens new window) - [ux] Add text-decoration-color to the motion.listitem.* transition tokens (hovered, pressed, selected) so list-item motion can animate underlines, and consume motion.listitem.* in Breadcrumbs behind the platform-dst-motion-uplift-list-item feature gate: interactive breadcrumb items (steps, ellipsis, and the current-item link) now animate their underline from transparent to coloured on hover/press. Rendering is unchanged when the gate is off.

15.5.0

Minor Changes

15.4.0

Minor Changes

  • ff40331e58db6, (opens new window) - Add motion.listitem.hovered (50ms), motion.listitem.pressed (100ms), and motion.listitem.selected (100ms) motion tokens for list-item interaction states. All use the ease practical out curve and transition background-color, border-color, and color.

15.3.1

Patch Changes

  • 48454686cbc98, (opens new window) - Updated the elevation.surface.container token value to use an alpha neutral so it blends with the surface beneath it. It now maps to Neutral100A in the light theme and DarkNeutral100A in the dark theme.

15.3.0

Minor Changes

  • 8f588905041f4, (opens new window) - Add two new interaction-state tokens for the neutral container surface: elevation.surface.container.hovered and elevation.surface.container.pressed. Use these for hovered and pressed states of elements built on elevation.surface.container.

15.2.0

Minor Changes

  • 65bef1e41e5fd, (opens new window) - Add motion.button.hovered and motion.button.pressed motion tokens, and apply button background motion uplift behind the platform-dst-motion-uplift-button feature gate.

15.1.0

Minor Changes

  • cd097a2111788, (opens new window) - Republish packages depending on @atlaskit/react-compiler-gating so their published dependency reference is updated to the renamed @atlaskit/react-compiler-gating scope.

    The earlier rename of @atlassian/react-compiler-gating to @atlaskit/react-compiler-gating only bumped the renamed package itself, so dependent packages were never republished and their published versions still referenced the old @atlassian/react-compiler-gating name, which is not available in the public npm registry. This minor bump republishes all affected packages with the corrected dependency.

15.0.0

Major Changes

Patch Changes

14.0.0

Major Changes

  • f2dc9097319f0, (opens new window) - ### Dropped support for legacy Typescript 4 types. Typescript 5 is now the new minimum.

    Removes the typesVersions property and dist/types-ts4.5 directory from the dist.

    Types are now exclusively via the "types": "dist/types/index.d.ts" property.

    - "typesVersions": { - ">=4.5 <4.9": { - "*": [ - "dist/types-ts4.5/*", - "dist/types-ts4.5/index.d.ts" - ] - } - },

Patch Changes

  • Updated dependencies

13.4.0

Minor Changes

  • 28d6bdf2c3456, (opens new window) - Add Rovo elevation surface overlay tokens for default, hovered, and pressed states. These tokens provide dedicated Rovo overlay surface backgrounds across light, dark, and increased-contrast themes.

13.3.1

Patch Changes

  • e5eeed279b893, (opens new window) - Changed color.border.accent.gray.subtle in the light theme to map to Neutral400 (#B7B9BE) instead of Neutral300 (#DDDEE1). The previous value was too light to read as a distinct border — Neutral400 provides the visual prominence expected from a decorative-border token while staying noticeably softer than the default color.border.accent.gray (Neutral600). Dark theme remains unchanged (DarkNeutral400).

13.3.0

Minor Changes

  • 93eb21bd8fb25, (opens new window) - Add Rovo color tokens for brand surfaces and supporting border/icon accents, including generated token artifacts, CSS/token type metadata, and category-aware usage guidelines for downstream docs and AI tooling.

13.2.0

Minor Changes

  • 71fee8de88abc, (opens new window) - Added new design tokens to support the Lozenge / Tag / Badge visual uplift:

    15 new color.border.*.subtle tokens for decorative borders that do not need to meet 3:1 contrast requirements:

    • 5 semantic: danger, warning, success, discovery, information (no neutral.subtle — the default color.border already serves this case)
    • 10 accent: red, orange, yellow, lime, green, teal, blue, purple, magenta, gray
    • Light theme maps to Color300; dark theme maps to Color800 (DarkNeutral400 for accent.gray)

    5 new color.background.*.subtle tokens for non-interactive elements (e.g. semantic badges, status pills, callout chips):

    • danger, success, discovery, information — light theme maps to Color300, dark theme maps to Color800
    • warning — light theme maps to Orange250, dark theme maps to Orange850 (different stops because Orange300 is already used by warning.bold)

    Note: color.background.*.subtle is intentionally non-interactive only — no .hovered or .pressed variants are provided. For interactive surfaces, use color.background.<semantic>.bold or color.background.<semantic>.subtler instead.

13.1.1

Patch Changes

13.1.0

Minor Changes

  • 6ae1bed1867c5, (opens new window) - [ux] Updated color.background.disabled to use a stronger neutral palette value (Neutral200A in light themes, DarkNeutral300A in dark themes).

13.0.4

Patch Changes

13.0.3

Patch Changes

  • f63b64df22780, (opens new window) - Allow 0 and '0' as valid values for the SizeIntrinsic type. This means width, height, minWidth, minHeight, maxWidth, maxHeight, and related block/inline size properties now accept bare 0 without requiring '0px'. This is consistent with how CSS works (bare 0 is valid without a unit) and matches the existing behaviour of Space, BorderWidth, BorderRadius, and Opacity types.

13.0.2

Patch Changes

13.0.1

Patch Changes

13.0.0

Major Changes

  • 72017386a0120, (opens new window) - Remove the deprecated font.body.UNSAFE_small token. This token was deprecated in 10.1.0 and has been replaced by font.body.small. Please migrate any remaining usages to font.body.small.

12.0.0

Major Changes

  • de60749da093b, (opens new window) - This releases introduces a new set of experimental semantic base tokens for Motion.

    Added

    • motion.duration.instant

    • motion.duration.xxshort

    • motion.duration.xshort

    • motion.duration.short

    • motion.duration.medium

    • motion.duration.long

    • motion.duration.xlong

    • motion.duration.xxlong

    • motion.easing.in.practical

    • motion.easing.inout.bold

    • motion.easing.out.practical

    • motion.easing.out.bold

    • motion.easing.spring

    • motion.keyframe.fade.in

    • motion.keyframe.fade.out

    • motion.keyframe.scale.in.medium

    • motion.keyframe.scale.in.small

    • motion.keyframe.scale.out.medium

    • motion.keyframe.scale.out.small

    • motion.keyframe.slide.in.bottom.short

    • motion.keyframe.slide.in.left.half

    • motion.keyframe.slide.in.left.short

    • motion.keyframe.slide.in.right.short

    • motion.keyframe.slide.in.top.short

    • motion.keyframe.slide.out.bottom.short

    • motion.keyframe.slide.out.left.half

    • motion.keyframe.slide.out.left.short

    • motion.keyframe.slide.out.right.short

    • motion.keyframe.slide.out.top.short

    Added and removed experimental semantic tokens for Motion.

    Added

    • motion.blanket.enter
    • motion.blanket.exit

    Removed

    • motion.content.enter.short
    • motion.content.enter.medium
    • motion.content.enter.long
    • motion.content.exit.short
    • motion.content.exit.medium
    • motion.content.exit.long

Patch Changes

  • Updated dependencies

11.4.3

Patch Changes

11.4.2

Patch Changes

11.4.1

Patch Changes

  • 6bce18279cb35, (opens new window) - Prevents a bundling/runtime failure for themeStateDefaults shape and motion defaults by defining them as module-scope functions instead of inline object methods, so react-magnetic-di’s fg() rewrite uses a valid di(host, fg) host and no longer references undefined motion / shape identifiers.

11.4.0

Minor Changes

11.3.1

Patch Changes

11.3.0

Minor Changes

11.2.0

Minor Changes

11.1.1

Patch Changes

  • Updated dependencies

11.1.0

Minor Changes

11.0.2

Patch Changes

11.0.1

Patch Changes

11.0.0

Major Changes

  • 2abd451d54eb2, (opens new window) - Removes atlassian-legacy-light/dark color themes from the tokens package. These themes are unused and non-functional in terms of color contrast. As a result some primitive components may recieve modern fallback color values in some scenarios, however these are inline with the latest token themes.

10.1.0

Minor Changes

10.0.1

Patch Changes

10.0.0

Major Changes

  • f111803c4e253, (opens new window) - Removed the deprecated typography theme ids (typography-adg3, typography-modernized and typography-refreshed) leaving only the typography theme id that is enabled by default. Automatic fallbacks now use refreshed typography values.

9.1.2

Patch Changes

9.1.1

Patch Changes

9.1.0

Minor Changes

9.0.0

Major Changes

  • 55546332d4ef4, (opens new window) - Restricted borderRadius xcss and cssMap types to only accept tokens, 0, and "inherit". Restricted borderWidth types to only accept tokens and 0. Previously any string was allowed, this is no longer the case and will throw a type error.

8.6.1

Patch Changes

8.6.0

Minor Changes

8.5.0

Minor Changes

  • ea92d81a4f951, (opens new window) - Fixed the dark theme values for tokens bellow due to wrong base token mapping:
    • color.background.accent.green.subtlest.hovered
    • color.background.accent.lime.subtlest.hovered
    • color.background.accent.purple.subtlest.hovered
    • color.background.accent.teal.subtlest.hovered
    • color.background.accent.magenta.subtlest.hovered
    • color.background.accent.orange.subtlest.hovered
    • color.background.accent.yellow.subtlest.hovered

8.4.1

Patch Changes

8.4.0

Minor Changes

8.3.0

Minor Changes

  • 644c0f593ae62, (opens new window) - Adds new semantic background and text tokens.

    Background Tokens (background.[semantics].subtler.*):

    Added subtler variants for semantic background colors with default, hovered, and pressed states:

    • background.success.subtler.[default|hovered|pressed]
    • background.warning.subtler.[default|hovered|pressed]
    • background.danger.subtler.[default|hovered|pressed]
    • background.information.subtler.[default|hovered|pressed]
    • background.discovery.subtler.[default|hovered|pressed]

    Text Tokens (text.[semantics].bolder):

    Added bolder variants for semantic text colors to ensure proper contrast on colored backgrounds:

    • text.success.bolder
    • text.warning.bolder
    • text.danger.bolder
    • text.information.bolder
    • text.discovery.bolder

8.2.0

Minor Changes

  • 5f77efb81d0d6, (opens new window) - Fixed the dark theme values for tokens above due to wrong base token mapping:
    • color.background.accent.green.subtlest
    • color.background.accent.lime.subtlest
    • color.background.accent.purple.subtlest
    • color.background.accent.teal.subtlest
    • color.background.accent.magenta.subtlest
    • color.background.accent.orange.subtlest
    • color.background.accent.yellow.subtlest

Patch Changes

  • Updated dependencies

8.1.0

Minor Changes

8.0.0

Major Changes

  • 1e31925550257, (opens new window) - [ux] We have removed the platform-component-visual-refresh feature flag. As a result:

    • Default Themes Changed light-brand-refresh and dark-brand-refresh are now the default themes for light and dark. If you were using on the light-brand-refresh or dark-brand-refresh themes in setGlobalTheme, you'll need to update to the default themes.
    - setGlobalTheme('light-brand-refresh'); + setGlobalTheme('light'); - setGlobalTheme('dark-brand-refresh'); + setGlobalTheme('dark');
    • Accent Tokens Updated Pressed/hovered background tokens for accent colors (e.g., background.accent.blue.subtle.pressed) now use new 250/850 base tokens to improve accessibility. This will cause visible color changes in light and dark themes. Checkout the new color palette here, (opens new window).

    • Visual Regression (VR) Impact If you're using these tokens in your components, expect widespread snapshot updates. This change may affect VR snapshots across apps and packages.

7.1.1

Patch Changes

7.1.0

Minor Changes

  • c4860e82c9f41, (opens new window) - Introduced new color stops across our base color ramps, namely 250 and 850, to support better hover/pressed state contrast. New 250/850 base tokens are:
    • Blue250
    • Blue850
    • Magenta250
    • Magenta850
    • Yellow250
    • Yellow850
    • Orange250
    • Orange850
    • Lime250
    • Lime850
    • Green250
    • Green850
    • Teal250
    • Teal850
    • Red250
    • Red850
    • Purple250
    • Purple850

7.0.0

Major Changes

  • 75ba0401c1743, (opens new window) - Deleted deprecated shape tokens. Migration guide:

    Old tokenNew token/value
    border.radius.050radius.xsmall
    border.radiusradius.small
    border.radius.100radius.small
    border.radius.200radius.large
    border.radius.300radius.xlarge
    border.radius.40016px
    border.radius.circleradius.full
    border.width.00
    border.width.outlineborder.width.selected or border.width.focused
    border.width.indicator3px

    The babel plugin has also been updated to skip new radius tokens in shouldForceAutoFallback mode (previously only the deprecated border.radius.x tokens were skipped).

6.5.0

Minor Changes

6.4.3

Patch Changes

6.4.2

Patch Changes

6.4.1

Patch Changes

6.4.0

Minor Changes

  • 25ac893657f27, (opens new window) - Extending setGlobalTheme to accept a function as an argument to update theme properties without reinitializing defaults. For example this can be used when switching color mode:

    setGlobalTheme((themeState) => ({ ...themeState, colorMode: themeState.colorMode === 'light' ? 'dark' : 'light', }));

6.3.3

Patch Changes

6.3.2

Patch Changes

6.3.1

Patch Changes

6.3.0

Minor Changes

6.2.0

Minor Changes

6.1.4

Patch Changes

6.1.3

Patch Changes

6.1.2

Patch Changes

6.1.1

Patch Changes

6.1.0

Minor Changes

  • fcd8f46058cd2, (opens new window) - Added new radius and border width tokens. Added new shape themes: shape-rounder and shape-roundest. Note these new themes are experimental and may be deleted without notice. Deprecated old border radius and border width tokens.

6.0.0

Major Changes

5.6.3

Patch Changes

5.6.2

Patch Changes

5.6.1

Patch Changes

  • Updated dependencies

5.6.0

Minor Changes

  • #188275, (opens new window) 3be70f03be763, (opens new window) - Deprecating existing typography theme ids (typography-adg3, typography-modernized and typography-refreshed) in favour of a new typography theme id. Using the new typography theme id enables the latest refreshed typography resulting in no functional change. This new typography theme id is enabled by default behind a feature flag. If testing successful, this change will be made available in a later release.

5.5.0

Minor Changes

5.4.1

Patch Changes

5.4.0

Minor Changes

5.3.0

Minor Changes

5.2.1

Patch Changes

5.2.0

Minor Changes

5.1.0

Minor Changes

5.0.0

Major Changes

  • #164028, (opens new window) fe8647c2f54c6, (opens new window) - The shouldForceAutoFallback option is now set to true by default. Please be aware that upgrading to this major version will cause all explicitly set fallback values (the values in the second argument of token function) in your codebase to be ignored. Instead, these values will be automatically replaced with default values that correspond to the default theme during build time. As a result, the UI may change if certain themes are not yet enabled. If some themes are not ready for this change, you can use the forceAutoFallbackExemptions option to prevent automatic replacement for them during build time. Also, this update might lead to test failures if your tests are designed to verify explicit fallback values. You can explicitly set this value to false if you wish to keep all your current fallback values intact. Read more: https://atlassian.design/tokens/use-tokens-in-code#migration-to-tokens, (opens new window)

4.9.1

Patch Changes

4.9.0

Minor Changes

4.8.2

Patch Changes

4.8.1

Patch Changes

4.8.0

Minor Changes

Patch Changes

  • Updated dependencies

4.7.0

Minor Changes

4.6.0

Minor Changes

4.5.2

Patch Changes

4.5.1

Patch Changes

4.5.0

Minor Changes

4.4.1

Patch Changes

4.4.0

Minor Changes

4.3.2

Patch Changes

4.3.1

Patch Changes

4.3.0

Minor Changes

4.2.0

Minor Changes

4.1.0

Minor Changes

4.0.0

Major Changes

Patch Changes

  • Updated dependencies

3.3.2

Patch Changes

3.3.1

Patch Changes

  • Updated dependencies

3.3.0

Minor Changes

Patch Changes

  • Updated dependencies

3.2.0

Minor Changes

Patch Changes

3.1.0

Minor Changes

3.0.0

Major Changes

  • #102047, (opens new window) 3cc4b295175a6, (opens new window) - Removed deprecated tokens:

    • font.size.X
    • font.lineHeight.X
    • font.letterSpacing.X
    • font.family.sans
    • font.family.monospace

    Typography should be applied via composite tokens, i.e. font.heading.X and font.body.X instead. Use font.family.heading or font.family.body instead of font.family.sans. Use font.family.code instead of font.family.monospace.

2.5.1

Patch Changes

2.5.0

Minor Changes

2.4.3

Patch Changes

2.4.2

Patch Changes

2.4.1

Patch Changes

2.4.0

Minor Changes

  • #169533, (opens new window) 7cee6c17dfdaf, (opens new window) - Expands type coverage for the fontWeight property to include vendor defaults such as 'inherit' 'initial' 'unset'.

    This change does not impact the @atlaskit/tokens API directly, but it does expand type coverage of css properties/tokens used via @atlaskit/css.

Patch Changes

  • Updated dependencies

2.3.0

Minor Changes

2.2.0

Minor Changes

2.1.0

Minor Changes

2.0.5

Patch Changes

2.0.4

Patch Changes

2.0.3

Patch Changes

2.0.2

Patch Changes

  • Updated dependencies

2.0.1

Patch Changes

2.0.0

Major Changes

  • #145551, (opens new window) d477dc32ae480, (opens new window) - Changes the @atlaskit/tokens/babel-plugin's 'shouldUseAutoFallback' configuration to be true by default as this is currently the expectation within a majority of Atlassian's frontend code.

    To opt-out (which likely means you must be using fallbacks manually or can guarantee theming is turned on), you would have config like this in Babel, Webpack, or similar:

    "plugins": [ ["@atlaskit/tokens/babel-plugin", { "shouldUseAutoFallback": false }] ]

Patch Changes

1.61.0

Minor Changes

1.60.0

Minor Changes

  • #138792, (opens new window) 59c6812e1be91, (opens new window) - Update the @atlaskit/css schema to include:
    • border and font shorthand token values
    • Background and color -hovered and -pressed tokens are available in the non-psuedo-states for patterns like <div css={[isHovered && hoveredStyles]} />
    • Adds more commonly used media queries

1.59.1

Patch Changes

1.59.0

Minor Changes

1.58.0

Minor Changes

  • #127511, (opens new window) db30e29344013, (opens new window) - Widening range of react and react-dom peer dependencies from ^16.8.0 || ^17.0.0 || ~18.2.0 to the wider range of ``^16.8.0 || ^17.0.0 || ^18.0.0` (where applicable).

    This change has been done to enable usage of react@18.3 as well as to have a consistent peer dependency range for react and react-dom for /platform packages.

Patch Changes

  • Updated dependencies

1.57.0

Minor Changes

1.56.3

Patch Changes

1.56.2

Patch Changes

1.56.1

Patch Changes

1.56.0

Minor Changes

1.55.0

Minor Changes

1.54.1

Patch Changes

1.54.0

Minor Changes

1.53.2

Patch Changes

1.53.1

Patch Changes

  • Updated dependencies

1.53.0

Minor Changes

1.52.0

Minor Changes

1.51.0

Minor Changes

1.50.0

Minor Changes

1.49.1

Patch Changes

1.49.0

Minor Changes

1.48.0

Minor Changes

1.47.0

Minor Changes

1.46.0

Minor Changes

Patch Changes

1.45.1

Patch Changes

1.45.0

Minor Changes

1.44.1

Patch Changes

1.44.0

Minor Changes

1.43.2

Patch Changes

1.43.1

Patch Changes

1.43.0

Minor Changes

1.42.1

Patch Changes

1.42.0

Minor Changes

1.41.2

Patch Changes

1.41.1

Patch Changes

1.41.0

Minor Changes

1.40.0

Minor Changes

1.39.1

Patch Changes

1.39.0

Minor Changes

1.38.0

Minor Changes

1.37.2

Patch Changes

1.37.1

Patch Changes

1.37.0

Minor Changes

1.36.0

Minor Changes

1.35.0

Minor Changes

1.34.1

Patch Changes

1.34.0

Minor Changes

1.33.0

Minor Changes

1.32.0

Minor Changes

1.31.0

Minor Changes

1.30.0

Minor Changes

1.29.2

Patch Changes

1.29.1

Patch Changes

1.29.0

Minor Changes

Patch Changes

1.28.2

Patch Changes

1.28.1

Patch Changes

1.28.0

Minor Changes

1.27.0

Minor Changes

  • #41516, (opens new window) e6f589d4777, (opens new window) - [ux] This version releases changes that were feature flagged in version 1.25.0; they include minor adjustments to our color palette and design tokens.

    These changes make certain colors more distinguishable, improves the visual appearance of warning and yellow accent backgrounds, and reduces saturation for subtle backgrounds in dark mode.

Palette changes

All saturated palettes
  • Saturation for 1000 shades reduced for all saturated palettes to reduce eye strain when placed against subtle UI in dark mode
Red
  • Saturation reduced on entire scale
  • Hue adjusted to create more separation from orange
Orange
  • Saturation reduced on entire scale
  • Hue adjusted to create more separation from yellow
Lime
  • Saturation for 100 shades reduced
Green
  • Saturation for 100 shades reduced
Teal
  • Hue adjusted to create more separation from green
All palette changes
  • Red100 has changed from #FFEDEB to #ffeceb
  • Red200 has changed from #FFD2CC to #ffd5d2
  • Red300 has changed from #FF9C8F to #fd9891
  • Red400 has changed from #F87462 to #f87168
  • Red500 has changed from #EF5C48 to #f15b50
  • Red600 has changed from #E34935 to #e2483d
  • Red700 has changed from #CA3521 to #c9372c
  • Red800 has changed from #AE2A19 to #ae2e24
  • Red900 has changed from #601E16 to #5d1f1a
  • Red1000 has changed from #4F1C16 to #42221F
  • Orange100 has changed from #FFF4E5 to #fff3eb
  • Orange200 has changed from #FFE2BD to #fedec8
  • Orange300 has changed from #FEC57B to #fec195
  • Orange400 has changed from #FAA53D to #fea362
  • Orange500 has changed from #F18D13 to #f38a3f
  • Orange600 has changed from #D97008 to #e56910
  • Orange700 has changed from #B65C02 to #c25100
  • Orange800 has changed from #974F0C to #A54800
  • Orange900 has changed from #5F3811 to #702e00
  • Orange1000 has changed from #4A2B0F to #38291e
  • Yellow1000 has changed from #3F3102 to #332E1B
  • Lime100 has changed from #EEFBDA to #EFFFD6
  • Lime1000 has changed from #2A3818 to #28311B
  • Green100 has changed from #DFFCF0 to #DCFFF1
  • Green1000 has changed from #143C2B to #1C3329
  • Teal100 has changed from #E3FAFC to #E7F9FF
  • Teal200 has changed from #C1F0F5 to #C6EDFB
  • Teal300 has changed from #8BDBE5 to #9DD9EE
  • Teal400 has changed from #60C6D2 to #6CC3E0
  • Teal500 has changed from #37B4C3 to #42B2D7
  • Teal600 has changed from #1D9AAA to #2898BD
  • Teal700 has changed from #1D7F8C to #227D9B
  • Teal800 has changed from #206B74 to #206A83
  • Teal900 has changed from #1D474C to #164555
  • Teal1000 has changed from #15373B to #1E3137
  • Blue1000 has changed from #092957 to #1C2B41
  • Purple1000 has changed from #2B2451 to #2B273F
  • Magenta1000 has changed from #421F34 to #3D2232

Token changes

Yellow accent backgrounds

Mapped to lighter shades to create differentiation with orange, and increase vibrancy:

  • [Light theme] color.background.yellow.subtle: Yellow400 → Yellow300
  • [Light theme] color.background.accent.yellow.subtle.hovered: Yellow300 → Yellow400
  • [Light theme] color.background.accent.yellow.subtle.pressed: Yellow200 → Yellow500
Bold warning backgrounds

Mapped to lighter shades to increase vibrancy:

  • [Light theme] color.background.warning.bold: Yellow400 → Yellow300
  • [Dark mode]: color.background.warning.bold: Yellow400 → Yellow300
  • [Light theme] color.background.warning.bold.hovered: Yellow500 → Yellow400
  • [Dark mode]: color.background.warning.bold.hovered: Yellow300 → Yellow400
  • [Light theme] color.background.warning.bold.pressed: Yellow600 → Yellow500
  • [Dark mode]: color.background.warning.bold.pressed: Yellow200 → Yellow500
Icon

Mapped red/danger icons to darker shades to create distinction between orange and red icons:

  • [Light theme]: color.icon.accent.red: Red600 → Red700
  • [Dark theme]: color.icon.accent.red: Red500 → Red600
  • [Dark theme]: color.icon.accent.yellow: Yellow500 → Yellow300
  • [Light theme]: color.icon.danger: Red600 → Red700
  • [Dark theme]: color.icon.warning: Yellow500 → Yellow300

1.26.1

Patch Changes

1.26.0

Minor Changes

1.25.2

Patch Changes

1.25.1

Patch Changes

1.25.0

Minor Changes

  • #40253, (opens new window) 6125697f0b4, (opens new window) - We are testing adjustments to our color palette and design tokens behind a feature flag. These changes make certain colors more distinguishable, improves the visual appearance of warning and yellow accent backgrounds, and reduces saturation for subtle backgrounds in dark mode.

    These changes are available behind a feature flag; if this test is successful it will be available in an upcoming minor release.

1.24.0

Minor Changes

1.23.0

Minor Changes

  • #38420, (opens new window) 5a967ac2397, (opens new window) - Adds two new synchronous theme configuration utilities:
    • enableGlobalTheme is a synchronous version of setGlobalTheme that sets data attributes on the page and takes a themeLoader
    • UNSAFE_loadCustomThemeStyles provides a synchronous way to generate and apply custom theme styles to the page. It can be accessed from a new entrypoint, @atlaskit/tokens/custom-themes

1.22.1

Patch Changes

1.22.0

Minor Changes

1.21.1

Patch Changes

1.21.0

Minor Changes

1.20.1

Patch Changes

1.20.0

Minor Changes

1.19.0

Minor Changes

  • #39430, (opens new window) ff1a0d8dcfd, (opens new window) - Introduces 80 new accent interaction tokens:
    • color.background.accent.blue.subtlest.hovered

    • color.background.accent.blue.subtlest.pressed

    • color.background.accent.blue.subtler.hovered

    • color.background.accent.blue.subtler.pressed

    • color.background.accent.blue.subtle.hovered

    • color.background.accent.blue.subtle.pressed

    • color.background.accent.blue.bolder.hovered

    • color.background.accent.blue.bolder.pressed

    • color.background.accent.lime.subtlest.hovered

    • color.background.accent.lime.subtlest.pressed

    • color.background.accent.lime.subtler.hovered

    • color.background.accent.lime.subtler.pressed

    • color.background.accent.lime.subtle.hovered

    • color.background.accent.lime.subtle.pressed

    • color.background.accent.lime.bolder.hovered

    • color.background.accent.lime.bolder.pressed

    • color.background.accent.red.subtlest.hovered

    • color.background.accent.red.subtlest.pressed

    • color.background.accent.red.subtler.hovered

    • color.background.accent.red.subtler.pressed

    • color.background.accent.red.subtle.hovered

    • color.background.accent.red.subtle.pressed

    • color.background.accent.red.bolder.hovered

    • color.background.accent.red.bolder.pressed

    • color.background.accent.orange.subtlest.hovered

    • color.background.accent.orange.subtlest.pressed

    • color.background.accent.orange.subtler.hovered

    • color.background.accent.orange.subtler.pressed

    • color.background.accent.orange.subtle.hovered

    • color.background.accent.orange.subtle.pressed

    • color.background.accent.orange.bolder.hovered

    • color.background.accent.orange.bolder.pressed

    • color.background.accent.yellow.subtlest.hovered

    • color.background.accent.yellow.subtlest.pressed

    • color.background.accent.yellow.subtler.hovered

    • color.background.accent.yellow.subtler.pressed

    • color.background.accent.yellow.subtle.hovered

    • color.background.accent.yellow.subtle.pressed

    • color.background.accent.yellow.bolder.hovered

    • color.background.accent.yellow.bolder.pressed

    • color.background.accent.green.subtlest.hovered

    • color.background.accent.green.subtlest.pressed

    • color.background.accent.green.subtler.hovered

    • color.background.accent.green.subtler.pressed

    • color.background.accent.green.subtle.hovered

    • color.background.accent.green.subtle.pressed

    • color.background.accent.green.bolder.hovered

    • color.background.accent.green.bolder.pressed

    • color.background.accent.teal.subtlest.hovered

    • color.background.accent.teal.subtlest.pressed

    • color.background.accent.teal.subtler.hovered

    • color.background.accent.teal.subtler.pressed

    • color.background.accent.teal.subtle.hovered

    • color.background.accent.teal.subtle.pressed

    • color.background.accent.teal.bolder.hovered

    • color.background.accent.teal.bolder.pressed

    • color.background.accent.purple.subtlest.hovered

    • color.background.accent.purple.subtlest.pressed

    • color.background.accent.purple.subtler.hovered

    • color.background.accent.purple.subtler.pressed

    • color.background.accent.purple.subtle.hovered

    • color.background.accent.purple.subtle.pressed

    • color.background.accent.purple.bolder.hovered

    • color.background.accent.purple.bolder.pressed

    • color.background.accent.magenta.subtlest.hovered

    • color.background.accent.magenta.subtlest.pressed

    • color.background.accent.magenta.subtler.hovered

    • color.background.accent.magenta.subtler.pressed

    • color.background.accent.magenta.subtle.hovered

    • color.background.accent.magenta.subtle.pressed

    • color.background.accent.magenta.bolder.hovered

    • color.background.accent.magenta.bolder.pressed

    • color.background.accent.gray.subtlest.hovered

    • color.background.accent.gray.subtlest.pressed

    • color.background.accent.gray.subtler.hovered

    • color.background.accent.gray.subtler.pressed

    • color.background.accent.gray.subtle.hovered

    • color.background.accent.gray.subtle.pressed

    • color.background.accent.gray.bolder.hovered

    • color.background.accent.gray.bolder.pressed

1.18.0

Minor Changes

1.17.1

Patch Changes

1.17.0

Minor Changes

1.16.0

Minor Changes

  • #37789, (opens new window) 031034da425, (opens new window) - Introduces surface detection through the use of design tokens/CSS variables:
    • The utility.elevation.surface.current design token allows UI to be styled with a color based on a parent element's surface color.
    • The CURRENT_SURFACE_CSS_VAR constant is exported to enable the current surface CSS variable to be set.

1.15.2

Patch Changes

1.15.1

Patch Changes

1.15.0

Minor Changes

1.14.2

Patch Changes

1.14.1

Patch Changes

1.14.0

Minor Changes

1.13.2

Patch Changes

1.13.1

Patch Changes

1.13.0

Minor Changes

  • #36967, (opens new window) bc512702bdc, (opens new window) - Introduces new brand background tokens.

    • color.background.brand.subtlest - Use for the background of elements used to reinforce our brand, but with less emphasis.

    • color.background.brand.subtlest.hovered - Hovered state of color.background.brand.subtlest.

    • color.background.brand.subtlest.pressed - Pressed state of color.background.brand.subtlest.

    • color.background.brand.boldest - Use for the background of elements used to reinforce our brand, that need to stand out a lot.

    • color.background.brand.boldest.hovered - Hovered state of color.background.brand.boldest.

    • color.background.brand.boldest.pressed - Pressed state of color.background.brand.boldest.

    Updates custom color generation system with new brand background tokens.

1.12.0

Minor Changes

  • #36501, (opens new window) beba2779d31, (opens new window) - Add experimental support for custom theming via the UNSAFE_themeOptions field in themeState.

    This option is supported in the following functions:

    • setGlobalTheme(): optionally generates and loads customized themes based on the options provided, and sets the data-custom-theme attribute on page's HTML tag.
    • getThemeStyles(): returns additional style objects for constructing custom theme <style> tags.
    • getThemeHtmlAttrs(): now supports the data-custom-theme attribute.

    Custom themes are generated at runtime based on the options provided. The theme generation logic is lazy-loaded only when UNSAFE_themeOptions is set.

1.11.3

Patch Changes

1.11.2

Patch Changes

1.11.1

Patch Changes

1.11.0

Minor Changes

1.10.2

Patch Changes

1.10.1

Patch Changes

1.10.0

Minor Changes

1.9.1

Patch Changes

1.9.0

Minor Changes

1.8.1

Patch Changes

1.8.0

Minor Changes

  • #35526, (opens new window) e200f2340ed, (opens new window) - Introduces new lime token set.
    • color.text.accent.lime - Use for lime text on subtlest and subtler lime accent backgrounds when there is no meaning tied to the color.
    • color.text.accent.lime.bolder - Use for lime text on subtle lime accent backgrounds when there is no meaning tied to the color.
    • color.background.accent.lime.subtlest - Use for lime backgrounds when there is no meaning tied to the color. Reserved for when you only want a hint of color.
    • color.background.accent.lime.subtler - Use for lime backgrounds when there is no meaning tied to the color, such as colored tags.
    • color.background.accent.lime.subtle - Use for vibrant lime backgrounds when there is no meaning tied to the color, such as colored tags.
    • color.background.accent.lime.bolder - Use for lime backgrounds when there is no meaning tied to the color, and the background needs to pass min 3:1 contrast requirements.
    • color.icon.accent.lime - Use for lime icons on non-bold backgrounds when there is no meaning tied to the color, such as file type icons.
    • color.border.accent.lime - Use for lime borders on non-bold backgrounds when there is no meaning tied to the color.
    • color.chart.lime - For data visualisation only.
    • color.chart.lime.hovered - Hovered state of color.chart.lime
    • color.chart.lime.bolder - For data visualisation only.
    • color.chart.lime.bolder.hovered - Hovered state of color.chart.lime.bolder
    • color.chart.lime.boldest - For data visualisation only.
    • color.chart.lime.boldest.hovered - Hovered state of color.chart.lime.boldest

1.7.0

Minor Changes

1.6.0

Minor Changes

  • #35385, (opens new window) 191bbd4a3c2, (opens new window) - Public changes to types for setGlobalTheme to match API - previously themes could be incorrectly applied ie the light theme could theoretically take the space theme as a valid value. No behavior changes. Internally the shape theme has been moved from experimental status. These tokens are now active however they remain disabled by default.

Patch Changes

1.5.2

Patch Changes

1.5.1

Patch Changes

1.5.0

Minor Changes

Patch Changes

1.4.4

Patch Changes

1.4.3

Patch Changes

1.4.2

Patch Changes

1.4.1

Patch Changes

1.4.0

Minor Changes

1.3.2

Patch Changes

1.3.1

Patch Changes

1.3.0

Minor Changes

Patch Changes

  • Updated dependencies

1.2.19

Patch Changes

1.2.18

Patch Changes

  • #32533, (opens new window) ea8c1af425d, (opens new window) - Fixes a bug in setGlobalTheme() that caused both the light and dark themes to load when auto theme switching was disabled — only one of the themes should be loaded in this case. It also fixes a bug in getThemeStyles(), where the default color themes were loaded instead of the specified theme.

1.2.17

Patch Changes

1.2.16

Patch Changes

1.2.15

Patch Changes

1.2.14

Patch Changes

1.2.13

Patch Changes

1.2.12

Patch Changes

1.2.11

Patch Changes

1.2.10

Patch Changes

1.2.9

Patch Changes

1.2.8

Patch Changes

1.2.7

Patch Changes

1.2.6

Patch Changes

1.2.5

Patch Changes

1.2.4

Patch Changes

1.2.3

Patch Changes

1.2.2

Patch Changes

1.2.1

Patch Changes

1.2.0

Minor Changes

1.1.0

Minor Changes

1.0.0

Major Changes

💥 Breaking change: Theme lazy-loading

Previously, themes were exposed as static CSS files via custom entry-points. This worked quite well but had a couple of obvious drawbacks.

  1. CSS files depend on webpack/css-loading mechanisms (style-loader/css-loader) which aren't available in all environments.

  2. Configuration and ordering of themes happened entirely in products, which becomes increasingly harder to maintain as new themes & functionality are introduced

We have moved this to a lazy-loaded JS solution. Themes are now codegen'd into Javascript modules, wrapped in a template literal string, then lazy-loaded and mounted to the head of the document when required at runtime.

Benefits include:

  • More control over the ordering and composition of themes

  • Automatic lazy-loading of new themes when setGlobalTheme is called by the client

  • Simplified bundler configuration

  • Improved portability

  • Integrates with a new SSR solution for theme loading

Changes:

If you set themes using setGlobalTheme in your app, you can now remove manual imports of theme CSS files from your app. The themes will be automatically added when setGlobalTheme is called.

-import("atlassian-light.css") from '@atlaskit/tokens/css' -import("atlassian-legacy-dark.css") from '@atlaskit/tokens/css' -setGlobalTheme("light", true) +setGlobalTheme({light: "light", dark: "legacy-dark", colorMode: 'auto'})

If your app supports server-side rendering, further work is required to ensure themes are loaded on the page before first paint. See below for details on the new SSR utilities.

💥 Breaking change: Removal of deprecated & deleted tokens

As per our versioning strategy, (opens new window), MAJOR versions is when we remove all deprecated and sunset tokens. This provides significant bundle size improvements to token CSS files.

If you have been using our lint rules @atlaskit/design-system/no-unsafe-design-token-usage and @atlaskit/design-system/no-deprecated-design-token-usage, these tokens should already be triggering eslint errors from the version they were deprecated.

Please run yarn eslint --fix or similar to automate your migration before upgrading to 1.0.0.

Please see below for a full list of removed tokens and their replacements.

Note: MISSING_TOKEN is also being removed. This was a utility token to support early migration efforts; as tokens are now visible to end-users, please ensure all usages are removed from your app.

💥 Breaking change: setGlobalTheme & ThemeObserver & useThemeObserver

ThemeState configuration object

setGlobalTheme, ThemeMutationObserver & useThemeObserver now input and output theme preferences as a themeState object rather than a space-separated string. This enables:

  • Stronger type safety

  • Explicit definition of themes to render in light and dark mode.

  • Improved extensibility options for new types of themes, such as spacing and typography.

themeState has the following default values, which set the standard Atlassian color themes, and enables automatic color mode switching based on the user's system preference:

{ colorMode: 'auto', dark: 'dark', light: 'light', spacing: undefined, typography: undefined, };

Any usages of setGlobalTheme need` to be updated to the new object syntax:

-setGlobalTheme('light'); +setGlobalTheme({ light: 'light', colorMode: 'light' ...});

Changes to colorMode

Previously, the current color mode (i.e. "light" or "dark" mode) was inferred from the color theme passed into setGlobalTheme. A second parameter, shouldMatchSystem, set data-color-mode to 'auto' and matched the current theme to operating system settings:

setGlobalTheme('legacy-dark'); // a "dark" theme, so color mode is set to 'dark' setGlobalTheme('light', true); // color mode is 'light' or 'dark' depending on system theme

Now, the current color mode, as well as which themes to render in each color mode, can be configured via the themeState object:

setGlobalTheme({ dark: 'dark' // in dark mode, use the 'dark' theme light: 'light' // in light mode, use the 'light' theme colorMode: 'auto', // Set the color mode automatically based on system preference });

If your app previously set the second parameter, shouldMatchSystem, this feature is now enabled by default.

// Automatic theme switching -setGlobalTheme('light', true) +setGlobalTheme({light: 'light', dark: 'dark', 'auto'}) // OR, since setGlobalTheme has default values +setGlobalTheme({}) // Light theme -setGlobalTheme('light') +setGlobalTheme({light: 'light', colorMode: 'light'}) // OR +setGlobalTheme({colorMode: 'light'}) // Dark theme -setGlobalTheme('dark') +setGlobalTheme({dark: 'dark', colorMode: 'dark'}) // OR +setGlobalTheme({colorMode: 'dark'})

Color mode switching is enabled by default

As noted above, automatic theme switching is now enabled by default. To disable automatic theme switching, set colorMode to either 'light' or 'dark'.

🔀 Breaking behavioural change: data-theme & data-color-mode

The way this state is reflected on the DOM has been updated to match the changes above:

-<html data-theme="light" data-color-mode="light"> +<html data-theme="light:light dark:dark spacing:compact" data-color-mode="light">

Theme state on the DOM is primarily to store data in a place that can be accessed from anywhere in the app, and secondly to activate CSS selectors.

Two new utilities, themeStringToObject and themeObjectToString, allow conversion from string to object syntax if necessary.

🔀 Breaking change: System-level theme switching

Token auto theme switching now uses a Javascript-based solution, rather than embedding media queries in theme CSS files. If colorMode is set to 'auto', media query event listeners will trigger when the system theme changes, and update data-color-mode to 'light' or 'dark' automatically.

This provides several benefits:

  • Significant (~50%) improvements to bundle size for token CSS files compared to the pre-release version of @atlaskit/tokens.

  • Simpler logic for switching an experience based on the current theme:

    • Previously, experiences using theme observers had to check a combination of the data-color-mode attribute use media queries to to correctly match the currently rendered color mode in light, dark and 'auto' color modes. Now, the data-color-mode attribute always matches the currently rendered color mode, and media queries are no longer required.

As a result of this change, the data-color-mode attribute no longer supports the value 'auto'. If your experience checked for this value, this logic can now be removed, as data-color-mode will always reflect the currently rendered theme.

✨ New: server-side rendering utility functions

Three new utility functions provide the logic required to load and display the correct themes in your server-rendered output, preventing a flash of incorrectly themed content on first paint. Each accepts the same themeState object representing the user's stored theme preference:

  • getThemeStyles provides the contents of <style> tags to attach to the head of your server-side rendered document

  • getThemeHtmlAttributes provides data-attributes to set on the root of your document.

  • getSSRAutoScript provides a script to detect the system theme and configure the color mode before first paint.

For more information on these utilities, check the @atlaskit/tokens API documentation, (opens new window) on atlassian.design.

🐞 Fixes

Observer fixes:

useThemeObserver & ThemeMutationObserver now listen to changes on data-theme instead of data-color-mode.

Previously changes between two themes that both have a light color mode would not trigger an event since data-color-mode would not be updated. With this fix, the event fires on every call to setGlobalTheme regardless if there is a change to the theme or not.

Automatic theme switching changes:

Previously, the order of themes determined which one rendered. If you had multiple 'light' themes in your app, the order of the CSS files in the DOM determined which one rendered in "auto" mode.

Now, the theme that renders when the system is in 'light' and 'dark' mode is deterministic, and explicitly configured via the themeState object.

🚮 Removed tokens

The following tokens have been moved from the deprecated & deleted to removed state in their lifecycles. These tokens will no longer exist and will not be functional moving forward, tooling will begin to error wherever they're used.

  • color.text.highEmphasis => color.text
  • color.text.link.pressed => color.link.pressed
  • color.text.link.resting => color.link
  • color.text.lowEmphasis => color.text.subtlest
  • color.text.mediumEmphasis => color.text.subtle
  • color.text.onBold => color.text.inverse
  • color.text.onBoldWarning => color.text.warning.inverse
  • color.border.focus => color.border.focused
  • color.border.neutral => color.border
  • color.background.accent.blue => color.background.accent.blue.subtler
  • color.background.accent.blue.bold => color.background.accent.blue.subtle
  • color.background.accent.red => color.background.accent.red.subtler
  • color.background.accent.red.bold => color.background.accent.red.subtle
  • color.background.accent.orange => color.background.accent.orange.subtler
  • color.background.accent.orange.bold => color.background.accent.orange.subtle
  • color.background.accent.yellow => color.background.accent.yellow.subtler
  • color.background.accent.yellow.bold => color.background.accent.yellow.subtle
  • color.background.accent.green => color.background.accent.green.subtler
  • color.background.accent.green.bold => color.background.accent.green.subtle
  • color.background.accent.teal => color.background.accent.teal.subtler
  • color.background.accent.teal.bold => color.background.accent.teal.subtle
  • color.background.accent.purple => color.background.accent.purple.subtler
  • color.background.accent.purple.bold => color.background.accent.purple.subtle
  • color.background.accent.magenta => color.background.accent.magenta.subtler
  • color.background.accent.magenta.bold => color.background.accent.magenta.subtle
  • color.background.inverse => color.background.inverse.subtle
  • color.background.brand => color.background.selected
  • color.background.brand.hovered => color.background.selected.hovered
  • color.background.brand.pressed => color.background.selected.pressed
  • color.background.selected.resting => color.background.selected
  • color.background.selected.hover => color.background.selected.hovered
  • color.background.blanket => color.blanket
  • color.background.boldBrand.hover => color.background.brand.bold.hovered
  • color.background.boldBrand.pressed => color.background.brand.bold.pressed
  • color.background.boldBrand.resting => color.background.brand.bold
  • color.background.boldDanger.hover => color.background.danger.bold.hovered
  • color.background.boldDanger.pressed => color.background.danger.bold.pressed
  • color.background.boldDanger.resting => color.background.danger.bold
  • color.background.boldDiscovery.hover => color.background.discovery.bold.hovered
  • color.background.boldDiscovery.pressed => color.background.discovery.bold.pressed
  • color.background.boldDiscovery.resting => color.background.discovery.bold
  • color.background.boldNeutral.hover => color.background.neutral.bold.hovered
  • color.background.boldNeutral.pressed => color.background.neutral.bold.pressed
  • color.background.boldNeutral.resting => color.background.neutral.bold
  • color.background.boldSuccess.hover => color.background.success.bold.hovered
  • color.background.boldSuccess.pressed => color.background.success.bold.pressed
  • color.background.boldSuccess.resting => color.background.success.bold
  • color.background.boldWarning.hover => color.background.warning.bold.hovered
  • color.background.boldWarning.pressed => color.background.warning.bold.pressed
  • color.background.boldWarning.resting => color.background.warning.bold
  • color.background.card => elevation.surface.raised
  • color.background.default => elevation.surface
  • color.background.overlay => elevation.surface.overlay
  • color.background.subtleBorderedNeutral.pressed => color.background.input.pressed
  • color.background.subtleBorderedNeutral.resting => color.background.input
  • color.background.subtleBrand.hover => color.background.selected.hovered
  • color.background.subtleBrand.pressed => color.background.selected.pressed
  • color.background.subtleBrand.resting => color.background.selected
  • color.background.subtleDanger.hover => color.background.danger.hovered
  • color.background.subtleDanger.pressed => color.background.danger.pressed
  • color.background.subtleDanger.resting => color.background.danger
  • color.background.subtleDiscovery.hover => color.background.discovery.hovered
  • color.background.subtleDiscovery.pressed => color.background.discovery.pressed
  • color.background.subtleDiscovery.resting => color.background.discovery
  • color.background.subtleNeutral.hover => color.background.neutral.hovered
  • color.background.subtleNeutral.pressed => color.background.neutral.pressed
  • color.background.subtleNeutral.resting => color.background.neutral
  • color.background.subtleSuccess.hover => color.background.success.hovered
  • color.background.subtleSuccess.pressed => color.background.success.pressed
  • color.background.subtleSuccess.resting => color.background.success
  • color.background.subtleWarning.hover => color.background.warning.hovered
  • color.background.subtleWarning.pressed => color.background.warning.pressed
  • color.background.subtleWarning.resting => color.background.warning
  • color.background.sunken => elevation.surface.sunken
  • color.background.transparentNeutral.hover => color.background.neutral.subtle.hovered
  • color.background.transparentNeutral.pressed => color.background.neutral.subtle.pressed
  • color.interaction.inverse.hovered => color.background.inverse.subtle.hovered
  • color.interaction.inverse.pressed => color.background.inverse.subtle.pressed
  • color.accent.boldBlue => color.background.accent.blue.bolder
  • color.accent.boldGreen => color.background.accent.green.bolder
  • color.accent.boldOrange => color.background.accent.orange.bolder
  • color.accent.boldPurple => color.background.accent.purple.bolder
  • color.accent.boldRed => color.background.accent.red.bolder
  • color.accent.boldTeal => color.background.accent.teal.bolder
  • color.accent.subtleBlue => color.background.accent.blue.subtler
  • color.accent.subtleGreen => color.background.accent.green.subtler
  • color.accent.subtleMagenta => color.background.accent.magenta.subtler
  • color.accent.subtleOrange => color.background.accent.orange.subtler
  • color.accent.subtlePurple => color.background.accent.purple.subtler
  • color.accent.subtleRed => color.background.accent.red.subtler
  • color.accent.subtleTeal => color.background.accent.teal.subtler
  • color.iconBorder.brand => color.icon.brand
  • color.iconBorder.danger => color.icon.danger
  • color.iconBorder.discovery => color.icon.discovery
  • color.iconBorder.success => color.icon.success
  • color.iconBorder.warning => color.icon.warning
  • color.overlay.hover => color.interaction.hovered
  • color.overlay.pressed => color.interaction.pressed
  • shadow.card => elevation.shadow.raised
  • shadow.overlay => elevation.shadow.overlay
  • utility.UNSAFE_util.transparent => utility.UNSAFE.transparent
  • utility.UNSAFE_util.MISSING_TOKEN => No replacement

0.13.5

Patch Changes

0.13.4

Patch Changes

0.13.3

Patch Changes

  • #27875, (opens new window) 0438a9318a1, (opens new window) - Tweaked the values of the Neutral500 and Neutral500 base tokens and updated text.accent.gray.bolder to improve color contrast:

    • Adjust Neutral500 from #8993A5 to #8590A2 so that it passes 3:1 contrast against sunken surfaces in light mode
    • Adjust Neutral500A from #091E42 @ 48% to #091E42 @ 49% to match color of Neutral500 on default surfaces
    • Update text.accent.gray.bolder to use Neutral1100 so gray tags pass contrast requirements
  • 765c27c301e, (opens new window) - Adds new chart tokens for data visualisation and charts.

    27 generic chart tokens and hovered state tokens:

    • color.chart.[color].bold
    • color.chart.[color].bolder
    • color.chart.[color].boldest

    12 semantic chart tokens and hovered state tokens:

    • color.chart.brand
    • color.chart.neutral
    • color.chart.success
    • color.chart.success.bold
    • color.chart.danger
    • color.chart.danger.bold
    • color.chart.warning
    • color.chart.warning.bold
    • color.chart.information
    • color.chart.information.bold
    • color.chart.discovery
    • color.chart.discovery.bold

    8 categorical chart tokens and hovered state tokens:

    • color.chart.categorical.1
    • color.chart.categorical.2
    • color.chart.categorical.3
    • color.chart.categorical.4
    • color.chart.categorical.5
    • color.chart.categorical.6
    • color.chart.categorical.7
    • color.chart.categorical.8

0.13.2

Patch Changes

0.13.1

Patch Changes

  • #27730, (opens new window) a5eed85fe2e, (opens new window) - Added a new getTokenValue() API - it accepts a dot-separated token name and a fallback value, and returns the current computed CSS value for the resulting CSS Custom Property. This should be used when the CSS cascade isn't available, eg. <canvas> elements, JS charting libraries, etc.

0.13.0

Minor Changes

0.12.0

Minor Changes

0.11.6

Patch Changes

0.11.5

Patch Changes

  • #27885, (opens new window) bcef9745338, (opens new window) - useThemeObserver now exclusively watches data-theme instead of data-color-mode to ensure all changes to the theme attr trigger an event. Previously, if a theme moved from light theme, which had a mode="light", to another theme such as legacy-light with the same mode, no event will be triggered.

0.11.4

Patch Changes

0.11.3

Patch Changes

0.11.2

Patch Changes

0.11.1

Patch Changes

0.11.0

Minor Changes

  • #26991, (opens new window) 65222c75362, (opens new window) - - Adds experimental typography tokens for font size, font weight, font family, and line height. These are not intended for public consumption yet.
    • Adds a new init entry point for easily importing all theme CSS files (currently light, dark, spacing, and typography).
    • Spacing and typography tokens are now added to the :root rather than requiring a data-theme attribute.
    • Removes 'spacing' from the default theme.

0.10.35

Patch Changes

0.10.34

Patch Changes

0.10.33

Patch Changes

0.10.32

Patch Changes

0.10.31

Patch Changes

0.10.30

Patch Changes

0.10.29

Patch Changes

  • #26128, (opens new window) 41dad8915d7, (opens new window) - ✨ Color modes

    Color modes are now attached to the DOM with the data-theme attr:

    <html data-theme="dark" data-color-mode="auto"></html>

    ✨ Multi-theme

    We now allow multiple active themes:

    <html data-theme="dark spacing"></html>

    ✨ System preferences

    We also output @media (prefers-color-scheme: dark) media selectors for color themes

    @media (prefers-color-scheme: dark) { html[data-color-mode='auto'] { ...; } }

    This allows Product themes to be toggled by the OS-level setting.

    ✨ Setting theme state

    setGlobalTheme now allows you to set auto color scheme via an additional boolean arg

    setGlobalTheme(themeState, true); // data-color-mode="auto"

    ✨ Source of truth for themes

    All theme configuration now exists in a single object as a source of truth

    const themeConfig: Record<Themes, ThemeConfig> = { 'atlassian-light': { id: 'light', displayName: 'Light Theme', palette: 'defaultPalette', attributes: { type: 'color', mode: 'light', }, }, ... };

0.10.28

Patch Changes

0.10.27

Patch Changes

0.10.26

Patch Changes

0.10.25

Patch Changes

0.10.24

Patch Changes

0.10.23

Patch Changes

0.10.22

Patch Changes

0.10.21

Patch Changes

0.10.20

Patch Changes

  • #25211, (opens new window) 9f6aa1d7cdc, (opens new window) - Introduces new interaction states to a number of existing elevation tokens:
    • elevation.surface.hovered
    • elevation.surface.pressed
    • elevation.surface.raised.hovered
    • elevation.surface.raised.pressed
    • elevation.surface.overlay.hovered
    • elevation.surface.overlay.pressed

0.10.19

Patch Changes

0.10.18

Patch Changes

0.10.17

Patch Changes

0.10.16

Patch Changes

0.10.15

Patch Changes

  • #24188, (opens new window) 50299267c2e, (opens new window) - Refactors style-dictionary to support multiple palettes.
    • Adds legacy-palette containing colours from @atlaskit/theme.
    • Palettes are processed as their own 'themes' (functionally) and now have their own configuration via style-dictionary.
    • formatters + transformers were renamed and moved to match best practices
    • Types were updated to allow multi-palette values (base tokens)

0.10.14

Patch Changes

  • #24077, (opens new window) e3377246ebc, (opens new window) - Moves the following deprecated tokens to the sunset phase. Please ensure that all sunset tokens are removed from your application, they will be completely removed in the next major version:

    • 'color.interaction.inverse.hovered' => 'color.background.inverse.subtle.hovered'
    • 'color.interaction.inverse.pressed' => 'color.background.inverse.subtle.pressed'

    If you have configured the design token eslint rules, running eslint --fix will resolve these changes automatically.

0.10.13

Patch Changes

0.10.12

Patch Changes

  • #22642, (opens new window) 83c253f28bd, (opens new window) - [ux] - Correct 'color.interaction.hovered' and 'color.interaction.pressed' token values, which were mistakenly mapped inversely in light and dark mode. The token values have now been swapped.
    • Deprecate 'color.interaction.inverse.hovered' which has been replaced with 'color.background.inverse.subtle.hovered'.
    • Deprecate 'color.interaction.inverse.pressed' which has been replaced with 'color.background.inverse.subtle.pressed'.

0.10.11

Patch Changes

  • #23027, (opens new window) d9d18df130f, (opens new window) - [ux] Tweaked the values of the DN500 and DN500A base tokens to improve color contrast when paired with text:

    • DN500 has changed from #5C6C7A to #596773
    • DN500A has changed from #A9C5DF7A to #9BB4CA80

    This changes the values in dark mode for the following tokens:

    (active):

    • color.text.disabled
    • color.icon.disabled
    • color.background.accent.gray.subtle

    (deprecated):

    • color.overlay.pressed

0.10.10

Patch Changes

0.10.9

Patch Changes

  • Updated dependencies

0.10.8

Patch Changes

0.10.7

Patch Changes

  • #22107, (opens new window) cb8723a7974, (opens new window) - Introduces a new set of neutral accent tokens:
    • color.background.accent.gray.bolder
    • color.background.accent.gray.subtle
    • color.background.accent.gray.subtler
    • color.background.accent.gray.subtlest
    • color.border.accent.gray
    • color.icon.accent.gray
    • color.text.accent.gray
    • color.text.accent.gray.bolder

0.10.6

Patch Changes

0.10.5

Patch Changes

  • #22060, (opens new window) 1124fa435ed, (opens new window) - Moves the following deprecated tokens to the sunset phase. Please ensure that all sunset tokens are removed from your application, they will be completely removed in the next major version:

    • color.background.brand.hovered => color.background.selected.hovered
    • color.background.brand.pressed => color.background.selected.pressed
    • color.background.brand => color.background.selected
    • color.background.inverse => color.background.inverse.subtle
    • color.background.selected.hover => color.background.selected.hovered
    • color.background.selected.resting => color.background.selected
    • color.background.subtleBrand.hover => color.background.selected.hovered
    • color.background.subtleBrand.pressed => color.background.selected.pressed
    • color.background.subtleBrand.resting => color.background.selected

    If you have configured the design token eslint rules, running eslint --fix will resolve these changes automatically.

0.10.4

Patch Changes

0.10.3

Patch Changes

0.10.2

Patch Changes

0.10.1

Patch Changes

0.10.0

Minor Changes

  • #21484, (opens new window) aa06bcc3c48, (opens new window) - Removes the :root selector from the light theme, which allows the light theme to be turned off once the css is mounted. This is to support our migration efforts, but we will ultimately reintroduce this behaviour once tokens are the default experience

0.9.5

Patch Changes

0.9.4

Patch Changes

0.9.3

Patch Changes

0.9.2

Patch Changes

0.9.1

Patch Changes

0.9.0

Minor Changes

0.8.3

Patch Changes

0.8.2

Patch Changes

0.8.1

Patch Changes

0.8.0

Minor Changes

Patch Changes

  • ac9343c3ed4, (opens new window) - Replaces usage of deprecated design tokens. No visual or functional changes
  • 308db322b04, (opens new window) - The following tokens have been moved from the deprecated to deleted state in their lifecycles. These tokens will continue to exist, however tooling will begin to error wherever they're used. If you haven't already, please run yarn eslint --fix or similar to automate your migration.
    • color.background.blanket => color.blanket
    • color.background.boldBrand.resting => color.background.brand.bold
    • color.background.boldBrand.hover => color.background.brand.bold.hovered
    • color.background.boldBrand.pressed => color.background.brand.bold.pressed
    • color.background.boldDanger.resting => color.background.danger.bold
    • color.background.boldDanger.hover => color.background.danger.bold.hovered
    • color.background.boldDanger.pressed => color.background.danger.bold.pressed
    • color.background.boldDiscovery.resting => color.background.discovery.bold
    • color.background.boldDiscovery.hover => color.background.discovery.bold.hovered
    • color.background.boldDiscovery.pressed => color.background.discovery.bold.pressed
    • color.background.boldNeutral.resting => color.background.neutral.bold
    • color.background.boldNeutral.hover => color.background.neutral.bold.hovered
    • color.background.boldNeutral.pressed => color.background.neutral.bold.pressed
    • color.background.boldSuccess.resting => color.background.success.bold
    • color.background.boldSuccess.hover => color.background.success.bold.hovered
    • color.background.boldSuccess.pressed => color.background.success.bold.pressed
    • color.background.boldWarning.resting => color.background.warning.bold
    • color.background.boldWarning.hover => color.background.warning.bold.hovered
    • color.background.boldWarning.pressed => color.background.warning.bold.pressed
    • color.background.default => elevation.surface
    • color.background.card => elevation.surface.raised
    • color.background.overlay => elevation.surface.overlay
    • color.background.selected.resting => color.background.selected
    • color.background.selected.hover => color.background.selected.hovered
    • color.background.subtleBorderedNeutral.resting => color.background.input
    • color.background.subtleBorderedNeutral.pressed => color.background.input.pressed
    • color.background.subtleBrand.resting => color.background.brand
    • color.background.subtleBrand.hover => color.background.brand.hovered
    • color.background.subtleBrand.pressed => color.background.brand.pressed
    • color.background.subtleDanger.resting => color.background.danger
    • color.background.subtleDanger.hover => color.background.danger.hovered
    • color.background.subtleDanger.pressed => color.background.danger.pressed
    • color.background.subtleDiscovery.resting => color.background.discovery
    • color.background.subtleDiscovery.hover => color.background.discovery.hovered
    • color.background.subtleDiscovery.pressed => color.background.discovery.pressed
    • color.background.subtleNeutral.resting => color.background.neutral
    • color.background.subtleNeutral.hover => color.background.neutral.hovered
    • color.background.subtleNeutral.pressed => color.background.neutral.pressed
    • color.background.subtleSuccess.resting => color.background.success
    • color.background.subtleSuccess.hover => color.background.success.hovered
    • color.background.subtleSuccess.pressed => color.background.success.pressed
    • color.background.subtleWarning.resting => color.background.warning
    • color.background.subtleWarning.hover => color.background.warning.hovered
    • color.background.subtleWarning.pressed => color.background.warning.pressed
    • color.background.sunken => elevation.surface.sunken
    • color.background.transparentNeutral.hover => color.background.neutral.subtle.hovered
    • color.background.transparentNeutral.pressed => color.background.neutral.subtle.pressed
    • color.text.highEmphasis => color.text
    • color.text.mediumEmphasis => color.text.subtle
    • color.text.lowEmphasis => color.text.subtlest
    • color.text.link.resting => color.link
    • color.text.link.pressed => color.link.pressed
    • color.text.onBold => color.text.inverse
    • color.text.onBoldWarning => color.text.inverse.warning
    • color.border.focus => color.border.focused
    • color.border.neutral => color.border
    • color.iconBorder.brand => color.icon.brand or color.border.brand
    • color.iconBorder.danger => color.icon.danger or color.border.danger
    • color.iconBorder.warning => color.icon.warning or color.border.warning
    • color.iconBorder.success => color.icon.success or color.border.success
    • color.iconBorder.discovery => color.icon.discovery or color.border.discovery
    • color.overlay.hover => color.interaction.hovered
    • color.overlay.pressed => color.interaction.pressed
    • color.shadow.card => elevation.shadow.raised
    • color.shadow.overlay => elevation.shadow.overlay

0.7.3

Patch Changes

0.7.2

Patch Changes

0.7.1

Patch Changes

0.7.0

Minor Changes

Patch Changes

  • c2ec60d6a1b, (opens new window) - [ux] Updating existing 16 background accent colors

    • Rename default to subtler (Light:200 / Dark:900)
    • Rename bold renamed to subtle (Light:400 / Dark:700)
    • Update this ⤴ base token for dark mode from 700 to 800 (so it is now Light:400 / Dark:800)

    16 new accent background colors:

    • color.background.accent.[color].subtlest (Light: 100 / Dark:1000)
    • color.background.accent.[color].bolder (Light: 700 / Dark: 400)

    8 new text accent colors:

    • color.text.accent.[color].bolder (Light:900 / Dark:200)
  • 7b6b994bef5, (opens new window) - Correct shorthand hex code conversion in Figma synchronisation script

  • 91a3f179e8c, (opens new window) - Prefix warnings to deprecated tokens in the Figma synchronizer script

0.6.3

Patch Changes

0.6.2

Patch Changes

  • #19072, (opens new window) 899fd622557, (opens new window) - Re-introduces the selected and selected.bold tokens:

    • color.text.selected
    • color.icon.selected
    • color.border.selected
    • color.background.selected
    • color.background.selected.hovered
    • color.background.selected.pressed
    • color.background.selected.bold
    • color.background.selected.bold.hovered
    • color.background.selected.bold.pressed

    The following tokens are deprecated:

    • color.background.brand
    • color.background.brand.hovered
    • color.background.brand.pressed

    IMPORTANT (Manual verification required):

    Please ensure all usages of the following tokens are replaced with their selected counterpart, wherever a brand token is used to represent a selected state.

    • color.background.brand.[default|hovered|pressed] => color.background.selected.[default|hovered|pressed]
    • color.background.brand.bold.[default|hovered|pressed] => color.background.selected.bold.[default|hovered|pressed]
    • color.text.brand => color.text.selected
    • color.icon.brand => color.icon.selected
    • color.border.brand => color.border.selected

0.6.1

Patch Changes

0.6.0

Minor Changes

Patch Changes

  • 19d72473dfb, (opens new window) - The token() function no longer throws and instead omits an error in the case where the provided token doesn't exist or is not found.

0.5.0

Minor Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.0

Minor Changes

Patch Changes

0.3.0

Minor Changes

0.2.1

Patch Changes

0.2.0

Minor Changes

0.1.1

Patch Changes

0.1.0

Minor Changes

Patch Changes

  • c784665d01d, (opens new window) - Removes color.border.overlay token and replaces it with a third shadow inside shadow.overlay.
  • 76b718b72e1, (opens new window) - [ux] Fixes incorrect values in the palette and token definitions.
  • 855d6afb3d3, (opens new window) - Parsing of alpha hex in the Figma synchronizer is fixed.
  • 8d0cb37bfe0, (opens new window) - Updates: text.link.pressed values to B800/B300 Removes: text.link.hover Combines: border.disabled and background.disabled → background.disabled Updates: background.disabled token value to N/DN200A Renames: All accents from color.accent.blueSubtle → color.accent.subtleBlue Renames: background.selected to background.selected.resting Adds: background.selected.hover, background.selected.pressed
  • 53749f08286, (opens new window) - Adds tokens:
    • color.overlay.hover
    • color.overlay.pressed

0.0.18

Patch Changes

0.0.17

Patch Changes

0.0.16

Patch Changes

0.0.15

Patch Changes

0.0.14

Patch Changes

  • #12528, (opens new window) 1926dba3536, (opens new window) - Adds, removes & renames tokens

    Adds:

    • color.backgroundSelect

    Renames:

    • color.borderTextHighlighted to color.bordertextSelected
    • elevation.base to evelation.backgroundDefault
    • elevation.flatSecondary to elevation.backgroundSunken
    • elevation.backgroundCard to color.backgroundCard
    • elevation.backgroundOverlay to color.backgroundOverlay
    • elevation.borderOverlay to color.borderOverlay
    • elevation.shadowCard to shadow.card
    • elevation.shadowOverlay to shadow.overlay

    Removes:

    • elevation.boarderFlatPrimary

    Updates:

    • elevation.shadowOverlay value to DN100
    • color.textWarning in light mode to O800
    • color.iconBorderWarning in light mode to O600

0.0.13

Patch Changes

0.0.12

Patch Changes

0.0.11

Patch Changes

0.0.10

Patch Changes

0.0.9

Patch Changes

0.0.8

Patch Changes

0.0.7

Patch Changes

0.0.6

Patch Changes

0.0.5

Patch Changes

0.0.4

Patch Changes

0.0.3

Patch Changes

0.0.2

Patch Changes

0.0.1

Patch Changes

Was this page helpful?
We use this feedback to improve our documentation.
© 2026 AtlassianTrademark, (opens new window)Privacy, (opens new window)License