Advance select inputs with search and multi-select capabilities.
npm install choices.jsImport styles after importing Tailwind and Hummingbird CSS:
@import '@hummingbirdui/hummingbird/src/plugins/choices.css';Basic initialization example with remove item button enabled:
const element = document.querySelector('[data-choices="data-choices"]');
const choices = new Choices(element, { removeItemButton: true });For more options and configuration guidance, refer to the Choices.js documentation.
Text input with Choices.js. Functionality can be extended using Choices.js options.
HTML
<input type="text" class='form-control' id="name" name="name" data-choices="data-choices" />Select input with multiple selection enabled by adding multiple attribute.
HTML
<select class="form-select-fill" aria-label="Outlined example with label" data-choices="data-choices" multiple>
<option value="">Select organizer...</option>
<option>Massachusetts Institute of Technology</option>
<option>University of Chicago</option>
<option>GSAS Open Labs At Harvard</option>
<option>California Institute of Technology</option>
</select>Select single value by adding select-one attribute.
HTML
<select class="form-select" aria-label="Outlined example with label" data-choices="data-choices" select-one>
<option value="">Select organizer...</option>
<option>Massachusetts Institute of Technology</option>
<option>University of Chicago</option>
<option>GSAS Open Labs At Harvard</option>
<option>California Institute of Technology</option>
</select>Set heights using classes like .form-control-sm and .form-control-lg for small and large input fields. Default is medium.
HTML
<select class="form-select form-select-sm" aria-label="Outlined example with label" data-choices="data-choices" select-one>
<option value="">Select option</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>
<select class="form-select" aria-label="Outlined example with label" data-choices="data-choices" select-one>
<option value="">Select option</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>
<select class="form-select form-select-lg" aria-label="Outlined example with label" data-choices="data-choices" select-one>
<option value="">Select option</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>Advance select can also be used with floating labels.
HTML
<div class="form-floating form-field">
<select class="form-select" aria-label="Filled floating label example" data-choices="data-choices" multiple>
<option value="">Select option</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<label class="form-label" for="floatingInput">Options</label>
</div>
<div class="form-floating form-field">
<select class="form-select-fill" aria-label="Filled floating label example" data-choices="data-choices" multiple>
<option value="">Select option</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<label class="form-label" for="floatingInput">Options</label>
</div>HTML
<select class="form-select" aria-label="Outlined example with label" data-choices="data-choices" multiple disabled>
<option value="">Select</option>
<option selected>preset-1</option>
<option>preset-2</option>
<option>preset-3</option>
<option>preset-4</option>
</select>
<select class="form-select-fill" aria-label="Outlined example with label" data-choices="data-choices" multiple disabled>
<option value="">Select</option>
<option selected>preset-1</option>
<option>preset-2</option>
<option>preset-3</option>
<option>preset-4</option>
</select>HTML
<select class="form-select is-valid" aria-label="Outlined example with label" data-choices="data-choices" multiple>
<option value="">Select</option>
<option>preset-1</option>
<option>preset-2</option>
<option>preset-3</option>
<option>preset-4</option>
</select>
<select class="form-select-fill is-valid" aria-label="Outlined example with label" data-choices="data-choices" multiple>
<option value="">Select</option>
<option>preset-1</option>
<option>preset-2</option>
<option>preset-3</option>
<option>preset-4</option>
</select>
<select class="form-select is-invalid" aria-label="Outlined example with label" data-choices="data-choices" multiple>
<option value="">Select</option>
<option>preset-1</option>
<option>preset-2</option>
<option>preset-3</option>
<option>preset-4</option>
</select>
<select class="form-select-fill is-invalid" aria-label="Outlined example with label" data-choices="data-choices" multiple>
<option value="">Select</option>
<option>preset-1</option>
<option>preset-2</option>
<option>preset-3</option>
<option>preset-4</option>
</select>