stack-natural pass

Each card overlaps the one above it by a small lip, and the card above eases back (smaller and shaded) as the next one rises, so a list of offers reads as a stack of cards being laid down, at the page's natural height.

Earns its place when: Three to six offering cards, each with a photo and a short description, that the reader would otherwise meet as a flat list.

Never when: Fewer than three cards, a card with text in its bottom lip, or any wish to pin the stack or give it a scroll runway.

Measured: Clean against the same page without it on helf-hardscaping, kmg-heating-plumbing, kettle-and-vine.

Not in the brief or the generator. It enters only if Ryan picks it.

HELF Hardscaping (light trade) pass

lint: no new finding at 1440 or 393 (scripts on and off, reduced motion). rubric: no new finding at 1440 or 390 (0 with it, 0 without). 16 device checks passed.

Open the live page with it on · the same page without it

Motion lint, new findings1440: none
390: none
Rubric (1440 and 390)0 findings with it, 0 without. New: none
Checks (scripts on, off, reduced motion)
  • ok 1440: no new opacity-hidden text at load (scripts on): on 0, off 0
  • ok 1440: no sideways overflow: scrollWidth 1440 vs 1440
  • ok 1440: cards overlap by a lip in flow: [[1284.15625,2131.265625],[2103.265625,2950.375]]
  • ok 1440: the covered cards ease back as the next rises: dp 4.00,3.00,2.00,1.00,0.00
  • ok 1440: no new hidden text with scripts off: on 0, off 0
  • ok 390: no new opacity-hidden text at load (scripts on): on 0, off 0
  • ok 390: no sideways overflow: scrollWidth 390 vs 390
  • ok 390: cards overlap by a lip in flow: [[1176.015625,1847.9375],[1819.9375,2491.6875]]
  • ok 390: the covered cards ease back as the next rises: dp 4.00,3.00,2.00,1.00,0.00
  • ok 390: no new hidden text with scripts off: on 0, off 0
Page height with it vs without: 1440 10624 vs 10720, 390 9912 vs 10008 (px)

Without it, then with it

Without it, 1440
Without it, 1440
With it, 1440
With it, 1440
Without it, 390
Without it, 390
With it, 390
With it, 390

The motion, 1440 wide

1440, frame 1
1440, frame 1
1440, frame 2
1440, frame 2
1440, frame 3
1440, frame 3
1440, frame 4
1440, frame 4

The motion, 390 wide

390, frame 1
390, frame 1
390, frame 2
390, frame 2
390, frame 3
390, frame 3
390, frame 4
390, frame 4

KMG Heating & Plumbing (dark trade) pass

lint: no new finding at 1440 or 393 (scripts on and off, reduced motion). rubric: no new finding at 1440 or 390 (12 with it, 12 without). 16 device checks passed.

Open the live page with it on · the same page without it

Motion lint, new findings1440: none
390: none
Rubric (1440 and 390)12 findings with it, 12 without. New: none
Checks (scripts on, off, reduced motion)
  • ok 1440: no new opacity-hidden text at load (scripts on): on 0, off 0
  • ok 1440: no sideways overflow: scrollWidth 1440 vs 1440
  • ok 1440: cards overlap by a lip in flow: [[1452.78125,2284.609375],[2256.609375,3094]]
  • ok 1440: the covered cards ease back as the next rises: dp 4.00,3.00,2.00,1.00,0.00
  • ok 1440: no new hidden text with scripts off: on 0, off 0
  • ok 390: no new opacity-hidden text at load (scripts on): on 0, off 0
  • ok 390: no sideways overflow: scrollWidth 390 vs 390
  • ok 390: cards overlap by a lip in flow: [[1205.265625,1802.765625],[1774.765625,2396.890625]]
  • ok 390: the covered cards ease back as the next rises: dp 4.00,3.00,2.00,1.00,0.00
  • ok 390: no new hidden text with scripts off: on 0, off 0
Page height with it vs without: 1440 11729 vs 11825, 390 10682 vs 10778 (px)

Without it, then with it

Without it, 1440
Without it, 1440
With it, 1440
With it, 1440
Without it, 390
Without it, 390
With it, 390
With it, 390

The motion, 1440 wide

1440, frame 1
1440, frame 1
1440, frame 2
1440, frame 2
1440, frame 3
1440, frame 3
1440, frame 4
1440, frame 4

The motion, 390 wide

390, frame 1
390, frame 1
390, frame 2
390, frame 2
390, frame 3
390, frame 3
390, frame 4
390, frame 4

Kettle & Vine (restaurant) pass

lint: no new finding at 1440 or 393 (scripts on and off, reduced motion). rubric: no new finding at 1440 or 390 (14 with it, 14 without). 16 device checks passed.

Open the live page with it on · the same page without it

Motion lint, new findings1440: none
390: none
Rubric (1440 and 390)14 findings with it, 14 without. New: none
Checks (scripts on, off, reduced motion)
  • ok 1440: no new opacity-hidden text at load (scripts on): on 58, off 58
  • ok 1440: no sideways overflow: scrollWidth 1440 vs 1440
  • ok 1440: cards overlap by a lip in flow: [[2121.09375,2615.578125],[2587.578125,3048.21875]]
  • ok 1440: the covered cards ease back as the next rises: dp 4.00,3.00,2.00,1.00,0.00
  • ok 1440: no new hidden text with scripts off: on 0, off 0
  • ok 390: no new opacity-hidden text at load (scripts on): on 58, off 58
  • ok 390: no sideways overflow: scrollWidth 390 vs 390
  • ok 390: cards overlap by a lip in flow: [[1895.703125,2383.65625],[2355.65625,2843.609375]]
  • ok 390: the covered cards ease back as the next rises: dp 4.00,3.00,2.00,1.00,0.00
  • ok 390: no new hidden text with scripts off: on 0, off 0
Page height with it vs without: 1440 11674 vs 11770, 390 11057 vs 11153 (px)

Without it, then with it

Without it, 1440
Without it, 1440
With it, 1440
With it, 1440
Without it, 390
Without it, 390
With it, 390
With it, 390

The motion, 1440 wide

1440, frame 1
1440, frame 1
1440, frame 2
1440, frame 2
1440, frame 3
1440, frame 3
1440, frame 4
1440, frame 4

The motion, 390 wide

390, frame 1
390, frame 1
390, frame 2
390, frame 2
390, frame 3
390, frame 3
390, frame 4
390, frame 4