Column-width presets — structural sanity

backdrop · col-full

col-full · preset=col-full

Baseline: 16:9 source in a full-width column. Sizes should resolve to the col-full preset.

backdrop · col-full

backdrop · col-half

col-full large:col-half · preset=col-half

Half-width at large+. Sizes string should reflect the col-half breakpoint chain.

backdrop · col-half

backdrop · col-quarter

col-full medium:col-half large:col-third xlarge:col-quarter · preset=col-quarter

col-quarter preset should resolve to multiple breakpoints — never a flat 25vw.

backdrop · col-quarter

backdrop · full-bleed · priority

full-bleed · preset=full-bleed · priority

Edge-to-edge hero (LCP candidate). Sizes = 100vw, loading=eager, fetchpriority=high.

backdrop · full-bleed · priority

backdrop · immersive-content

immersive-content · preset=immersive-content

Immersive bleed past grid margins — sizes should cap at viewport-width breakpoints.

backdrop · immersive-content

Aspect-container coercion — source ≠ container

backdrop in 1:1 container

col-full medium:col-half large:col-third · preset=col-third · container=1x1

16:9 source, 1:1 container. Container aspect enforced; default cover crops to square.

backdrop in 1:1 container

free (~6:5) · col-full

col-full · preset=col-full

Free-aspect source at natural shape. Intrinsic dims should match the largest slot.

free (~6:5) · col-full

free in 16:9 container

col-full large:col-half · preset=col-half · container=16x9

Free source forced into 16:9 — tests object-fit cover cropping with default focal.

free in 16:9 container

free in 2:3 container

col-full medium:col-half large:col-third · preset=col-third · container=2x3

Free source cropped into portrait 2:3 — stress test of the tall-crop path.

free in 2:3 container

free in 2:3 · focal 10%/90%

col-full medium:col-half large:col-third · preset=col-third · container=2x3

Same container as above with focal pushed to bottom-left. Computed object-position should read 10%/90%.

free in 2:3 · focal 10%/90%

Fixed-aspect poster — CMS-native 2:3

poster (2:3) · col-quarter

col-full medium:col-half large:col-third xlarge:col-quarter · preset=col-quarter

2:3 poster in narrow column — the MoviePosterCard pattern.

poster (2:3) · col-quarter

poster · full-bleed (extreme coercion)

full-bleed · preset=full-bleed

2:3 source at 100vw — deliberately extreme. Tests that object-fit cover fills the box instead of letterboxing.

poster · full-bleed (extreme coercion)

poster · col-full · priority=high

col-full · preset=col-full · priority

Explicit priority=high value (not boolean). loading=eager + fetchpriority=high.

poster · col-full · priority=high

Caller overrides

backdrop · objectFit=contain in 1:1

col-full medium:col-half large:col-third · preset=col-third · container=1x1

Caller passes objectFit=contain. Image letterboxes inside the 1:1 box instead of cropping.

backdrop · objectFit=contain in 1:1

backdrop · placeholder + dominantColor + slow

col-full large:col-half · preset=col-half

3-second artificial delay exposes placeholder UX. CSS var inherits; placeholder class flips on load.

  dominantColor blur LQIP 🐢 3000ms

Per-slot overrides — art-direction pipeline

override · srcset-driven (browser picks by viewport)

full-bleed · preset=full-bleed · container=16x9

Slots are single-color WebPs at free-responsive widths (sm=640/md=1024/lg=1440/xl=2048/xxl=2880). With sizes=100vw the browser picks one slot per project breakpoint (base→sm, medium→md, large→lg, xlarge→xl). Resize — fill color + badge flip together.

override · srcset-driven (browser picks by viewport)
picked ·

override · per-slot grid (no srcset)

col-full

Five cells, one per slot — bypass the srcset picker. Authoritative proof that the adapter emits five distinct renditions.

Rendition for slot "sm"
SM 640×40
Rendition for slot "md"
MD 1024×40
Rendition for slot "lg"
LG 1440×40
Rendition for slot "xl"
XL 2048×40
Rendition for slot "xxl"
XXL 2880×40