Lozenge

A lozenge is a prominent, compact label used to communicate a meaningful attribute that affects how people understand, prioritize or act on an object.

Generally available

The new lozenge is stable and ready for adoption. Visual updates are currently behind the platform-dst-lozenge-tag-badge-visual-uplifts feature flag.

15.4.3

Patch Changes

  • Updated dependencies

15.4.2

Patch Changes

  • Updated dependencies

15.4.1

Patch Changes

  • 22d1769061c07, (opens new window) - Experimental React 19 test compatibility fix for Lozenge. Test coverage is partial.
  • Updated dependencies

15.4.0

Minor Changes

Patch Changes

  • Updated dependencies

15.3.1

Patch Changes

  • Use @atlassian/testing-library exclusively in unit tests.
  • Updated dependencies

15.3.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.

Patch Changes

  • Updated dependencies

15.2.0

Minor Changes

Patch Changes

  • Updated dependencies

15.1.0

Minor Changes

15.0.2

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.
  • Updated dependencies

15.0.1

Patch Changes

  • Updated dependencies

15.0.0

Major Changes

  • b9a07863db348, (opens new window) - Apply Volt entry-point and multi-export standards via volt-migrate-package. This is a major change to @atlaskit/lozenge: the package exports map has been restructured so every public subpath now resolves directly to its ./src/* implementation instead of going through an intermediate ./src/entry-points/* re-export. It also introduces new public subpaths: @atlaskit/lozenge/new/lozenge.

    Why this is breaking

    Because each subpath now points straight at its implementation module, a subpath and the package root can resolve to the same module instance. Consumers that deep-import the internal entry-points/* files, or that jest.mock() a specific subpath, may observe changed resolution/behaviour and need updating.

    Migration — public imports are unchanged

    Importing the published subpaths (or the package root) continues to work as before:

    // Still valid — no change required import Lozenge from '@atlaskit/lozenge/lozenge';

    If you were reaching into the internal entry-point modules, switch to the public subpath:

    -import Lozenge from '@atlaskit/lozenge/entry-points/lozenge'; +import Lozenge from '@atlaskit/lozenge/lozenge';

    Before / after exports map

    "exports": { ".": "./src/index.tsx", - "./lozenge": "./src/entry-points/lozenge.tsx", + "./lozenge": "./src/lozenge.tsx", - "./lozenge-dropdown-trigger": "./src/entry-points/lozenge-dropdown-trigger.tsx", + "./lozenge-dropdown-trigger": "./src/new/lozenge-dropdown-trigger.tsx", "./new": "./src/new/entrypoint.tsx", + "./new/lozenge": "./src/new/lozenge.tsx", - "./types": "./src/entry-points/types.tsx", + "./types": "./src/new/types.tsx", }

Patch Changes

  • Updated dependencies

14.1.6

Patch Changes

  • Updated dependencies

14.1.5

Patch Changes

  • Updated dependencies

14.1.4

Patch Changes

  • Updated dependencies

14.1.3

Patch Changes

  • Updated dependencies

14.1.2

Patch Changes

  • Updated dependencies

14.1.1

Patch Changes

  • Updated dependencies

14.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.

Patch Changes

  • Updated dependencies

14.0.1

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.9.0

Minor Changes

  • 3806011c04923, (opens new window) - Removed all OKLCH and color-mix() runtime color transformations from the new Lozenge component (behind the platform-dst-lozenge-tag-badge-visual-uplifts feature gate).
    • Borders now use the new color.border.accent.*.subtle / color.border.*.subtle tokens (introduced in @atlaskit/tokens@13.2.0) instead of being derived via OKLCH transforms.
    • Icons use color.text.* tokens for guaranteed 3:1 contrast on coloured backgrounds across default, hover, and pressed states. Neutral and accent-gray icons use color.text.subtle.
    • The trailing metric Badge uses the new bold semantic Badge appearances (successBold, warningBold, dangerBold, informationBold, discoveryBold) so the badge no longer reaches into Lozenge styling. In the lozenge's pressed/selected state the badge overlays color.background.neutral to remain distinguishable. The neutral lozenge uses color.background.neutral.hovered in default/hovered states (no neutralBold appearance exists).
    • Removed Lozenge-specific accent.gray .subtle border in favour of the default color.border (since gray decorative borders look the same as the neutral default).

13.8.4

Patch Changes

  • 9ef96548c3d31, (opens new window) - Fixed the new Lozenge component (behind the platform-dst-lozenge-tag-badge-visual-uplifts feature gate) not truncating text correctly when placed inside a parent container narrower than the lozenge's maxWidth prop (e.g. a fixed-width or percentage-width container). The inner content wrapper now has max-width: 100% applied unconditionally so it inherits the container's width constraint, allowing the text to truncate at the visible edge of its parent.

13.8.3

Patch Changes

13.8.2

Patch Changes

  • Updated dependencies

13.8.1

Patch Changes

13.8.0

Minor Changes

13.7.1

Patch Changes

  • 88696c5e1a75c, (opens new window) - Switched from experimental useResizingWidth to the new generic useResizing hook from @atlaskit/motion/resizing. No behavioural change.
  • Updated dependencies

13.7.0

Minor Changes

  • 52b7aa6b3d721, (opens new window) - Added a new /new entrypoint for @atlaskit/lozenge, @atlaskit/badge, and @atlaskit/tag. These entrypoints export the new visual refresh components directly, bypassing the platform-dst-lozenge-tag-badge-visual-uplifts feature flag. This is intended for products that don't have Statsig integrated and cannot evaluate the feature flag.

    New entrypoints:

    • import Lozenge from '@atlaskit/lozenge/new'
    • import Badge from '@atlaskit/badge/new'
    • import Tag from '@atlaskit/tag/new'

    Note: Do not use the /new entrypoint if your app can evaluate the platform-dst-lozenge-tag-badge-visual-uplifts feature flag. These entrypoints will be removed after the visual uplift rollout is complete, which will require updating import paths back to the default entrypoint.

Patch Changes

  • Updated dependencies

13.6.1

Patch Changes

13.6.0

Minor Changes

  • 7b44d021342cf, (opens new window) - Added motion to lozenge dropdown to animate the width of the lozenge upon change. Includes transitioning the background, border and text color using experimental motion design tokens. These changes are behind the platform-dst-motion-uplift feature flag.

Patch Changes

  • Updated dependencies

13.5.7

Patch Changes

  • Updated dependencies

13.5.6

Patch Changes

13.5.5

Patch Changes

13.5.4

Patch Changes

  • Updated dependencies

13.5.3

Patch Changes

13.5.2

Patch Changes

  • Updated dependencies

13.5.1

Patch Changes

  • Updated dependencies

13.5.0

Minor Changes

13.4.5

Patch Changes

  • a18e28278b0ac, (opens new window) - Fixed percentage maxWidth truncation in new lozenge component. Text now correctly truncates with ellipsis when maxWidth is set to a percentage value (e.g., '50%', '100%').

    Add aria-controls, aria-expanded, and aria-haspopup props support to LozengeDropdownTrigger for improved accessibility when used with DropdownMenu or Popup components. These props are now properly passed through to the underlying button element.

  • Updated dependencies

13.4.4

Patch Changes

  • Updated dependencies

13.4.3

Patch Changes

  • Updated dependencies

13.4.2

Patch Changes

  • 6d33a20db82a1, (opens new window) - [ux] Added support for trailing metrics on semantic lozenges via the trailingMetric prop, with optional trailingMetricAppearance override (including inverse). Not supported for accent lozenges.
  • Updated dependencies

13.4.1

Patch Changes

13.4.0

Minor Changes

13.3.4

Patch Changes

  • Updated dependencies

13.3.3

Patch Changes

13.3.2

Patch Changes

  • Updated dependencies

13.3.1

Patch Changes

  • Updated dependencies

13.3.0

Minor Changes

  • 3f338c9019166, (opens new window) - Added “./lozenge-dropdown-trigger” entrypoint. Mapped the new semantic values to the existing appearance to ensure backward compatibility.

13.2.2

Patch Changes

  • Updated dependencies

13.2.1

Patch Changes

  • Updated dependencies

13.2.0

Minor Changes

  • 59ff6a9633c8b, (opens new window) - - New Component: Introduced LozengeDropdownTrigger, a specialized component designed to act as a trigger for dropdown or popup menus. It includes built-in accessibility supports (focus rings, aria attributes) and interactive states, keeping the base Lozenge purely presentational.
    • Visual Refresh (Opt-in): Implemented the North Star visual uplift for Lozenge behind the feature flag platform-dst-lozenge-tag-badge-visual-uplifts.
      • New API: The appearance prop now supports AccentColor values (e.g., 'accent-red', 'accent-blue') alongside updated SemanticColor values:'neutral', 'danger', 'success', 'discovery', 'information', 'warning'.

      • Deprecation: The isBold prop is now deprecated. The new visual style is bold by default.

      • Icons: Added support for the iconBefore prop to reinforce status visually.

13.1.2

Patch Changes

  • Updated dependencies

13.1.1

Patch Changes

  • Updated dependencies

13.1.0

Minor Changes

  • 1e31925550257, (opens new window) - [ux] Updates lozenge styles to reflect our new visual design language. These changes were previously behind a feature flag and are now fully rolled out.

Patch Changes

  • Updated dependencies

13.0.15

Patch Changes

  • Updated dependencies

13.0.14

Patch Changes

  • Updated dependencies

13.0.13

Patch Changes

  • Updated dependencies

13.0.12

Patch Changes

13.0.11

Patch Changes

  • Updated dependencies

13.0.10

Patch Changes

  • Updated dependencies

13.0.9

Patch Changes

  • Updated dependencies

13.0.8

Patch Changes

13.0.7

Patch Changes

13.0.6

Patch Changes

  • Updated dependencies

13.0.5

Patch Changes

  • Updated dependencies

13.0.4

Patch Changes

13.0.3

Patch Changes

  • Updated dependencies

13.0.2

Patch Changes

  • Updated dependencies

13.0.1

Patch Changes

  • Updated dependencies

13.0.0

Major Changes

Patch Changes

  • Updated dependencies

12.2.5

Patch Changes

  • Updated dependencies

12.2.4

Patch Changes

12.2.3

Patch Changes

12.2.2

Patch Changes

12.2.1

Patch Changes

12.2.0

Minor Changes

Patch Changes

  • Updated dependencies

12.1.0

Minor Changes

12.0.0

Major Changes

Patch Changes

  • Updated dependencies

11.14.0

Minor Changes

Patch Changes

  • Updated dependencies

11.13.4

Patch Changes

  • Updated dependencies

11.13.3

Patch Changes

11.13.2

Patch Changes

  • Updated dependencies

11.13.1

Patch Changes

  • Updated dependencies

11.13.0

Minor Changes

Patch Changes

  • Updated dependencies

11.12.7

Patch Changes

11.12.6

Patch Changes

11.12.5

Patch Changes

  • Updated dependencies

11.12.4

Patch Changes

11.12.3

Patch Changes

  • Updated dependencies

11.12.2

Patch Changes

11.12.1

Patch Changes

11.12.0

Minor Changes

Patch Changes

  • Updated dependencies

11.11.1

Patch Changes

  • Updated dependencies

11.11.0

Minor Changes

11.10.2

Patch Changes

  • Updated dependencies

11.10.1

Patch Changes

  • Updated dependencies

11.10.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

11.9.1

Patch Changes

  • Updated dependencies

11.9.0

Minor Changes

Patch Changes

  • Updated dependencies

11.8.5

Patch Changes

  • Updated dependencies

11.8.4

Patch Changes

  • Updated dependencies

11.8.3

Patch Changes

  • Updated dependencies

11.8.2

Patch Changes

11.8.1

Patch Changes

  • Updated dependencies

11.8.0

Minor Changes

Patch Changes

  • Updated dependencies

11.7.3

Patch Changes

  • Updated dependencies

11.7.2

Patch Changes

11.7.1

Patch Changes

  • Updated dependencies

11.7.0

Minor Changes

11.6.6

Patch Changes

11.6.5

Patch Changes

  • Updated dependencies

11.6.4

Patch Changes

  • Updated dependencies

11.6.3

Patch Changes

  • Updated dependencies

11.6.2

Patch Changes

  • Updated dependencies

11.6.1

Patch Changes

11.6.0

Minor Changes

Patch Changes

  • Updated dependencies

11.5.0

Minor Changes

11.4.6

Patch Changes

11.4.5

Patch Changes

  • Updated dependencies

11.4.4

Patch Changes

11.4.3

Patch Changes

11.4.2

Patch Changes

11.4.1

Patch Changes

11.4.0

Minor Changes

Patch Changes

  • Updated dependencies

11.3.10

Patch Changes

11.3.9

Patch Changes

11.3.8

Patch Changes

11.3.7

Patch Changes

  • Updated dependencies

11.3.6

Patch Changes

11.3.5

Patch Changes

11.3.4

Patch Changes

  • Updated dependencies

11.3.3

Patch Changes

  • Updated dependencies

11.3.2

Patch Changes

11.3.1

Patch Changes

  • Updated dependencies

11.3.0

Minor Changes

Patch Changes

11.2.5

Patch Changes

11.2.4

Patch Changes

11.2.3

Patch Changes

11.2.2

Patch Changes

11.2.1

Patch Changes

11.2.0

Minor Changes

Patch Changes

11.1.12

Patch Changes

11.1.11

Patch Changes

  • Updated dependencies

11.1.10

Patch Changes

11.1.9

Patch Changes

  • Updated dependencies

11.1.8

Patch Changes

11.1.7

Patch Changes

  • Updated dependencies

11.1.6

Patch Changes

11.1.5

Patch Changes

  • Updated dependencies

11.1.4

Patch Changes

11.1.3

Patch Changes

  • Updated dependencies

11.1.2

Patch Changes

  • Updated dependencies

11.1.1

Patch Changes

  • Updated dependencies

11.1.0

Minor Changes

Patch Changes

  • Updated dependencies

11.0.0

Major Changes

  • #12837, (opens new window) 1cd379a2199, (opens new window) - - In this version we made Lozenge dramatically faster and lighter. 🤩

    • General performance improvements.

    • We are now exporting a new style prop which you can use to pass a custom backgroundColor and color.

    • BREAKING We have removed the deprecated theme prop. Don't worry if you do use the theming API, you can now use the new style prop for custom styling.

    Before:

    import Lozenge from '@atlaskit/lozenge'; type GetThemeTokensFn<ThemeTokens, ThemeProps> = (props: ThemeProps) => ThemeTokens; const lozengeTheme = ( getTokens: GetThemeTokensFn<ThemeTokens, ThemeProps>, themeProps: ThemeProps, ): ThemeTokens => { const defaultTokens = getTokens(themeProps); if (themeProps.appearance === 'removed') { return { ...defaultTokens, textColor: 'grey', }; return defaultTokens; } }; <Lozenge appearance="removed" theme={lozengeTheme}> removed </Lozenge>;

    After:

    import Badge, { BadgeProps } from '@atlaskit/badge'; <Lozenge appearance="removed" style={{ color: 'grey' }}> removed </Lozenge>;
    • BREAKING We have removed the support of appearance prop object value. Please use style prop for customization.

    Before:

    import Lozenge from '@atlaskit/lozenge'; <Lozenge appearance={{ backgroundColor: 'blue', textColor: 'white' }}>custom</Lozenge>;

    After:

    import Lozenge from '@atlaskit/lozenge'; <Lozenge style={{ backgroundColor: 'blue', color: 'white' }}>custom</Lozenge>;

    Running the codemod cli

    To run the codemod: You first need to have the latest version installed

    yarn upgrade @atlaskit/lozenge@^11.0.0

    Once upgraded, use @atlaskit/codemod-cli via npx:

    npx @atlaskit/codemod-cli --parser babel --extensions ts,tsx,js [relativePath]

    The CLI will show a list of components and versions so select @atlaskit/lozenge@^11.0.0 and you will automatically be upgraded.

    What will be changed:

    • It will move backgroundColor and textColor from appearance prop (if object is passed as appearance prop value) to style prop.

    Run npx @atlaskit/codemod-cli -h for more details on usage.

    For Atlassians,

    refer to the documentation, (opens new window) for more details on the codemod CLI.

Patch Changes

10.1.4

Patch Changes

10.1.3

Patch Changes

10.1.2

Patch Changes

10.1.1

Patch Changes

10.1.0

Minor Changes

10.0.7

Patch Changes

10.0.6

Patch Changes

10.0.5

Patch Changes

  • Updated dependencies

10.0.4

Patch Changes

10.0.3

Patch Changes

10.0.2

Patch Changes

10.0.1

Patch Changes

10.0.0

Major Changes

Patch Changes

  • Updated dependencies

9.1.9

Patch Changes

9.1.8

Patch Changes

  • Updated dependencies

9.1.7

Patch Changes

9.1.6

Patch Changes

9.1.5

Patch Changes

9.1.4

Patch Changes

9.1.3

Patch Changes

9.1.2

Patch Changes

9.1.1

Patch Changes

9.1.0

Minor Changes

  • [minor]10e0798da6, (opens new window):

    Adding an optional prop testId that will set the attribute value data-testid. It will help products to write better integration and end to end tests.

9.0.7

Patch Changes

  • [patch]097b696613, (opens new window):

    Components now depend on TS 3.6 internally, in order to fix an issue with TS resolving non-relative imports as relative imports

9.0.6

Patch Changes

9.0.5

Patch Changes

9.0.4

Patch Changes

9.0.3

Patch Changes

9.0.2

Patch Changes

9.0.1

Patch Changes

9.0.0

  • [major]ed41cac6ac, (opens new window):
    • Lozenge has been converted to Typescript. Typescript consumers will now get static type safety. Flow types are no longer provided. No API or behavioural changes.

8.0.0

  • [major]7c17b35107, (opens new window):
    • Updates react and react-dom peer dependencies to react@^16.8.0 and react-dom@^16.8.0. To use this package, please ensure you use at least this version of react and react-dom.

7.0.3

7.0.2

7.0.1

7.0.0

  • [major]76299208e6, (opens new window):

    • Drop ES5 from all the flow modules

    Dropping CJS support in all @atlaskit packages

    As a breaking change, all @atlaskit packages will be dropping cjs distributions and will only distribute esm. This means all distributed code will be transpiled, but will still contain import and export declarations.

    The major reason for doing this is to allow us to support multiple entry points in packages, e.g:

    import colors from `@atlaskit/theme/colors`;

    Previously this was sort of possible for consumers by doing something like:

    import colors from `@atlaskit/theme/dist/esm/colors`;

    This has a couple of issues. 1, it treats the file system as API making internal refactors harder, we have to worry about how consumers might be using things that aren't actually supposed to be used. 2. We are unable to do this internally in @atlaskit packages. This leads to lots of packages bundling all of theme, just to use a single color, especially in situations where tree shaking fails.

    To support being able to use multiple entrypoints internally, we unfortunately cannot have multiple distributions as they would need to have very different imports from of their own internal dependencies.

    ES Modules are widely supported by all modern bundlers and can be worked around in node environments.

    We may choose to revisit this solution in the future if we find any unintended condequences, but we see this as a pretty sane path forward which should lead to some major bundle size decreases, saner API's and simpler package architecture.

    Please reach out to #fabric-build (if in Atlassian) or create an issue in Design System Support, (opens new window) (for external) if you have any questions or queries about this.

6.2.4

6.2.3

  • [patch]d13242d, (opens new window):
    • Change API to experimental theming API to namespace component themes into separate contexts and make theming simpler. Update all dependant components.

6.2.2

6.2.1

6.2.0

6.1.8

6.1.7

6.1.5

6.1.4

6.1.3

6.1.2

6.1.1

6.1.0

6.0.0

5.0.4

5.0.3

5.0.2

5.0.1

5.0.0

4.1.1

4.1.0

4.0.1

4.0.0

3.6.1

3.6.0

3.5.2

3.5.1

3.5.0

3.4.2 (2017-07-27)

3.4.1 (2017-07-25)

3.1.0 (2017-07-17)

3.1.0 (2017-07-17)

3.0.3 (2017-07-13)

3.0.2 (2017-04-27)

3.0.1 (2017-04-26)

2.0.0 (2017-03-27)

1.0.11 (2017-03-23)

1.0.9 (2017-03-21)

1.0.8 (2017-02-28)

1.0.6 (2017-02-28)

1.0.6 (2017-02-28)

1.0.5 (2017-02-28)

1.0.4 (2017-02-20)

1.0.2 (2017-02-07)

1.0.1 (2017-02-06)

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