Components
65 components for Flutter, each a file you copy into your app with ashlar add.
Button
Six variants and four sizes, with leading and trailing icons.
Button Group
Buttons joined into one piece, for actions that belong together.
Toggle
A button that stays pressed: bold, italic, a filter.
Toggle Group
Toggles joined into one piece, one or several pressed.
Dropdown Menu
A menu of actions from a trigger: checkbox and radio items, groups and submenus.
Context Menu
A menu that opens where something is right-clicked or long-pressed.
Menubar
A bar of menus, as at the top of a desktop app.
Command
A search box over a list of things to do, picked with the keyboard.
Form
Fields of a form drawn with their labels and errors, checked when it is sent, focus on the first wrong one.
Field
A control with its label, description and error, read out together.
Label
The name of a control, above it or beside it.
Input
A text field with selection handles and a cut, copy and paste menu.
Textarea
A text field for several lines that grows with its text and drags taller.
Select
Picks one value from a list: groups, icons, type to find, and long lists.
Combobox
A select you can search: one pick or several as chips, groups, clearing.
Input Group
A text field with text, buttons or a toolbar inside its border.
Input OTP
A one-time code, one character to a box.
Checkbox
A box that is ticked or not.
Radio
A choice of one, in Flutter's RadioGroup, with labels.
Switch
An on and off switch.
Slider
A value picked by dragging along a track, or with the arrow keys.
Calendar
Months of days to pick one, several or a range from, with week numbers and dropdowns.
Date Picker
A button that shows a date and opens a calendar, with presets.
Time Picker
A button that shows a time and opens columns of hours and minutes, on a 12 or 24-hour clock.
Dialog
A modal panel over a dimmed page, with title, content and actions.
Alert Dialog
A question that needs an answer before going on.
Sheet
A panel that slides in from an edge of the screen.
Drawer
A panel that comes up from the bottom and drags away.
Popover
A panel that opens from a trigger and floats over the page.
Hover Card
A card that appears when the pointer rests on something.
Tooltip
A short label over a control on hover, focus or long press.
Toast
Short messages that go by themselves: types, promises and a stack.
Card
A panel with a header, content and a footer.
Tabs
Views of one thing, one at a time, chosen from a row of tabs.
Accordion
Sections that open one at a time under their headings.
Collapsible
Content that opens and closes under a trigger.
Item
A row in a list: media, a title and description, and actions.
Separator
A one-pixel line, across or down.
Scroll Area
Scrolling with a thin themed scrollbar; a builder for long lists.
Resizable
Panels with handles between them that drag to resize.
Carousel
Slides moved by swiping, buttons, keys, a controller or by themselves.
Data Table
Rows of data under headings: sorting, row selection, and long data built as it scrolls.
Chart
Bar, line, area and pie charts, drawn here with no charting package.
Navigation Menu
A site's main links, with panels that open from headings.
Sidebar
An app's navigation down the side: variants, submenus, actions, a rail.
Pagination
Previous, page numbers and Next, for a long list.
Breadcrumb
Where a page sits, as links to the pages above it, folding long trails.
Message
One turn in a conversation: who sent it, what they said, a line above or below.
Bubble
What was said, in a rounded fill on the sender's side, with reactions.
Attachment
A file or picture in a conversation: what it is and how its upload is going.
Marker
A note in a conversation that nobody said: a day, someone joining, thinking.
Message Scroller
A conversation that scrolls as people expect: new turns near the top, following only at the end.
Questionnaire
Questions one at a time: one choice, several or words, with keys for every answer.
Swipe Actions
A row with actions behind it: swipe it aside to show them, all the way to do the first.
Pull to Refresh
A list that refreshes when pulled down from its top, with a Refresh action for screen readers.
Bottom Bar
An app's main places along the bottom of a phone screen, an icon and a name each.
Alert
A notice, warning or error in the page, read out when it appears.
Progress
How far along something is, as a bar.
Spinner
A turning ring that says something is working.
Skeleton
A pulsing placeholder in the shape of content still loading.
Empty
What to show when there is nothing here yet.
Typography
Headings, paragraphs, quotes and lists in the theme's type.
Badge
A small label: a status, a count, a tag.
Avatar
A picture in a circle, with initials while it loads or when it fails.
Kbd
A keyboard key, for showing shortcuts.