shadcn-ui-conventions
Maintains conventions for shadcn/ui components and specific patterns for retro 8-bit styled components.
Install
mkdir -p .claude/skills/shadcn-ui-conventions && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2362" && unzip -o skill.zip -d .claude/skills/shadcn-ui-conventions && rm skill.zipInstalls to .claude/skills/shadcn-ui-conventions
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
UI component conventions for 8-bit styled components. Use when working with shadcn/ui components or implementing retro-styled UI elements.Key capabilities
- →Create new UI components
- →Modify existing shadcn/ui components
- →Implement 8-bit retro styling
- →Manage component imports and types
How it works
The skill enforces specific import orders, type definitions, and CSS requirements for 8-bit components while excluding the directory from standard linting.
Inputs & outputs
When to use shadcn-ui-conventions
- →Create new UI components
- →Format retro 8-bit components
- →Organize imports in components/ui
- →Implement variants for ui components
About this skill
UI Component Conventions
The components/ui directory uses different conventions from the rest of the project. It's excluded from Biome/Ultracite linting to preserve shadcn/ui patterns.
When to use this skill
- When creating new UI components
- When modifying existing shadcn/ui components
- When implementing 8-bit retro styling
- When working with component imports and types
Linting
- Biome excludes this directory:
biome.jsonchas"!components/ui"in the includes - No Ultracite formatting: Components use their own patterns
- Run lint manually when needed:
npx biome check components/ui/
Import Patterns
Base components (e.g., button.tsx):
import type * as React from "react";
import { Slot } from "@radix-ui/react-slot";
import { type VariantProps, cva } from "class-variance-authority";
import { cn } from "@/lib/utils";
8bit components (e.g., 8bit/button.tsx):
import { type VariantProps, cva } from "class-variance-authority";
import { cn } from "@/lib/utils";
import { Button as ShadcnButton } from "@/components/ui/button";
import "@/components/ui/8bit/styles/retro.css";
Import order:
- External libraries (class-variance-authority, @radix-ui)
- Internal utils (
@/lib/utils) - Base component alias (
@/components/ui/component) - Retro stylesheet (
@/components/ui/8bit/styles/retro.css)
Type Definitions
Base components: Inline props type with function
function Button({
className,
variant,
...props
}: React.ComponentProps<"button"> &
VariantProps<typeof buttonVariants> & {
asChild?: boolean;
})
8bit components: Export interface separately
export interface BitButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> {
asChild?: boolean;
ref?: React.Ref<HTMLButtonElement>;
}
function Button({ children, asChild, ...props }: BitButtonProps)
Ref Handling
Base components: Use React.forwardRef
const DialogOverlay = React.forwardRef<
React.ComponentRef<typeof DialogPrimitive.Overlay>,
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
>(({ className, ...props }, ref) => (
<DialogPrimitive.Overlay ref={ref} {...props} />
));
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
8bit components: Use ref prop (React 19 pattern)
export interface BitButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement> {
ref?: React.Ref<HTMLButtonElement>;
}
function Button({ ref, ...props }: BitButtonProps) {
return <ShadcnButton ref={ref} {...props} />
}
8bit Component Patterns
Retro CSS import: Required for all 8bit components
import "@/components/ui/8bit/styles/retro.css";
Base component alias: Import base component with alias
import { Button as ShadcnButton } from "@/components/ui/button";
Variant overrides: 8bit variants often have minimal styles (borders/colors handled by CSS)
export const buttonVariants = cva("", {
variants: {
variant: {
default: "bg-foreground",
// ...
},
},
});
Reference Files
components/ui/button.tsx- Base component examplecomponents/ui/8bit/button.tsx- 8bit wrapper examplecomponents/ui/dialog.tsx- Complex base component with Radix primitives
When not to use it
- →Standard project directories outside components/ui
Prerequisites
Limitations
- →Requires manual linting via npx biome check
- →Retro CSS import is mandatory for all 8-bit components
How it compares
It provides a specialized directory-specific convention that overrides standard project-wide linting and formatting rules.
Compared to similar skills
shadcn-ui-conventions side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| shadcn-ui-conventions (this skill) | 1 | 6mo | No flags | Intermediate |
| ui-styling | 12 | 9mo | Review | Beginner |
| figma | 22 | 4mo | No flags | Intermediate |
| interaction-design | 15 | 5mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by TheOrcDev
View all by TheOrcDev →You might also like
ui-styling
mrgoonie
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs. Use when building user interfaces, implementing design systems, creating responsive layouts, adding accessible components (dialogs, dropdowns, forms, tables), customizing themes and colors, implementing dark mode, generating visual designs and posters, or establishing consistent styling patterns across applications.
figma
openai
Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.
interaction-design
wshobson
Design and implement microinteractions, motion design, transitions, and user feedback patterns. Use when adding polish to UI interactions, implementing loading states, or creating delightful user experiences.
web-design-reviewer
github
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.
visual-design-foundations
wshobson
Apply typography, color theory, spacing systems, and iconography principles to create cohesive visual designs. Use when establishing design tokens, building style guides, or improving visual hierarchy and consistency.
design-lab
0xdesign
Conduct design interviews, generate five distinct UI variations in a temporary design lab, collect feedback, and produce implementation plans. Use when the user wants to explore UI design options, redesign existing components, or create new UI with multiple approaches to compare.