Introduction
What is Cynosure — a headless-at-the-core, themed-on-top React component library for production work.
Cynosure UI
Section titled “Cynosure UI”Cynosure is a headless-at-the-core, themed-on-top React component library for production work.
The whole library is built on three ideas:
- Layout primitives own the DOM.
Box,Stack,Inline,Flex,Grid,Center(plusSpacer,Divider,AspectRatio,Container,Section) are the only components that render raw HTML. Everything else composes those. - Themes are data. Visual decisions live in W3C DTCG JSON tokens. CSS
custom properties are generated from those tokens, and consumers theme by
flipping
data-themeon<html>. - Behaviour is owned in-tree where the contract is small. Toggles,
switches, accordions, tabs, collapsibles, checkboxes, radios, avatars,
the
Slot/asChildcomposer, the direction provider, scroll area, tooltip, hover card, popover, dialog, drawer, and alert dialog are all first-party — backed by two small shared kits (useFloatingPositionfor anchored overlays anduseDialogfor modal focus-trap + scroll lock). Calendars, date pickers, color pickers, comboboxes, sliders, and form-typed inputs lean onreact-aria-componentsso we don’t re-derive locale-aware date math or rich keyboard models. The menu family (DropdownMenu, ContextMenu, MenuBar, NavigationMenu) is the last remaining Radix-backed surface; the migration is in flight.
Why Cynosure
Section titled “Why Cynosure”- Tiny by default. Per-component ESM entries (
@arshad-shah/cynosure-react/button) + per-component CSS. You pay for what you import. - Accessibility at the floor. WCAG 2.2 AA, keyboard complete, RTL-safe, reduced-motion honoured. Every component ships with an axe-passing story.
- No CSS to write. Consumers compose via props and tokens. If you need an escape hatch, the
asChildprop lets you project any element. - Forms that compose.
Form+FormField+FormControlauto-wireid,aria-describedby,aria-invalid,name,required,disabled. Works withreact-hook-formout of the box.
What Cynosure is not
Section titled “What Cynosure is not”- Not a visual editor or design-to-code pipeline.
- Not a charting library (charts are on the roadmap for v1.1+).
- Not an opinionated page framework — it sits at the component layer.
Next steps
Section titled “Next steps”- Installation — add Cynosure to your project in minutes.
- Quickstart — render your first components.
- Theming overview — learn how themes work.