# File Upload

> This is a client‑side React/Next.js file uploader built on your useFileUpload hook, designed for a polished, accessible UX. It supports drag‑and‑drop or browsing with max size/file limits, and lets users manage uploads in list or grid views with type‑aware icons, thumbnails, inline search/sort, multi‑select, and quick actions (preview, download, copy link, remove). A persistent drop zone, live error messaging, and subtle per‑file size indicators round out the experience—no backend changes required.

- Author: [Ruixen UI](https://21st.dev/@ruixen.ui)
- Library: [Ruixen UI](https://21st.dev/@ruixen.ui/library/ruixen-ui)
- License: unknown
- npm dependencies: lucide-react
- Live preview: https://21st.dev/@ruixen.ui/components/file-upload

## Install

```bash
npx shadcn@latest add "https://21st.dev/r/ruixen.ui/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
