What problem does it solve?
Building robust UI components requires balancing accessibility, composability, styling, and distribution; teams often duplicate effort, miss ARIA/keyboard requirements, and create brittle styling APIs. This Skill centralizes best-practices and patterns so authors can create accessible, type-safe, and themeable components that integrate cleanly into design systems.
Core Features & Use Cases
- Accessibility by default: ARIA roles, keyboard maps, focus management, live regions, and contrast guidance to make components usable for assistive technologies.
- Composable APIs & Polymorphism: Patterns for compound components, asChild/as prop polymorphism, slots, and data-slot identification to enable flexible composition.
- Styling & Theming: Guidance on design tokens, Tailwind integration, data-state/data-slot approaches for declarative styling, and class merging with cn/tailwind-merge.
- Types & Distribution: TypeScript typing patterns, controlled/uncontrolled state, and publishing strategies for npm, registries, and marketplaces.
- Use Case: Implementing a Button, Dialog, or Menu primitive that is headless, accessible, themeable, and publishable as a component or registry item.
Quick Start
Create a new accessible Button component that supports asChild polymorphism, data-state attributes for styling, keyboard navigation, ARIA roles, and exported TypeScript prop types.