--- name: "naive-ui-design-border" description: "Border design specifications for Naive UI components. Invoke when user needs to understand border styles, radius options, or shadow styles used throughout Naive UI." metadata: author: jiaiyan version: "1.0.0" --- # Border Design Specifications Naive UI standardizes borders used in buttons, cards, pop-ups, and other components for consistent visual design. ## When to Use - Understanding border style options - Applying consistent radius styles - Using shadow styles for depth - Maintaining design consistency - Creating themed components with proper borders --- ## Border Radius Naive UI provides standardized border radius values for consistent rounded corners. | CSS Variable | Value | Usage | |--------------|-------|-------| | `--border-radius` | `3px` | Base radius for components | | `--border-radius-small` | `2px` | Small radius for buttons, tags | ### Usage Examples ```vue ``` ### In CSS with n-element ```vue ``` --- ## Border Colors Naive UI uses semantic border colors that adapt to light and dark themes. ### Light Theme | CSS Variable | Value | Usage | |--------------|-------|-------| | `--border-color` | `rgb(224, 224, 230)` | Default border color | | `--divider-color` | `rgb(239, 239, 245)` | Divider lines | ### Dark Theme | CSS Variable | Value | Usage | |--------------|-------|-------| | `--border-color` | `rgba(255, 255, 255, 0.24)` | Default border color | | `--divider-color` | `rgba(255, 255, 255, 0.09)` | Divider lines | --- ## Box Shadows Naive UI provides three levels of shadow styles for depth and elevation. | CSS Variable | Usage | |--------------|-------| | `--box-shadow-1` | Light shadow for cards, dropdowns | | `--box-shadow-2` | Medium shadow for popovers, modals | | `--box-shadow-3` | Heavy shadow for dialogs, overlays | ### Shadow Values #### Light Theme ```css --box-shadow-1: 0 1px 2px -2px rgba(0, 0, 0, .08), 0 3px 6px 0 rgba(0, 0, 0, .06), 0 5px 12px 4px rgba(0, 0, 0, .04); --box-shadow-2: 0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05); --box-shadow-3: 0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03); ``` #### Dark Theme ```css --box-shadow-1: 0 1px 2px -2px rgba(0, 0, 0, .24), 0 3px 6px 0 rgba(0, 0, 0, .18), 0 5px 12px 4px rgba(0, 0, 0, .12); --box-shadow-2: 0 3px 6px -4px rgba(0, 0, 0, .24), 0 6px 12px 0 rgba(0, 0, 0, .16), 0 9px 18px 8px rgba(0, 0, 0, .10); --box-shadow-3: 0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03); ``` ### Usage Examples ```vue ``` --- ## Scrollbar Styles Naive UI provides customizable scrollbar styles. | CSS Variable | Value | Usage | |--------------|-------|-------| | `--scrollbar-color` | Light: `rgba(0, 0, 0, 0.25)` | Scrollbar thumb color | | `--scrollbar-color-hover` | Light: `rgba(0, 0, 0, 0.4)` | Scrollbar thumb hover | | `--scrollbar-width` | `5px` | Scrollbar width | | `--scrollbar-height` | `5px` | Scrollbar height | | `--scrollbar-border-radius` | `5px` | Scrollbar thumb radius | --- ## CSS Variables Summary ```css :root { --border-radius: 3px; --border-radius-small: 2px; --border-color: rgb(224, 224, 230); --divider-color: rgb(239, 239, 245); --box-shadow-1: 0 1px 2px -2px rgba(0, 0, 0, .08), 0 3px 6px 0 rgba(0, 0, 0, .06), 0 5px 12px 4px rgba(0, 0, 0, .04); --box-shadow-2: 0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05); --box-shadow-3: 0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03); --scrollbar-width: 5px; --scrollbar-height: 5px; --scrollbar-border-radius: 5px; } ``` --- ## Transition Timing Naive UI uses standardized cubic-bezier timing functions for smooth transitions. | CSS Variable | Value | Usage | |--------------|-------|-------| | `--cubic-bezier-ease-in-out` | `cubic-bezier(.4, 0, .2, 1)` | General transitions | | `--cubic-bezier-ease-out` | `cubic-bezier(0, 0, .2, 1)` | Enter animations | | `--cubic-bezier-ease-in` | `cubic-bezier(.4, 0, 1, 1)` | Exit animations | ### Usage Example ```vue ``` --- ## Best Practices 1. **Use CSS Variables**: Always use predefined CSS variables for consistency 2. **Match Context**: Choose appropriate shadow depth based on element importance 3. **Dark Mode**: Border and shadow colors automatically adjust in dark mode 4. **Consistent Radius**: Use `--border-radius` for most components, `--border-radius-small` for compact elements 5. **Smooth Transitions**: Use the provided cubic-bezier functions for consistent animation feel 6. **Accessibility**: Ensure sufficient contrast for borders in both themes --- ## Related Resources | Resource | Description | |----------|-------------| | [useThemeVars](https://www.naiveui.com/en-US/os-theme/docs/theme) | Access theme variables in JavaScript | | [n-element](https://www.naiveui.com/en-US/os-theme/components/element) | Use CSS variables in templates | | [Color Design](./naive-ui-design-color/SKILL.md) | Color specifications |