// the find
sagalbot/vue-select
Everything you wish the HTML <select> element could do, wrapped up into a lightweight, extensible Vue component.
A Vue component that replaces the native `<select>` with typeahead search, tagging, multi-select, and AJAX support. Zero dependencies, ~20kb, and slots for nearly every part of the UI. Vue 2 is stable on v3.x; Vue 3 support is still on a beta channel.
Vue 3 support is actually there via the beta channel — not a vaporware promise. The slot coverage is thorough: you can override the dropdown option, selected value, open indicator, spinner, header, footer, and more without forking the component. CSS is shipped separately and built on SCSS variables, so theming doesn't require fighting specificity wars. Test suite covers accessibility, keyboard nav, AJAX, tagging, and filtering as distinct spec files — not a single monolithic test dump.
Vue 3 support has been 'beta' since at least 2022 and the v4 release has no committed date — if you're starting a new Vue 3 project today, you're betting on a release that's been perpetually around the corner. The build tooling is Webpack with a hand-rolled config in `build/`, not Vite, which makes contributing or forking noticeably more painful than it should be in 2025. Positioning logic lives in a custom `appendToBody` directive rather than using Floating UI or Popper properly, meaning dropdown placement in complex scroll containers is your problem to debug. Maintenance pace has slowed — issues pile up and the gap between Vue 3 shipping and a stable release is now measured in years.