Screenshot scroll reveal
A headline that lifts away while a screenshot tilts upright and scales into centre on scroll.
API reference
Components
<ScreenshotScrollReveal />
Pinned scroll take-over stage with headline and screenshot layers.
headline
Headline block, centred in the headline layer.
screenshot
Screenshot block in the screenshot layer.
ariaLabelledBy?
id of the heading inside headline, wired to aria-labelledby.
className?
Merged onto the <section> root.
Hooks
useScreenshotScrollReveal
Scroll take-over hook: attach sectionRef, branch on reduce, spread layer styles.
useScreenshotScrollReveal(options: ScreenshotScrollRevealOptions): ScreenshotScrollRevealStatetiltSpeed?
RotateX start = BASE_TILT_DEG * tiltSpeed. 0 starts flat.
scaleSpeed?
Scale/rest depth multiplier. 0 starts at full size in place.
headlineSpeed?
Headline lift multiplier. 0 fades in place.
Returns
sectionRef
Attach to the scrolling section measured by useScroll.
reduce
Render the static composed frame instead of the pinned reveal.
still
The "off" strategy: no entrance animation.
calm
The "calm" strategy: entrance fade without travel.
screenshotStyle
Screenshot layer scroll-linked style. undefined under reduced motion.
headlineTransformStyle
Headline layer scroll-linked transform and filter.
headlineOpacityStyle
Headline opacity on its own node so scroll opacity stays live.
headlineInitial
Headline entrance initial.
screenshotInitial
Screenshot entrance initial.
enterTransition
Shared entrance transition (gentle).
screenshotDelay
Screenshot entrance delay (theme.stagger.base).