Element Plus Skills Library
A comprehensive skill library for Element Plus UI framework, designed for AI agents to understand and utilize Element Plus components effectively.
When to Invoke
Invoke this skill when:
- User needs to implement any Element Plus component
- User asks about Element Plus configuration or setup
- User wants to customize themes or use dark mode
- User needs internationalization (i18n) support
- User asks about design specifications (colors, borders, typography)
- User encounters issues with Element Plus components
Skill Library Overview
This library contains 88 skills organized into the following categories:
| Category | Count | Description | Path Pattern |
|---|---|---|---|
| Component Skills | 77 | Individual component documentation | ./components/el-{name}/SKILL.md |
| Design Specifications | 5 | Border, Color, Layout, Typography, Overview | ./element-plus-design-{name}/SKILL.md |
| Foundation Skills | 6 | Quickstart, Theming, i18n, Dark Mode, SSR, Components | ./element-plus-{name}/SKILL.md |
How to Locate Skills
1. Component Skills (77 skills)
All component skills follow the naming convention el-{component-name} and are located in the components/ directory.
Path Pattern:
./components/el-{component-name}/SKILL.md
Examples:
- Button:
./components/el-button/SKILL.md - Form:
./components/el-form/SKILL.md - Table:
./components/el-table/SKILL.md - Dialog:
./components/el-dialog/SKILL.md
2. Design Specification Skills (5 skills)
Design skills provide guidance on Element Plus design system.
| Skill Name | Path | Description |
|---|---|---|
| Border | ./element-plus-design-border/SKILL.md | Border styles, radius, shadows |
| Color | ./element-plus-design-color/SKILL.md | Color palette and semantics |
| Layout | ./element-plus-design-layout/SKILL.md | 24-column grid system |
| Typography | ./element-plus-design-typography/SKILL.md | Font conventions |
| Overview | ./element-plus-design-overview/SKILL.md | Design system overview |
3. Foundation Skills (6 skills)
Foundation skills cover core setup and configuration.
| Skill Name | Path | Description |
|---|---|---|
| Quickstart | ./element-plus-quickstart/SKILL.md | Installation and setup |
| Theming | ./element-plus-theming/SKILL.md | Theme customization |
| i18n | ./element-plus-i18n/SKILL.md | Internationalization |
| Dark Mode | ./element-plus-dark-mode/SKILL.md | Dark mode implementation |
| SSR | ./element-plus-ssr/SKILL.md | Server-side rendering |
| Components | ./element-plus-components/SKILL.md | Component overview index |
Skill Invocation Guide
Step 1: Identify User Intent
Analyze the user's request to determine which skill category is needed:
| User Request Pattern | Skill Category | Example Skill |
|---|---|---|
| "Create a button/form/table..." | Component | el-button, el-form, el-table |
| "How to set up Element Plus" | Foundation | element-plus-quickstart |
| "Customize theme colors" | Foundation | element-plus-theming |
| "Add multi-language support" | Foundation | element-plus-i18n |
| "Implement dark mode" | Foundation | element-plus-dark-mode |
| "What colors are available?" | Design | element-plus-design-color |
| "How does the grid work?" | Design | element-plus-design-layout |
Step 2: Locate the Skill File
Use the path patterns above to locate the appropriate skill file:
# For component skills
./components/el-{component-name}/SKILL.md
# For design skills
./element-plus-design-{name}/SKILL.md
# For foundation skills
./element-plus-{name}/SKILL.md
Step 3: Read and Apply Skill Content
Each skill file contains:
- When to Invoke: Specific conditions for using the skill
- Features: Component capabilities and options
- API Reference: Attributes, events, slots, exposes
- Usage Examples: Code snippets for common patterns
- Best Practices: Recommended implementation guidelines
Component Skill Index
Basic Components (14)
| Component | Skill Path | Description |
|---|---|---|
| Affix | ./components/el-affix/SKILL.md | Sticky positioning |
| Alert | ./components/el-alert/SKILL.md | Alert messages |
| Anchor | ./components/el-anchor/SKILL.md | Anchor navigation |
| Avatar | ./components/el-avatar/SKILL.md | User avatars |
| Backtop | ./components/el-backtop/SKILL.md | Back to top button |
| Badge | ./components/el-badge/SKILL.md | Badges and marks |
| Breadcrumb | ./components/el-breadcrumb/SKILL.md | Breadcrumb navigation |
| Button | ./components/el-button/SKILL.md | Buttons |
| Card | ./components/el-card/SKILL.md | Card containers |
| Carousel | ./components/el-carousel/SKILL.md | Image carousels |
| Collapse | ./components/el-collapse/SKILL.md | Collapsible panels |
| Divider | ./components/el-divider/SKILL.md | Dividing lines |
| Icon | ./components/el-icon/SKILL.md | SVG icons |
| Link | ./components/el-link/SKILL.md | Text links |
| Text | ./components/el-text/SKILL.md | Styled text |
Form Components (24)
| Component | Skill Path | Description |
|---|---|---|
| Autocomplete | ./components/el-autocomplete/SKILL.md | Input with suggestions |
| Cascader | ./components/el-cascader/SKILL.md | Cascading selection |
| Checkbox | ./components/el-checkbox/SKILL.md | Checkboxes |
| ColorPicker | ./components/el-color-picker/SKILL.md | Color picker |
| ColorPicker Panel | ./components/el-color-picker-panel/SKILL.md | Color picker panel |
| DatePicker | ./components/el-date-picker/SKILL.md | Date picker |
| DatePicker Panel | ./components/el-date-picker-panel/SKILL.md | Date picker panel |
| DateTimePicker | ./components/el-datetime-picker/SKILL.md | Date time picker |
| Form | ./components/el-form/SKILL.md | Form management |
| Input | ./components/el-input/SKILL.md | Text input |
| InputNumber | ./components/el-input-number/SKILL.md | Number input |
| InputTag | ./components/el-input-tag/SKILL.md | Tag input |
| Mention | ./components/el-mention/SKILL.md | Mention input |
| Radio | ./components/el-radio/SKILL.md | Radio buttons |
| Rate | ./components/el-rate/SKILL.md | Star rating |
| Select | ./components/el-select/SKILL.md | Dropdown select |
| Select V2 | ./components/el-select-v2/SKILL.md | Virtualized select |
| Slider | ./components/el-slider/SKILL.md | Slider input |
| Switch | ./components/el-switch/SKILL.md | Toggle switch |
| TimePicker | ./components/el-time-picker/SKILL.md | Time picker |
| TimeSelect | ./components/el-time-select/SKILL.md | Time select |
| Transfer | ./components/el-transfer/SKILL.md | Transfer panels |
| TreeSelect | ./components/el-tree-select/SKILL.md | Tree select |
| Upload | ./components/el-upload/SKILL.md | File upload |
Data Display Components (17)
| Component | Skill Path | Description |
|---|---|---|
| Calendar | ./components/el-calendar/SKILL.md | Calendar view |
| Descriptions | ./components/el-descriptions/SKILL.md | Description list |
| Empty | ./components/el-empty/SKILL.md | Empty state |
| Image | ./components/el-image/SKILL.md | Image with preview |
| Pagination | ./components/el-pagination/SKILL.md | Pagination |
| Progress | ./components/el-progress/SKILL.md | Progress bar |
| Result | ./components/el-result/SKILL.md | Result page |
| Skeleton | ./components/el-skeleton/SKILL.md | Loading skeleton |
| Table | ./components/el-table/SKILL.md | Data table |
| Table V2 | ./components/el-table-v2/SKILL.md | Virtualized table |
| Tag | ./components/el-tag/SKILL.md | Tags |
| Timeline | ./components/el-timeline/SKILL.md | Timeline |
| Tree | ./components/el-tree/SKILL.md | Tree view |
| Tree V2 | ./components/el-tree-v2/SKILL.md | Virtualized tree |
| Statistic | ./components/el-statistic/SKILL.md | Statistics display |
| Segmented | ./components/el-segmented/SKILL.md | Segmented control |
Navigation Components (8)
| Component | Skill Path | Description |
|---|---|---|
| Dropdown | ./components/el-dropdown/SKILL.md | Dropdown menu |
| Menu | ./components/el-menu/SKILL.md | Navigation menu |
| PageHeader | ./components/el-page-header/SKILL.md | Page header |
| Steps | ./components/el-steps/SKILL.md | Steps guide |
| Tabs | ./components/el-tabs/SKILL.md | Tabs |
Feedback Components (12)
| Component | Skill Path | Description |
|---|---|---|
| Dialog | ./components/el-dialog/SKILL.md | Modal dialog |
| Drawer | ./components/el-drawer/SKILL.md | Drawer panel |
| Loading | ./components/el-loading/SKILL.md | Loading overlay |
| Message | ./components/el-message/SKILL.md | Toast message |
| MessageBox | ./components/el-message-box/SKILL.md | Message box |
| Notification | ./components/el-notification/SKILL.md | Notification |
| Popconfirm | ./components/el-popconfirm/SKILL.md | Popconfirm |
| Popover | ./components/el-popover/SKILL.md | Popover |
| Tooltip | ./components/el-tooltip/SKILL.md | Tooltip |
| Tour | ./components/el-tour/SKILL.md | Product tour |
Layout Components (4)
| Component | Skill Path | Description |
|---|---|---|
| Container | ./components/el-container/SKILL.md | Layout container |
| Space | ./components/el-space/SKILL.md | Spacing |
| Splitter | ./components/el-splitter/SKILL.md | Split panels |
Utility Components (5)
| Component | Skill Path | Description |
|---|---|---|
| ConfigProvider | ./components/el-config-provider/SKILL.md | Global config |
| InfiniteScroll | ./components/el-infinite-scroll/SKILL.md | Infinite scroll |
| Scrollbar | ./components/el-scrollbar/SKILL.md | Custom scrollbar |
| Watermark | ./components/el-watermark/SKILL.md | Watermark |
Usage Examples
Example 1: User asks about button implementation
User Request: "How do I create a primary button with loading state?"
Agent Action:
- Identify intent: Component skill - Button
- Locate skill:
./components/el-button/SKILL.md - Read skill content
- Provide response with API reference and code example
Response:
<template>
<el-button type="primary" :loading="loading" @click="handleClick">
{{ loading ? 'Loading...' : 'Submit' }}
</el-button>
</template>
<script setup>
import { ref } from 'vue'
const loading = ref(false)
const handleClick = async () => {
loading.value = true
try {
await submitData()
} finally {
loading.value = false
}
}
</script>
Example 2: User asks about form validation
User Request: "How do I create a form with validation?"
Agent Action:
- Identify intent: Component skill - Form
- Locate skill:
./components/el-form/SKILL.md - Read skill content
- Provide response with validation example
Response:
<template>
<el-form :model="form" :rules="rules" ref="formRef">
<el-form-item label="Name" prop="name">
<el-input v-model="form.name" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">Submit</el-button>
</el-form-item>
</el-form>
</template>
<script setup>
import { ref, reactive } from 'vue'
const formRef = ref()
const form = reactive({
name: ''
})
const rules = {
name: [
{ required: true, message: 'Please input name', trigger: 'blur' }
]
}
const submitForm = async () => {
await formRef.value.validate()
// Submit logic
}
</script>
Example 3: User asks about theme customization
User Request: "How do I customize Element Plus theme colors?"
Agent Action:
- Identify intent: Foundation skill - Theming
- Locate skill:
./element-plus-theming/SKILL.md - Read skill content
- Provide response with CSS variables example
Response:
:root {
--el-color-primary: #409eff;
--el-color-success: #67c23a;
--el-color-warning: #e6a23c;
--el-color-danger: #f56c6c;
--el-color-info: #909399;
}
Example 4: User asks about dark mode
User Request: "How do I implement dark mode in Element Plus?"
Agent Action:
- Identify intent: Foundation skill - Dark Mode
- Locate skill:
./element-plus-dark-mode/SKILL.md - Read skill content
- Provide response with implementation example
Response:
<template>
<el-config-provider :locale="locale" :size="size">
<div :class="{ 'dark': isDark }">
<App />
</div>
</el-config-provider>
</template>
<style>
.dark {
color-scheme: dark;
}
</style>
Configuration Requirements
Prerequisites
Before using this skill library, ensure:
- Vue 3.3+ is installed
- Element Plus 2.4+ is installed
- Node.js 18+ for development
Installation
npm install element-plus
npm install @element-plus/icons-vue
TypeScript Support
Add to tsconfig.json:
{
"compilerOptions": {
"types": ["element-plus/global"]
}
}
Input Parameters
When invoking skills, consider these parameters:
| Parameter | Type | Description | Required |
|---|---|---|---|
| component | string | Component name (e.g., "button", "form") | Yes |
| feature | string | Specific feature needed (e.g., "validation", "loading") | No |
| context | object | Additional context (framework, TypeScript usage) | No |
Output Format
Each skill provides:
- API Reference: Complete attributes, events, slots, exposes
- Code Examples: Working code snippets
- Best Practices: Recommended implementation patterns
- Common Issues: Troubleshooting tips
- Component Interactions: How to use with other components
Important Notes
1. Skill Priority
When multiple skills could apply, prioritize in this order:
- Component-specific skills (most specific)
- Foundation skills (configuration)
- Design specification skills (guidelines)
2. Cross-References
Many skills reference related skills. Always check:
- Related components in the same category
- Foundation skills for configuration
- Design skills for styling guidelines
3. Version Compatibility
This skill library is based on Element Plus 2.4+. Some features may not be available in earlier versions.
4. Naming Conventions
- Component skills use
el-{name}format (matches Vue component tags) - Foundation skills use
element-plus-{name}format - Design skills use
element-plus-design-{name}format
5. File Structure
element-plus-skills/
├── SKILL.md # This file (main entry)
├── README.md # English documentation
├── README_CN.md # Chinese documentation
├── AGENTS.md # Agents documentation
├── components/ # 77 component skills
│ ├── el-button/
│ │ └── SKILL.md
│ ├── el-form/
│ │ └── SKILL.md
│ └── ...
├── element-plus-quickstart/ # Foundation skills
├── element-plus-theming/
├── element-plus-i18n/
├── element-plus-dark-mode/
├── element-plus-ssr/
├── element-plus-components/
├── element-plus-design-border/ # Design skills
├── element-plus-design-color/
├── element-plus-design-layout/
├── element-plus-design-typography/
└── element-plus-design-overview/
Best Practices for Agents
- Always start with this file when user mentions Element Plus
- Locate the specific skill based on user intent
- Read the complete skill file before responding
- Provide code examples from the skill documentation
- Reference related skills when applicable
- Include best practices from the skill content
- Mention common issues if relevant to user's context