Home Components Colors Typography Blog Blocks
Peacock Home Components Colors Typography Blog Blocks Direction Theme

Select

A dropdown select component supporting single and multi-select with optional typeahead search.

Usage

Use <wc-option> children to declare options directly in HTML.

None Apple Banana Cherry Dragonfruit Elderberry

  <wc-select label="Fruit" placeholder="Pick a fruit..." style="width: 20rem">
    <wc-option value>None</wc-option>
    <wc-option value="apple">Apple</wc-option>
    <wc-option value="banana">Banana</wc-option>
    <wc-option value="cherry">Cherry</wc-option>
    <wc-option value="dragonfruit">Dragonfruit</wc-option>
    <wc-option value="elderberry">Elderberry</wc-option>
  </wc-select>

Options can include a Material Symbol icon via the icon attribute.

None New file Save Delete

  <wc-select label="Action" placeholder="Choose an action..." style="width: 20rem">
    <wc-option value>None</wc-option>
    <wc-option value="new" icon="add">New file</wc-option>
    <wc-option value="save" icon="save">Save</wc-option>
    <wc-option value="delete" icon="delete">Delete</wc-option>
  </wc-select>

Alternatively, set the options property programmatically when options are determined at runtime.


  <wc-select id="basic-select" label="Fruit" placeholder="Pick a fruit..." variant="outlined" style="width: 20rem"></wc-select>

  <script>
    const sel = document.getElementById('basic-select');
    sel.options = [
      { label: 'None', value: '' },
      { label: 'Apple', value: 'apple' },
      { label: 'Banana', value: 'banana' },
      { label: 'Cherry', value: 'cherry' },
    ];
    sel.addEventListener('change', function (evt) {
      console.log('change', evt.detail);
    });
  </script>

Search / Typeahead

Use search="contains" for client-side typeahead filtering.

None New file Save Save As Nadine Brooks Laura Ballard Jack Thompson

  <wc-select label="Action" placeholder="Type to filter..." search="contains" style="width: 20rem">
    <wc-option value>None</wc-option>
    <wc-option value="new" icon="add">New file</wc-option>
    <wc-option value="save" icon="save">Save</wc-option>
    <wc-option value="save-as">Save As</wc-option>
    <wc-option value="nadine">Nadine Brooks</wc-option>
    <wc-option value="laura">Laura Ballard</wc-option>
    <wc-option value="jack">Jack Thompson</wc-option>
  </wc-select>

Multi Select

Add the multiple attribute to enable multi-select. Selected options are shown as dismissible chips inside the field.

Apple Banana Cherry Dragonfruit Elderberry

  <wc-select label="Fruits" placeholder="Pick fruits..." multiple="true" style="width: 24rem">
    <wc-option value="apple">Apple</wc-option>
    <wc-option value="banana">Banana</wc-option>
    <wc-option value="cherry">Cherry</wc-option>
    <wc-option value="dragonfruit">Dragonfruit</wc-option>
    <wc-option value="elderberry">Elderberry</wc-option>
  </wc-select>

Multi-select also works with typeahead (search="contains").

JavaScript TypeScript Python Rust Go Elixir

  <wc-select label="Tags" placeholder="Search and pick tags..." multiple="true" search="contains" style="width: 24rem">
    <wc-option value="js">JavaScript</wc-option>
    <wc-option value="ts">TypeScript</wc-option>
    <wc-option value="python">Python</wc-option>
    <wc-option value="rust">Rust</wc-option>
    <wc-option value="go">Go</wc-option>
    <wc-option value="elixir">Elixir</wc-option>
  </wc-select>
On this page

Select

Sponsor