Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Shadcn File Upload for React and Tailwind

A component that allows users to upload files.

Drop files here
or
You can upload up to 2 files at a time.

Installation

bunx --bun shadcn@latest add https://kit.dev/r/file-upload.json

Anatomy

FileUpload
├── FileUploadDropzone
├── FileUploadItem
│   ├── FileUploadItemDeleteTrigger
│   ├── FileUploadItemGroup
│   ├── FileUploadItemName
│   ├── FileUploadItemPreview
│   │   └── FileUploadItemPreviewImage
│   └── FileUploadItemSize
├── FileUploadLabel
├── FileUploadTrigger
└── FileUploadClearTrigger

Usage

import { Button } from "@/components/ui/button";
import {
  FileUpload,
  FileUploadDescription,
  FileUploadDropzone,
  FileUploadDropzoneIcon,
  FileUploadHelper,
  FileUploadList,
  FileUploadTitle,
  FileUploadTrigger,
} from "@/components/ui/file-upload";
import { Separator } from "@/components/ui/separator";
<FileUpload className="mx-auto w-full max-w-xs">
  <FileUploadDropzone>
    <FileUploadDropzoneIcon />
    <FileUploadTitle>Drop files here</FileUploadTitle>
    <div className="flex items-center justify-center gap-2">
      <Separator />
      <FileUploadDescription>or</FileUploadDescription>
      <Separator />
    </div>
    <FileUploadTrigger asChild>
      <Button>Browse files</Button>
    </FileUploadTrigger>
    <FileUploadHelper>
      You can upload up to 2 files at a time.
    </FileUploadHelper>
  </FileUploadDropzone>
  <FileUploadList />
</FileUpload>

Accessibility

KeyDescription
Enter
Activate the focused control.
Space
Activate the focused control.

Demos

Accepted File Types

Clear Trigger

Custom Preview

Custom Spacing

Directory Upload

Dropzone

Media Capture

Multiple Files

Trigger

With Field

API Reference

FileUpload

div

PropType
AttributeType

FileUploadDropzone

div

PropType
AttributeType
CSS variableType

FileUploadItem

li

PropType
AttributeType

FileUploadItemDeleteTrigger

button

PropType
AttributeType

FileUploadItemGroup

ul

PropType
AttributeType

FileUploadItemName

div

PropType
AttributeType

FileUploadItemPreview

div

PropType
AttributeType

FileUploadItemPreviewImage

img

PropType
AttributeType

FileUploadItemSize

div

PropType
AttributeType

FileUploadTrigger

button

PropType
AttributeType

FileUploadClearTrigger

button

PropType
AttributeType

FileUploadDropzoneIcon

div

PropType
AttributeType

FileUploadTitle

div

PropType
AttributeType

FileUploadDescription

div

PropType
AttributeType

FileUploadHelper

div

PropType
AttributeType

FileUploadList

PropType
AttributeType

FileUploadRootProvider

div

PropType
AttributeType

useFileUpload

PropType