Agent skill
registry-component-patterns
Register components in registry.json for shadcn/ui add command. Apply when adding new 8-bit components to the component library.
Install this agent skill to your Project
npx add-skill https://github.com/TheOrcDev/8bitcn-ui/tree/main/.claude/skills/registry-component-patterns
SKILL.md
Registry Component Patterns
Register 8-bit components in registry.json for discovery via shadcn add @8bitcn/[component-name].
Component Entry Pattern
{
"name": "button",
"type": "registry:component",
"title": "8-bit Button",
"description": "A simple 8-bit button component",
"registryDependencies": ["button"],
"files": [
{
"path": "components/ui/8bit/button.tsx",
"type": "registry:component",
"target": "components/ui/8bit/button.tsx"
},
{
"path": "components/ui/8bit/styles/retro.css",
"type": "registry:component",
"target": "components/ui/8bit/styles/retro.css"
}
]
}
Block Entry Pattern
For pre-built layouts like game UIs:
{
"name": "chapter-intro",
"type": "registry:block",
"title": "8-bit Chapter Intro",
"description": "A cinematic chapter/level intro with pixel art background.",
"registryDependencies": ["card"],
"categories": ["gaming"],
"files": [
{
"path": "components/ui/8bit/blocks/chapter-intro.tsx",
"type": "registry:block",
"target": "components/ui/8bit/blocks/chapter-intro.tsx"
},
{
"path": "components/ui/8bit/styles/retro.css",
"type": "registry:component",
"target": "components/ui/8bit/styles/retro.css"
},
{
"path": "components/ui/8bit/card.tsx",
"type": "registry:component",
"target": "components/ui/8bit/card.tsx"
}
]
}
Required retro.css
Always include retro.css in registry entries:
"files": [
{
"path": "components/ui/8bit/new-component.tsx",
"type": "registry:component",
"target": "components/ui/8bit/new-component.tsx"
},
{
"path": "components/ui/8bit/styles/retro.css",
"type": "registry:component",
"target": "components/ui/8bit/styles/retro.css"
}
]
Categories
Use gaming-specific categories:
"categories": ["gaming"]
Available categories: gaming, layout, form, data-display, feedback, navigation, overlay.
Registry Dependencies
List base shadcn dependencies:
"registryDependencies": ["button", "dialog"]
For blocks with multiple components:
"registryDependencies": ["card", "button", "progress"]
Key Principles
- Type - Use
registry:componentfor single components,registry:blockfor layouts - retro.css required - Always include in files array
- Target path - Use same path for source and target
- Categories - Use
gamingfor retro-themed components - Dependencies - List base shadcn/ui components (not 8-bit versions)
- Description - Clear, concise description for CLI output
Adding a New Component
- Create component in
components/ui/8bit/component.tsx - Update
registry.jsonwith entry (copy existing component as template) - Include
retro.cssdependency - Test with:
pnpm dlx shadcn@latest add @8bitcn/component
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
component-wrapper-architecture
Best practices for wrapping shadcn/ui components. Apply when creating 8-bit styled variants of existing shadcn/ui components.
retro-css-architecture
Organize 8-bit CSS with custom properties, pixel fonts, and responsive pixel art. Apply when creating or modifying retro-styled components and their CSS.
gaming-ui-state-management
Patterns for game-like interfaces - health bars, XP bars, mana bars. Apply when building RPG/retro gaming UI components with state-driven visuals.
bundle-barrel-imports
Import directly from source files instead of barrel files. Apply when using libraries like lucide-react, @mui/material, or @radix-ui/react-* to reduce bundle size and improve dev boot time.
rendering-hoist-jsx
Extract static JSX elements outside components to avoid re-creation on every render. Apply when rendering static elements repeatedly or in lists.
rerender-functional-setstate
Use functional setState updates to prevent stale closures and unnecessary callback recreations. Apply when updating state based on the current state value in React components.
Didn't find tool you were looking for?