Previews and media

The detail panel in the web interface shows a preview of the selected file. The type of preview depends on the file format.

Images

JPEG, PNG, WebP, GIF, BMP, TIFF, and HEIC files are displayed directly. HEIC files are converted on the fly to JPEG for display in the browser.

RAW camera files (CR2, NEF, ARW, etc.) are extracted and displayed if a supported decoder is available; otherwise a placeholder is shown.

Double-clicking an image (or clicking the expand button in the detail panel) opens the media viewer. The viewer navigates through all viewable files currently shown in the grid—including cross-root search results—so the sequence reflects active filters and sort order rather than raw directory order.

The shared media toolbar supports page navigation, reading direction, spreads, continuous scrolling, zoom, fullscreen, pinning, and opening the viewer in a real same-origin browser window. Moving near the top edge reveals an unpinned toolbar; pin it when browser chrome makes edge access inconvenient. Cmd/Ctrl + mouse wheel zooms towards the pointer.

Video

Videos are streamed directly in the browser when the codec is browser-compatible (H.264 in MP4, AV1 in MP4/WebM). Other formats are transcoded on the fly to H.264/MP4 using ffmpeg.

Trickplay — hover over the video scrubber to see a sprite sheet of frames, letting you jump to any position without seeking.

Trickplay sprites are generated on first play and cached in .tessera/cache/vthumbs/.

The expanded video viewer uses the same toolbar lifecycle as the media viewer and adds a collapsible queue of videos from the current result set. Space owns one complete key press (down and up), so one press toggles playback once even when a media control has focus.

PDF

PDF files are rendered locally in the browser with PDF.js. Use the arrow buttons to navigate pages; the viewer also supports two-page spreads, right-to-left reading, continuous vertical or horizontal scrolling, and zoom/pan. In continuous mode only nearby pages are rasterised, so opening a large document does not render every page at once.

The PDF.js library and worker are bundled with Tessera and do not load code from a CDN. Server-side PDF tools remain useful for grid thumbnails, OCR, translation and AI analysis, but are not required for the reading surface.

Archives (ZIP, CBZ, CBR)

Archive contents are listed in grid or list form and have their own context menus. Image/comic pages load progressively: the active page is prioritised, then nearby previews and full-resolution pages are prefetched within bounded caches. The archive info action reports file, directory, image, compression, and solid-block metadata where the format exposes it.

Archive optimisation is available from the archive actions and settings. It can rebuild archives with configured compression and optionally replace the source; source metadata and files are preserved unless an explicit exclusion or replace option says otherwise. Solid 7z/RAR inputs are extracted sequentially rather than repeatedly decoding the same compression block.

Audio

Audio files (MP3, FLAC, OGG, WAV) are played via the browser's built-in audio player. Metadata (title, artist, album, duration) is shown if available.

Unsupported types

For file types without a preview, the detail panel shows file metadata and tags only.

Thumbnail generation

Thumbnails for the grid view are generated on demand and cached in .tessera/cache/thumbs/. Generation uses the image crate for raster images and ffmpeg for video.

To clear the thumbnail cache, use Settings → Database → Clear cache.

Resume and pop-out

The video and media viewers each have an opt-in resume control. Video positions and archive/PDF pages are stored in local browser storage; starts and completed items are discarded so reopening begins naturally. Resume never overrides an explicit browser Back/Forward restore, compact-player handoff, or pop-out handoff.

Open in new window transfers the current viewer state to a real browser window on the same Tessera origin, including video time, pause state, volume, playback speed, and media page. If the browser blocks the popup, the original viewer stays open.