// the find
element-plus/element-plus
🎉 A Vue.js 3 UI Library made by Element team
Element Plus is the Vue 3 successor to Element UI — a mature, full-featured component library with ~90 components covering everything from basic buttons to complex data tables, date pickers, and virtual scrolling selects. It's the default choice for Vue 3 enterprise admin dashboards, especially in Chinese-language ecosystems where it originated. If you're building a Vue 3 internal tool or B2B app and don't want to design a component system from scratch, this is the most battle-tested option.
Full TypeScript rewrite with proper generics — props are typed, emits are typed, the DX is noticeably better than the old Element UI. Tree-shaking via unplugin-vue-components works well; you don't pay bundle cost for components you don't use. The virtual list select (el-select-v2) actually handles 100k+ options without melting the browser, which is a real differentiator over most competitors. The breaking changes are tracked in YAML files per version and there's a gogocode migration tool — rare for a library this size to care this much about upgrades.
The design language is corporate and dated — it hasn't meaningfully evolved since Element UI, and anything you build with it will look like a 2018 Chinese admin panel without significant CSS overrides. Accessibility is an afterthought; there are a11y tags in the docs marking work-in-progress but many interactive components don't meet WCAG 2.1 AA out of the box. The table component performance degrades sharply with large datasets unless you use the virtual table variant, and the virtual table has a noticeably smaller API surface. The library is so large (the contributor graph shows 900+ contributors) that component APIs are inconsistent — some use v-model:modelValue, others have legacy patterns that survived the Vue 3 migration.