Features
Everything you need for modern file uploads, in a single lightweight component.
What's new in 1.3
Headline releaseServer-side cloud tokens, headless UI, and a pro image editor.
A self-hosted Node/Express OAuth and file-proxy broker (multipleupload/server/companion), modeled on Uppy Companion, with zero new dependencies. Provider client secrets and access tokens stay server-side. Built-in Dropbox, Box, Drive, OneDrive; proxy and server-to-destination transfer modes; HMAC-signed OAuth state; pluggable token store; built-in fileSystemDestination.
Drive, Dropbox, OneDrive, Box (now first-class), Unsplash (search and import, no OAuth popup), and the Companion broker.
useUploader() for React and Vue, a use:uploader action for Svelte, and an UploaderService for Angular return files, progress, status, and actions for fully custom UI.
Content-aware focal-point smart-crop (edge-energy, no ML), draggable text and sticker overlays, filter presets (Mono/Sepia/Warm/Cool/Vivid), an EXIF info panel, and crop-ratio quick-pick chips.
Export to AVIF or WebP with a quality slider and graceful AVIF to WebP to JPEG fallback. Plus EXIF auto-rotate on upload, PDF poster thumbnails in the queue, HEIC decode, and URL-based transforms via transformUrl().
Per-file rename UI, a restore prompt to resume incomplete uploads, whole-page drop with form auto-attach, locale auto-detect across ~28 locales with RTL, and ARIA live-region announcements with a new standalone aspectRatio validator.
Multiple File Upload
Select and upload multiple files at once. Users can add files from the file dialog, drag-and-drop, or paste from the clipboard. All files are tracked in a queue with individual progress.
Drag & Drop
A dedicated drop zone with visual hover feedback. Users can drag files directly from their desktop or file manager. The drop zone highlights automatically when files are dragged over it.
Chunked Uploads
Large files are automatically split into configurable chunks and uploaded sequentially. Handles files of any size without hitting server upload limits. Configure chunk size to match your backend.
Image Previews & Thumbnails
Instant client-side thumbnail generation for image files. Users see a preview before uploading. No server round-trip required. Configurable thumbnail dimensions.
Clipboard Paste
Paste images directly from the clipboard using Ctrl+V. Perfect for screenshots, copied images, and quick sharing workflows. Supports all modern browsers.
Progress Tracking
Real-time progress bars for each file and overall upload progress. Callbacks for granular tracking at the task and queue level. Shows upload speed and remaining time.
Queue Management
Full control over the upload queue. Cancel individual files, cancel all, clear completed items, or remove specific tasks. Programmatic access via methods.
Custom Headers & CORS
Send custom HTTP headers with every upload request. Built-in support for CSRF tokens, authorization headers, and any custom metadata your backend requires. Full CORS support.
Response Parser
Custom response parsing lets you adapt to any server response format. Return file GUIDs, URLs, or any metadata from your backend and access it in callbacks.
Dark Mode
Built-in dark mode support via CSS variables. Automatically adapts to the user's system preference or toggle it manually with a single class.
CSS Variables
Every visual aspect is controlled through CSS custom properties. Change colors, borders, spacing, and typography without touching JavaScript. Full theme control.
Attachment Mode
Display uploaded files as attachments in a compact list format. Ideal for forms where file uploads are secondary to the main content. Toggle between modes easily.
TypeScript Support
Full TypeScript type definitions included. Get autocomplete, type checking, and inline documentation in your IDE. No separate @types package needed.
npm & CDN
Install via npm for bundler workflows or load directly from unpkg CDN with a single script tag. Works with webpack, Vite, Rollup, or no bundler at all.