aboutsummaryrefslogtreecommitdiff
path: root/public
AgeCommit message (Collapse)Author
2026-08-04pathways: chevrons float fully off the tile and only for the current tile; ↵dax
hover zone covers them; ghost hide is debounced - chevrons sit entirely in the gap outside the tile (never half-on the photo) and are drawn only for the current tile, killing the mosaic clutter - nav zones extend 44px outward so the whole chevron is inside the hit area; previously the chevron straddled the edge and its outer half was outside the zone, so mousing across it flipped the ghost on/off (the flicker) - ghost hide is debounced 80ms and cancelled on the next hover target, so crossing the gap between a zone and its dropzone no longer blinks the ghost - setCurrent re-renders navs so chevrons track the current tile
2026-08-04pathways: chevrons only for free directions, fade while previewing, ↵dax
re-render nav on placement - chevron is only drawn when the direction is not already occupied, so it never overlaps a neighboring photo - hovering a free direction adds a .preview class to the zone so the chevron fades out while the ghost preview shows underneath it - pointermove on an occupied direction early-returns (no ghost, no fade) - refreshAllNav re-renders every tile's nav after a placement so stale chevrons disappear as soon as a direction becomes occupied
2026-08-04pathways: replace small circle nav buttons with big free-floating edge ↵dax
chevrons (option 1); whole edge band is the hover + click target
2026-08-04pathways: reliable hover previews - ghost triggers on the whole direction ↵dax
band (not just the 40px button), ghost image loads eagerly, and repeated pointermoves no longer destroy/recreate the ghost (preview stays visible while the thumbnail loads)
2026-08-04pathways: no dead-end directions while photos remain - server extends short ↵dax
walks with library ids to 60 entries, client falls back to any remaining unplaced photo when a direction's walk is exhausted
2026-08-04pathways: drop splash hint text; auto-fade splash once the user is active ↵dax
(pointer/key/wheel/touch) and has had time to read
2026-08-04pathways: ghost preview only shows on real pointer movement (pointermove, ↵dax
not pointerenter) - prevents phantom ghosts when keyboard navigation re-renders arrows/dropzones under a stationary mouse
2026-08-04pathways: four directions lead to four distinct photos - dedupe per-photo ↵dax
next ids in exit generation (server), exclude other directions' targets from placement candidates (client)
2026-08-04pathways: round-trip navigation (right then left returns to the same photo), ↵dax
traversal from any tile with a free space, back arrows hide their ghost, per-tile dropzones capped for large mosaics
2026-08-04pathways: scroll pans / pinch zooms; ghost preview on hover of destination ↵dax
space or arrow (not the zone band); invisible dropzones for current tile
2026-08-04pathways: hover a direction to preview the next photo as a translucent ↵dax
ghost, click to place it (choosePlacement refactor, ghost cleared on move)
2026-08-04pathways: mouse-gesture zoom - cursor-anchored wheel/pinch zoom with min/max ↵dax
clamps, keeps zoom across navigation, 0/f/double-click resets to fit
2026-08-04pathways: space-aware photo pick - use walk next when fit is close, ↵dax
substitute better-fitting walked photo on bad fit (FIT_TOLERANCE)
2026-08-04pathways: 2D placement search - never overlap, fill nearby voids ↵dax
(edge-aligned candidates, packing cost)
2026-08-04pathways: start tile fits both window dims, placement packs tight via slack ↵dax
scoring
2026-08-04pathways: smarter placement - fine-grained nearest fit + snap to neighbor ↵dax
edges, no more coarse tile-width jumps
2026-08-04pathways: fix deployment (files now land in public/), cache-bust assets + ↵dax
no-cache html, stronger zoom gesture (0.04/tile)
2026-08-04pathways: native-aspect free-form mosaic, no teleports (walk to next ↵dax
unplaced), arrows on every photo, arrows inside tiles, drop path text
2026-08-04pathways: stronger zoom-out per tile so the mosaic gesture readsdax
2026-08-04pathways: per-direction hover zones, transparent arrows, bigger start tile, ↵dax
zoom-out as mosaic grows
2026-08-04pathways: spatial movement, bigger tiles, cleaner exitsdax
- movement lands on the photo already occupying the cell ahead instead of skipping over it to place a new one; new photos only fill genuinely empty cells, and already-placed path targets still jump to their tile - tiles 360px desktop / 200px mobile - fix hover exits being clipped half-off by the tile's overflow:hidden (clip now lives on the img only); restyle as white circle buttons with SVG chevrons and pill path labels
2026-08-04pathways: bigger tiles, less chrome, no covered photosdax
- tiles 240px desktop / 150px mobile - remove hint bar; trim splash to a single line; drop counts from hover labels and the move flash - collision-safe placement: when a step lands on a cell already held by a different photo, keep stepping in that direction to the first free cell instead of overwriting, so returning photos are never covered or orphaned
2026-08-04pathways: walking mosaic navigatordax
Replace the scrolling facet-grid with a walkable maze. You start on a random photo; every photo holds up to four paths (labels, keywords, camera, lens ranked by count, library as fallback), one per cardinal direction, each an ordered cycle. Arrow keys or hover-revealed buttons lock the next photo of that path onto the grid in the direction moved; visited photos form a panable mosaic with focus-jump on revisits. Server: precomputes per-photo exits; adds /api/exits/:id and /api/random. Client: zero-dependency rewrite — splash, hidden exits, drag-pan, pointer capture, reduced-motion support.
2026-08-04pathways: photo viewer over the PhotoPrism librarydax
Groups photos into paths by shared label, keyword, camera, lens and dominant colour. Node server.mjs (no build) reads the MariaDB photoprism database read-only; public/ is a zero-dependency front end with progressive reveal, a lightbox with connection chips, and a dominant-colour swatch under every thumbnail.