Multi-Select

Material Design 3 multiple selection dropdown component with tags

Multi-Select

Multi-Select allows users to select multiple options from a dropdown list. Selected items are displayed as removable tags. Uses the native HTML Popover API for dropdown behavior.

Basic Usage

Basic Multi-Select

Option 1
Option 2
Option 3

With Selections

Multi-Select with Tags

Vue Angular
React
Vue
Angular
Svelte

Multi-Select with Search

Variants

Outlined (Default)

Outlined Multi-Select

React
Vue
Angular

Filled

Filled Multi-Select

React
Vue
Angular

Sizes

Small

Small Multi-Select

Option 1
Option 2

Large

Large Multi-Select

Option 1
Option 2

Tag Variants

Primary Tags

Primary Tags

Option 2
Option 1
Option 2

Outlined Tags

Outlined Tags

Option 2
Option 1
Option 2

With Max Selections Display

Max Selections Display

React
Vue
Angular
Svelte
Solid

With Clear All Button

With Clear All

React
Vue
Angular

With Groups

Grouped Options

Frontend
React
Vue
Angular
Backend
Node.js
Python
Go

States

Error State

Error State

JavaScript
TypeScript
Python
Please select at least 2 skills

Disabled

Disabled State

Loading

Loading State

API Reference

Class Names

ClassDescription
.multi-selectBase container (required)
.multi-select-triggerTrigger button (use with popovertarget)
.multi-select-placeholderPlaceholder text
.multi-select-tagsTags container
.multi-select-tagIndividual tag
.multi-select-tag-removeTag remove button
.multi-select-tag-primaryPrimary colored tag
.multi-select-tag-outlinedOutlined tag variant
.multi-select-tag-overflowOverflow count tag
.multi-select-inputSearch input within tags
.multi-select-arrowDropdown arrow
.multi-select-clear-allClear all button
.multi-select-dropdownDropdown container (use with popover attribute)
.multi-select-searchSearch container in dropdown
.multi-select-search-inputSearch input in dropdown
.multi-select-optionsOptions list
.multi-select-optionIndividual option
.multi-select-option-selectedSelected option
.multi-select-option-disabledDisabled option
.multi-select-option-checkboxOption checkbox
.multi-select-groupOption group
.multi-select-group-headerGroup header
.multi-select-actionsActions container (select all/deselect all)
.multi-select-actionAction button
.multi-select-outlinedOutlined variant
.multi-select-filledFilled variant
.multi-select-smSmall size
.multi-select-lgLarge size
.multi-select-errorError state
.multi-select-disabledDisabled state
.multi-select-loadingLoading state
.multi-select-spinnerLoading spinner

HTML Structure with Popover API

<div class="multi-select">
  <button class="multi-select-trigger" popovertarget="dropdown-id">
    <span class="multi-select-placeholder">Select options</span>
    <svg class="multi-select-arrow">...</svg>
  </button>
  <div class="multi-select-dropdown" id="dropdown-id" popover="auto">
    <div class="multi-select-options">
      <div class="multi-select-option">Option 1</div>
      <div class="multi-select-option">Option 2</div>
    </div>
  </div>
</div>