Upload Vessel
A file-import dialog where the upload fills a beaker. Water pours in with the bytes, fizzes while the files are checked, and stands full with a tick when the data is ready.
Built with Vessel
What it is for
Make an upload's three phases (sending, processing, ready) readable at a glance without a percentage: for a data import, a media upload or any drop zone in a product, the vessel pours while bytes go up, fizzes while the server works, and stands full when it is done, beside precise file rows, rates and steps.
Everything you set here is what the Code and Prompt tabs give you.
Seats open in 11 days. Want one email that morning?
Datasheet
- Mechanism
- Upload fills vessel, Fizz while processing, Drag tilt, File validation, Simulated upload timer, Real upload api, Container query layout, Palette tokens from one table
- Stack
- Vanilla ES modules, CSS, Canvas 2D
- Needs
- Vessel
- States
- 12 documented
- Version
- 0.1.0
- Licence
- With a Pass
States
- IdleAn empty beaker in the drop zone, “Drop your files here”, Browse and a sample run, hints on what the product reads; Import disabled.
- Drag overThe zone's dashed outline turns to the accent and the water in the beaker tilts toward the pointer.
- UploadingWater pours in steadily with the bytes; each file's bar fills in turn; bytes, rate and time left in mono; step one active.
- Refused fileA file of the wrong kind, too large or empty is listed with its reason in the error colour and left out of the upload.
- Checking and indexingThe beaker stands full and fizzes, harder while indexing; the active step's dot pings; announced once.
- DoneThe fizz stops, a green tick appears, every file reads “Ready”, “Open dataset” is enabled; the timer has stopped and the beaker sleeps.
- Import moreThe list empties and the beaker drains.
- PaletteDaylight (white card, cool greys, one blue) or console (the app's dark theme); the glass re-shades itself for the drop zone.
- TabletThe app's rail goes; a narrower drop zone beside the files.
- PhoneOne column: the beaker on top, the files below, the dialog's buttons sharing the full width.
- Reduced motionNo pour, fizz, tilt, ping or slide; the checks run faster; the level, numbers and words all remain.
- Off screenThe beaker's loop pauses; the block's timer runs only while an upload or a check is in progress.
Notes
Original composition; Loam, its project, datasets and sample files are invented. Nothing is uploaded: the upload is simulated at a set rate until a real upload is wired through setProgress, process and done. Imagery is CSS and SVG icons drawn here, and the Vessel's canvas. Faces: Instrument Sans and Geist Mono (SIL OFL 1.1), Latin subsets as WOFF2.
Anatomy
Upload fills vessel, Fizz while processing, Drag tilt, File validation, Simulated upload timer, Real upload api, Container query layout, Palette tokens from one table
Usage notes
Make an upload's three phases (sending, processing, ready) readable at a glance without a percentage: for a data import, a media upload or any drop zone in a product, the vessel pours while bytes go up, fizzes while the server works, and stands full when it is done, beside precise file rows, rates and steps.
Options
| Option | Type | Description |
|---|---|---|
| app | text | Product |
| project | text | Project |
| title | text | Dialog title |
| note | text | Footnote |
| speed | number | How fast the simulated upload fills the beaker. |
| palette | enum | The app’s light theme, or its dark one. |
| liquid | enum | In the beaker |
| light | number | Light from (degrees) |
Methods
- vessel
- phase
- setProgress
- update
- destroy
How it works
Original composition; Loam, its project, datasets and sample files are invented. Nothing is uploaded: the upload is simulated at a set rate until a real upload is wired through setProgress, process and done. Imagery is CSS and SVG icons drawn here, and the Vessel's canvas.