Forms
Inputs, selects, date and time pickers, sliders, file upload — 31 components covering every form field you’ll need.
Pick your package manager. The Cynosure stylesheet is imported once at app entry.
npm install @arshad-shah/cynosure-reactpnpm add @arshad-shah/cynosure-reactyarn add @arshad-shah/cynosure-reactbun add @arshad-shah/cynosure-reactAlready have a project? Let the CLI wire it up for you:
npx @arshad-shah/cynosure-cli initpnpm dlx @arshad-shah/cynosure-cli inityarn dlx @arshad-shah/cynosure-cli initbunx @arshad-shah/cynosure-cli initEvery component is a small, focused primitive. Stack them with the layout primitives and you have a screen — no theme objects, no render props, no opinionated layouts to fight.
import { Stack, Input, Button } from '@arshad-shah/cynosure-react';
export function SignIn() { return ( <Stack gap="4"> <Input label="Email" type="email" /> <Input label="Password" type="password" /> <Button colorScheme="accent">Sign in</Button> </Stack> );}Forms
Inputs, selects, date and time pickers, sliders, file upload — 31 components covering every form field you’ll need.
Overlays
Dialog, Popover, Drawer, Toast, ContextMenu, CommandPalette — focus-managed, dismissible, RTL-aware.
Data display
Table, DataTable, Tree, Timeline, Chart, Carousel, ScrollArea — keyboard-navigable, theme-aware.
Navigation
Tabs, Breadcrumb, Pagination, Sidebar, Stepper, NavigationMenu — keyboard-first.
Layout
Box, Stack, Inline, Flex, Grid, SimpleGrid, Wrap, Container — every spacing prop is responsive and tokenised.
Theming
CSS variables only. Override --cynosure-* to reskin; switch themes at runtime; SSR-safe with no FOUC.
Accessible by default
Every primitive owns its own focus, roving tabindex, and ARIA contract — keyboards and screen readers are first-class everywhere. Every theme is contrast-audited for WCAG AA in CI; physical CSS properties are linted out so RTL stays correct.
Tree-shakeable
Per-component entry points (@arshad-shah/cynosure-react/button) on top of a plain ESM root barrel. CSS is marked side-effectful so bundlers keep the stylesheets but drop unused JS.
Themed with tokens
A flat token surface — space, colour, radius, shadow, duration, z-index — drives every visual decision. Swap themes without recompiling.
RTL and i18n ready
Logical-property layout. DirectionProvider + LocaleProvider carry direction and locale through the tree.