--- name: chakra-ui description: Contains Chakra UI v3 documentation for styling, theming, and components. ALWAYS activate when code imports from `@chakra-ui/react`, or when the user asks about Chakra UI components, styling, or theming. --- # Chakra UI v3 ## Activation TRIGGER when: code imports from `@chakra-ui/react`, user asks about Chakra UI components/styling/theming, or working on frontend UI code. ## Important Files This skill includes full Chakra UI v3 documentation split into three files stored alongside this SKILL.md: - **`styling.txt`** (~110KB) - Styling system: style props, responsive design, CSS variables, dark mode, chakra factory, cascade layers, conditions, focus ring, text/layer/animation styles - **`theming.txt`** (~88KB) - Theming: tokens (colors, spacing, radii, shadows, typography, z-index, animations, breakpoints), semantic tokens, recipes, slot recipes, customization - **`components.txt`** (~1.5MB) - All component docs with usage examples and props **Always read** `styling.txt` and `theming.txt` when this skill activates — they provide essential context for all Chakra UI work. but, **Read `components.txt` on-demand** when working with specific components. Due to its size, use ripgrep to search for the component name (e.g. `# Button` or `# Dialog`) rather than reading the whole file. - The docs are located at: `/home/hayley/Projects/mikoto/.claude/skills/chakra-ui/` - The project theme is defined at `apps/client/src/components/chakraTheme.tsx` ## Quick Reference ### Core Patterns ```tsx // Style props (primary styling method) Content // Responsive (mobile-first breakpoints) Responsive text // Color opacity via color-mix Semi-transparent // Semantic tokens (auto light/dark) Themed content ``` ### Composition with asChild ```tsx // Passes Chakra styles to child element ``` ### Footguns AVOID using `chakra()` factory to create styled elements. AVOID using styled components AVOID using recipes and slot recipes When trying to re-use styles, simply create a component and use it. Chakra defines our style system but we use a utility-first approach, similar to Tailwind. ### Key Semantic Tokens | Category | Tokens | | ---------- | ---------------------------------------------------------------------------------------------------------------------------- | | Background | `bg`, `bg.subtle`, `bg.muted`, `bg.emphasized`, `bg.inverted`, `bg.panel`, `bg.error`, `bg.warning`, `bg.success`, `bg.info` | | Text | `fg`, `fg.muted`, `fg.subtle`, `fg.inverted`, `fg.error`, `fg.warning`, `fg.success`, `fg.info` | | Border | `border`, `border.muted`, `border.subtle`, `border.emphasized`, `border.inverted`, `border.error` | ### CSS Cascade Layers ``` @layer reset, base, tokens, recipes; ``` Styles are ordered by specificity layers for predictable overrides.