Ecosystem
Unstyled UI components
Accessible component families with markup you can style.
Start with a family
ajo-ui supplies semantic markup, ARIA relationships and keyboard behavior. Components expose stable data-slot and state attributes for your CSS.
Terminal
pnpm add ajo-ui@0.1.2Compose a component
Tabs use a root, list, triggers and panels. Label the list and give each trigger and its panel the same value.
ProjectTabs.tsx
import { Tabs, TabsContent, TabsList, TabsTrigger } from 'ajo-ui/tabs'
export default () => (
<Tabs defaultValue="overview">
<TabsList aria-label="Project">
<TabsTrigger value="overview">Overview</TabsTrigger>
<TabsTrigger value="activity">Activity</TabsTrigger>
</TabsList>
<TabsContent value="overview">Project overview.</TabsContent>
<TabsContent value="activity">Recent activity.</TabsContent>
</Tabs>
)Keep your visual language
Style component slots through classes, state attributes or family class maps. Controlled and uncontrolled props pair value/defaultValue/onValueChange, open/defaultOpen/onOpenChange or checked/defaultChecked/onCheckedChange.
The catalog includes dialogs, menus, inputs, calendars, tables and virtual lists. Family declarations document the available arguments.