Image 01

Structure

Two-column layout: text navigation on the left and media viewport on the right.

Image 02

Motion

Scroll progress controls the vertical movement through transform only.

Image 03

Adaptive

On mobile, sticky pinning is replaced with horizontal swipe cards.

Block 01 / Mobile Alternative

Step-by-step as horizontal cards

Sticky pin-scroll is replaced with native horizontal swipe on mobile because it is more stable for touch devices and does not conflict with changing viewport height.

01

Structure

Readable card layout for small screens.

02

Motion

Native swipe instead of forced mobile pinning.

03

Adaptive

Stable interaction and clean visual hierarchy.

Block 02 / Vanilla JS + CSS

Magnetic button
and smart marquee

The button reacts to cursor proximity. The marquee changes direction depending on scroll direction and accelerates according to scroll velocity.

Implementation detail

The magnetic effect calculates the distance from the cursor to the button center and moves the button only via transform. The marquee reads scroll direction and velocity from scrollY changes and renders movement inside requestAnimationFrame.

ZERO BLOCK / CUSTOM CODE / RESPONSIVE / VANILLA JS / ZERO BLOCK / CUSTOM CODE / RESPONSIVE / VANILLA JS / ZERO BLOCK / CUSTOM CODE / RESPONSIVE / VANILLA JS / ZERO BLOCK / CUSTOM CODE / RESPONSIVE / VANILLA JS /
Block 03 Adaptive layered composition

Layered visual
system

Photo 01
Photo 02
Photo 03
Photo 04