Skip to main content

Collections and navigation order

One explicit collection owns photo identity and lightbox navigation order.

Each lightbox provider owns one ordered photo collection. Thumbnails can appear in several child components, but those children do not create navigation order.

Separate visual order from navigation order

PhotoGroup owns one explicit collection. Descendants only provide triggers.

Desert landscape at golden hour
Ocean waves reflecting light
Canyon at dusk
Misty forest
Mountain peak framed by trees
Soft coastal sunset
Lavender field under cloudy sky
Waterfall in lush green valley
<PhotoGroup :photos="photos">
  <PhotoAlbum :photos="firstAlbum" />
  <PhotoAlbum :photos="secondAlbum" />
</PhotoGroup>

PhotoGroup owns the collection

vue
<PhotoGroup :photos="[...landscapes, ...portraits]">
  <PhotoAlbum :photos="landscapes" />
  <PhotoAlbum :photos="portraits" />
</PhotoGroup>

The PhotoGroup.photos array defines the previous and next sequence. Each descendant registers its thumbnail element and any custom slide renderer by photo ID.

This explicit order matters because DOM order can change when responsive sections move, conditional components mount, or keyed lists reorder.

Collection rules

  • Every ID is a non-empty string and is unique in the collection.
  • Every descendant photo ID exists in the group collection.
  • One ID cannot register competing custom slide renderers.
  • One active provider owns modal focus and page isolation.

When an album is inside a group, its exposed open(index) method translates the local album item to its stable ID before opening the group lightbox.