Element Plus — Vue 3 UI Library by the Element Team
Element Plus is a Vue 3 UI library made by the Element team. 60+ components with desktop-first design, clean aesthetic, TypeScript support, and a huge Chinese developer community. The Vue 3 successor to Element UI.
What it is
Element Plus is the Vue 3 successor to Element UI, built by the original Element team. It provides over 60 desktop-first components with a clean aesthetic, full TypeScript support, and tree-shakable imports for optimized bundle sizes.
The library targets frontend developers building admin dashboards, internal tools, and business applications with Vue 3. Its large Chinese developer community and comprehensive documentation make it one of the most adopted Vue component libraries worldwide.
How it saves time or tokens
Element Plus eliminates the need to build common UI patterns from scratch. Pre-built components for tables, forms, dialogs, date pickers, and notifications let you ship features in hours instead of days. The consistent API design means learning one component teaches you the patterns for all others, reducing the ramp-up time for new team members.
How to use
- Install Element Plus in your Vue 3 project using npm or yarn.
- Import components on demand or register globally, then use them in your templates.
- Customize the theme using CSS variables or the SCSS variable override system.
Example
# Install Element Plus
npm install element-plus
<template>
<el-button type='primary' @click='handleClick'>Submit</el-button>
<el-table :data='tableData' stripe>
<el-table-column prop='name' label='Name' />
<el-table-column prop='status' label='Status' />
</el-table>
</template>
<script setup lang='ts'>
import { ref } from 'vue'
const tableData = ref([
{ name: 'Project Alpha', status: 'Active' },
{ name: 'Project Beta', status: 'Pending' }
])
const handleClick = () => console.log('submitted')
</script>
Related on TokRepo
- AI Tools for Coding — Developer tools and frameworks for building applications
- Automation Tools — Tools that streamline development workflows
Common pitfalls
- Importing the entire library instead of using tree-shaking, which inflates your bundle size significantly.
- Mixing Element UI (Vue 2) documentation with Element Plus (Vue 3) API references, leading to broken code.
- Neglecting to configure the locale provider for internationalization, resulting in Chinese-only date pickers and validation messages.
Frequently Asked Questions
No. Element Plus is built exclusively for Vue 3. If you need Vue 2 support, use the original Element UI library. Migration guides are available in the official documentation.
You can override CSS variables in your global stylesheet or use SCSS variable overrides at build time. Element Plus exposes a comprehensive set of design tokens for colors, spacing, typography, and component-specific values.
Yes. When using the on-demand import approach with unplugin-vue-components and unplugin-auto-import, only the components you actually use are included in your production bundle.
Element Plus is the Vue 3 rewrite of Element UI. It uses the Composition API, provides full TypeScript type definitions, and includes modernized components. Element UI targets Vue 2 and is in maintenance mode.
Yes. There is a community Nuxt module for Element Plus that handles auto-imports and SSR compatibility. You can also configure it manually using Nuxt plugins.
Citations (3)
- Element Plus GitHub— Vue 3 UI library with 60+ components
- Element Plus Documentation— Desktop-first design with TypeScript support
- Vue 3 Documentation— Vue 3 Composition API and tree-shaking support
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.