v1.0.0
12 Sep 2026First release.
Added
- Sizes that say their own unit: a bare number is always bytes,
'5MB'is 5,000,000 and'5MiB'is 5,242,880 — the confusion behind the four most-reacted open issues on Dropzone. - Rejection with a reason:
'too-large','too-small','wrong-type','too-many','duplicate','empty'or'rejected', each with the limit and the actual value, and a rule of your own that can answer with a code or its own sentence. Rejected files stay in the list saying what happened. - Type matching on the extension as well as the media type, because Windows calls
.csvan Excel file and a file out of an archive often has no type at all. - Resumable chunked uploads over a plain protocol — headers and a raw body, no envelope — with a
HEADprobe that asks the server what it already has. - Retries with exponential backoff for the failures worth repeating (a dropped connection, a 500, a 429) and none for the ones that are the server's answer (a 422, a 401).
- Upload speed and time remaining, from a rolling average that says nothing rather than claiming a stale rate when a connection stalls.
- Files uploaded in the order they were added,
concurrencyof them at a time. - Dropped folders read to the end —
readEntrieshands back a hundred at a time and must be called until it returns none — with each file's path kept and sent. - Pasted screenshots taken as files, and renamed, because every one of them is called
image.png. - A footer that counts what it can honestly count: uploads when there is a server, attachments when there is not.
- Per-file progress, cancel, retry and remove; image thumbnails;
transformfor compressing or stripping a file before it is sent. - Without a
url, the widget enhances the input and a plain form posts the files itself. - The real
<input type="file">kept as the control, with the drop zone as its label, named buttons per row, a realprogressbar, and a live region. - React, Vue, Svelte,
<dx-uploader>and a CDN build over one DOM core. - Theming through CSS variables,
classNameson every part, replaceable icons,theme: 'auto', a@layer devixstylesheet, RTL by way of logical properties, and forced-colors support. - 8.9 kB gzip of JavaScript and 1.3 kB of CSS, zero dependencies. The core — sizes, validation, sending and the queue — is 3.6 kB on its own.