Components
Media
You come here for video, sound, images and files: players, galleries, viewers, uploads.
- Owner rule
- Media come from Bunny through the app's manifest, never committed.
- Size budget
- 66.1 kB gzip for the whole domain; it only goes down.
Entries
13 entries, 6 used by live products and sites.
- Audio playerA sound with a waveform you seek on — the peaks given by the server or computed once with Web Audio — play, time and speed, paused when it leaves the screen.
- Document viewerA PDF drawn page by page with pdf.js, and the passages of a report lit where they sit — found from the PDF's own text positions, one box per line; the page and the quote when the text layer cannot place them.7 files import it
- Embed facadeA platform's short video (TikTok, YouTube Shorts, Instagram) behind a button: until the visitor asks, no frame, no script and no platform picture is requested — the frame is added on the click, sandboxed.1 files import it
- File uploadA drop zone that checks type, size and count, a list of uploads with preview, progress, speed and the actions each state allows, and a queue that pauses and resumes — Tus-ready without depending on it.5 files import it
- Image viewerImages full screen on black: pinch and double tap to zoom, swipe between images, swipe down to close.
- Media galleryA shop's own photos and loops in tiles — the first featured, loops playing muted while their tile is on screen (a still under reduced motion), a caption on the foot of a tile.
- Media gridA feed of videos in mixed orientations that never staggers, with its loading states (
MediaGridSkeleton,VideoCardSkeleton,LoadMore):MediaGridroutes the 9:16 clips to aShortsShelf(equal-height cards, snap scroll, arrows, “See all”) and lays the others in a uniform 16:9 grid;VideoCardis aspect-aware and gives every card the same body height so rows align. - Media pickerPhotos and videos picked from the library or the camera, as a grid of tiles with a remove button and a count.
- Photo gridA profile's photos in slots: the first is the main one, empty slots invite to add, photos reorder by drag (web), by their menu (React Native) or by buttons — every move announced.
- Retro TVA vertical video presented in a detailed television cabinet, with an accessible player, channel label, scanlines and an animated off-state.1 files import it
- Vertical videoA 9:16 short video with the action rail of a short-video feed — follow, like, comments, share, your own tip button — and the creator's caption over the picture;
ShortFeedstacks them as a snap-scrolling feed that plays the one in view. - Video playerA video with accessible controls — HLS through an hls.js loaded only when needed, signed sources resolved at the last moment, subtitles, speed, full screen, a pause when it leaves the screen.3 files import it
- WaveformThe bars of a sound, drawn on their own: decorative by default, in the brand's accent or a quiet tone, breathing gently while it plays and still under reduced motion.1 files import it