Design system
Docs
Headless

Overview

The eighteen Base UI namespaces @nyte-ai/ui re-exports without styling, and which desktop files consume each

@nyte-ai/ui/<name> is a one-line re-export of a Base UI namespace. Nothing is styled; Base UI owns the interaction model and the consumer owns every visual decision. The point of the subpath is that the Base UI dependency and version stay behind the shared package.

import { Popover } from "@nyte-ai/ui/popover";

Each page in this section is Base UI's own documentation for that component, reproduced verbatim (MIT, © Material-UI SAS) with a Nyte header that lists the repo files consuming it. They are regenerated by pnpm --dir packages/docs sync:base-ui; check:base-ui fails when they drift.

Rules

  • Import from the subpath, never from @base-ui/react directly.
  • A styled wrapper belongs in packages/ui/src/components/ui only when more than one product needs the same look. Product-specific composites (the desktop menu, settings controls) stay in the product.
  • Do not replace Base UI's keyboard or focus behavior. Add to it with onKeyDown only when the surface has a documented reason (the composer's suggestion listbox is the example).
  • render is the composition mechanism. When a rendered element is not a <button>, pass nativeButton={false} so Base UI keeps button semantics.

Subpaths

SubpathBase UIStyled wrapper in @nyte-ai/uiDesktop tier
/alert-dialogAlertDialogAlert dialogConfirmDialog
/autocompleteAutocompletenoneModel picker search
/buttonButtonButtonButton, IconButton
/collapsibleCollapsiblenoneTool call, work group, reasoning, sidebar
/context-menuContextMenunoneContextMenu
/dialogDialogDialogAbout, image preview, workspace trust
/menuMenuDropdown menuMenu
/number-fieldNumberFieldnoneSettingsStepper
/popoverPopovernoneComposer suggestion listbox
/preview-cardPreviewCardnoneSidebar session preview, composer detail card
/selectSelectnoneSettingsSelect
/sliderSlidernoneAppearance hue/intensity/density
/switchSwitchnoneSettingsSwitch
/tabsTabsnoneSearch palette, customize, workbench tab strip
/toggleTogglenoneToggleIconButton
/toggle-groupToggleGroupnoneUsage range control
/toolbarToolbarnoneChanges panel actions
/tooltipTooltipnoneHint

Also from @nyte-ai/ui/sonner: Toaster, toast, and the ExternalToast / ToasterProps types from the sonner package. See Toaster.

Not wrapped

Base UI parts with no subpath yet: Checkbox, CheckboxGroup, Radio, RadioGroup, Field, Fieldset, Form, Progress, Meter, Separator, ScrollArea, Accordion, Combobox, NavigationMenu, Toast. Add a subpath file in packages/ui/src/<name>.ts and an exports entry before consuming one.