Form input
File upload
Picker and dropzone parity, concurrency, progress, cancel, and retry without backend assumptions.Drop files here or choose files
No files selected
Choose it deliberately
Use the component when its interaction contract matches the user task.
Use when
You need file queues, progress, retry, and cancellation with predictable M3 behavior.
Avoid overloading
Do not move application business state, requests, or navigation rules into the component.
Composition
Sizing, labels, and neighboring elements should preserve visual hierarchy.
One primary meaning
Label and supporting content should communicate one task.
Stable geometry
Avoid unnecessary size or position changes during interaction.