# File Upload

> Most upload widgets fall over on the three things that really happen: wrong file type, file too big, transfer fails halfway. This one handles all three — per-file progress, retry, and guards that explain themselves. Part of Documents & Signing: layro.vercel.app

- Author: [Mohamed Uvaish](https://21st.dev/@uvain)
- Library: [Layro](https://21st.dev/@uvain/library/product-ui)
- License: mit
- npm dependencies: lucide-react, framer-motion
- Live preview: https://21st.dev/@uvain/components/file-upload

## Install

```bash
npx shadcn@latest add "https://21st.dev/r/uvain/file-upload?api_key=$API_KEY_21ST"
```

Requires a 21st API key (generate one at https://21st.dev/mcp) passed as `API_KEY_21ST`. Free accounts get a limited number of installs per day; unlimited on a paid plan — see https://21st.dev/pricing.

Full component directory: https://21st.dev/llms.txt
