Chip
Chip Set
Multi-select set (ArrowLeft / ArrowRight / Home / End to rove):
Extras
Sea View
Wi-Fi
Single-select set (single-select keeps at most one selected):
Car
Train
Flight
Set with a disabled chip — arrow keys skip it:
One
Disabled
Two
Code
<style>
.demo-column {
display: flex;
flex-direction: column;
gap: 8px;
padding: 16px;
}
.demo-caption {
font-size: 12px;
color: #757575;
}
</style>
<div class="demo-column">
<span class="demo-caption">Multi-select set (ArrowLeft / ArrowRight / Home / End to rove):</span>
<mdc-chip-set aria-label="Filter options">
<mdc-chip variant="filter">
<span>Extras</span>
</mdc-chip>
<mdc-chip variant="filter">
<span>Sea View</span>
</mdc-chip>
<mdc-chip variant="filter" selected>
<span>Wi-Fi</span>
</mdc-chip>
</mdc-chip-set>
</div>
<div class="demo-column">
<span class="demo-caption">Single-select set (single-select keeps at most one selected):</span>
<mdc-chip-set single-select aria-label="Travel method">
<mdc-chip variant="filter">
<span>Car</span>
</mdc-chip>
<mdc-chip variant="filter">
<span>Train</span>
</mdc-chip>
<mdc-chip variant="filter" selected>
<span>Flight</span>
</mdc-chip>
</mdc-chip-set>
</div>
<div class="demo-column">
<span class="demo-caption">Set with a disabled chip — arrow keys skip it:</span>
<mdc-chip-set aria-label="With disabled">
<mdc-chip variant="filter">
<span>One</span>
</mdc-chip>
<mdc-chip variant="filter" disabled>
<span>Disabled</span>
</mdc-chip>
<mdc-chip variant="filter">
<span>Two</span>
</mdc-chip>
</mdc-chip-set>
</div>Always Focusable
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
flex-wrap: wrap;
}
.demo-caption {
display: block;
font-size: 12px;
color: #757575;
padding: 0 16px;
}
</style>
<span class="demo-caption">always-focusable keeps a disabled chip focusable (Tab through the set):</span>
<div class="demo-row">
<mdc-chip variant="assist" disabled always-focusable>
<span>Disabled, Always Focusable</span>
</mdc-chip>
<mdc-chip variant="assist" disabled>
<span>Plain Disabled</span>
</mdc-chip>
</div>
<span class="demo-caption">soft-disabled dims the chip but leaves it focusable and in the tab order:</span>
<div class="demo-row">
<mdc-chip variant="assist" soft-disabled>
<span>Soft Disabled</span>
</mdc-chip>
<mdc-chip variant="filter" soft-disabled selected>
<span>Soft Disabled Selected</span>
</mdc-chip>
</div>Avatar
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
}
</style>
<div class="demo-row">
<mdc-chip variant="input">
<span slot="avatar">A</span>
<span>Input with Avatar</span>
</mdc-chip>
<mdc-chip variant="input">
<span slot="avatar">B</span>
<span>Another Input</span>
</mdc-chip>
<mdc-chip variant="input" selected>
<span slot="avatar">C</span>
<span>Selected Input</span>
</mdc-chip>
</div>Disabled
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
}
</style>
<div class="demo-row">
<mdc-chip variant="assist" disabled>
<span>Disabled Assist</span>
</mdc-chip>
<mdc-chip variant="filter" disabled>
<span>Disabled Filter</span>
</mdc-chip>
<mdc-chip variant="filter" selected disabled>
<span>Disabled Selected</span>
</mdc-chip>
<mdc-chip variant="input" disabled>
<span>Disabled Input</span>
</mdc-chip>
<mdc-chip variant="suggestion" disabled>
<span>Disabled Suggestion</span>
</mdc-chip>
</div>Elevated
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
flex-wrap: wrap;
}
</style>
<div class="demo-row">
<mdc-chip variant="assist" elevated>
<span>Elevated Assist</span>
</mdc-chip>
<mdc-chip variant="assist" elevated>
<mdc-icon slot="icon">add</mdc-icon>
<span>Elevated Assist with Icon</span>
</mdc-chip>
<mdc-chip variant="filter" elevated selected>
<span>Elevated Filter</span>
</mdc-chip>
<mdc-chip variant="assist" elevated disabled>
<span>Elevated Disabled</span>
</mdc-chip>
</div>Href
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
flex-wrap: wrap;
}
</style>
<div class="demo-row">
<mdc-chip variant="assist" href="https://m3.material.io/components/chips/overview" target="_blank">
<span>Link Assist</span>
</mdc-chip>
<mdc-chip variant="suggestion" href="https://m3.material.io/components/chips/overview">
<mdc-icon slot="icon">search</mdc-icon>
<span>Link Suggestion</span>
</mdc-chip>
<mdc-chip variant="assist" href="https://m3.material.io/components/chips/overview" disabled>
<span>Disabled Link</span>
</mdc-chip>
</div>Icon
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
}
</style>
<div class="demo-row">
<mdc-chip variant="assist">
<mdc-icon slot="icon">add</mdc-icon>
<span>Assist with Icon</span>
</mdc-chip>
<mdc-chip variant="filter">
<mdc-icon slot="icon">filter_list</mdc-icon>
<span>Filter with Icon</span>
</mdc-chip>
<mdc-chip variant="filter" selected>
<mdc-icon slot="icon">check</mdc-icon>
<span>Selected with Icon</span>
</mdc-chip>
</div>Remove Only
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
flex-wrap: wrap;
}
</style>
<div class="demo-row">
<mdc-chip variant="input" remove-only aria-label-remove="Remove john@example.com">
<mdc-icon slot="avatar">face</mdc-icon>
<span>john@example.com</span>
</mdc-chip>
<mdc-chip variant="input" remove-only disabled aria-label-remove="Remove disabled">
<span>Disabled Remove-Only</span>
</mdc-chip>
<mdc-chip variant="input" aria-label-remove="Remove standard">
<span>Standard Input (for comparison)</span>
</mdc-chip>
</div>Selected Icon
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
flex-wrap: wrap;
}
</style>
<div class="demo-row">
<mdc-chip variant="filter" selected>
<span>Default Checkmark</span>
</mdc-chip>
<mdc-chip variant="filter" selected>
<mdc-icon slot="selected-icon">favorite</mdc-icon>
<span>Custom Selected Icon</span>
</mdc-chip>
<mdc-chip variant="filter">
<mdc-icon slot="selected-icon">favorite</mdc-icon>
<span>Custom Icon (unselected)</span>
</mdc-chip>
</div>Selected
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
}
</style>
<div class="demo-row">
<mdc-chip variant="filter" selected>
<span>Selected Filter</span>
</mdc-chip>
<mdc-chip variant="filter">
<span>Unselected Filter</span>
</mdc-chip>
<mdc-chip variant="input" selected>
<span>Selected Input</span>
</mdc-chip>
<mdc-chip variant="input">
<span>Unselected Input</span>
</mdc-chip>
</div>Variant
Code
<style>
.demo-row {
display: flex;
gap: 16px;
align-items: center;
padding: 16px;
}
</style>
<div class="demo-row">
<mdc-chip variant="assist">
<span>Assist Chip</span>
</mdc-chip>
<mdc-chip variant="filter">
<span>Filter Chip</span>
</mdc-chip>
<mdc-chip variant="input">
<span>Input Chip</span>
</mdc-chip>
<mdc-chip variant="suggestion">
<span>Suggestion Chip</span>
</mdc-chip>
</div>