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.

01

Use when

You need file queues, progress, retry, and cancellation with predictable M3 behavior.

02

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.

01

One primary meaning

Label and supporting content should communicate one task.

02

Stable geometry

Avoid unnecessary size or position changes during interaction.