For Designer

Components/Inputs

File Upload

File upload lets people attach documents or images by dropping them on an area or browsing their device, then shows each file’s progress in its own card

Variants
19
Limit
5MB per file

Playground

Playground

Pick a variant, or drop a real file on the area to watch it upload. Nothing leaves your browser

Label*(Optional)Input caption
File nameReady to upload

Area: Size=Large · Disable=false — Card: Size=Large · State=Ready to Upload

Pastes into Figma as editable auto layout layers with Unictive values, click the button or press ⌘C to copy

Upload area

Upload area

Large stacks an icon, instructions and a button for a page with room. Small fits the drop target in one row inside a form

File card

File card sizes

Each picked file gets a card. Large and Medium show a status line, Small shows the name only for dense lists

File card

File card states

A file moves from Ready to Upload through Loading to Finish, or to Failed. View is the card after the upload, while the file is processed or reviewed

Usage

When to use

Use when

  1. People attach documents or images to a form, like an ID scan or a receipt
  2. People need to see each file’s progress and fix a failed upload without starting over
  3. The flow accepts several files and people should review the list before they submit

Avoid when

  1. People pick from files already in the product, use a Dropdown or a list instead
  2. The input is a short link or a code, use a Text Input
  3. The upload runs in the background with no file to review, show a Progress Bar

Guidance

Do and don’t

Passport scan*
Drag & drop orchoose filesto Upload
PDF or JPG, up to 5MB
passport-scan.pdfUploaded1.2MB
Do

Say which file types and sizes are accepted in the caption, and keep each file’s status in its own card

Passport scan*
Drag & drop orchoose filesto Upload
Don’t

Don’t disable the area without saying why, use the caption to explain, for example that the file limit is reached

Specs

Tokens and specs

PropertyTokenValue
Area width—400 px
Area padding32 px
Area radius16 px
Area border#DEDEDE, 1 px dashed
Area fill#FFFFFF, #F7F7F7 when disabled
Area gapLarge stacks with 16 px, Small sits in a row with 12 px
Label, area and caption gap8 px
Upload icon button40 px, 10 px padding, #EBEBEB border
Browse files button6 px top and bottom, 12 px sides
Disabled button text#D1D1D1
Card width—338 px
Card height—60 / 48 / 44
Card padding8 px left, top and bottom, 12 px right
Card radius16 px Large, 10 px Medium and Small
Card icon box44 / 32 / 28 px, #EBEBEB border
Pending border#DEDEDE, 1 px dashed
Failed border and text#FB3748
Icons20 px Large, 16 px Medium and Small
Title and file nameInter Medium 14/20
Description and captionInter Regular 12/16
Medium card statusInter Regular 10/12
Esc