Building Components
References
Each file is loaded on demand — read one only when the task needs that depth (progressive disclosure).
references/definitions.mdx— artifact taxonomy: primitives, components, blocks, templates and when to use each · read when choosing the right abstraction level for a new component.references/principles.mdx— core component design principles: single responsibility, composition over configuration, minimal API surface · read when designing a new component's API.references/accessibility.mdx— ARIA roles/attributes, keyboard navigation, focus management, WCAG compliance patterns · read when implementing interactive or custom-widget components.references/composition.mdx— slot patterns, render props, controlled/uncontrolled state, compound components · read when designing composable component APIs.references/as-child.mdx— the Radix-styleasChildpattern for element polymorphism without wrapper divs · read when implementingasChildor polymorphic roots.references/polymorphism.mdx—asprop, generic polymorphic components, TypeScript inference for polymorphic types · read when a component must render as different HTML elements.references/types.mdx— TypeScript typing patterns: discriminated unions, generic props,ComponentPropsWithoutRef,forwardRef· read when typing component props or forwarding refs.references/state.mdx— controlled vs uncontrolled state,useControllableState, default value patterns · read when deciding how a component should own or delegate its state.references/data-attributes.mdx— usingdata-*attributes for CSS state, testing hooks, and styling variants · read when styling component states or wiring tests.references/design-tokens.mdx— CSS custom property token systems, theming, dark mode, token naming conventions · read when setting up or extending a design token layer.references/styling.mdx— CSS Modules, Tailwind, CSS-in-JS, class variance authority (CVA), style encapsulation · read when choosing or implementing a component styling approach.references/registry.mdx— shadcn/ui-style registry distribution,components.json, CLI-installable components · read when publishing via a component registry.references/npm.mdx— npm package publishing: entry points, bundling, peer deps, package.json fields · read when shipping a component library to npm.references/marketplaces.mdx— component marketplace distribution (Shadcn registry, v0, etc.) · read when distributing components via a marketplace.references/docs.mdx— writing component documentation: prop tables, usage examples, Storybook stories · read when documenting a component for end users.