Animated File Upload

A minimal, physical drag-and-drop file uploader with smooth drop reaction, independent file upload tracking, progressive state morphing, and accessible retry flows.

Drop files here

or browse from your device (up to 15 MB)

Installation

Add the component directly to your repository using shadcn CLI:

npx shadcn@latest add Surajmaurya1/easyui/animated-file-upload

API Reference

PropTypeDefaultDescription
multiplebooleantrueAllow multiple files selection and upload
acceptstring | string[]undefinedAccepted MIME types or file extensions (e.g. image/*, .pdf)
maxSizenumber26214400 (25MB)Maximum file size in bytes
maxFilesnumber10Maximum number of concurrent files in list
dropTitlestring'Drop files here'Primary drop target heading
dropSubtitlestring'or browse from your device'Secondary call-to-action text
variant'standard' | 'compact''standard'Display density mode
disabledbooleanfalseDisables all interactions and file picking
onFilesSelected(files: File[]) => voidundefinedCallback triggered when files are chosen
onUploadComplete(file: UploadFileItem) => voidundefinedCallback fired on successful upload completion
uploadHandler(file, onProgress) => Promise<void>undefinedCustom async upload handler returning a promise