UI Component Generator
SkillMediaGenerate a new UI component following the StyleSeed design conventions
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the UI Component Generator skill
What this skill tells your AI
The instructions your AI receives, as published by bitjaru/styleseed in skills/ss-component/SKILL.md and read by ahel’s review.
Registry-first artifact boundary
When .styleseed/project.json and .styleseed/artifacts/index.json exist, resolve the requested artifact ID first, then read only .styleseed/bundles/<artifact-id>.md and .styleseed/manifests/<artifact-id>.json. Never fall back to the global legacy bundle for a registry project. Legacy projects may use .styleseed/effective-rules.md only when no registry exists.
When NOT to use
- For full-page scaffolding → use
/ss-page - For composed multi-component patterns → use
/ss-pattern - For tweaking an existing component — just edit the file directly
- For non-StyleSeed projects (no
components/ui/directory or no Tailwind v4)
Generate a new component: $0 Description: $ARGUMENTS
Instructions
-
First, read the compiled design method:
- Read
.styleseed/effective-rules.mdand.styleseed/manifest.json; resolve if stale - Read
css/theme.cssfor available design tokens - Read
css/recipes.cssfor morphology variables and helper classes - Read
components/ui/button.tsxas a reference pattern
- Read
-
Follow these conventions strictly:
- Use
functiondeclaration (notconst) - Add
data-slot="component-name"attribute - Use
cn()from@/components/ui/utilsfor all className merging - Use
React.ComponentProps<>for prop typing - Always support
classNameprop for overrides - Use CVA (
class-variance-authority) if the component has variants - Use semantic color tokens (
bg-card,text-foreground) — never inline hex
- Use
-
Design token usage:
- Colors:
text-foreground,bg-card,text-brand,text-muted-foreground,border-border - Pattern surfaces:
ss-pattern-surface; insets/controls/icons use the matchingss-*class - Primitives use the project token scale; do not hardcode one radius or shadow personality
- Spacing follows one repeatable selected-recipe rhythm
- 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):
leading-normal(default tracking) - Caption uppercase (10-13px):
tracking-[0.05em] - Use
size-*shorthand instead ofw-* h-* - Use
ms-*/me-*instead ofml-*/mr-*(logical properties)
- Display (36-48px):
-
Accessibility requirements:
- Minimum touch target: 44x44px (
min-h-11 min-w-11) - Support
aria-*attributes passthrough - Use
focus-visible:ring-2 focus-visible:ring-ringfor keyboard focus - Respect
prefers-reduced-motionfor animations
- 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 →
Signals
- GitHub stars
- 949
- Forks
- 88
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ss-component- Source
- github.com/bitjaru/styleseed