Officina UI
Components

Overview

All 250+ Officina UI components by category — start here to find the right primitive.

Every component below ships in @officina/ui. Pages include a live demo and a props table generated from the component source.

Compound components are documented on one page, not one page per part: Card covers CardHeader, CardTitle, CardDescription, CardContent, and CardFooter; Table covers its seven section and cell parts; List, Form, AppBar, and Page layout work the same way.

Categories

CategoryWhat's in itStart with
Inputs & FormsText, number, date, and selection controls, plus the Form composition and validation wiringForm, Input, Select
Buttons & ActionsButtons, toggles, menus, and action toolbarsButton, ActionMenu
NavigationTabs, menus, breadcrumbs, steppers, and app chromeTabs, AppBar
Overlays & PopupsModals, drawers, popovers, tooltips, and context menusModal, Popover
Feedback & StatusAlerts, banners, loading and empty states, progress, badgesAlert, EmptyState
Data DisplayLists, cards, avatars, timelines, boards, and code/text viewersCard, List
Tables & Data GridsHand-composed Table plus the data-driven DataTable and DataGridTable, DataTable
FiltersThe filter model, builder UI, chips, and per-type filter controlsFilterBar
Charts18 chart types built on EChartsLineChart, BarChart
MediaImages, lightbox, cropper, map, player, QR and barcodesImageList
LayoutBoxes, grids, stacks, panels, and the page layout partsStack, Page layout
Content & TypographyText styling, links, animated numbersTypography
Motion & EffectsAnimation presets and decorative effectsMotionPreset
UtilitiesSSR guards, copy fields, top progress barNoSSR

Choosing a table

Three components render tabular data, and picking the wrong one is the most common false start:

  • Table — you write the markup by hand. Right for small, static datasets where you want full control.
  • DataTable — sorting, filtering, pagination, and selection, driven by a TanStack Table instance you own.
  • DataGrid — virtualized, spreadsheet-style grid for large datasets.

DataTable and DataGrid need @tanstack/react-table installed; see Peer dependencies.

On this page