show-image
Section titled “show-image”- Purpose: image
srcsetter. On a child<img>it setssrc, a responsive Shopify-CDNsrcset(samebuildImageSrcsetthe server fill uses),sizes, andalt; on a non-<img>first element child it setsbackground-image. - Attributes:
main : boolean = false- follow the product’sactiveMediaIndex(gallery main image).index : number = 0- fixed media index (used whenmainis absent).sizes : string = ""-sizesattribute passed through to the<img>.widths : string = "400,800,1200,1600"- comma-separated widths for thesrcset(only applied tocdn.shopify.comURLs).
- Required ancestor / context:
storesynk-product(consumesproductContext). - Children: an
<img>(recommended) or any element to receive a background image. - Events / state: none.
- Adoption-stable writes:
src/srcset/sizesare written only when the value changes, and an emptysrcset/sizesis dropped (removed, never written as"") - matching the server fill, which never emits empty ones. So a server-rendered image is byte-identical after hydration and the browser does not re-run source selection or re-decode it (no blink).altis set deterministically every update (''when decorative; the heromainfalls back to the product title).
show-media
Section titled “show-media”- Purpose: renders the media item at the chosen index by type - image (with a
responsive Shopify-CDN
srcset), video, external video (iframe), or 3D model (<model-viewer>if loaded), falling back to the poster image. - Attributes:
main : boolean = false- followactiveMediaIndex.index : number = 0- fixed media index.sizes : string = ""-sizesattribute applied to generated<img>.widths : string = "400,800,1200,1600"- comma-separated widths for thesrcset(only applied tocdn.shopify.comURLs).
- Required ancestor / context:
storesynk-product(consumesproductContext). - Children: the engine replaces children with the right media element. (You may leave it empty.)
- Events / state: none.
show-thumbnail
Section titled “show-thumbnail”- Purpose: self-cloning thumbnail strip. The index-less instance is the template: it
clones itself once per media item, assigns each clone an
index, populates the inner<img>(or background), sets[ss-active](+aria-current) on the current one, and dispatches a media-select on click. - Attributes:
index : number- ENGINE-SET on clones. Do not author it on the template (rule SSK-303); doing so breaks the self-cloning.
- Required ancestor / context:
storesynk-product(consumesproductContext). - Children: an
<img>(recommended) or an element to receive a background image. - Events: emits
sf:media-select(bubbles, composed;detail.index) on click. - State it sets:
indexon clones;[ss-active](+aria-current) on the current thumbnail; hides itself (display:none) when there is ≤1 media.
Imported from the Storesynk skill v0.1.0 (references/component-reference.md). To change this page, change it there.