sagalbot/vue-select

Everything you wish the HTML <select> element could do, wrapped up into a lightweight, extensible Vue component.

JavaScript

4,667

645 commits

updated Feb 17, 2026

See the code

README

vue-select Current Release Release Date Bundle Size Monthly Downloads Coverage Status MIT License

Everything you wish the HTML <select> element could do, wrapped up into a lightweight, zero dependency, extensible Vue component.

Vue Select is a feature rich select/dropdown/typeahead component. It provides a default template that fits most use cases for a filterable select dropdown. The component is designed to be as lightweight as possible, while maintaining high standards for accessibility, developer experience, and customization.

  • Tagging
  • Filtering / Searching
  • Vuex Support
  • AJAX Support
  • SSR Support
  • Accessible
  • ~20kb Total / ~5kb CSS / ~15kb JS
  • Select Single/Multiple Options
  • Customizable with slots and SCSS variables
  • Zero dependencies

Documentation

Complete documentation and examples available at https://vue-select.org.

Sponsors 🎉

It takes a lot of effort to maintain this project. If it has saved you development time, please consider sponsoring the project with GitHub sponsors!

Huge thanks to the sponsors and contributors that make Vue Select possible!

Get started

Vue 3 / Vue Select 4.x-beta

Vue 3 support is on the beta channel: vue-select@beta, and will become the new default when v4 is released. See #1579 for more details!

Install:

yarn add vue-select@beta

# or use npm

npm install vue-select@beta

Then, import and register the component:

# main.ts or main.js

import { createApp } from "vue";
import App from "./App.vue";

import { VueSelect } from "vue-select";

createApp(App)
    .component("v-select", VueSelect)
    .mount("#app");

The component itself does not include any CSS. You'll need to include it separately in your Component.vue:

<style>
@import "vue-select/dist/vue-select.css";
</style>

Vue 2 / Vue Select 3.x

Install:

yarn add vue-select

# or use npm

npm install vue-select

Then, import and register the component:

import Vue from "vue";
import vSelect from "vue-select";

Vue.component("v-select", vSelect);

The component itself does not include any CSS. You'll need to include it separately:

import "vue-select/dist/vue-select.css";

You can also include vue-select directly in the browser. Check out the documentation for loading from CDN..

License

MIT

combobox
listbox
select
selecting
selector
vue
vue2
vue3
vue-component
vue-select

sagalbot/vue-select

Everything you wish the HTML <select> element could do, wrapped up into a lightweight, extensible Vue component.

JavaScript

4,667

645 commits

updated Feb 17, 2026

See the code

README

vue-select Current Release Release Date Bundle Size Monthly Downloads Coverage Status MIT License

Everything you wish the HTML <select> element could do, wrapped up into a lightweight, zero dependency, extensible Vue component.

Vue Select is a feature rich select/dropdown/typeahead component. It provides a default template that fits most use cases for a filterable select dropdown. The component is designed to be as lightweight as possible, while maintaining high standards for accessibility, developer experience, and customization.

  • Tagging
  • Filtering / Searching
  • Vuex Support
  • AJAX Support
  • SSR Support
  • Accessible
  • ~20kb Total / ~5kb CSS / ~15kb JS
  • Select Single/Multiple Options
  • Customizable with slots and SCSS variables
  • Zero dependencies

Documentation

Complete documentation and examples available at https://vue-select.org.

Sponsors 🎉

It takes a lot of effort to maintain this project. If it has saved you development time, please consider sponsoring the project with GitHub sponsors!

Huge thanks to the sponsors and contributors that make Vue Select possible!

Get started

Vue 3 / Vue Select 4.x-beta

Vue 3 support is on the beta channel: vue-select@beta, and will become the new default when v4 is released. See #1579 for more details!

Install:

yarn add vue-select@beta

# or use npm

npm install vue-select@beta

Then, import and register the component:

# main.ts or main.js

import { createApp } from "vue";
import App from "./App.vue";

import { VueSelect } from "vue-select";

createApp(App)
    .component("v-select", VueSelect)
    .mount("#app");

The component itself does not include any CSS. You'll need to include it separately in your Component.vue:

<style>
@import "vue-select/dist/vue-select.css";
</style>

Vue 2 / Vue Select 3.x

Install:

yarn add vue-select

# or use npm

npm install vue-select

Then, import and register the component:

import Vue from "vue";
import vSelect from "vue-select";

Vue.component("v-select", vSelect);

The component itself does not include any CSS. You'll need to include it separately:

import "vue-select/dist/vue-select.css";

You can also include vue-select directly in the browser. Check out the documentation for loading from CDN..

License

MIT

combobox
listbox
select
selecting
selector
vue
vue2
vue3
vue-component
vue-select

Project health

Overall

3.2/10

Maintained

0/10

Code review

4/10
OpenSSF Scorecard

Latest release

3.20.4 · Feb 6, 2025

Releases this year

0

Significant stargazers

Graham Campbell

7,103 followers · starred Feb 2025

Jason Bosco

293 followers · starred Apr 2021

Jacob Lee

1,371 followers · starred Jan 2017

Benjamin Milde

248 followers · starred Aug 2016