|Kit
Changelog

0.0.1

The first release of @42/ui-react — design foundations plus ~40 components across inputs, the picker family, overlays, and data display.

This is a very minimal version, for now. We will improve the components API, add more callbacks on events, fear not !

The first release of @42/ui-react lays the whole groundwork: a design system built on a shared (variant × color) model and one xsxl size scale, plus ~40 components — each shipping with a docs page, a live playground story, and tests. A few of them, live:

Foundations

The color system, typography (Lato for text, Kode Mono for accents and code), the shared size scale, gradient/theming tokens, and the layout primitives Container, Grid, Stack, Text and Title. Every accent-aware component reads the same palette off a data-color attribute:

ValidatedIn progressFailedQueued

Code

<Badge variant="light" color="green">Validated</Badge><Badge variant="light" color="blue">In progress</Badge><Badge variant="light" color="red">Failed</Badge><Badge variant="light" color="gray">Queued</Badge>

Inputs & forms

The interactive primitives — Button, ActionIcon, Slider, Kbd, Spinner, Badge, Card — plus a full form suite wired to a single library-agnostic contract (value / onChange / onBlur / ref / name), so react-hook-form, TanStack Form, and native <form> submission all work without an adapter: Input, Field, Checkbox, RadioGroup, Switch, SegmentGroup, Textarea, PasswordInput, NumberInput, PinInput, FileUpload and TagsInput.

Code

<Button variant="filled" color="brand">Book an eval slot</Button><Checkbox label="I followed the Norm" defaultChecked /><Switch label="Available for evaluations" defaultChecked /><Slider defaultValue={42} />

The picker family

Select, MultiSelect, Autocomplete, Combobox, TreeSelect and TreeMultiSelect share one input shell and a renderItem callback with typed payloads, tap-anywhere-to-open, and a consistent clear-vs-chevron behaviour (clearSectionMode).

Code

<Select data={['Paris', 'Lyon', 'Nice', 'Berlin']} placeholder="Pick a campus" />

Overlays

Modal and Drawer, driven either by open / onOpenChange or by an imperative createModals manager (open / confirm / context / stacked), plus the hover-and-focus Tooltip and the click-panel Popover:

Code

// Hint on hover / focus<Tooltip label="Saved automatically" asChild><Button variant="default">Hover me</Button></Tooltip>// Click-panel<Popover.Root><Popover.Trigger asChild><Button>Intra</Button></Popover.Trigger><Popover.Content>…</Popover.Content></Popover.Root>// Modal & Drawer (or drive them imperatively with createModals)<Modal open={open} onOpenChange={setOpen} title="Welcome aboard">…</Modal><Drawer open={open} onOpenChange={setOpen} placement="end" title="Filters">…</Drawer>

Data display

Progress and CircularProgress, plus ChoiceCardGroup — a selectable card group that switches between radio and checkbox semantics.

Code

<Progress value={62} variant="gradient" /><CircularProgress value={62} variant="gradient" size="lg" />

Code

<ChoiceCardGrouplabel="Next project"defaultValue="minishell"items={[  { value: 'philosophers', label: 'Philosophers', description: 'Threads and mutexes.' },  { value: 'minishell', label: 'Minishell', description: 'Parsing, pipes, builtins.' },  { value: 'cub3d', label: 'Cub3D', description: 'Raycasting, Wolfenstein-style.' },]}/>

Git history

Released · Initial release

The first release of the 42 UI kit — design foundations, the core interactive primitives, the combobox/picker family, overlays, and the first data-display components.

  1. Add ChoiceCardGroup (selectable card group — radio / checkbox)

  2. Library-agnostic form support

  3. Progress + CircularProgress components

  4. ClearSectionMode, consistent clear-vs-chevron

  5. Add Tooltip component

  6. Add typed payload to renderItem

  7. Homogenous backdrop blur between drawer & modals

  8. Tap anywhere to open + keyboard-reachable clears

  9. Text-size fixes + OG image refresh

  10. Add renderItem across the picker family

  11. Add Input / Combobox base components

  12. Resolve lint findings across the kit

  13. Click outside on modals/drawer

  14. Add Modal, Drawer & imperative modals manager

  15. Slider and button sizing tweaks

  16. Add Kbd component with docs and dogfood in Button slots

  17. Add synthetic controls to playground to better control state aware fields

  18. Factorised gradient logic & add card variants

  19. Update playground & button/action-icon/spinner sizes/design

  20. Button colors fix

  21. Add disabled colors

  22. Add fonts

  23. Add size fudamental for components

  24. Added disabled and preview

  25. Initial commit

  26. Reworked playground/story to have better preset handling & labels

  27. Slider story & typography

  28. Slider styles

  29. Theme colors not being loaded

On this page