Jump to main content

Overview

Chips are compact elements that can be a representation of individual interactive items and metadata. They catch users' attention and allow them to interact directly with them or their parent component, make selections, filter content, or trigger actions; these actions, however, should never be the primary action since that's what CTA buttons are for.

Chips will most of the time appear dynamically as a group of multiple interactive elements.

Chips can include a leading label for the metadata displayed in the chip. They can also include a Badge to show a count relating to that metadata and a close icon button to remove the chip.


Anatomy

Chips are compact UI elements designed to represent individual interactive items or metadata. They are versatile components that support multiple use cases such as filtering, tagging, and indicating status. Each variant of the chip—Read-Only, Default, and Dismissible—comprises specific elements and structures tailored to its functionality.

Anatomy diagram showing the different elements of a chip component including value, key, badge, icon, outline, and dismissible icon

Element Default Read-Only Description
1. Value The primary textual information that the chip represents.
2. Key (Optional) Provides additional context for the value displayed on the chip.
3. Badge Component (Optional) Displays a count or related metadata.
4. Icon (Optional) An informative icon that enhances the chip's context or appearance.
5. Outline Makes the differentiation that the chip is interactive and selectable.
6. dismissible icon Indicates dismissibility and dismissible area

Subcomponents

The default chip uses the subcomponent of the dismissible icon (6).


Usage

Chips serve as compact visual elements for representing metadata, making selections, or filtering content. They provide a secondary layer of interactivity or information in user interfaces and should never serve as the primary call-to-action or a link to other pages.

When to use

Place next to headers or in cards

Chips may be used inline with headers or within cards to convey supplementary information like category, type, or metadata.

Chips placed next to headers showing category and metadata information
Chips used to indicate status in a card

Use inside tables

Chips are effective in tables for showing quick data tags, such as statuses or attribute types, within table cells.

Chips used inside table cells showing status and attribute types

Use for categorization

They help visually differentiate elements quickly when used for category or labelling.

Chips used for categorization and visual differentiation

When not to use

Don't use as primary navigation or buttons, links

Chips are not links or CTAs. Their function is always secondary to other UI controls like buttons or tabs.

Chips used as primary navigation buttons
Chips used as primary navigation buttons
Chips used as primary navigation buttons

Don't display errors using chips

For alerts or warnings, use standard UI components like notifications or inline error messages, not chips.

Chips used for error messages

Don't use chips for branding

Chips should not display brand-specific content like "Ubuntu Pro". Use official branding materials instead.

Chips used for branding content

Don't use long phrases

Chip values should be between 1-3 words, maximum of five. Longer values reduce readability and visual scannability.

Chips with overly long text values

Don't use icon-only chips

Chips must include a text label. Icons alone don't convey enough context.

Chips with only icons and no text labels

Don't use chips in dropdowns selected states

When content is selected in a combo box, show the selected value as plain text, not a chip.

Chips used in dropdown selected states

Default Chip

When to use

Use for filtering

Let users filter page content dynamically by interacting with the chips. ​​Interactive filter chips must be backed by a secondary filtering menu or panel for accessibility and discoverability.

Default chips used for filtering page content

When not to use

Don't use as radio buttons

Chips are not a replacement for exclusive selection controls. Use radios or toggles for binary choice input.

Chips used as radio button alternatives

Don't use default chip without filtering functionality

Default chips must include active filtering behavior. If no filtering is applied, use a read-only chip instead.

Default chips without filtering functionality

Read-only Chip

When to use

Indicate status

Use read-only chips to indicate a status like "New" next to the side navigation item.

Read-only chips indicating status next to navigation items

Show non-interactive status or labels

Read-only chips convey static information like availability, type, or other types of metadata.

Read-only chips showing non-interactive status and labels

When not to use

Don't make read-only chips interactive

Read-only chips must not include hover or click states.

Read-only chips with interactive hover states

Properties

Chips can be further tailored through customizable attributes that extend the primary variants. These attributes—such as color, icon, and size—add flexibility and adaptability to meet various design and functionality requirements.

Value

Value is the mandatory text (string of characters) attribute of the chip, with an advised number of words between 1 and 3, with a maximum of 5. Do not use the value property to only indicate numeric values. Use the badge component instead.

State

Chips support interactive states to provide clear feedback on user interactions. These states ensure usability and accessibility across different interactions. Currently there is no disabled chip state.

Supported States

  • Default: The chip's standard appearance when not interacted with.
  • Hover: A visual highlight when the user hovers over the chip, indicating interactivity.
  • Active: The state when a user clicks or selects the chip, providing clear feedback.

Chip states including default, hover, and active states

Default chips have default, hover and active states while the read-only chips only have a default state. The dismissible chip's interactive area is limited to the chip's icon area. In any use-case chips should have only one interaction associated with them.

Color

Colors - for background and stroke color - can have semantic connotation, reinforcing meaning or status visually, making it easier for users to interpret contextual information, but can be also used to indicate categorization. If there is a need for additional color(s), a contribution must be made to the design system.

Supported Variants

  • Gray: Used for categorization when no additional semantic meaning is added.
  • Green: Can be used to communicate a positive connotation, such as confirmation or success.
  • Blue: Can be used for giving additional information, preventive but not risk related.
  • Red: Can be used for communicating a negative connotation.
  • Yellow: Can be used for prevention or notifying of state with risk.

Chips in different semantic colors: gray, green, blue, red, and yellow variants

Size

Chips are available in two sizes affecting the height of the chip, to accommodate different UI needs. Width is defined by the value text's length.

Supported Sizes

  • Default: The standard chip size.
  • Dense: A compact version with reduced height and padding, designed for tighter spaces.

Default and dense chip sizes side by side

Icon

The Icon property on the left hand side of the component is an optional attribute. It is used to display additional contextual data related to the chip's content, providing an easy way to distinguish between chips. The icon on the right hand side is reserved for the dismissible chip - having the Close icon as part of its anatomy.

Supported Icons

All non-semantic icons from the icon library are supported for chips. Semantic icons should be only used with the corresponding semantic background color.

Chips with various icons from the icon library

Key

Keys (also referred to as leads) are optional, leading text elements that provide context to the chip's primary value.

Example: For a filter labeled "Month: June," "Month" is the key, and "June" is the value.

Supported Variants

Chips with key-value pairs like Month: June

Badge

The Badge property is an optional attribute. It is used to display a quantitative value related to the chip's content, providing additional context at a glance.

Example: In Landscape the chip's value could represent a group of machines while the badge would refer to the number of machines in that group.

Supported Variants

Chips with badges displaying quantitative values

dismissible icon

The dismissible icon is a subcomponent of the Default chip. When present it becomes the interactive area of the chip.

Chip with dismissible icon


Styling

Layout and Spacing

Vertical

Chip vertical spacing settings

The spacing in the default sized chip has a 0.25rem padding, including the outline stroke of the component on both top and bottom of the chip.
Label wrappers have a 5.5px padding vertically. In the dense sized chip, the outline stroke is excluded from the body of the chip, so that the padding is only including the 1.5px border.

Read-only chips have the same dimensions as default chips. The transparent borders are calculated into the size of the chip.

Horizontal

Chip horizontal spacing settings

In the default chip the spacing between icon, label, badge and dismissible icon is 4px. The chip's horizontal padding is 10.5px.

We recommend a spacing of minimum 8px between chip components and chip components with other components.

Colors

Chip component colors

Text overflow

The chip width mainly depends on the number of characters included in the chip's value. We would like to advise you to keep the length of the chip between one and three words. The hard requirement is having the chip with a maximum of five words.
In the case of an overflow, the chip's value truncates rather than wrapping it inside the chip.

Responsiveness

Responsiveness is inherited from the already documented chip component.

Tokens

The source of truth can be found in the Figma file for spacing and color tokens.


Reference