Headless Components: Separating Behavior from Rendering Without Losing Accessibility
Headless hooks with prop getters, compound components over context, asChild and render props, useControllableState for controlled and uncontrolled modes, keyboard and ARIA as part of the API, the cost of polymorphism in TypeScript, and when to use Radix, React Aria or Base UI instead of building your own.