Works with any backend npm install Zero dependencies

Features

Everything you need for modern file uploads, in a single lightweight component.

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.