40 COMPONENTS · 18 CORE · 22 EXTRAS
Components
Every component ships with a copy-pasteable code sample, a full parameter table, and a live interactive preview — the real Compose component running in your browser.
Core
Button
A FormaUI button — "Material 3 with better defaults" — one entry point covering all five Material 3 button variants via a single variant parameter, with a default-on press-scale micro-interaction layered on the ripple.
TextField
A FormaUI text field — "Material 3 with better defaults" — one entry point covering both Material 3 text-field families via variant, with fully hoisted state.
Card
A FormaUI card — a themed container with an opinionated header / content / footer slot API covering all three Material 3 card families via variant; clickable cards get a default-on press-scale micro-interaction (shared Modifier.formaPressScale).
Chip
A FormaUI chip — "Material 3 with better defaults" — one entry point covering all four Material 3 chip types via variant, with a default-on press-scale micro-interaction (shared Modifier.formaPressScale).
Badge
A FormaUI badge — a small status marker for indicating unread counts or presence.
Switch
A FormaUI switch — a themed on/off toggle for a single setting.
Checkbox
A FormaUI checkbox — a themed binary selection control.
RadioButton
A FormaUI radio button — a themed control for choosing one option from a set.
Dialog
A FormaUI alert dialog — a modal that interrupts the user for a decision or acknowledgement, delegating to Material 3's AlertDialog.
BottomSheet
A FormaUI modal bottom sheet — content that slides up from the bottom over a scrim, delegating to Material 3's ModalBottomSheet.
NavigationBar
A FormaUI bottom navigation bar — top-level destination switching, delegating to Material 3's NavigationBar.
ListItem
A FormaUI list item — a single row for lists, menus, and settings, delegating to Material 3's ListItem.
Avatar
A FormaUI avatar container — a circular (by default) tinted surface that centers its content.
Divider
A FormaUI divider — a thin rule for separating content, delegating to Material 3's HorizontalDivider / VerticalDivider.
LoadingIndicator
A FormaUI loading indicator — circular or linear, determinate or indeterminate — delegating to Material 3's progress indicators.
EmptyState
A FormaUI empty state — the centered "nothing here yet / no results" placeholder with an optional illustration, a title, a description, and an optional action.
Snackbar
A FormaUI snackbar — a brief, transient message at the bottom of the screen, delegating to Material 3's Snackbar, with a standard (message-only) and an action variant.
Slider
A FormaUI slider — lets the user select a value from a continuous or stepped range, delegating to Material 3's Slider.
Extras
BottomAppBar
A FormaUI bottom app bar — navigation and key actions anchored to the bottom of small screens, delegating to Material 3's BottomAppBar.
DropdownMenu
A FormaUI dropdown menu — a transient surface of choices anchored to a control, delegating to Material 3's DropdownMenu.
FloatingActionButton
A FormaUI floating action button — "Material 3 with better defaults"; one entry point covers all three Material 3 FAB sizes via size, with a default-on press-scale micro-interaction (shared Modifier.formaPressScale) on both FAB composables.
IconButton
A FormaUI icon button — "Material 3 with better defaults"; one entry point covers all four Material 3 icon button variants via variant, with a default-on press-scale micro-interaction (shared Modifier.formaPressScale) using a deeper 0.92 dip.
NavigationDrawer
A FormaUI modal navigation drawer — an off-canvas panel of destinations that slides in over content and is dismissed with a scrim tap, delegating to Material 3's ModalNavigationDrawer.
NavigationRail
A FormaUI navigation rail — top-level destination switching for tablet/desktop-width screens, delegating to Material 3's NavigationRail.
SearchBar
A FormaUI search bar — "Material 3 with better defaults", wrapping Material 3's SearchBar/DockedSearchBar behind one entry point whose variant switches between the docked and full-screen expansion surfaces.
SegmentedButton
A FormaUI segmented button row — a set of connected, mutually-styled buttons for view switching or option selection, delegating to Material 3's SingleChoiceSegmentedButtonRow / MultiChoiceSegmentedButtonRow.
TabRow
A FormaUI tab row — switches between a small number of related content destinations, delegating to Material 3's PrimaryTabRow/SecondaryTabRow (or their scrollable equivalents).
Tooltip
A FormaUI tooltip — "Material 3 with better defaults", wrapping Material 3's TooltipBox + PlainTooltip/RichTooltip.
TopAppBar
A FormaUI top app bar — "Material 3 with better defaults"; one entry point covers all four Material 3 top app bar sizes via variant.
BarChart
A FormaUI bar chart — vertical bars with rounded top corners, drawn with pure Compose Canvas (no chart-library dependency); gridlines, category labels, value labels, and a one-shot entry animation are all built in.
DonutChart
A FormaUI donut chart — proportional stroked arc segments around an open center slot, drawn with pure Compose Canvas (no chart-library dependency); segments cycle the shared series palette and sweep in clockwise on entry.
LineChart
A FormaUI line chart — a single series plotted as a smooth (or straight) trend line with an optional area fill, point markers, gridlines, and x-axis labels, drawn with pure Compose Canvas (no chart-library dependency). Accepts negative values.
DatePickerSheet
A FormaUI date picker presented in a modal bottom sheet — Material 3's inline DatePicker hosted in a FormaBottomSheet instead of the M3 DatePickerDialog, with hoisted M3 state, confirm/dismiss button slots, and the calendar-to-text-input mode toggle.
DateRangePickerSheet
A FormaUI date-range picker presented in a modal bottom sheet — Material 3's inline DateRangePicker hosted in a FormaBottomSheet instead of the M3 DatePickerDialog, with hoisted M3 state, confirm/dismiss button slots, and the calendar-to-text-input mode toggle. The picker's scrollable month list is bounded by the sheet so months scroll internally while the buttons stay on-screen.
PullToRefresh
A FormaUI pull-to-refresh container — wraps a scrollable layout and adds a swipe-down-to-refresh gesture, delegating to Material 3's stable PullToRefreshBox with fully hoisted isRefreshing state and a styling-passthrough indicator slot.
SwipeToDismiss
A FormaUI swipe-to-dismiss row — lets the user swipe a row horizontally to dismiss it (e.g. delete or archive), delegating to Material 3's stable SwipeToDismissBox with hoisted state, a revealed background slot, and per-direction enable flags.
RangeSlider
A FormaUI range slider — lets the user select a sub-range (start and end value) from a continuous or stepped range, delegating to Material 3's RangeSlider. The sibling of FormaSlider for two-thumb selection.
TimePickerSheet
A FormaUI time picker presented in a modal bottom sheet — Material 3's TimePicker (clock dial) and TimeInput (text entry) hosted in a FormaBottomSheet, with hoisted M3 TimePickerState, confirm/dismiss button slots, and a FormaUI-provided dial-to-input mode toggle (M3's TimePicker has none of its own). Mirrors FormaDatePickerSheet's structure.
Carousel
A FormaUI carousel — a horizontally scrolling, snapping strip of items — one entry point covering both Material 3 horizontal carousel families (multi-browse and uncontained) via a variant enum, with hoisted M3 CarouselState and an indexed item slot.
ExposedDropdownMenu
A FormaUI exposed dropdown menu (autocomplete) — a FormaTextField anchor that drops a menu of options below it, delegating to Material 3's ExposedDropdownMenuBox. Fully hoisted (query text, expanded state, and the already-filtered options are the caller's); FormaUI provides the wiring, the rotating chevron, and the option rows. Generic over the option type via optionLabel.