Chip

Designer doc
Chips are interactive compact elements that represent an input, short information, or action. It is often used in forms, text fields and category choices. It allows users to quickly recognise information, make selections, filter content, or trigger actions.

Examples

Basic Chips
Basic Chip is usually used only for data display or action.
View code
There are also three more types of Chips - InputChips, FilterChips, and ChoiceChips. These chips wrap the basic Chip and each has different input purposes.
Input Chips
Input chips represent a complex piece of information in compact form, such as an entity (person, place, or thing) or text. They enable user input and verify that input by converting text into chips.
InputChips must be a controlled component i.e. handle the deletion yourself.
View code
Filter Chips
Filter chips use tags or descriptive words to filter content. This type of chips clearly delineate and display options in a compact area. They are a good alternative to toggle buttons or checkboxes.
View code
By default, filter chips have basic variant. This can be overrided for other variants such as capsule-outlined and capsule-contained filter chips.
View code
capsule-large filter chips have a description to provide more information for the filter chip option.
View code
Choice Chips
Choice chips allow selection of a single chip from a set of options. This type of chips is a good alternative to toggle buttons, radio buttons, and single select menus.
View code
By default, choice chips have basic variant. This can be overrided for other variants such as capsule-outlined and capsule-contained choice chips.
View code
capsule-large choice chips have a description to provide more information for the choice chip option.
View code
Controlling values
As you can see, examples above use initialValue prop to demonstrate the most basic usage. However, in real cases normally you want to control the value instead.
View code
Accessibility
Each of InputChips, FilterChips, and ChoiceChips are navigatable with keyboard arrow keys. This interaction is implemented with technique known as roving tabIndex.
For InputChips, you can use Backspace to delete the focused Chip.

Relevant components

References

API

Chip
Prop nameTypeDefaultDescription
asvoid | WebTarget
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
forwardedAsvoid | WebTarget
themeDefaultTheme
ChoiceChip
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
clickableboolean
descriptionReactNode
Description to show for capsule-large choice and filter chips.
disabledboolean
Equivalent to button's disabled property.
indexnumber
Order index for keyboard navigation using arrow keys. By default, this prop is automatically added by the parent.
keyboardClickKeysstring[]
leftElementReactNode
Element to be added on the left side of the label. Equivalent to adding the element manually on the label with a certain margin.
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
rightElementReactNode
Element to be added on the right side of the label. Equivalent to adding the element manually on the label with a certain margin.
valueValue
Unique value.
variantChipVariants
ChoiceChipList
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
initialValueValue
Uncontrolled value (single) of the selected chip.
onChange(value: Value) => void
Callback after selected chip changes. null is given when currently selected chip is selected.
valueValue
Controlled value (single) of the selected chip.
variantChipVariants
FilterChip
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
clickableboolean
descriptionReactNode
Description to show for capsule-large choice and filter chips.
disabledboolean
Equivalent to button's disabled property.
indexnumber
Order index for keyboard navigation using arrow keys. By default, this prop is automatically added by the parent.
keyboardClickKeysstring[]
leftElementReactNode
Element to be added on the left side of the label. Equivalent to adding the element manually on the label with a certain margin.
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
rightElementReactNode
Element to be added on the right side of the label. Equivalent to adding the element manually on the label with a certain margin.
valueValue
Unique value.
variantChipVariants
FilterChipList
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
initialSelectedValue[][]
Uncontrolled value (multiple) of the selected chips.
onChange(selected: Value[]) => void
Callback when a chip is selected or deselected.
selectedValue[]
Controlled value (multiple) of the selected chips.
variantChipVariants
InputChip
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
clickableboolean
descriptionReactNode
Description to show for capsule-large choice and filter chips.
disableNavigationboolean
disabledboolean
Equivalent to button's disabled property.
indexnumber
Order index for keyboard navigation using arrow keys. By default, this prop is automatically added by the parent.
invalidboolean
keyboardClickKeysstring[]
leftElementReactNode
Element to be added on the left side of the label. Equivalent to adding the element manually on the label with a certain margin.
onBlurFocusEventHandler<HTMLDivElement>
onClickMouseEventHandler<HTMLDivElement>
onDelete(e: SyntheticEvent<HTMLDivElement, Event>) => void
Callback on Backspace key or delete icon is clicked. If this callback is not provided, icon is not rendered - meaning it's not deletable.
onKeyDownKeyboardEventHandler<HTMLDivElement>
onKeyUpKeyboardEventHandler<HTMLDivElement>
onMouseDownMouseEventHandler<HTMLDivElement>
onMouseLeaveMouseEventHandler<HTMLDivElement>
onMouseUpMouseEventHandler<HTMLDivElement>
onReleaseEventHandler<SyntheticEvent<HTMLDivElement, Event>>
Callback that's triggered after click i.e. mouseup and keyup of enter or space.
onTouchEndTouchEventHandler<HTMLDivElement>
onTouchStartTouchEventHandler<HTMLDivElement>
rightElementReactNode
Element to be added on the right side of the label. Equivalent to adding the element manually on the label with a certain margin.
variantChipVariantstext
InputChipList
Prop nameTypeDefaultDescription
asany
Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended.
    Examples
    Examples
    Basic Chips
    Basic Chips
    Input Chips
    Input Chips
    Filter Chips
    Filter Chips
    Choice Chips
    Choice Chips
    Controlling values
    Controlling values
    Accessibility
    Accessibility
    Relevant components
    Relevant components
    References
    References
    API
    API
    Chip
    Chip
    ChoiceChip
    ChoiceChip
    ChoiceChipList
    ChoiceChipList
    FilterChip
    FilterChip
    FilterChipList
    FilterChipList
    InputChip
    InputChip
    InputChipList
    InputChipList
Coral is a thoroughly developed design system widely adopted by developers and designers for creating beautiful and user-friendly Sea internal products.

Copyright © 2018-2025 Sea Labs