+
+
+```
+
+### Flex Props
+
+| Name | Description | Type | Default |
+|------|-------------|------|---------|
+| justify | Horizontal alignment | `'start' \| 'end' \| 'center' \| 'space-around' \| 'space-between' \| 'space-evenly'` | `'start'` |
+| align | Vertical alignment | `'start' \| 'end' \| 'center' \| 'stretch' \| 'baseline'` | — |
+| vertical | Vertical direction | `boolean` | `false` |
+| reverse | Reverse direction | `boolean` | `false` |
+| wrap | Enable wrapping | `boolean` | `true` |
+| inline | Inline flex | `boolean` | `false` |
+| size | Gap size | `'small' \| 'medium' \| 'large' \| number \| [number, number]` | `'medium'` |
+
+---
+
+## Space Component (n-space)
+
+Add consistent spacing between elements.
+
+### Basic Space
+
+```vue
+
+
+ Button 1
+ Button 2
+ Button 3
+
+
+```
+
+### Space Sizes
+
+```vue
+
+ Small gap
+ Medium gap
+ Large gap
+ Custom 24px gap
+
+```
+
+### Vertical Space
+
+```vue
+
+
+ Top
+ Bottom
+
+
+```
+
+### Space Props
+
+| Name | Description | Type | Default |
+|------|-------------|------|---------|
+| size | Gap size | `'small' \| 'medium' \| 'large' \| number \| [number, number]` | `'small'` |
+| vertical | Vertical direction | `boolean` | `false` |
+| wrap | Enable wrapping | `boolean` | `true` |
+| inline | Inline mode | `boolean` | `false` |
+
+---
+
+## Layout Components (n-layout)
+
+Build complete page layouts with header, sidebar, content, and footer.
+
+### Basic Layout
+
+```vue
+
+
+ Header
+ Content
+ Footer
+
+
+```
+
+### Layout with Sidebar
+
+```vue
+
+
+ Sidebar
+
+ Header
+ Content
+ Footer
+
+
+
+```
+
+### Collapsible Sidebar
+
+```vue
+
+
+
+
+
+ Sidebar
+
+ Content
+
+
+```
+
+### Layout Props
+
+| Name | Description | Type | Default |
+|------|-------------|------|---------|
+| embedded | Embedded mode (no background) | `boolean` | `false` |
+| position | Position mode | `'static' \| 'absolute'` | `'static'` |
+| native-scrollbar | Use native scrollbar | `boolean` | `true` |
+| has-sider | Has sidebar | `boolean` | `false` |
+| sider-placement | Sidebar placement | `'left' \| 'right'` | `'left'` |
+
+### Layout Sider Props
+
+| Name | Description | Type | Default |
+|------|-------------|------|---------|
+| bordered | Show border | `boolean` | `false` |
+| collapsed | Collapsed state | `boolean` | `false` |
+| collapse-mode | Collapse mode | `'width' \| 'transform'` | `'transform'` |
+| collapsed-width | Width when collapsed | `number` | `48` |
+| width | Sidebar width | `number` | `272` |
+| show-trigger | Show collapse trigger | `boolean` | `false` |
+
+---
+
+## Responsive Breakpoints
+
+Naive UI uses default breakpoints for responsive design:
+
+| Breakpoint | Screen Width |
+|------------|--------------|
+| `xs` | `< 640px` |
+| `s` | `≥ 640px` |
+| `m` | `≥ 1024px` |
+| `l` | `≥ 1280px` |
+| `xl` | `≥ 1536px` |
+| `xxl` | `≥ 1920px` |
+
+### Using Breakpoints
+
+```vue
+
+
+
+ Responsive grid item
+
+
+
+```
+
+---
+
+## Best Practices
+
+1. **Use Grid for 2D layouts**: Use `n-grid` when you need both rows and columns
+2. **Use Flex for 1D layouts**: Use `n-flex` for single-row or single-column layouts
+3. **Use Space for simple gaps**: Use `n-space` for consistent spacing between elements
+4. **Layout composition**: Combine Layout components for full-page structures
+5. **Responsive design**: Use responsive props for mobile-first design
+6. **Collapsed sidebar**: Use `collapse-mode="width"` for better animation performance
+
+---
+
+## Related Resources
+
+| Resource | Description |
+|----------|-------------|
+| [Grid Component](https://www.naiveui.com/en-US/os-theme/components/grid) | Grid documentation |
+| [Flex Component](https://www.naiveui.com/en-US/os-theme/components/flex) | Flex documentation |
+| [Space Component](https://www.naiveui.com/en-US/os-theme/components/space) | Space documentation |
+| [Layout Component](https://www.naiveui.com/en-US/os-theme/components/layout) | Layout documentation |
diff --git a/.agents/skills/naive-ui-design-overview/SKILL.md b/.agents/skills/naive-ui-design-overview/SKILL.md
new file mode 100644
index 0000000..f7cc9ba
--- /dev/null
+++ b/.agents/skills/naive-ui-design-overview/SKILL.md
@@ -0,0 +1,289 @@
+---
+name: "naive-ui-design-overview"
+description: "Overview of all Naive UI components organized by category. Invoke when user needs a quick reference to all available components or wants to explore the component library."
+metadata:
+ author: jiaiyan
+ version: "1.0.0"
+---
+
+# Naive UI Component Overview
+
+Quick reference to all Naive UI components organized by category. Naive UI is a Vue 3 component library that is fairly complete, themeable, written in TypeScript, and fast.
+
+## When to Use
+
+- Exploring available components
+- Quick component reference
+- Understanding component categories
+- Planning UI implementation
+
+---
+
+## Component Categories
+
+### Basic Components (18)
+
+| Component | Description |
+|-----------|-------------|
+| **Affix** | Fixes elements to a specific visible area |
+| **Avatar** | User avatars with images, icons, or characters |
+| **AvatarGroup** | Group of avatars with overlap display |
+| **Badge** | Numbers or status marks on elements |
+| **Button** | Basic button with various types and sizes |
+| **ButtonGroup** | Group of buttons |
+| **Card** | Information in card containers |
+| **Carousel** | Image/text carousels |
+| **Collapse** | Expandable panels |
+| **CollapseTransition** | Collapse transition wrapper |
+| **Divider** | Content separation lines |
+| **Drawer** | Slide-out panels from screen edge |
+| **Dropdown** | Dropdown menus |
+| **Ellipsis** | Text with ellipsis and tooltip |
+| **Empty** | Empty state placeholder |
+| **Icon** | Icon component |
+| **IconWrapper** | Icon wrapper for consistent sizing |
+| **Tag** | Labels and tags |
+
+### Form Components (18)
+
+| Component | Description |
+|-----------|-------------|
+| **AutoComplete** | Input with autocomplete suggestions |
+| **Cascader** | Hierarchical selection |
+| **Checkbox** | Multiple selection |
+| **ColorPicker** | Color selection |
+| **DatePicker** | Date selection |
+| **DynamicInput** | Dynamic input fields |
+| **DynamicTags** | Dynamic tag input |
+| **Form** | Form management and validation |
+| **Input** | Text input |
+| **InputNumber** | Numeric input |
+| **InputOTP** | One-time password input |
+| **Mention** | @mentions in inputs |
+| **Radio** | Single selection |
+| **Rate** | Star rating |
+| **Select** | Dropdown selection |
+| **Slider** | Range slider |
+| **Switch** | Toggle switch |
+| **TimePicker** | Time selection |
+| **Transfer** | Dual-column selection |
+| **TreeSelect** | Tree-based selection |
+| **Upload** | File upload |
+
+### Data Display Components (22)
+
+| Component | Description |
+|-----------|-------------|
+| **Avatar** | User avatars |
+| **AvatarGroup** | Avatar groups |
+| **Badge** | Status marks |
+| **Calendar** | Date display |
+| **Card** | Card containers |
+| **Carousel** | Carousels |
+| **Code** | Code display with syntax highlighting |
+| **DataTable** | Advanced data tables |
+| **Descriptions** | Key-value displays |
+| **Empty** | Empty state placeholder |
+| **Equation** | Mathematical equations |
+| **GradientText** | Gradient text effect |
+| **Heatmap** | Heatmap visualization |
+| **Highlight** | Text highlighting |
+| **Image** | Images with preview |
+| **List** | List container |
+| **Log** | Console log display |
+| **NumberAnimation** | Animated number display |
+| **Progress** | Progress indicators |
+| **QRCode** | QR code generation |
+| **Statistic** | Numerical statistics |
+| **Table** | Basic data tables |
+| **Thing** | Thing card component |
+| **Timeline** | Chronological events |
+| **Tree** | Hierarchical data |
+| **VirtualList** | Virtual scrolling list |
+
+### Navigation Components (7)
+
+| Component | Description |
+|-----------|-------------|
+| **Affix** | Sticky elements |
+| **Anchor** | Page navigation |
+| **Breadcrumb** | Location display |
+| **Dropdown** | Dropdown menus |
+| **Menu** | Navigation menu |
+| **PageHeader** | Page headers |
+| **Pagination** | Page navigation |
+| **Steps** | Step guide |
+| **Tabs** | Tabbed content |
+
+### Feedback Components (11)
+
+| Component | Description |
+|-----------|-------------|
+| **Alert** | Alert messages |
+| **Dialog** | Modal dialogs |
+| **Drawer** | Slide-out panels |
+| **LoadingBar** | Top loading bar |
+| **Message** | Toast messages |
+| **Modal** | Modal dialogs |
+| **Notification** | Corner notifications |
+| **Popconfirm** | Confirmation dialogs |
+| **Popover** | Rich popups |
+| **Result** | Result pages |
+| **Spin** | Loading spinner |
+| **Tooltip** | Hover tooltips |
+
+### Layout Components (7)
+
+| Component | Description |
+|-----------|-------------|
+| **Divider** | Content separation |
+| **Flex** | Flexbox layout |
+| **Grid** | CSS Grid layout |
+| **Layout** | Page layout containers |
+| **LegacyGrid** | Legacy 24-column grid |
+| **Space** | Element spacing |
+| **Split** | Resizable panels |
+
+### Typography Components (6)
+
+| Component | Description |
+|-----------|-------------|
+| **H1-H6** | Header components |
+| **P** | Paragraph |
+| **Text** | Styled text |
+| **A** | Anchor/link |
+| **Hr** | Horizontal rule |
+| **Ul/Ol/Li** | List elements |
+| **Blockquote** | Blockquote |
+
+### Utility Components (9)
+
+| Component | Description |
+|-----------|-------------|
+| **ConfigProvider** | Global configuration |
+| **Discrete** | Discrete component mounting |
+| **Element** | Theme variable container |
+| **FloatButton** | Floating action button |
+| **FloatButtonGroup** | Floating button group |
+| **GlobalStyle** | Global style injection |
+| **InfiniteScroll** | Infinite scrolling |
+| **Marquee** | Marquee scrolling text |
+| **Scrollbar** | Custom scrollbars |
+| **Watermark** | Watermarks |
+
+---
+
+## Design Resources
+
+| Resource | Description |
+|----------|-------------|
+| **Color** | Color palette and semantics |
+| **Border** | Border styles, radius, shadows |
+| **Layout** | Grid and flexbox systems |
+| **Typography** | Font conventions |
+
+---
+
+## Key Features
+
+### TypeScript Support
+
+All components are written in TypeScript with full type definitions.
+
+```typescript
+import type { ButtonProps, InputProps } from 'naive-ui'
+```
+
+### Tree-shaking
+
+All components support tree-shaking for optimal bundle size.
+
+```typescript
+import { NButton, NInput } from 'naive-ui'
+```
+
+### Theme Customization
+
+Advanced type-safe theme system built with TypeScript.
+
+```vue
+
+
+
+
+
+
+
+```
+
+### Dark Mode
+
+Built-in dark theme support.
+
+```vue
+
+
+
+
+
+
+
+```
+
+### useThemeVars Hook
+
+Access theme variables in JavaScript.
+
+```vue
+
+
+
+
+ Primary color text
+
+
+```
+
+---
+
+## Related Skills
+
+| Skill | Description |
+|-------|-------------|
+| [naive-ui-design-color](./naive-ui-design-color/SKILL.md) | Color design specifications |
+| [naive-ui-design-border](./naive-ui-design-border/SKILL.md) | Border design specifications |
+| [naive-ui-design-typography](./naive-ui-design-typography/SKILL.md) | Typography specifications |
+| [naive-ui-design-layout](./naive-ui-design-layout/SKILL.md) | Layout system documentation |
+
+---
+
+## External Resources
+
+| Resource | URL |
+|----------|-----|
+| Official Documentation | https://www.naiveui.com |
+| GitHub Repository | https://github.com/tusen-ai/naive-ui |
+| Design Resources (Sketch) | [Download](https://naive-ui.oss-accelerate.aliyuncs.com/NaiveUI-Design-Library-en-US.sketch) |
+| xicons (Recommended Icons) | https://www.xicons.org |
+
+---
+
+## Best Practices
+
+1. **Use ConfigProvider**: Wrap your app with `n-config-provider` for global configuration
+2. **Tree-shaking**: Import only the components you need
+3. **Theme Variables**: Use `useThemeVars()` for consistent theming
+4. **Dark Mode**: Test your app in both light and dark themes
+5. **Accessibility**: Use appropriate ARIA attributes and semantic HTML
+6. **Responsive Design**: Use responsive props for mobile-first design
diff --git a/.agents/skills/naive-ui-design-typography/SKILL.md b/.agents/skills/naive-ui-design-typography/SKILL.md
new file mode 100644
index 0000000..14c410c
--- /dev/null
+++ b/.agents/skills/naive-ui-design-typography/SKILL.md
@@ -0,0 +1,308 @@
+---
+name: "naive-ui-design-typography"
+description: "Typography design specifications for Naive UI. Invoke when user needs to understand font conventions, font-family settings, or text styling guidelines."
+metadata:
+ author: jiaiyan
+ version: "1.0.0"
+---
+
+# Typography Design Specifications
+
+Naive UI creates font conventions to ensure the best presentation across different platforms. Typography is an art that enhances readability and visual hierarchy.
+
+## When to Use
+
+- Understanding font conventions
+- Applying consistent text styles
+- Setting font-family for cross-platform compatibility
+- Managing font sizes and line heights
+- Using typography components
+
+---
+
+## Font Family
+
+Naive UI uses a carefully selected font stack for optimal cross-platform display.
+
+### Sans-serif Font (Default)
+
+```css
+font-family: v-sans, system-ui, -apple-system, BlinkMacSystemFont,
+ "Segoe UI", sans-serif, "Apple Color Emoji",
+ "Segoe UI Emoji", "Segoe UI Symbol";
+```
+
+### Monospace Font
+
+```css
+font-family: v-mono, SFMono-Regular, Menlo, Consolas, Courier, monospace;
+```
+
+### Font Stack Explanation
+
+| Font | Platform | Purpose |
+|------|----------|---------|
+| v-sans | All | Custom sans-serif font (can be configured) |
+| system-ui | All | System UI font |
+| -apple-system | macOS/iOS | Apple system font |
+| BlinkMacSystemFont | macOS | Chrome on macOS |
+| Segoe UI | Windows | Windows system font |
+| Apple Color Emoji | macOS/iOS | Emoji support |
+| Segoe UI Emoji | Windows | Emoji support |
+
+---
+
+## Font Sizes
+
+Naive UI provides standardized font size variables for different contexts.
+
+| CSS Variable | Value | Usage |
+|--------------|-------|-------|
+| `--font-size` | `14px` | Base body text |
+| `--font-size-mini` | `12px` | Mini text, tiny labels |
+| `--font-size-tiny` | `12px` | Tiny text |
+| `--font-size-small` | `14px` | Small text |
+| `--font-size-medium` | `14px` | Medium text |
+| `--font-size-large` | `15px` | Large text |
+| `--font-size-huge` | `16px` | Huge text |
+
+### Usage Examples
+
+```vue
+
+
+
+
Base text
+ Mini text
+
+```
+
+---
+
+## Font Weight
+
+| CSS Variable | Value | Usage |
+|--------------|-------|-------|
+| `--font-weight` | `400` | Normal text weight |
+| `--font-weight-strong` | `500` | Emphasized text |
+
+```vue
+
+
+ Strong text
+
+
+```
+
+---
+
+## Line Height
+
+| CSS Variable | Value | Usage |
+|--------------|-------|-------|
+| `--line-height` | `1.6` | Default line height for body text |
+
+---
+
+## Header Typography
+
+Naive UI provides typography components with predefined header styles.
+
+### Header Font Sizes
+
+| Level | Font Size | Margin |
+|-------|-----------|--------|
+| H1 | `30px` | `28px 0 20px 0` |
+| H2 | `22px` | `28px 0 20px 0` |
+| H3 | `18px` | `28px 0 20px 0` |
+| H4 | `16px` | `28px 0 18px 0` |
+| H5 | `16px` | `28px 0 18px 0` |
+| H6 | `16px` | `28px 0 18px 0` |
+
+### Header Components
+
+```vue
+
+ Heading 1
+ Heading 2
+ Heading 3
+ Heading 4
+ Heading 5
+ Heading 6
+
+```
+
+### Header with Prefix Bar
+
+Headers can display a colored bar prefix for visual emphasis.
+
+```vue
+
+ Heading with bar
+ Aligned heading
+ Success heading
+
+```
+
+---
+
+## Text Component
+
+Naive UI provides a Text component for styled text display.
+
+### Text Types
+
+```vue
+
+ Default text
+ Primary text
+ Success text
+ Info text
+ Warning text
+ Error text
+
+```
+
+### Text Depth
+
+```vue
+
+ Primary depth (default)
+ Secondary depth
+ Tertiary depth
+
+```
+
+### Text with Tag
+
+```vue
+
+ Text as div
+ Text as span
+ Text as label
+
+```
+
+---
+
+## Paragraph Component
+
+```vue
+
+
+ This is a paragraph with proper spacing and typography.
+ Naive UI provides consistent text styling across components.
+
+
+```
+
+---
+
+## Other Typography Components
+
+### Anchor (Link)
+
+```vue
+
+ Link text
+
+```
+
+### Horizontal Rule
+
+```vue
+
+
+
+```
+
+### Lists
+
+```vue
+
+
+ Unordered list item 1
+ Unordered list item 2
+
+
+
+ Ordered list item 1
+ Ordered list item 2
+
+
+```
+
+### Blockquote
+
+```vue
+
+
+ This is a blockquote with proper styling.
+
+
+```
+
+---
+
+## CSS Variables Summary
+
+```css
+:root {
+ --font-family: v-sans, system-ui, -apple-system, BlinkMacSystemFont,
+ "Segoe UI", sans-serif;
+ --font-family-mono: v-mono, SFMono-Regular, Menlo, Consolas, Courier, monospace;
+
+ --font-size: 14px;
+ --font-size-mini: 12px;
+ --font-size-tiny: 12px;
+ --font-size-small: 14px;
+ --font-size-medium: 14px;
+ --font-size-large: 15px;
+ --font-size-huge: 16px;
+
+ --font-weight: 400;
+ --font-weight-strong: 500;
+
+ --line-height: 1.6;
+}
+```
+
+---
+
+## Component Heights
+
+Naive UI uses standardized heights for form controls and interactive elements.
+
+| CSS Variable | Value | Usage |
+|--------------|-------|-------|
+| `--height-mini` | `16px` | Mini size controls |
+| `--height-tiny` | `22px` | Tiny size controls |
+| `--height-small` | `28px` | Small size controls |
+| `--height-medium` | `34px` | Medium size controls (default) |
+| `--height-large` | `40px` | Large size controls |
+| `--height-huge` | `46px` | Huge size controls |
+
+---
+
+## Best Practices
+
+1. **Use Typography Components**: Use `n-h1` through `n-h6`, `n-p`, `n-text` for consistent styling
+2. **Cross-Platform**: The font stack ensures consistent display across platforms
+3. **Hierarchy**: Use font sizes and depths to establish visual hierarchy
+4. **Line Height**: Maintain readable line height (1.6) for body text
+5. **Dark Mode**: Typography automatically adjusts in dark mode
+6. **Semantic HTML**: Use appropriate tags (`tag` prop) for accessibility
+
+---
+
+## Related Resources
+
+| Resource | Description |
+|----------|-------------|
+| [Typography Components](https://www.naiveui.com/en-US/os-theme/components/typography) | Full typography documentation |
+| [useThemeVars](https://www.naiveui.com/en-US/os-theme/docs/theme) | Access theme variables |
+| [Color Design](./naive-ui-design-color/SKILL.md) | Text color variables |
+| [Border Design](./naive-ui-design-border/SKILL.md) | Related design specifications |
diff --git a/.agents/skills/naive-ui-i18n/SKILL.md b/.agents/skills/naive-ui-i18n/SKILL.md
new file mode 100644
index 0000000..8afa427
--- /dev/null
+++ b/.agents/skills/naive-ui-i18n/SKILL.md
@@ -0,0 +1,352 @@
+---
+name: naive-ui-i18n
+description: Configure internationalization (i18n) in Naive UI with support for multiple languages and custom locales
+metadata:
+ author: jiaiyan
+ version: 1.0.0
+---
+
+# Naive UI Internationalization (i18n)
+
+Configure internationalization in Naive UI to support multiple languages and customize component locales.
+
+## When to Use
+
+Use this skill when you need to:
+- Set up multi-language support in your application
+- Change the language of Naive UI components
+- Customize existing locale strings
+- Add support for new languages
+
+## Prerequisites
+
+- Basic understanding of Naive UI setup
+- Vue 3 Composition API knowledge
+- Understanding of internationalization concepts
+
+## Basic Usage
+
+### Setting Up Locale
+
+Use `n-config-provider` to set the locale for all descendant components:
+
+```vue
+
+
+
+
+
+
+
+```
+
+### Switching Languages Dynamically
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+```
+
+## Supported Languages
+
+Naive UI supports the following languages (PRs are welcome for new languages):
+
+| Language | Config | Date Config | Version |
+|----------|--------|-------------|---------|
+| Arabic (العربية) | `arDZ` | `dateArDZ` | 2.34.0 |
+| Azerbaijani (Azərbaycanca) | `azAZ` | `dateAzAZ` | 2.39.0 |
+| Czech (Czechia) | `csCZ` | `dateCsCz` | 2.38.2 |
+| Danish (Denmark) | `daDK` | `dateDaDK` | 2.43.0 |
+| German (Germany) | `deDE` | `dateDeDE` | - |
+| English (British) | `enGB` | `dateEnGB` | 2.25.1 |
+| English | `enUS` | `dateEnUS` | - |
+| Esperanto | `eo` | `dateEo` | 2.25.2 |
+| Spanish (Argentina) | `esAR` | `dateEsAR` | 2.24.2 |
+| Estonian | `etEE` | `dateEtEE` | 2.38.0 |
+| Persian | `faIR` | `dateFaIR` | 2.34.4 |
+| French | `frFR` | `dateFrFR` | - |
+| Bahasa Indonesia | `idID` | `dateIdID` | - |
+| Italiano | `itIT` | `dateItIT` | 2.24.2 |
+| Japanese | `jaJP` | `dateJaJP` | - |
+| Khmer (Cambodia) | `kmKH` | `dateKmKH` | 2.41.0 |
+| Korean (South Korea) | `koKR` | `dateKoKR` | 2.28.1 |
+| Norwegian Bokmål (Norway) | `nbNO` | `dateNbNO` | - |
+| Dutch (Netherlands) | `nlNL` | `dateNlNL` | 2.29.0 |
+| Polish (Poland) | `plPL` | `datePlPL` | 2.25.2 |
+| Portuguese (Brazil) | `ptBR` | `datePtBR` | 2.28.1 |
+| Russian | `ruRU` | `dateRuRU` | - |
+| Slovak | `skSK` | `dateSkSK` | 2.25.3 |
+| Swedish | `svSE` | `dateSvSE` | 2.35.0 |
+| Thai (Thailand) | `thTH` | `dateThTH` | 2.27.0 |
+| Turkish | `trTR` | `dateTrTR` | 2.34.0 |
+| Uyghur (China) | `ugCN` | `dateUgCN` | - |
+| Ukrainian | `ukUA` | `dateUkUA` | - |
+| Uzbek (Uzbekistan) | `uzUZ` | `dateUzUZ` | 2.39.0 |
+| Vietnamese (Vietnam) | `viVN` | `dateViVN` | 2.30.7 |
+| Chinese (Simplified) | `zhCN` | `dateZhCN` | - |
+| Chinese (Traditional) | `zhTW` | `dateZhTW` | - |
+
+## Customizing Locales
+
+### Using createLocale
+
+Customize existing locale strings using `createLocale`:
+
+```vue
+
+
+
+
+
+
+
+```
+
+### Full Locale Customization Example
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+```
+
+## API Reference
+
+### n-config-provider Locale Props
+
+| Property | Type | Default | Description |
+|----------|------|---------|-------------|
+| `locale` | `object` | `enUS` | Locale configuration for components |
+| `date-locale` | `object` | `dateEnUS` | Date format locale configuration |
+
+### createLocale Function
+
+```typescript
+function createLocale(
+ overrides: PartialLocale,
+ baseLocale: Locale
+): Locale
+```
+
+Creates a new locale by merging custom overrides with a base locale.
+
+## Common Patterns
+
+### Persistent Language Selection
+
+```vue
+
+
+
+
+
+
+
+
+```
+
+### Integration with vue-i18n
+
+```vue
+
+
+
+
+
+
+
+```
+
+## Best Practices
+
+1. **Persist Language Preference**: Store the user's language choice in localStorage
+2. **Separate Date Locale**: Always set both `locale` and `date-locale` for consistent formatting
+3. **Use Base Locale**: When customizing, always extend from an existing locale using `createLocale`
+4. **Test All Languages**: Verify your application works correctly with all supported languages
+5. **Consider RTL**: Some languages (Arabic, Persian) require right-to-left layout support
+6. **Sync with App i18n**: Keep Naive UI locale in sync with your application's i18n system
+
+## Component-Specific Locale Keys
+
+Different components have their own locale keys that can be customized:
+
+```javascript
+const customLocale = createLocale({
+ // Button
+ Button: {
+ loadingText: 'Loading...'
+ },
+ // Input
+ Input: {
+ placeholder: 'Please input',
+ clear: 'Clear'
+ },
+ // DatePicker
+ DatePicker: {
+ placeholder: 'Select date',
+ clear: 'Clear',
+ confirm: 'OK',
+ now: 'Now'
+ },
+ // Table
+ DataTable: {
+ check: 'Check',
+ clear: 'Clear',
+ clearFilters: 'Clear filters',
+ clearSorter: 'Clear sorter'
+ },
+ // Transfer
+ Transfer: {
+ source: 'Source',
+ target: 'Target',
+ searchPlaceholder: 'Search',
+ clear: 'Clear'
+ },
+ // Upload
+ Upload: {
+ draggerClick: 'Click to upload',
+ draggerDrag: 'Drag files here',
+ fileDrag: 'Drag files here',
+ accept: 'Accept: {accept}',
+ upload: 'Upload',
+ retry: 'Retry',
+ remove: 'Remove',
+ cancel: 'Cancel'
+ }
+}, enUS)
+```
diff --git a/.agents/skills/naive-ui-quickstart/SKILL.md b/.agents/skills/naive-ui-quickstart/SKILL.md
new file mode 100644
index 0000000..fea462e
--- /dev/null
+++ b/.agents/skills/naive-ui-quickstart/SKILL.md
@@ -0,0 +1,210 @@
+---
+name: naive-ui-quickstart
+description: Get started with Naive UI - a Vue 3 component library with comprehensive installation and setup guide
+metadata:
+ author: jiaiyan
+ version: 1.0.0
+---
+
+# Naive UI Quickstart
+
+A comprehensive guide to installing and setting up Naive UI in your Vue 3 project.
+
+## When to Use
+
+Use this skill when you need to:
+- Set up Naive UI in a new Vue 3 project
+- Install Naive UI dependencies
+- Configure basic Naive UI usage
+- Understand the prerequisites for using Naive UI
+
+## Prerequisites
+
+- **Vue 3**: Naive UI only supports Vue 3. If you are using Vue 2, consider other UI libraries.
+- **Node.js**: Ensure you have Node.js installed (version 14+ recommended)
+- **Package Manager**: npm, yarn, or pnpm
+
+## Installation
+
+### Install Naive UI
+
+```bash
+npm i -D naive-ui
+```
+
+Or using yarn:
+
+```bash
+yarn add -D naive-ui
+```
+
+Or using pnpm:
+
+```bash
+pnpm add -D naive-ui
+```
+
+### Install Fonts
+
+Naive UI uses vfonts for typography:
+
+```bash
+npm i -D vfonts
+```
+
+### Install Icons (Recommended)
+
+Naive UI recommends using [xicons](https://www.xicons.org) as the icon library:
+
+```bash
+npm i -D @vicons/ionicons5
+# or other icon packs
+npm i -D @vicons/fluent
+npm i -D @vicons/antd
+```
+
+## Basic Usage
+
+### Global Registration
+
+Register Naive UI globally in your main entry file:
+
+```js
+// main.js
+import { createApp } from 'vue'
+import naive from 'naive-ui'
+import App from './App.vue'
+
+const app = createApp(App)
+app.use(naive)
+app.mount('#app')
+```
+
+### On-Demand Import
+
+Import components as needed:
+
+```vue
+
+ Click Me
+
+
+
+```
+
+### Tree-Shaking Support
+
+Naive UI supports tree-shaking out of the box. When using bundlers like Vite or webpack, only the components you import will be included in the final bundle.
+
+```js
+// This will only bundle the Button component
+import { NButton } from 'naive-ui'
+```
+
+## Configuration Options
+
+### Using Config Provider
+
+Wrap your application with `n-config-provider` for global configuration:
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### Provider Hierarchy
+
+| Provider | Purpose |
+|----------|---------|
+| `NConfigProvider` | Global configuration (theme, locale, etc.) |
+| `NMessageProvider` | Message notification context |
+| `NDialogProvider` | Dialog/Modal context |
+| `NNotificationProvider` | Notification context |
+
+## Common Patterns
+
+### Basic Application Setup
+
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### Using with TypeScript
+
+Naive UI is written in TypeScript and provides full type definitions:
+
+```vue
+
+
+ Submit
+
+
+
+
+```
+
+## Best Practices
+
+1. **Use On-Demand Imports**: Import only the components you need to reduce bundle size
+2. **Set Up Providers Early**: Configure all necessary providers at the root level of your application
+3. **Install Fonts**: Always install vfonts for consistent typography
+4. **Use TypeScript**: Leverage Naive UI's TypeScript support for better development experience
+5. **Check Browser Compatibility**: Naive UI supports modern browsers (Chrome, Firefox, Safari, Edge)
+
+## Design Resources
+
+- [Naive UI Design Library (Sketch)](https://naive-ui.oss-accelerate.aliyuncs.com/NaiveUI-Design-Library-en-US.sketch)
+- [Official Documentation](https://www.naiveui.com)
+- [GitHub Repository](https://github.com/tusen-projects/naive-ui)
diff --git a/.agents/skills/naive-ui-ssr/SKILL.md b/.agents/skills/naive-ui-ssr/SKILL.md
new file mode 100644
index 0000000..5826e56
--- /dev/null
+++ b/.agents/skills/naive-ui-ssr/SKILL.md
@@ -0,0 +1,348 @@
+---
+name: "naive-ui-ssr"
+description: "Server-Side Rendering configuration and best practices for Naive UI. Invoke when user needs to implement SSR with Naive UI in Nuxt.js, Vitepress, Vite SSG/SSE, or Webpack environments."
+metadata:
+ author: jiaiyan
+ version: "1.0.0"
+---
+
+# Naive UI Server-Side Rendering (SSR)
+
+Naive UI uses CSS-in-JS, which requires additional configuration when using Server-Side Rendering (SSR). This skill provides guidance for setting up SSR across different frameworks and build tools.
+
+## When to Use
+
+Use this skill when:
+- **Nuxt.js integration**: Setting up Naive UI in a Nuxt.js application
+- **Vitepress integration**: Using Naive UI components in Vitepress documentation
+- **Vite SSG/SSE**: Implementing static site generation or server-side rendering with Vite
+- **Webpack SSR**: Configuring SSR with Webpack-based setups
+- **SSR optimization**: Reducing SSR-rendered HTML size
+- **Troubleshooting SSR issues**: Resolving common SSR-related problems
+
+## When to Invoke
+
+Invoke this skill when:
+- User asks about SSR setup with Naive UI
+- User encounters SSR build failures or hydration issues
+- User wants to optimize SSR performance
+- User needs to configure Naive UI for Nuxt.js, Vitepress, or Vite SSR
+- User sees CSS-related errors during SSR builds
+
+## Prerequisites
+
+### Critical Requirements
+
+Before implementing SSR with Naive UI, ensure the following conditions are met:
+
+1. **css-render version**: All direct and indirect references to `@css-render/*` and `css-render` packages must be version `>=0.15.14`
+
+2. **Single package resolution**: Each `@css-render/*` and `css-render` package should resolve to a single target (no duplicate versions or copies)
+
+### Verifying Requirements
+
+Check your lock file for duplicate `css-render` packages:
+
+```bash
+# For npm
+npm ls css-render
+
+# For pnpm
+pnpm ls css-render
+
+# For yarn
+yarn why css-render
+```
+
+### Resolving Duplicate Packages
+
+If you find duplicate packages, use the `resolution` field in `package.json`:
+
+```json
+{
+ "resolutions": {
+ "css-render": "^0.15.14",
+ "@css-render/vue3-ssr": "^0.15.14"
+ }
+}
+```
+
+For pnpm, use `pnpm.overrides`:
+
+```json
+{
+ "pnpm": {
+ "overrides": {
+ "css-render": "^0.15.14",
+ "@css-render/vue3-ssr": "^0.15.14"
+ }
+ }
+}
+```
+
+## Basic Usage
+
+### Nuxt.js Integration
+
+For Nuxt.js applications, refer to the dedicated Nuxt.js documentation:
+
+```bash
+# See Nuxt.js specific guide
+# Path: docs/nuxtjs.md
+```
+
+### Vitepress Integration
+
+For Vitepress documentation sites:
+
+```bash
+# See Vitepress specific guide
+# Path: docs/vitepress.md
+```
+
+### Vite SSG/SSE
+
+For Vite-based static site generation:
+
+```bash
+# See Vite SSG/SSE specific guide
+# Path: docs/vite-ssge.md
+```
+
+### Webpack SSR Example
+
+Reference implementation available at:
+- GitHub: [naive-ui-vite-ssr](https://github.com/07akioni/naive-ui-vite-ssr)
+- Playground: [naive-ui/playground/ssr](https://github.com/tusen-ai/naive-ui/tree/main/playground/ssr)
+
+## API Reference
+
+### Inline Theme Optimization
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| inline-theme-disabled | `boolean` | `false` | Disable inline theme styles on components to reduce SSR HTML size |
+
+### Usage with n-config-provider
+
+```vue
+
+
+ Optimized for SSR
+
+
+```
+
+## Common Patterns
+
+### SSR-Optimized Configuration
+
+```vue
+
+
+
+
+
+
+
+
+```
+
+### Nuxt.js Plugin Setup
+
+```ts
+// plugins/naive-ui.ts
+import { setup } from '@css-render/vue3-ssr'
+import { defineNuxtPlugin } from '#app'
+
+export default defineNuxtPlugin((nuxtApp) => {
+ if (process.server) {
+ const { collect } = setup(nuxtApp.vueApp)
+ const originalRenderMeta = nuxtApp.ssrContext?.renderMeta
+
+ nuxtApp.ssrContext = nuxtApp.ssrContext || {}
+ nuxtApp.ssrContext.renderMeta = () => {
+ if (!originalRenderMeta) {
+ return {
+ headTags: collect()
+ }
+ }
+ const originalMeta = originalRenderMeta()
+ if (originalMeta && typeof originalMeta === 'object') {
+ return {
+ ...originalMeta,
+ headTags: `${originalMeta.headTags || ''}${collect()}`
+ }
+ }
+ return originalMeta
+ }
+ }
+})
+```
+
+### Vite SSR Entry Setup
+
+```ts
+// server-entry.ts
+import { createSSRApp } from 'vue'
+import { setup } from '@css-render/vue3-ssr'
+import App from './App.vue'
+
+export function createApp() {
+ const app = createSSRApp(App)
+
+ if (import.meta.env.SSR) {
+ setup(app)
+ }
+
+ return { app }
+}
+```
+
+### Collecting CSS in Vite SSR
+
+```ts
+// server.ts
+import { renderToString } from 'vue/server-renderer'
+import { createApp } from './server-entry'
+
+async function render(url: string) {
+ const { app } = createApp()
+
+ const ctx: { modules?: string[] } = {}
+ const html = await renderToString(app, ctx)
+
+ // CSS will be collected automatically by css-render
+ return html
+}
+```
+
+## Known Issues
+
+The following components have known issues in SSR environments. Avoid using them if possible:
+
+| Component | Issue | Status |
+|-----------|-------|--------|
+| `n-scrollbar` | SSR rendering issues | Fixed in Vue >= 3.2.36 |
+| `n-data-table` | SSR rendering issues | Fixed in Vue >= 3.2.36 |
+| `n-anchor` | SSR rendering issues | Pending fix |
+| `n-avatar-group` | SSR rendering issues | Pending fix |
+| `n-watermark` | SSR rendering issues | Pending fix |
+| `n-affix` | SSR rendering issues | Pending fix |
+| `n-transfer` | SSR rendering issues | Pending fix |
+
+### Workaround for Known Issues
+
+```vue
+
+
+
+
+
+
+
+
+
+```
+
+## Best Practices
+
+1. **Verify css-render versions**: Always check that all css-render packages are >= 0.15.14 and deduplicated
+ ```bash
+ npm ls css-render
+ ```
+
+2. **Use inline-theme-disabled**: Enable this option to reduce SSR HTML size
+ ```vue
+
+
+
+ ```
+
+3. **Wrap problematic components**: Use `ClientOnly` wrapper for components with known SSR issues
+ ```vue
+
+
+
+ ```
+
+4. **Check Vue version**: Ensure Vue >= 3.2.36 for `n-scrollbar` and `n-data-table` SSR support
+
+5. **Test hydration**: Verify that client-side hydration works correctly
+ ```js
+ // Check for hydration mismatches in console
+ ```
+
+6. **Use resolutions field**: Prevent duplicate css-render packages
+ ```json
+ {
+ "resolutions": {
+ "css-render": "^0.15.14"
+ }
+ }
+ ```
+
+7. **Follow framework-specific guides**: Use the appropriate guide for your framework
+ - Nuxt.js: See nuxtjs documentation
+ - Vitepress: See vitepress documentation
+ - Vite SSG/SSE: See vite-ssge documentation
+
+8. **Reference examples**: Check official examples for implementation patterns
+ - Vite SSR: [naive-ui-vite-ssr](https://github.com/07akioni/naive-ui-vite-ssr)
+ - Webpack SSR: [playground/ssr](https://github.com/tusen-ai/naive-ui/tree/main/playground/ssr)
+
+## Troubleshooting
+
+### Common Error: CSS Not Applied
+
+**Problem**: Styles are missing after SSR hydration
+
+**Solution**: Ensure css-render is properly configured for SSR
+```ts
+import { setup } from '@css-render/vue3-ssr'
+
+if (import.meta.env.SSR) {
+ setup(app)
+}
+```
+
+### Common Error: Hydration Mismatch
+
+**Problem**: Vue hydration mismatch warnings in console
+
+**Solution**:
+1. Check for browser-only APIs in setup code
+2. Wrap problematic components in `ClientOnly`
+3. Ensure data is consistent between server and client
+
+### Common Error: Duplicate css-render Packages
+
+**Problem**: Build fails or styles break due to multiple css-render versions
+
+**Solution**: Add resolutions to package.json
+```json
+{
+ "resolutions": {
+ "css-render": "^0.15.14",
+ "@css-render/vue3-ssr": "^0.15.14"
+ }
+}
+```
+
+## Related Skills
+
+- [n-config-provider](../components/n-config-provider/SKILL.md): Global configuration for SSR optimization
+- [naive-ui-theming](../naive-ui-theming/SKILL.md): Theme customization in SSR
+- [naive-ui-dark-mode](../naive-ui-dark-mode/SKILL.md): Dark mode with SSR considerations
diff --git a/.agents/skills/naive-ui-theming/SKILL.md b/.agents/skills/naive-ui-theming/SKILL.md
new file mode 100644
index 0000000..02a4247
--- /dev/null
+++ b/.agents/skills/naive-ui-theming/SKILL.md
@@ -0,0 +1,298 @@
+---
+name: naive-ui-theming
+description: Customize and apply themes in Naive UI including dark mode, theme variables, and creating themed components
+metadata:
+ author: jiaiyan
+ version: 1.0.0
+---
+
+# Naive UI Theming
+
+Learn how to customize themes, apply dark mode, and create themed components in Naive UI.
+
+## When to Use
+
+Use this skill when you need to:
+- Implement dark/light mode switching
+- Customize theme colors and variables
+- Create themed components that respond to theme changes
+- Access theme variables in your components
+
+## Prerequisites
+
+- Basic understanding of Naive UI setup
+- Vue 3 Composition API knowledge
+- CSS custom properties (CSS variables) understanding
+
+## Basic Usage
+
+### Theme Switching
+
+Use `n-config-provider` to control the theme of all descendant components:
+
+```vue
+
+
+
+
+
+ Dark
+
+
+ Light
+
+
+
+
+
+
+
+```
+
+### Using n-element for Theme-Aware Styling
+
+The `n-element` component allows you to apply theme-aware styles using CSS variables:
+
+```vue
+
+
+
+ Dark
+ Light
+
+
+
+
+ I am a Span with theme-aware styling.
+
+
+
+
+
+
+
+```
+
+### Using Theme Variables with useThemeVars
+
+Access theme variables programmatically using the `useThemeVars` composable:
+
+```vue
+
+
+ Primary colored text
+
+
{{ themeVars }}
+
+
+
+```
+
+## API Reference
+
+### n-config-provider Theme Props
+
+| Property | Type | Default | Description |
+|----------|------|---------|-------------|
+| `theme` | `object \| null` | `null` | Theme object (use `darkTheme` for dark mode, `null` for light) |
+| `theme-overrides` | `object` | - | Custom theme overrides |
+
+### Available Theme Variables
+
+Common theme variables accessible via `useThemeVars()`:
+
+| Variable | Description |
+|----------|-------------|
+| `primaryColor` | Primary color |
+| `primaryColorHover` | Primary color on hover |
+| `primaryColorPressed` | Primary color when pressed |
+| `successColor` | Success state color |
+| `warningColor` | Warning state color |
+| `errorColor` | Error state color |
+| `infoColor` | Info state color |
+| `textColorBase` | Base text color |
+| `textColor1` | Primary text color |
+| `textColor2` | Secondary text color |
+| `textColor3` | Tertiary text color |
+| `borderColor` | Border color |
+| `borderRadius` | Border radius |
+
+### n-element Props
+
+| Property | Type | Default | Description |
+|----------|------|---------|-------------|
+| `tag` | `string` | `'div'` | HTML tag to render |
+
+## Common Patterns
+
+### Persistent Theme with Local Storage
+
+```vue
+
+
+
+ Toggle Theme
+
+
+
+
+
+
+```
+
+### Custom Theme Overrides
+
+```vue
+
+
+
+
+
+
+
+```
+
+### Theme-Aware Component
+
+```vue
+
+
+
+
+
+ Theme-aware content
+
+
+
+
+
+
+
+```
+
+## Best Practices
+
+1. **Use CSS Variables**: Leverage CSS custom properties for smooth theme transitions
+2. **Wrap at Root Level**: Place `n-config-provider` at the top of your component tree
+3. **Persist User Preference**: Store theme preference in localStorage for better UX
+4. **Test Both Themes**: Always test your components in both light and dark modes
+5. **Use Transitions**: Add CSS transitions for smooth theme switching animations
+6. **Override Selectively**: Only override the theme variables you need to customize
+
+## CSS Variable Reference
+
+Naive UI provides numerous CSS variables that automatically update with theme changes:
+
+```css
+/* Common theme variables */
+--primary-color
+--primary-color-hover
+--primary-color-pressed
+--success-color
+--warning-color
+--error-color
+--info-color
+
+/* Text colors */
+--text-color-base
+--text-color-1
+--text-color-2
+--text-color-3
+
+/* Background colors */
+--body-color
+--card-color
+--modal-color
+
+/* Border */
+--border-color
+--border-radius
+
+/* Animation */
+--cubic-bezier-ease-in-out
+--cubic-bezier-ease-out
+--cubic-bezier-ease-in
+```
+
+Use these variables in your styles for consistent theming:
+
+```vue
+
+
+ Themed content
+
+
+
+
+```
diff --git a/.agents/skills/web-design-reviewer/SKILL.md b/.agents/skills/web-design-reviewer/SKILL.md
new file mode 100644
index 0000000..b0f2f6d
--- /dev/null
+++ b/.agents/skills/web-design-reviewer/SKILL.md
@@ -0,0 +1,368 @@
+---
+name: web-design-reviewer
+description: 'This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level.'
+---
+
+# Web Design Reviewer
+
+This skill enables visual inspection and validation of website design quality, identifying and fixing issues at the source code level.
+
+## Scope of Application
+
+- Static sites (HTML/CSS/JS)
+- SPA frameworks such as React / Vue / Angular / Svelte
+- Full-stack frameworks such as Next.js / Nuxt / SvelteKit
+- CMS platforms such as WordPress / Drupal
+- Any other web application
+
+## Prerequisites
+
+### Required
+
+1. **Target website must be running**
+ - Local development server (e.g., `http://localhost:3000`)
+ - Staging environment
+ - Production environment (for read-only reviews)
+
+2. **Browser automation must be available**
+ - Screenshot capture
+ - Page navigation
+ - DOM information retrieval
+
+3. **Access to source code (when making fixes)**
+ - Project must exist within the workspace
+
+## Workflow Overview
+
+```mermaid
+flowchart TD
+ A[Step 1: Information Gathering] --> B[Step 2: Visual Inspection]
+ B --> C[Step 3: Issue Fixing]
+ C --> D[Step 4: Re-verification]
+ D --> E{Issues Remaining?}
+ E -->|Yes| B
+ E -->|No| F[Completion Report]
+```
+
+---
+
+## Step 1: Information Gathering Phase
+
+### 1.1 URL Confirmation
+
+If the URL is not provided, ask the user:
+
+> Please provide the URL of the website to review (e.g., `http://localhost:3000`)
+
+### 1.2 Understanding Project Structure
+
+When making fixes, gather the following information:
+
+| Item | Example Question |
+|------|------------------|
+| Framework | Are you using React / Vue / Next.js, etc.? |
+| Styling Method | CSS / SCSS / Tailwind / CSS-in-JS, etc. |
+| Source Location | Where are style files and components located? |
+| Review Scope | Specific pages only or entire site? |
+
+### 1.3 Automatic Project Detection
+
+Attempt automatic detection from files in the workspace:
+
+```
+Detection targets:
+├── package.json → Framework and dependencies
+├── tsconfig.json → TypeScript usage
+├── tailwind.config → Tailwind CSS
+├── next.config → Next.js
+├── vite.config → Vite
+├── nuxt.config → Nuxt
+└── src/ or app/ → Source directory
+```
+
+### 1.4 Identifying Styling Method
+
+| Method | Detection | Edit Target |
+|--------|-----------|-------------|
+| Pure CSS | `*.css` files | Global CSS or component CSS |
+| SCSS/Sass | `*.scss`, `*.sass` | SCSS files |
+| CSS Modules | `*.module.css` | Module CSS files |
+| Tailwind CSS | `tailwind.config.*` | className in components |
+| styled-components | `styled.` in code | JS/TS files |
+| Emotion | `@emotion/` imports | JS/TS files |
+| CSS-in-JS (other) | Inline styles | JS/TS files |
+
+---
+
+## Step 2: Visual Inspection Phase
+
+### 2.1 Page Traversal
+
+1. Navigate to the specified URL
+2. Capture screenshots
+3. Retrieve DOM structure/snapshot (if possible)
+4. If additional pages exist, traverse through navigation
+
+### 2.2 Inspection Items
+
+#### Layout Issues
+
+| Issue | Description | Severity |
+|-------|-------------|----------|
+| Element Overflow | Content overflows from parent element or viewport | High |
+| Element Overlap | Unintended overlapping of elements | High |
+| Alignment Issues | Grid or flex alignment problems | Medium |
+| Inconsistent Spacing | Padding/margin inconsistencies | Medium |
+| Text Clipping | Long text not handled properly | Medium |
+
+#### Responsive Issues
+
+| Issue | Description | Severity |
+|-------|-------------|----------|
+| Non-mobile Friendly | Layout breaks on small screens | High |
+| Breakpoint Issues | Unnatural transitions when screen size changes | Medium |
+| Touch Targets | Buttons too small on mobile | Medium |
+
+#### Accessibility Issues
+
+| Issue | Description | Severity |
+|-------|-------------|----------|
+| Insufficient Contrast | Low contrast ratio between text and background | High |
+| No Focus State | Cannot determine state during keyboard navigation | High |
+| Missing alt Text | No alternative text for images | Medium |
+
+#### Visual Consistency
+
+| Issue | Description | Severity |
+|-------|-------------|----------|
+| Font Inconsistency | Mixed font families | Medium |
+| Color Inconsistency | Non-unified brand colors | Medium |
+| Spacing Inconsistency | Non-uniform spacing between similar elements | Low |
+
+### 2.3 Viewport Testing (Responsive)
+
+Test at the following viewports:
+
+| Name | Width | Representative Device |
+|------|-------|----------------------|
+| Mobile | 375px | iPhone SE/12 mini |
+| Tablet | 768px | iPad |
+| Desktop | 1280px | Standard PC |
+| Wide | 1920px | Large display |
+
+---
+
+## Step 3: Issue Fixing Phase
+
+### 3.1 Issue Prioritization
+
+```mermaid
+block-beta
+ columns 1
+ block:priority["Priority Matrix"]
+ P1["P1: Fix Immediately\n(Layout issues affecting functionality)"]
+ P2["P2: Fix Next\n(Visual issues degrading UX)"]
+ P3["P3: Fix If Possible\n(Minor visual inconsistencies)"]
+ end
+```
+
+### 3.2 Identifying Source Files
+
+Identify source files from problematic elements:
+
+1. **Selector-based Search**
+ - Search codebase by class name or ID
+ - Explore style definitions with `grep_search`
+
+2. **Component-based Search**
+ - Identify components from element text or structure
+ - Explore related files with `semantic_search`
+
+3. **File Pattern Filtering**
+ ```
+ Style files: src/**/*.css, styles/**/*
+ Components: src/components/**/*
+ Pages: src/pages/**, app/**
+ ```
+
+### 3.3 Applying Fixes
+
+#### Framework-specific Fix Guidelines
+
+See [references/framework-fixes.md](references/framework-fixes.md) for details.
+
+#### Fix Principles
+
+1. **Minimal Changes**: Only make the minimum changes necessary to resolve the issue
+2. **Respect Existing Patterns**: Follow existing code style in the project
+3. **Avoid Breaking Changes**: Be careful not to affect other areas
+4. **Add Comments**: Add comments to explain the reason for fixes where appropriate
+
+---
+
+## Step 4: Re-verification Phase
+
+### 4.1 Post-fix Confirmation
+
+1. Reload browser (or wait for development server HMR)
+2. Capture screenshots of fixed areas
+3. Compare before and after
+
+### 4.2 Regression Testing
+
+- Verify that fixes haven't affected other areas
+- Confirm responsive display is not broken
+
+### 4.3 Iteration Decision
+
+```mermaid
+flowchart TD
+ A{Issues Remaining?}
+ A -->|Yes| B[Return to Step 2]
+ A -->|No| C[Proceed to Completion Report]
+```
+
+**Iteration Limit**: If more than 3 fix attempts are needed for a specific issue, consult the user
+
+---
+
+## Output Format
+
+### Review Results Report
+
+```markdown
+# Web Design Review Results
+
+## Summary
+
+| Item | Value |
+|------|-------|
+| Target URL | {URL} |
+| Framework | {Detected framework} |
+| Styling | {CSS / Tailwind / etc.} |
+| Tested Viewports | Desktop, Mobile |
+| Issues Detected | {N} |
+| Issues Fixed | {M} |
+
+## Detected Issues
+
+### [P1] {Issue Title}
+
+- **Page**: {Page path}
+- **Element**: {Selector or description}
+- **Issue**: {Detailed description of the issue}
+- **Fixed File**: `{File path}`
+- **Fix Details**: {Description of changes}
+- **Screenshot**: Before/After
+
+### [P2] {Issue Title}
+...
+
+## Unfixed Issues (if any)
+
+### {Issue Title}
+- **Reason**: {Why it was not fixed/could not be fixed}
+- **Recommended Action**: {Recommendations for user}
+
+## Recommendations
+
+- {Suggestions for future improvements}
+```
+
+---
+
+## Required Capabilities
+
+| Capability | Description | Required |
+|------------|-------------|----------|
+| Web Page Navigation | Access URLs, page transitions | ✅ |
+| Screenshot Capture | Page image capture | ✅ |
+| Image Analysis | Visual issue detection | ✅ |
+| DOM Retrieval | Page structure retrieval | Recommended |
+| File Read/Write | Source code reading and editing | Required for fixes |
+| Code Search | Code search within project | Required for fixes |
+
+---
+
+## Reference Implementation
+
+### Implementation with Playwright MCP
+
+[Playwright MCP](https://github.com/microsoft/playwright-mcp) is recommended as the reference implementation for this skill.
+
+| Capability | Playwright MCP Tool | Purpose |
+|------------|---------------------|---------|
+| Navigation | `browser_navigate` | Access URLs |
+| Snapshot | `browser_snapshot` | Retrieve DOM structure |
+| Screenshot | `browser_take_screenshot` | Images for visual inspection |
+| Click | `browser_click` | Interact with interactive elements |
+| Resize | `browser_resize` | Responsive testing |
+| Console | `browser_console_messages` | Detect JS errors |
+
+#### Configuration Example (MCP Server)
+
+```json
+{
+ "mcpServers": {
+ "playwright": {
+ "command": "npx",
+ "args": ["-y", "@playwright/mcp@latest", "--caps=vision"]
+ }
+ }
+}
+```
+
+### Other Compatible Browser Automation Tools
+
+| Tool | Features |
+|------|----------|
+| Selenium | Broad browser support, multi-language support |
+| Puppeteer | Chrome/Chromium focused, Node.js |
+| Cypress | Easy integration with E2E testing |
+| WebDriver BiDi | Standardized next-generation protocol |
+
+The same workflow can be implemented with these tools. As long as they provide the necessary capabilities (navigation, screenshot, DOM retrieval), the choice of tool is flexible.
+
+---
+
+## Best Practices
+
+### DO (Recommended)
+
+- ✅ Always save screenshots before making fixes
+- ✅ Fix one issue at a time and verify each
+- ✅ Follow the project's existing code style
+- ✅ Confirm with user before major changes
+- ✅ Document fix details thoroughly
+
+### DON'T (Not Recommended)
+
+- ❌ Large-scale refactoring without confirmation
+- ❌ Ignoring design systems or brand guidelines
+- ❌ Fixes that ignore performance
+- ❌ Fixing multiple issues at once (difficult to verify)
+
+---
+
+## Troubleshooting
+
+### Problem: Style files not found
+
+1. Check dependencies in `package.json`
+2. Consider the possibility of CSS-in-JS
+3. Consider CSS generated at build time
+4. Ask user about styling method
+
+### Problem: Fixes not reflected
+
+1. Check if development server HMR is working
+2. Clear browser cache
+3. Rebuild if project requires build
+4. Check CSS specificity issues
+
+### Problem: Fixes affecting other areas
+
+1. Rollback changes
+2. Use more specific selectors
+3. Consider using CSS Modules or scoped styles
+4. Consult user to confirm impact scope
diff --git a/.agents/skills/web-design-reviewer/references/framework-fixes.md b/.agents/skills/web-design-reviewer/references/framework-fixes.md
new file mode 100644
index 0000000..d400ca1
--- /dev/null
+++ b/.agents/skills/web-design-reviewer/references/framework-fixes.md
@@ -0,0 +1,475 @@
+# Framework-specific Fix Guide
+
+This document explains specific fix techniques for each framework and styling method.
+
+---
+
+## Pure CSS / SCSS
+
+### Fixing Layout Overflow
+
+```css
+/* Before: Overflow occurs */
+.container {
+ width: 100%;
+}
+
+/* After: Control overflow */
+.container {
+ width: 100%;
+ max-width: 100%;
+ overflow-x: hidden;
+}
+```
+
+### Text Clipping Prevention
+
+```css
+/* Single line truncation */
+.text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+/* Multi-line truncation */
+.text-clamp {
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+
+/* Word wrapping */
+.text-wrap {
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+ hyphens: auto;
+}
+```
+
+### Spacing Unification
+
+```css
+/* Unify spacing with CSS custom properties */
+:root {
+ --spacing-xs: 0.25rem;
+ --spacing-sm: 0.5rem;
+ --spacing-md: 1rem;
+ --spacing-lg: 1.5rem;
+ --spacing-xl: 2rem;
+}
+
+.card {
+ padding: var(--spacing-md);
+ margin-bottom: var(--spacing-lg);
+}
+```
+
+### Improving Contrast
+
+```css
+/* Before: Insufficient contrast */
+.text {
+ color: #999999;
+ background-color: #ffffff;
+}
+
+/* After: Meets WCAG AA standards */
+.text {
+ color: #595959; /* Contrast ratio 7:1 */
+ background-color: #ffffff;
+}
+```
+
+---
+
+## Tailwind CSS
+
+### Layout Fixes
+
+```jsx
+{/* Before: Overflow */}
+
+
+
+
+{/* After: Overflow control */}
+
+
+
+```
+
+### Text Clipping Prevention
+
+```jsx
+{/* Single line truncation */}
+