Element Plus is a comprehensive Vue.js 3 component library that provides 80+ high-quality UI components with a consistent design language. Built with TypeScript and the Vue 3 Composition API, it offers developers a complete toolkit for building modern web applications with extensive theming, internationalization, and accessibility features.
npm install element-plusimport { createApp } from 'vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
const app = createApp(App);
app.use(ElementPlus);For individual component imports:
import { ElButton, ElForm, ElInput } from 'element-plus';import { createApp } from 'vue';
import { ElButton, ElMessage } from 'element-plus';
const app = createApp({
template: `
<el-button type="primary" @click="showMessage">
Click Me
</el-button>
`,
methods: {
showMessage() {
ElMessage.success('Hello Element Plus!');
}
}
});
app.component('ElButton', ElButton);Element Plus is organized into several key categories:
Element Plus can be installed globally or used with individual component imports for optimal bundle size.
declare const install: (app: App) => void;
declare const version: string;
interface App {
use(plugin: any): App;
component(name: string, component: any): App;
}Installation and Configuration
Complete form solution with validation, input controls, and user interaction components. Essential for data collection and user input handling.
// Core form components
declare const ElForm: Component;
declare const ElFormItem: Component;
declare const ElInput: Component;
declare const ElInputNumber: Component;
declare const ElInputTag: Component;
declare const ElSelect: Component;
declare const ElSelectV2: Component;
declare const ElCheckbox: Component;
declare const ElRadio: Component;
declare const ElSwitch: Component;
declare const ElSlider: Component;
declare const ElDatePicker: Component;
declare const ElTimePicker: Component;
declare const ElTimeSelect: Component;
declare const ElCascader: Component;
declare const ElColorPicker: Component;
declare const ElRate: Component;
declare const ElUpload: Component;
declare const ElMention: Component;Flexible layout system for organizing content with containers, grids, and spacing utilities. Foundation for responsive design.
declare const ElContainer: Component;
declare const ElRow: Component;
declare const ElCol: Component;
declare const ElSpace: Component;Navigation and menu components for building intuitive user interfaces with breadcrumbs, tabs, menus, and step indicators.
declare const ElMenu: Component;
declare const ElTabs: Component;
declare const ElBreadcrumb: Component;
declare const ElSteps: Component;
declare const ElDropdown: Component;
declare const ElAnchor: Component;
declare const ElSegmented: Component;
declare const ElTour: Component;Components for presenting and organizing data including tables, lists, cards, and statistical displays with advanced features like virtualization.
declare const ElTable: Component;
declare const ElTableV2: Component;
declare const ElTree: Component;
declare const ElTreeV2: Component;
declare const ElTreeSelect: Component;
declare const ElPagination: Component;
declare const ElCard: Component;
declare const ElTag: Component;
declare const ElCheckTag: Component;
declare const ElImage: Component;
declare const ElImageViewer: Component;
declare const ElAvatar: Component;
declare const ElCarousel: Component;
declare const ElDescriptions: Component;
declare const ElEmpty: Component;
declare const ElResult: Component;
declare const ElSkeleton: Component;
declare const ElStatistic: Component;
declare const ElWatermark: Component;User feedback and overlay components including dialogs, notifications, tooltips, and loading states for enhanced user experience.
declare const ElDialog: Component;
declare const ElDrawer: Component;
declare const ElTooltip: Component;
declare const ElAlert: Component;
// Services
declare const ElMessage: MessageService;
declare const ElNotification: NotificationService;
declare const ElMessageBox: MessageBoxService;Utility components and directives for enhanced functionality including icons, scrollbars, infinite scroll, and focus management.
declare const ElIcon: Component;
declare const ElScrollbar: Component;
declare const ElBacktop: Component;
declare const ElAffix: Component;
declare const ElVirtualList: Component;
declare const ElText: Component;
declare const ElLink: Component;
declare const ElSplitter: Component;
// Directives
declare const ClickOutside: Directive;
declare const InfiniteScroll: Directive;
declare const TrapFocus: Directive;
declare const Mousewheel: Directive;
declare const RepeatClick: Directive;Vue 3 Composition API hooks for shared functionality including theming, internationalization, focus management, and accessibility.
declare function useLocale(): LocaleContext;
declare function useNamespace(block: string): NamespaceReturn;
declare function useSize(): SizeContext;
declare function useFocus(): FocusReturn;
declare function useId(): IdReturn;
declare function useZIndex(): ZIndexReturn;
declare function useModal(): ModalReturn;
declare function usePopper(): PopperReturn;
declare function useDraggable(): DraggableReturn;
declare function useTimeout(): TimeoutReturn;
declare function useDelayedToggle(): DelayedToggleReturn;
declare function useEscapeKeydown(): EscapeKeydownReturn;
declare function useThrottleRender(): ThrottleRenderReturn;
declare function useAttrs(): AttrsReturn;
declare function useProp(): PropReturn;
declare function useAriaProps(): AriaPropsReturn;
declare function useComposition(): CompositionReturn;
declare function useFloating(): FloatingReturn;
declare function useCursor(): CursorReturn;
declare function useOrderedChildren(): OrderedChildrenReturn;
declare function useFocusController(): FocusControllerReturn;
declare function useEmptyValues(): EmptyValuesReturn;Comprehensive theming system with CSS custom properties, SCSS variables, and dark mode support for complete design control.
declare const ElConfigProvider: Component;
interface ConfigProviderProps {
locale?: Language;
size?: ComponentSize;
zIndex?: number;
namespace?: string;
}type ComponentSize = '' | 'large' | 'default' | 'small';
interface Component {
name?: string;
props?: Record<string, any>;
emits?: string[] | Record<string, any>;
setup?: Function;
}
interface Language {
name: string;
el: Record<string, any>;
}
interface Directive {
mounted?: Function;
updated?: Function;
unmounted?: Function;
}