Styleseed ss-component
Generate a new UI component following the StyleSeed design conventions
install
source · Clone the upstream repo
git clone https://github.com/bitjaru/styleseed
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/bitjaru/styleseed "$T" && mkdir -p ~/.claude/skills && cp -r "$T/engine/.claude/skills/ss-component" ~/.claude/skills/bitjaru-styleseed-ss-component && rm -rf "$T"
manifest:
engine/.claude/skills/ss-component/SKILL.mdsource content
UI Component Generator
Generate a new component: $0 Description: $ARGUMENTS
Instructions
-
First, read the design system seed for context:
- Read
for component conventionsCLAUDE.md - Read
for available design tokenscss/theme.css - Read
as a reference patterncomponents/ui/button.tsx
- Read
-
Follow these conventions strictly:
- Use
declaration (notfunction
)const - Add
attributedata-slot="component-name" - Use
fromcn()
for all className merging@/components/ui/utils - Use
for prop typingReact.ComponentProps<> - Always support
prop for overridesclassName - Use CVA (
) if the component has variantsclass-variance-authority - Use semantic color tokens (
,bg-card
) — never inline hextext-foreground
- Use
-
Design token usage:
- Colors:
,text-foreground
,bg-card
,text-brand
,text-muted-foregroundborder-border - Shadows:
,shadow-[var(--shadow-card)]shadow-[var(--shadow-elevated)] - Radius:
,rounded-md
,rounded-lgrounded-2xl - Spacing: multiples of 6px (
,p-1.5
,p-3
)p-6 - Motion:
,duration-[var(--duration-fast)]ease-[var(--ease-default)]
- Colors:
-
Typography rules:
- Display (36-48px):
leading-none tracking-[-0.02em] - Heading (18-24px):
leading-snug tracking-[-0.01em] - Body (14-17px):
(default tracking)leading-normal - Caption uppercase (10-13px):
tracking-[0.05em] - Use
shorthand instead ofsize-*w-* h-* - Use
instead ofms-*/me-*
(logical properties)ml-*/mr-*
- Display (36-48px):
-
Accessibility requirements:
- Minimum touch target: 44x44px (
)min-h-11 min-w-11 - Support
attributes passthrougharia-* - Use
for keyboard focusfocus-visible:ring-2 focus-visible:ring-ring - Respect
for animationsprefers-reduced-motion
- Minimum touch target: 44x44px (
-
Export the component as a named export (not default)
-
Place the file in the appropriate directory:
- Primitive/reusable →
src/components/ui/ - Composed pattern →
src/components/patterns/
- Primitive/reusable →