Skip to content
M3 Expressive

Inputs

Text fields, search, menus, select and the date picker, built to the Material 3 Expressive specs. Everything here is live: focus the fields, type, open the menus.

Text fields

Filled and outlined. The label floats from body-large to body-small on a fast-spatial spring; the indicator or outline thickens from 1dp to 2dp in primary on focus.

The placeholder only shows while focused
Enter a valid email address
Filled Height 56dp · Top corners 4dp · Indicator 1dp → 2dp · Padding 16dp · Label 16/24 → 12/16
The placeholder only shows while focused
Enter a valid email address
Outlined Height 56dp · Corner 4dp · Outline 1dp → 2dp · Label notch 4dp each side
Missing domain
Icons Icons 24dp · Trailing icon button 48dp target · Icon side padding 12dp · Icon ↔ text 16dp
$ USD
kg
https://
Prefix & suffix Prefix/suffix body-large on-surface-variant · 2dp gap · shown once the label floats
Tell people a little about yourself 0 / 80
Usernames are 20 characters or fewer 28 / 20
Supporting text & counter Supporting text body-small 12/16 · 4dp top · 16dp sides · Counter end-aligned, 16dp gap
0 / 200
Multi-line & read-only Grows with content from 56dp · Read-only looks enabled, is labelled as such
EnabledPopulatedErrorDisabledRead-only filled
Supporting text
Supporting text
Error text
Supporting text
Supporting text
outlined
Supporting text
Supporting text
Error text
Supporting text
Supporting text
States Hover and focus are live · Error: label, indicator, supporting text and trailing icon in error · Disabled: content on-surface 38%, filled container on-surface 4%, outline on-surface 12%
Contact us

Submit with empty fields to see the error states.

0 / 300
A small form Field.FieldSet / FieldGroup layout · error replaces supporting text · select = outlined field

Select

The shadcn Select restyled: the trigger is an outlined text field and the listbox is a baseline M3 menu.

Select Trigger 56dp, outline 1dp → 2dp primary · Floating label + notch · Arrow 24dp rotates on open · Menu items 48dp · Selected secondary-container

Date picker

Docked date picker on bits-ui DatePicker: type into the date segments or open the calendar from the trailing icon.

Birthday
mmddyyyy

MM/DD/YYYY

Departure
10112026

Today or later

Disabled
mmddyyyy

MM/DD/YYYY

Birthday: — · Departure: 2026-10-11

Docked date picker Card 360 × 456dp · Corner 16dp · surface-container-high · Level 3 · Header 64dp · Day cells 48dp, 40dp indicator · Selected primary · Today 1dp primary outline