infi · motion

Golden-Demo Library — motion, measured

Every interaction move in the library as a live, clickable demo. Each is a self-contained page with the extreme-correct timing measured from a real award site welded in, plus its own reduced-motion + mobile degradations. Scroll each demo — the reward is in the motion, not the still.

166 moves 164 live demos 20 new ● 115 Tier 1 38 Tier 2 13 Tier 3
Gift Card Tilt Foil preview T1 ● NEW
3D / WebGL

Gift Card Tilt Foil ↗

A gift card you can almost pick up: it tilts toward the pointer on a measured spring while a holographic foil, glare and glow track the light, leans gently with scroll on touch, and flips on a bouncy spring to reprint itself whenever you pick a new amount.

on giftcards module / amount radios + custom-amount field + Buy link (.cta-btn--giftcard)  ·  falls back to Flat, readable card; amount radios reprint it instantly; foil at a fixed angle
Open demoPlaywright probe of poke-holo.simey.me (tilt ceiling 14.29°, follow spring ωn13/ζ.46, return 6.6/.31→.42 after a 500ms hold, perspective 1.82× card width, foil travel .26/.34, color-dodge shine + overlay glare); flip = SwiftUI .bouncy (0.5s, bounce 0.3); glide = Locomotive lerp .10; emblem-band travel derived (≈1 spectrum period per full tilt)
Dish Steam Rise preview T1 ● NEW
Hero

Dish Steam Rise ↗

Soft vapour wisps rise, lean downwind and fade off a hot bowl or cup on measured 10s loops. Pure CSS, paused off-screen; on phones it puffs up each time the dish scrolls into view, then rests.

on hero dish figure ([data-mod="hero"] <figure> beside the LCP <img>) / hot .dish cards in menu-preview  ·  falls back to designed static rest plume (wisps at identity rest pose); dish image + H1 untouched
Open demoThree.js Journey 'Coffee Smoke' shader values, re-checked in review against the fetched source github.com/shahramshakiba/coffee-smoke-p21: rise 0.03/0.3 = 0.10 plume-heights/s linear, smoothstep(0,.1)·smoothstep(1,.4) fade, twist 0.009/0.2 → 22.2s, wind ∝ y². Pace cross-checked against particle-field's gsap.com/showcase steam band (14–36px/s); easings.net easeInOutSine/easeOutSine; M3 short4 hover
Scroll Stroke Fill preview T1 ● NEW
Kinetic type

Scroll Stroke Fill ↗

A big outline headline floods solid left-to-right, line by line on a measured cascade, as it scrolls through the reading band. It uses native animation-timeline with a transform-only clip, and the ink drains again on scroll-up.

on [data-mod="story"] / About page-header display <h2> (authored lines)  ·  falls back to Solid-filled headline at rest (end state)
Open democuberto.com reading band 0.82→0.42vh and smoothstep curve (library-measured in scroll-text-highlight). obys.agency cascade width of ~2 lines mid-fill (scroll-line-reveal). weareboring.nl / trionn.com 1.5px hairline outline (split-text-scrub). view-timeline / animation-range syntax from scroll-driven-animations.style (Bramus, Apache-2.0). Reviewer confirmed each cited value exists in the named sibling spec. The display size is now a measured fit: 0.97 ÷ longest-line em-width 5.70 = .17 of the measure.
Add to Cart Fly preview T1 ● NEW
Micro-interactions

Add to Cart Fly ↗

Tapping + Add lobs the drink along a real ballistic arc into the header bag, where the badge springs, while the card button morphs into a − 1 + quantity stepper.

on menu / .dish cards + header bag link  ·  falls back to Reduced motion: no flight; stepper and badge update instantly with the same aria-live message. No-JS: plain dish links
Open demoAndroidX Material3 MotionTokens / StandardMotionTokens / ExpressiveMotionTokens source (long1/2/4, Emphasized/Legacy easings, fast-spatial 800/0.6, std default-spatial 700/0.9, fast-effects 3800/1.0) + ballistic projectile solution; shrink sampled + edge-clamped (review)
Catering Quote Calc preview T1 ● NEW
Micro-interactions

Catering Quote Calc ↗

Slide the headcount and pick a package: party trays, drink gallons and desserts spring onto the table while the estimated total rolls to its new price on a spring that never overshoots.

on [data-mod="catering"] estimate block; CTA anchors to and pre-fills the page's catering net-form  ·  falls back to Authored sample estimate (40 guests · Classic · $540); instant updates
Open demoRead from source: Compose M3 StandardMotionTokens slowEffects spring (ζ 1.0, k 800) for the total chase; ExpressiveMotionTokens fastSpatial (ζ 0.6, k 800 → 348ms, peak 1.095) for token pops; material-web M3 short3/medium3 + emphasized easings; library 32ms M3 sequential stagger
Menu Scrollspy Tabs preview T1 ● NEW
Micro-interactions

Menu Scrollspy Tabs ↗

Sticky menu category tabs whose pill slides to the section you are reading, scroll sideways on phones to keep the current tab in view, and smooth-scroll to a category on tap.

on menu / .menu-group sections (h2.menu-group__title + ul.menu-list > li.menu-row): adds one sticky nav.mst of #category anchors  ·  falls back to plain sticky jump menu of real anchors; reduced motion makes the pill jump and scrolls instant
Open demoMaterial Web md-tabs v2.2.0 (indicator FLIP translateX+scaleX 250ms cubic-bezier(.3,0,0,1); scrollToTab 48px margin) and Bootstrap 5.3 ScrollSpy rootMargin -25% (75% line), both re-checked at review; CAVA /menu cross-check (switches when the next heading is at 476 to 746px in a 900px viewport; 128px pinned header + 72px strip) is the builder's measurement and was not re-measured at review
Open Status Pulse preview T1 ● NEW
Micro-interactions

Open Status Pulse ↗

The INFI hours block comes alive: the open-status badge breathes green while open and amber when closing soon, and sits still and grey when closed. A spring bar sweeps to today's row and follows the day. It only listens to the platform's badge state and never computes open or closed itself.

on location-detail hours table / any [data-infi="location-hours"] block (footer, contact); one data-osp per module, every module bound; keys off [data-open-status-static] + the 7 [data-infi-day] rows  ·  falls back to plain hours block: badge text in its state colour with a still dot, all 7 rows visible, today marked instantly (no sweep/breath/pop)
Open demoresend.com footer status dot via getAnimations() (1500ms, cubic-bezier(0.36,0.66,0.6,1), opacity 0/0.4/0; re-measured live in review) + 100ms computed-style sample (scale 1→1.8 peak at 47%), encoded as sampled CSS linear(); bar = SwiftUI spring(0.35,0.86) (segmented-slide); pop = SwiftUI spring(0.30,0.60) (sticky-add-bar); M3 Emphasized Decelerate 500ms + Standard 200ms tints; WCAG 2.2.2 caps it at 3 breaths (4.5s)
Price Variant Morph preview T1 ● NEW
Micro-interactions

Price Variant Morph ↗

Picking size, ice or toppings rolls the price digit by digit like an odometer (always in the direction it moved) while the drink illustration grows for Large, floats ice or lifts steam, and fills with each topping.

on menu dish detail / ordering item sheet  ·  falls back to Reduced motion: instant digit swap + cup state. No-JS: static price, native inputs, and the cup still morphs (pure CSS :has()). Short landscape viewports: plain stack
Open demoNumberFlow 0.6.2 source (MIT): 900ms spin, refit as a critically-damped spring (ωn 10.26), trend = sign(next−prev), 450ms ease-out fade. AndroidX M3 Expressive tokens (default spatial 380/0.8, fast spatial 800/0.6, fast effects, short1). Large = ∛(24/16 oz)
Smart Hide Header preview T1 ● NEW
Micro-interactions

Smart Hide Header ↗

A smart site header that floats transparent over the top of the hero, turns into a shrunk blurred bar before any hero text can slide under it, slides away as you scroll down and returns on the way up without flickering.

on universal shell: header.site-header[data-mod=header] (.site-brand / .site-nav / .site-header__cta with .cta-btn--order + .menu-toggle) and nav#mobileMenu; reads [data-mod=hero] for the solid point  ·  falls back to solid, compact, always-visible header (base CSS); reduced motion never hides it and changes state instantly
Open demoBlue Bottle Coffee hide/show, 500ms cubic-bezier(.4,0,.2,1), grace about 1 bar height (builder rAF-sampled; not re-measured at review because the headless probe found no fixed header, likely a bot wall); Compose M3 TopAppBar settleAppBar 0.5 snap for hysteresis, plus the DefaultEffects (1.0/1600) and DefaultSpatial (0.9/700) springs, re-sampled at review; shrink ratio from Bluestone Lane (81 to 53) and Epicurious (184 to 136); the content-aware solid point (80px at 1440) lands on Blank Street's measured ~100px; Headroom.js isOutOfBounds (MIT)
About Timeline Draw preview T1 ● NEW
Scrollytelling

About Timeline Draw ↗

An About-page 'since 2012' spine draws itself as you scroll, its tip pinned to the reading line. Each milestone card slides in as it arrives, and its dot pops with an M3 spring the moment the ink reaches it.

on About page [data-mod="timeline"] milestone <ol> (each <li>: <time> + card <article>)  ·  falls back to Spine fully drawn, every dot filled, all years and cards visible (static end state)
Open demoM3 Expressive spring tokens from androidx ExpressiveMotionTokens.kt: fast spatial .6/800 (dot pop), default spatial .8/380 (card), slow spatial .8/200 (art), default effects 1/1600 (opacity). M3 MotionTokens: emphasized-accelerate 200ms, standard-decelerate 600ms. M3 shared-axis slide distance 30dp (MDC-Android). Library-measured reading line 0.62vh (obys.agency, via scroll-progress-rail), arrival trigger 15% into view (locomotive.ca, via scroll-count-up), 90ms stagger (sakazuki.io, via angular-clip-panels). view-timeline range mechanics from scroll-driven-animations.style (Apache-2.0). Reviewer re-checked the token values and the spring linear() sampling math, and confirmed each cited library value exists in the named sibling spec.
App Download Phone Float preview T1 ● NEW
Scrollytelling

App Download Phone Float ↗

The 'Get our app' section: a drawn generic phone rises and tilts back to upright as you scroll in, callouts land at their own depths, and its screen cycles menu, rewards and 'Order ready!' with a Material fade-through beside real store buttons and a desktop QR.

on cta band (id="app") / rewards-page store-link block  ·  falls back to Upright static phone on screen 1; tabs switch instantly; no auto-advance
Open demoapple.com/apple-card tile probe (rise 135px/820px = 16.5%, 1s cubic-bezier(.39,.575,.565,1) easeOutSine), Material fade-through (scale 0.92, 35/65 split, M3 long1 450ms, emphasized easing), Android Snackbar.LENGTH_LONG 2750ms dwell, Locomotive lerp .10, WCAG 2.2.2 + WAI carousel pause rules
Location Pin Drop preview T1 ● NEW
Scrollytelling

Location Pin Drop ↗

A locations module on a stylised inline-SVG city map. Pins drop in with a measured gravity bounce while their ground shadows grow. The card you hover, tab to or scroll past lifts its pin with a spring and a sonar ring; on phones the cards become a snap row and the snapped card drives the pin.

on locations / .loc-card list (cards untouched; adds an aria-hidden map column + pointer-only pins; data-infi-store on each card's <li> and its pin)  ·  falls back to static map with every pin standing + the full card list; linking still works but is instant (no drop/spring/ring/smooth scroll)
Open demoGoogle Maps Platform samples (Apache-2.0): advanced-markers-animation keyframes (300ms, -200px → 0 @50% → -22px @75% → 0; fade 0→.7@5%→1@50%) + marker-animations-iteration 200ms stagger, segments re-curved to quadratic gravity (Penner, BSD); railway.com region-map station pulse via getAnimations() (3000ms, scale 0→1, opacity 1 held to 45% then →0.1, cubic-bezier(0.25,0.1,0.25,0.8); re-measured live in review); SwiftUI .bouncy lift (0.5/0.3); M3 emphasized enter/exit
Loyalty Points Ring preview T1 ● NEW
Scrollytelling

Loyalty Points Ring ↗

An example punch card stamps itself to 7 with a spring stamp-thump: ink spreads and the card gives at the moment of contact, while a 10-notch ring ticks round. Tap Buy one more until the 10th stamp unlocks the free drink.

on Platform loyalty module [data-infi-module="loyalty"]: an .lpr example card beside .infi-loy__intro, shipped as a self-contained, idempotent M.behaviors.loyalty(section) with no page-level script. For VISIT programs, goal = first reward points / points per order (5-12); SPEND and ITEM_PURCHASED programs get the ring only.  ·  falls back to Authored end state: 7/10 stamped card, ring at 7/10 and the status line. Under reduced motion (including switched on mid-session) the demo button still stamps, instantly. Under no-JS or a controller failure, the exact build-time card is shown and the button's box is reserved and hidden.
Open demoThump: SwiftUI Spring(response .30, damping .60) step response as a 24-point linear(), the library's --ease-pop from sticky-add-bar (verified identical), 380ms, 9.5% overshoot (a 1.6x drop lands at 0.943). Cadence 187ms = pi/wd (the spring's time-to-peak); contact 132ms = its first crossing of rest size, verified analytically and in a probe (spread opacity 0 until 127ms, 0.48 at 148ms as the seal crosses scale 1.0). Unlock guard 832ms = contact + burst. Secondary motion: M3 tokens (short2 100, short4 200, medium2 300, long2 500, extra-long1 700; Emphasized Decelerate and Accelerate). Trigger: locomotive.ca IO -15% (as scroll-count-up). DOM mirrors restaurant-dashboard functions/_shared/modules/loyalty.ts (class names checked against the source).
Posts Card Reveal preview T1 ● NEW
Scrollytelling

Posts Card Reveal ↗

The home-page Latest news module. Build-injected post cards reveal as they scroll in: the cover clip-wipes up as the photo settles, then date and title rise, and each card lifts with a photo zoom on hover. Handles 1 to 12 cards, late injection and a module born hidden.

on home [data-infi="posts-list"] / .posts-list__grid / build-injected .infi-post-card  ·  falls back to every card at its end state (reduced-motion / no-JS / no IO or MO / controller error / print)
Open demokononenkogroup.com clip + 1.12 zoom (via scroll-reveal), house sig 0.9s / 90ms (locomotive.ca via scroll-count-up), apple.com/newsroom hover 1.03 / 0.4s cubic-bezier(.4,0,.25,1) (re-measured live at review 2026-11-09)
Pour Fill Scroll preview T1 ● NEW
Scrollytelling

Pour Fill Scroll ↗

A milk-tea cup builds itself as you scroll a pinned chapter: tea pours and rises, milk swirls in with a shake, then pearls, ice and a straw drop in on real springs.

on story / about "how it's made" chapter ([data-mod="story"]) or a drink feature on menu-preview — <ol> of 3 step captions + .cta-btn--order  ·  falls back to finished cup (tea+milk+pearls+ice+straw) beside all three captions, static, no pin
Open demoLocomotive Scroll documented lerp 0.1 (MIT); noomoagency.com ~100vh per step (measured for pinned-scrub); apple.com/airpods-pro sticky track (2.5 viewports of track, 1.0 sticky, 1.5 pinned, same at 1440 and 390) → phone 72svh/chapter; SwiftUI .bouncy (0.5, 0.3) / .bouncy(0.8, +0.1) / .snappy (0.5, 0.15) sampled to linear() (overshoots 4.6% / 9.5% / 0.6% re-derived in review, ζ = 1−bounce); M3 emphasized decelerate 500ms / accelerate 200ms / extra-long3 900ms / short3 150ms
Review Stars Fill preview T1 ● NEW
Scrollytelling

Review Stars Fill ↗

The rating counts up from 0.0 while a gold layer fills five star masks to the exact fraction, so 4.8 leaves the fifth star at a true 80%; each finished star pops on a spring, then the six guest reviews cascade in.

on Platform reviews module [data-infi-module="reviews"] (.infi-rev__score + .infi-rev__card), shipped as an idempotent M.behaviors.reviews(section) that the platform would adopt (reviews.ts/ui.ts), the way promotions adopted sticky-stack  ·  falls back to Authored end state: the 4.8 rating, exact star fills (1,1,1,1,0.8) and all six cards shown at rest (reduced motion including switched on mid-session, no-JS, controller failure)
Open demoTally and star fill: locomotive.ca counters as measured into scroll-count-up (1.6s expo-out, 90ms stagger, IO -15% trigger). Star pop: SwiftUI Spring(response .30, damping .60) impulse response (wn 20.94, wd 16.76, peak at 55ms, 9.5% undershoot), computed in the demo and checked analytically. Cards: M3 Emphasized Decelerate cubic-bezier(.05,.7,.1,1), long2 500ms, short4 200ms lead. Star geometry measured from the mask path: the star spans x 2.05-21.95 of 24, so the gold layer is inset 8.54% and star 5 measures 0.800 of its width. Number box: a grid-stacked hidden "0.0" sizer, constant across all 51 values in Iowan, Georgia and generic serif. DOM mirrors restaurant-dashboard functions/_shared/modules/reviews.ts (class names checked against the source).
Dietary Filter Flip preview T1 ● NEW
Transitions

Dietary Filter Flip ↗

Dietary chips AND-filter a dish grid. Dishes that don't fit fade and step back, the rest FLIP-glide into their new cells and a live count rolls. A friendly empty state never suggests dropping an allergen filter.

on menu / nutrition-dietary page .dish grid (data-diet tags) + an added sticky chip bar  ·  falls back to instant filter (reduced-motion / no WAAPI); all dishes + static icon legend (no-JS)
Open demomaterial-components-android MaterialFadeThrough (scale 0.92, threshold 0.35, long1 450ms) + M3 easing tokens + Shuffle.js 6.1.1 stagger 15/150ms (all re-verified against published source at review) + apple.com/newsroom hover 0.4s cubic-bezier(.4,0,.25,1) → 1.03 (re-measured live 2026-11-09)
Form Step Morph preview T1 ● NEW
Transitions

Form Step Morph ↗

A catering inquiry net-form split into three steps that slide on Material's shared axis. Invalid fields shake with inline errors, and Send morphs into a spinner, then a check, thanking the guest only after a real submit.

on catering / reservation / contact form.net-form ([data-mod="catering"]); hooks the build composer's reset/status contract  ·  falls back to One plain single-page net-form (all fieldsets, composer status line)
Open demoRead from source: MDC-Android MaterialSharedAxis (long1 450ms, Emphasized path, 30dp, FadeThrough 0.35 on the eased fraction) + MaterialContainerTransform (500/400ms); material-web M3 tokens; MDC-Web circular-progress (1568.24ms / 5332ms); Animate.css 4.1.1 headShake envelope (MIT; its ease-in-out swapped for a documented sine-in-out); Compose M3 Expressive fastSpatial spring
Fullscreen Mobile Nav preview T1 ● NEW
Transitions

Fullscreen Mobile Nav ↗

The phone nav: a two-line burger converges and rotates into an X while a full-screen menu blooms from the button as a clip-path circle, links drop in on a stagger with Order Online and today's hours at the bottom, and focus is trapped, Esc closes it, and the scroll lock never shifts the page.

on header .site-header__cta .menu-toggle + sibling nav#mobileMenu.mobile-menu (≤900px nav)  ·  falls back to inline .site-nav wrapping row (no JS) / instant open-close (reduced-motion)
Open demoapple.com global nav @390×844, measured 2026-11-09 and independently re-sampled in review: SMIL dur 0.24s keyTimes 0;.5;1 keySplines (.42,0,1,1)(0,0,.58,1); .globalnav-content 422ms cubic-bezier(.4,0,.6,1); items 240ms @200+20ms·i; close: items together, panel +80ms
Page View Transition preview T1 ● NEW
Transitions

Page View Transition ↗

Real page loads become one continuous motion: the header stays anchored, the dish photo morphs from its menu card into the dish page hero, and the page slides on an M3 shared axis, using native cross-document View Transitions with no library, 0 rAF and a same-document fallback.

on whole multi-page site: .site-header + menu .dish cards (li#card-{slug}) ↔ dish page hero  ·  falls back to plain instant page navigation (reduced-motion / no VT); no-JS cross-doc still animates root + header
Open demomaterial-components-android source (Apache-2.0): MaterialSharedAxis 450ms/30dp/fade-through .35, MaterialContainerTransform 500/400ms FADE_MODE_IN fade (0,.25)/(.6,.9), tokens.xml Emphasized path → 40-pt linear(); samples re-checked numerically against the path to 4 decimals
CSS 3D Perspective preview T1
3D / WebGL

CSS 3D Perspective ↗

A dish card tilts in 3D toward the pointer while its photo, title and badge parallax on separate depths under a tracking sheen.

on menu / dish / location / packaging cards  ·  falls back to flat static card
Open demovanilla-tilt / atropos, Apple product-cards, lusion.co
Firework Scroll Bloom preview T1
Hero

Firework Scroll Bloom ↗

Physics fireworks around a focal element: bursts explode outward, fall under gravity, and fade out & vanish — multi-hue, scroll-triggered, self-terminating (0 rAF at rest).

on A focal hero element (framed photo, wordmark, logo)  ·  falls back to Static fully-opened firework ring (reduced-motion / mobile / no-JS)
Open demoINFI original · Tier-1 scroll-handler family
Hero Aurora Bg preview T1
Hero

Hero Aurora Bg ↗

Soft brand-colored aurora blobs drift and blend behind the hero content, which fades up over them — an ambient light backdrop, pure CSS.

on Any hero first-view  ·  falls back to Aurora settled static
Open demoaurora / mesh-gradient hero idiom
Hero Gradient Reveal preview T1
Hero

Hero Gradient Reveal ↗

The lights come up — a cool scrim recedes on a diagonal while a warm wash sweeps across, as the headline and image resolve together.

on A warm hero opener  ·  falls back to Fully composed static hero
Open demolights-up gradient hero idiom
Hero Kenburns Reveal preview T1
Hero

Hero Kenburns Reveal ↗

A slow ken-burns drift and scale on the hero image under a soft vignette, while the headline reveals line by line — a living still.

on An image hero opener  ·  falls back to Static composed hero
Open demoken-burns + mask reveal idiom
Hero Marquee Band preview T1
Hero

Hero Marquee Band ↗

The headline itself is a giant running marquee — a brand-name band and a reverse-scrolling tagline band — over a still subject image and CTA.

on A kinetic-type hero opener  ·  falls back to Bands frozen at the real text
Open demorunning-headline hero idiom
Hero Preloader Wipe preview T1
Hero

Hero Preloader Wipe ↗

A branded preloader — a mark and a 0-to-100 counter — completes, then the cover wipes up and hands off into the hero as it settles in.

on A hero opener with a loader handoff  ·  falls back to Hero shown instantly, no cover
Open demopreloader to hero handoff idiom
Hero Rotating Tagline preview T1
Hero

Hero Rotating Tagline ↗

A hero headline with a fixed lead-in and a rolling tagline line that cycles through phrases — 'for tea.' 'for tacos.' 'for you.'

on A headline hero opener  ·  falls back to First phrase, static
Open demorolling-tagline hero idiom
Hero Scroll Cue preview T1
Hero

Hero Scroll Cue ↗

An idle-breathing hero paired with an animated scroll-down cue — a flowing hairline, a nudging chevron and a 'Scroll' word — inviting the reward below.

on A hero opener + scroll invite  ·  falls back to Static hero, no cue
Open demoscroll-cue hero idiom
Hero Split Open preview T1
Hero

Hero Split Open ↗

Two solid shutter halves part on load — a light seam down the split — to reveal the composed hero (headline, image, CTA) behind them.

on A hero first-view opener  ·  falls back to Composed hero shown plainly
Open demoportal / shutter opener idiom
Hero Text Media Mask preview T1
Hero

Hero Text Media Mask ↗

A giant headline is a window: the letters are cut-outs showing drifting media/gradient behind them while the rest of the hero stays solid — type as viewport.

on A type-led hero opener  ·  falls back to Solid legible headline
Open demotext-as-media-mask hero idiom
Hero Tilt Parallax preview T1
Hero

Hero Tilt Parallax ↗

A living hero — layered depth planes (backdrop, subject image, headline, foreground prop) tilt and parallax toward the pointer, with a subtle idle breathe.

on A layered image hero  ·  falls back to Flat static hero
Open demopointer-tilt parallax hero idiom
Blur Focus In preview T1
Kinetic type

Blur Focus In ↗

A headline resolves from a heavy blur to razor sharpness with a tiny scale-settle as it enters — like a lens finding focus on set type.

on A hero / about headline  ·  falls back to Sharp static headline
Open demofocus-pull type idiom
Hero Mask Reveal preview T1
Kinetic type

Hero Mask Reveal ↗

The hero headline rises line-by-line from behind an overflow mask, staggered, as the whole hero settles from a slight 1.06 zoom to rest.

on hero H1 + eyebrow + CTA  ·  falls back to headline fully visible (end state)
Open democobloc.archi (gsap showcase)
Letter Stagger Reveal preview T1
Kinetic type

Letter Stagger Reveal ↗

Each glyph of a headline rises out from behind a per-word mask in a tight left-to-right stagger as a companion image lifts and de-rotates in.

on hero/about H1-H2 headline  ·  falls back to solid static headline
Open democodrops/TypographyMotion (Thibaud Allié)
Marquee preview T1
Kinetic type

Marquee ↗

Two rows of huge uppercase type slide in opposite directions in a seamless loop, one solid and one outlined, pausing on hover.

on specials band / footer  ·  falls back to frozen readable band
Open demotrionn.com
Outline Fill Hover preview T1
Kinetic type

Outline Fill Hover ↗

Hollow outline (stroked) words flood solid on hover — the ink pours across the letters from the side the pointer entered and drains toward the exit, a directional clip-path fill on a background-clip:text overlay.

on Big nav words, a hover menu, or section headings  ·  falls back to Solid-filled word at rest (touch/reduced-motion)
Open demooutline→solid hover-fill idiom
Repeating Type Echo preview T1
Kinetic type

Repeating Type Echo ↗

One word duplicates into a stacked wall of rows that fan in from alternating sides, rippling out from the centre anchor.

on specials band / section header / footer wordmark  ·  falls back to static repeated-type wall, no motion
Open democodrops/RepetitiveTypography
Scroll Marquee Velocity preview T1
Kinetic type

Scroll Marquee Velocity ↗

A running marquee whose speed and direction follow your scroll — it races and can flip when you scroll fast, and drifts gently when you stop.

on A specials energy strip / footer wordmark  ·  falls back to Constant marquee (static band on reduced-motion)
Open demoscroll-velocity marquee idiom
Split Flap Board preview T1
Kinetic type

Split Flap Board ↗

A split-flap departure board flips its top and bottom leaves through glyphs to land on each letter or digit, staggered across the word — a solari specials board.

on A specials strip, a hero word, or a price  ·  falls back to Static tiles showing the real word
Open demosolari split-flap board idiom
Zigzag Marquee Strip preview T1
Kinetic type

Zigzag Marquee Strip ↗

Three stacked bands of giant uppercase words crawl in alternating directions, each edged with sawtooth teeth and color-flipped red/ink/cream, rising in on scroll.

on specials energy strip / footer wordmark band  ·  falls back to static strips, legible, teeth intact
Open demosakazuki.io (geometry/type), trionn.com (cadence)
Branded Scroll Progress preview T1
Micro-interactions

Branded Scroll Progress ↗

A designed replacement for the scrollbar — a slim curved SVG rail down the edge that fills as you read, with a chapter dot lighting up per section (each a working anchor link).

on Page-wide chrome on any multi-section page  ·  falls back to Native browser scrollbar (rail is additive)
Open democustom curved scrollbar paradigm · CSS/SVG
Confetti Cta Burst preview T1
Micro-interactions

Confetti Cta Burst ↗

A confetti burst fires from a CTA the moment it's clicked — capped particles with gravity and spin that self-terminate — an order-placed celebration.

on Any celebratory button / CTA  ·  falls back to No burst (plain clickable CTA)
Open democanvas-confetti idiom
Css View Timeline Shine preview T1
Micro-interactions

Css View Timeline Shine ↗

A specular gloss sweeps across cards and headings as they pass through the viewport, driven by the native CSS animation-timeline: view() — zero JavaScript, with an IntersectionObserver one-shot fallback.

on Menu/gallery dish cards + a section heading  ·  falls back to Solid static card (shine is additive)
Open demonative CSS scroll-driven animations · clean-room
Cursor Blob Follow preview T1
Micro-interactions

Cursor Blob Follow ↗

A soft gooey pearl replaces the pointer, trailing with lag and stretching along its travel before rounding back the moment it settles.

on body cursor node + .btn/.cta/[data-cursor]  ·  falls back to Native cursor, untouched content
Open demoCuberto mouse-follower (cuberto.com)
Cursor Image Trail preview T1
Micro-interactions

Cursor Image Trail ↗

Sweeping the pointer across the hero spawns a trail of dish thumbnails that chase the cursor path, then fade and shrink away.

on A hero/gallery stage  ·  falls back to No trail, native cursor
Open demoCodrops Image Trail Effects
Cursor Label Follow preview T1
Micro-interactions

Cursor Label Follow ↗

A small pill label fades and scales in beside the pointer, trails it, and swaps its text — "Order", "View menu", "+" — per hovered zone.

on CTAs, nav links, menu cards  ·  falls back to native cursor, static content
Open demoCuberto mouse-follower (cuberto.com)
Cursor Repel Field preview T1
Micro-interactions

Cursor Repel Field ↗

A scattered field of small props — dots, pearls, menu tags — pushes away from the pointer as it nears and drifts back into place as it leaves.

on A hero/specials decorative layer  ·  falls back to Static scattered field
Open demorepel-field idiom
Cursor Spotlight preview T1
Micro-interactions

Cursor Spotlight ↗

The scene sits under a dark veil; a flashlight beam follows the pointer, punching a soft hole that reveals the warm room and a hidden message beneath.

on A hero / signature scene  ·  falls back to Full-bright static scene
Open demoflashlight-reveal idiom
Cursor Trail Dots preview T1
Micro-interactions

Cursor Trail Dots ↗

A comet-tail of 16 dots lags behind the pointer, fading and shrinking toward the end and gathering to a point when it stops.

on body (fixed click-through layer)  ·  falls back to nothing — layer absent, native cursor untouched
Open democuberto.com + cuberto/mouse-follower
Custom Cursor Morph preview T1
Micro-interactions

Custom Cursor Morph ↗

A custom cursor replaces the arrow and morphs to fit what it's over — an outline ring on images, a 'View'/'Order' label pill on buttons, a small dot on text.

on Page-wide, over CTAs/media/text  ·  falls back to Native system cursor
Open democustom-cursor idiom
Double Tap Like preview T1
Micro-interactions

Double Tap Like ↗

Double-tap a photo and a heart pops and bursts at the tap point with a spring, ticking a small like count.

on A photo / gallery card  ·  falls back to Plain photo + a like button
Open demoInstagram double-tap like
Drag Reorder List preview T1
Micro-interactions

Drag Reorder List ↗

Long-press then drag to reorder list rows — the grabbed row lifts with a shadow while the others slide to open a gap, and the drop settles with a spring.

on A reorderable menu / list  ·  falls back to Plain fixed-order list
Open demoiOS drag-to-reorder
Elastic Drag Carousel preview T1
Micro-interactions

Elastic Drag Carousel ↗

A draggable card row you grab and fling — it rubber-bands with iOS-style resistance past its bounds, carries inertia, and springs to snap on the nearest card.

on A menu / specials card row  ·  falls back to Native scroll-snap swipe row
Open demoelastic drag carousel idiom
Foil Shimmer Sweep preview T1
Micro-interactions

Foil Shimmer Sweep ↗

A metallic hot-foil shimmer sweeps across a heading, logo or badge — a brass/gold specular band travelling the letters like light catching foil-stamped type.

on A heading, a logo wordmark, or a badge pill  ·  falls back to Solid metal wordmark (no sweep)
Open demohot-foil stamp idiom
Haptic Toggle preview T1
Micro-interactions

Haptic Toggle ↗

A chunky physical-feeling switch — the knob overshoots on flip with a spring and a visual tick, a stand-in for haptic feedback.

on A toggle / switch control  ·  falls back to Plain checkbox toggle
Open demoiOS haptic switch
Liquid Nav Indicator preview T1
Micro-interactions

Liquid Nav Indicator ↗

A gooey liquid pill slides and stretches between the active nav or tab items — an SVG-goo blob that elongates as it travels then settles round under the current item.

on A nav link row or a segmented tab control  ·  falls back to Pill jumps to the active item
Open demogooey nav indicator idiom
Long Press Peek preview T1
Micro-interactions

Long Press Peek ↗

Long-press a dish card and it scales down with a haptic feel, then a preview popover lifts; slide to an action to commit or release to dismiss.

on A menu dish list  ·  falls back to Plain tappable list (tap to order)
Open demoiOS 3D-touch peek
Magnetic Cursor preview T1
Micro-interactions

Magnetic Cursor ↗

The button leans toward your pointer as a blend-mode dot trails behind, growing into a labelled ring over it.

on .btn / .cta buttons + nav links  ·  falls back to Native cursor, static buttons
Open demotrionn.com
Magnetic Inertial Spring preview T1
Micro-interactions

Magnetic Inertial Spring ↗

A CTA magnetically leans toward the pointer, then overshoots ~16% past and wobbles to rest on a bouncy under-damped spring.

on .btn / .cta + [data-magnetic] nav links  ·  falls back to static tappable buttons, native cursor
Open demoPopmotion / Framer-Motion default spring (Olivier Larose Magnetic)
Number Stepper Hold preview T1
Micro-interactions

Number Stepper Hold ↗

A quantity stepper where a tap changes by one and holding accelerates, the number rolling like an odometer; it end-bounces at min/max.

on An order-quantity stepper  ·  falls back to Plain +/- stepper
Open demohold-to-repeat stepper
Page Corner Peel preview T1
Micro-interactions

Page Corner Peel ↗

A dog-ear page corner peels up in 3D on hover, curling back to reveal a hint — a color, a '+', a price — tucked beneath the sheet's corner.

on Any dish / location / product card corner  ·  falls back to Static folded-corner dog-ear
Open demofolded-corner / dog-ear idiom
Pinch Zoom Image preview T1
Micro-interactions

Pinch Zoom Image ↗

Pinch to zoom a dish photo with two-finger pan and momentum, snapping back to bounds on release; double-tap to zoom.

on A signature-dish figure  ·  falls back to Static dish image
Open demoiOS pinch-zoom viewer
Pull To Refresh preview T1
Micro-interactions

Pull To Refresh ↗

Drag past the top of the list and a branded indicator stretches in elastically with a winding spinner; release past the threshold to refresh, then it springs home.

on A menu / order-feed list  ·  falls back to Native scroll list + Refresh button
Open demoiOS pull-to-refresh
Segmented Slide preview T1
Micro-interactions

Segmented Slide ↗

A segmented control whose selected pill slides and squishes between options on tap while the labels cross-fade.

on A segmented control  ·  falls back to Plain radio segments
Open demoiOS segmented control
Sticky Add Bar preview T1
Micro-interactions

Sticky Add Bar ↗

A sticky bottom add-to-order bar that slides up as you scroll into the menu and morphs from price to 'Added' with a spring on tap; safe-area aware.

on A menu order bar  ·  falls back to Inline static order button
Open demomobile sticky order bar
Sticky Gooey Button preview T1
Micro-interactions

Sticky Gooey Button ↗

A button stretches gooey-ly toward the pointer when it comes near — the button and a follower blob merging via an SVG goo filter — then snaps back when you leave.

on A primary button / CTA  ·  falls back to Solid static pill
Open demosticky/gooey-button idiom
Story Progress Tap preview T1
Micro-interactions

Story Progress Tap ↗

Instagram-story segmented progress bars auto-fill and advance; tap left or right to jump, press and hold to pause.

on A specials / hero feature set  ·  falls back to Plain scrollable slide list
Open demoInstagram Stories
Swipe Card Stack preview T1
Micro-interactions

Swipe Card Stack ↗

A Tinder-style deck of dish cards — swipe one left or right and it flies off with a spring and hinge tilt, the next rising beneath; snaps back if you let go early.

on A menu/specials card set  ·  falls back to Plain vertical card list
Open demoiOS card-deck gesture
Swipe Hint Nudge preview T1
Micro-interactions

Swipe Hint Nudge ↗

A first-run swipe hint — a card auto-nudges sideways a couple of times with a finger cue to teach that there's more to swipe, then rests.

on A first-run swipe affordance  ·  falls back to No hint (static)
Open demoonboarding swipe hint
Swipe To Delete preview T1
Micro-interactions

Swipe To Delete ↗

Swipe a list row left to reveal Save / Remove with iOS resistance and a snap-open detent; swipe far to commit, with an Undo.

on A cart / saved-items list  ·  falls back to Inline action buttons per row
Open demoiOS list swipe
Tab Bar Morph preview T1
Micro-interactions

Tab Bar Morph ↗

A bottom tab bar whose active indicator — a liquid pill — slides and morphs between tabs on tap while the active icon lifts and labels cross-fade.

on A bottom navigation tab bar  ·  falls back to Plain tab bar, instant switch
Open demoliquid tab-bar indicator
Tap Ripple Mobile preview T1
Micro-interactions

Tap Ripple Mobile ↗

A material-style touch ripple radiates from the exact tap point across a button or card, with a brief press-scale — immediate touch feedback.

on Any button / tappable card  ·  falls back to Plain :active state
Open demoMaterial touch ripple
Thumb Reachable Fab preview T1
Micro-interactions

Thumb Reachable Fab ↗

A floating action button in the thumb zone that fans an arc of quick actions into reach on tap, staggered, and collapses on tap again.

on A page-wide quick-action FAB  ·  falls back to Plain inline action buttons
Open demoMaterial FAB speed-dial
Underline Draw Hover preview T1
Micro-interactions

Underline Draw Hover ↗

On hover, a link's underline draws itself in from the side the pointer entered, and retracts the same way on leave.

on Nav links, headings, CTA labels  ·  falls back to Static :hover underline
Open demounderline-draw idiom
Wedge Cursor Mask preview T1
Micro-interactions

Wedge Cursor Mask ↗

An angular down-triangle blade trails the cursor across a photo, revealing an inverted-colour copy inside rimmed by a red edge.

on hero / signature-dish figure  ·  falls back to static centred blade
Open demosakazuki.io + trionn.com
Angular Clip Panels preview T1 ✦ signature
Scrollytelling

Angular Clip Panels ↗

Full-width panels stack and slide up over each other, their angular chevron-notched top edges cutting across in red/black/cream as content staggers in.

on benefits/values/features list, one panel per item  ·  falls back to plain stacked cards, all visible
Open demosakazuki.io (BENEFITS section)
Block Wipe Reveal preview T1
Scrollytelling

Block Wipe Reveal ↗

A solid brand-colored block draws across the frame to cover it, swaps in the real content behind, then slides off the far edge to uncover it.

on any img/figure/heading/pull-quote  ·  falls back to content shown solid, block never drawn
Open demogithub.com/codrops/BlockRevealers (RevealFx)
Horizontal Reel preview T1
Scrollytelling

Horizontal Reel ↗

A pinned section stays put while vertical scrolling glides a row of full-height dish cards sideways past a progress rail.

on menu preview / .dish items  ·  falls back to native scroll-snap swipe carousel
Open demoshowcase.noomoagency.com + db-longbow.webflow.io
Notch Card Stagger preview T1
Scrollytelling

Notch Card Stagger ↗

Beveled notched-corner cards fill in on a diagonal sweep, and hovering one deepens its corner notch and nudges it up.

on a values / benefits / features list  ·  falls back to plain static grid, all visible
Open demosakazuki.io
Parallax Depth Layers preview T1
Scrollytelling

Parallax Depth Layers ↗

Three or more photographic depth planes — background scene, midground subjects, foreground props and type — translate at different scroll rates for real dolly-in depth.

on A story / hero / feature scene  ·  falls back to Composed static still (all content visible)
Open demoaward parallax scrollytelling
Pinned Before After preview T1
Scrollytelling

Pinned Before After ↗

Scroll drives a before→after seam across a pinned image — dish raw→plated, empty→busy cafe — the reveal tied to scroll position.

on A story / signature-dish figure (two states)  ·  falls back to Static labelled diptych
Open demoscroll-driven before/after
Pinned Scrub preview T1
Scrollytelling

Pinned Scrub ↗

A section locks in place as you scroll while a cup fills, an arc grows, a rail advances, and step words crossfade through the process.

on [data-mod="story"] / about  ·  falls back to static vertical step list
Open demonoomoagency.com
Rubber Band Overscroll preview T1
Scrollytelling

Rubber Band Overscroll ↗

iOS rubber-band overscroll — pulling past the top or bottom stretches the content with diminishing resistance and springs back on release.

on Any scroll container  ·  falls back to Native scroll (no bounce)
Open demoiOS rubber-band scroll
Scroll Bg Color Wash preview T1
Scrollytelling

Scroll Bg Color Wash ↗

The section background, ink and accent lerp between chapter palettes as you scroll — mixed in oklab so text contrast washes as a matched pair.

on A story/about multi-beat chapter  ·  falls back to Per-beat static color swatches
Open demoscroll bg color transition
Scroll Count Up preview T1
Scrollytelling

Scroll Count Up ↗

Stat figures count up from zero and their meter bars fill when the 'by the numbers' band scrolls into view, staggered on the diagonal.

on A story/about/stats 'by the numbers' band  ·  falls back to Final numbers + full bars, shown at rest
Open democount-up stat bands
Scroll Counter Parallax preview T1
Scrollytelling

Scroll Counter Parallax ↗

An editorial spread where a block of text and its paired image parallax in opposite directions on scroll — the image drifts one way inside its window while the copy drifts the other.

on A story/about/gallery editorial spread  ·  falls back to Centred static editorial spread
Open demoeditorial counter-parallax idiom
Scroll Line Reveal preview T1
Scrollytelling

Scroll Line Reveal ↗

A manifesto or origin paragraph reveals line by line, each line rising from an overflow mask in sequence, scrubbed to scroll progress.

on A story/about copy block  ·  falls back to All lines shown, upright
Open demoline-mask scroll reveal
Scroll Progress Rail preview T1
Scrollytelling

Scroll Progress Rail ↗

A vertical timeline rail down the side fills and lights milestone nodes as you scroll through story beats — an our-journey / since-2015 timeline.

on A story/about origin or locations-history block  ·  falls back to Rail filled, all beats shown
Open demoscroll timeline rail
Scroll Reveal preview T1
Scrollytelling

Scroll Reveal ↗

A photo rises into view through a clip-path sweep as its inner image settles down from a slight zoom.

on Any img or figure in any module  ·  falls back to Image shown in full immediately
Open demokononenkogroup.com (gsap showcase)
Scroll Rotate Badge preview T1
Scrollytelling

Scroll Rotate Badge ↗

A decorative seal, stamp or bean-ring rotates in step with scroll progress — a small throughline garnish that pauses off-screen.

on A seal beside story/about/menu (or page-wide)  ·  falls back to Static tilted stamp
Open demoscroll-linked rotating seal
Scroll Snap Reels preview T1
Scrollytelling

Scroll Snap Reels ↗

Vertical full-screen reels that snap to the viewport TikTok-style with a peek of the next and a subtle settle on snap.

on A vertical reels / stories feed  ·  falls back to Native scroll list
Open demoTikTok scroll-snap reels
Scroll Text Highlight preview T1
Scrollytelling

Scroll Text Highlight ↗

As you scroll a quote or paragraph, its words ink-fill from muted to brand color in reading order — a scroll-linked read-along highlight.

on A story/about quote or paragraph  ·  falls back to Quote solid in brand ink
Open demoscroll read-along highlight
Scroll Velocity Skew preview T1
Scrollytelling

Scroll Velocity Skew ↗

Content skews and leans in proportion to scroll velocity, settling upright the moment you stop — the tactile 'scroll feel'.

on A menu/story/gallery content column  ·  falls back to Upright static stack
Open demoscroll-velocity skew (lenis/locomotive feel)
Scroll Zoom Gallery preview T1
Scrollytelling

Scroll Zoom Gallery ↗

In a vertical image column each photo scales up to focus as it reaches viewport centre and recedes as it leaves — a scroll-focused reel.

on A gallery/menu vertical image column  ·  falls back to Static full-scale image column
Open demoscroll-focus image reel
Skew Parallax Bands preview T1
Scrollytelling

Skew Parallax Bands ↗

Tilted full-width red, ink and cream bands with angular clip edges and giant type drift past each other, faster bands overtaking slower ones on scroll.

on A chapter / story / values / specials band section  ·  falls back to Upright static stack of color bands
Open demosakazuki.io + locomotive.ca
Stacking Image Cards preview T1
Scrollytelling

Stacking Image Cards ↗

Full-bleed image panels stack and pin, each receding in scale with a color wash as the next slides up over it — a full-bleed photographic deck.

on A gallery / full-bleed menu-story figure set  ·  falls back to Static full-height panels
Open demofull-bleed stacking panels
Sticky Caption Steps preview T1
Scrollytelling

Sticky Caption Steps ↗

A pinned photo panel cross-fades through images while a column of step captions advances as you scroll — a how-it's-made / process narrative.

on A story/about 'how it's made' module  ·  falls back to Static single-column steps
Open demosticky-media scrollytelling
Sticky Stack preview T1
Scrollytelling

Sticky Stack ↗

Cards pin near the top and layer into a deck as you scroll — each covered card shrinks and dims beneath the next sliding over it.

on values / .value cards  ·  falls back to pure sticky stack, full scale
Open democobloc.archi + noomoagency
Swipe Gallery Parallax preview T1
Scrollytelling

Swipe Gallery Parallax ↗

A swipeable full-bleed image pager where each photo parallaxes within its own frame as you drag — the picture lags the frame for depth.

on A full-bleed image carousel  ·  falls back to Native scroll-snap image pager
Open demoin-frame parallax pager
Accordion Spring preview T1
Transitions

Accordion Spring ↗

Touch-friendly accordion rows spring open and closed — the panel eases open with a content settle and the chevron rotates; one open at a time.

on An FAQ / menu-section list  ·  falls back to All sections open (static)
Open demospring accordion
Angular Mask Image Reveal preview T1
Transitions

Angular Mask Image Reveal ↗

An image opens through a hard-edged angular clip — bevel, chevron, torn diagonal, wedge or sawtooth — growing from a sliver to full frame as it scrolls in.

on Any img/figure/heading/quote in any module  ·  falls back to Image unclipped + solid at rest
Open demosakazuki.io
Arrow Wedge Transition preview T1
Transitions

Arrow Wedge Transition ↗

A tiny red down-arrow on a CTA grows as you scroll into a full-screen wedge that swallows the section, then the next chapter rises with a red angular top edge.

on a CTA → section boundary  ·  falls back to stacked chapters with static red angular divider
Open demosakazuki.io
Bottom Sheet Drag preview T1
Transitions

Bottom Sheet Drag ↗

A draggable bottom sheet that snaps between peek, half and full on drag velocity, with a rubber-band past bounds and a dimming backdrop; flick down to dismiss.

on A modal detail / ordering / filter sheet  ·  falls back to Plain open scrollable panel
Open demoiOS/Material bottom sheet
Card Flip Tap preview T1
Transitions

Card Flip Tap ↗

Tap a menu card to flip it in 3D — front dish photo to back details and price — and tap to flip back.

on A menu card (front/back)  ·  falls back to Static card (details inline)
Open demotouch card flip
Chevron Curtain Wipe preview T1
Transitions

Chevron Curtain Wipe ↗

A big red down-chevron curtain sweeps down a section seam on scroll, hiding the dark chapter and revealing the cream one behind its V-edge.

on A section boundary between two chapters  ·  falls back to Static red chevron divider between stacked sections
Open demosakazuki.io
Clip-Path Grid Morph preview T1
Transitions

Clip-Path Grid Morph ↗

A fullscreen feature image morphs down into a centered rounded tile as sibling tiles fade in and fly forward from center and the title collapses.

on gallery/hero feature image + tiles  ·  falls back to static gallery grid
Open demoCodrops FullscreenClipEffect
Curtain Part Reveal preview T1
Transitions

Curtain Part Reveal ↗

Two soft velvet curtain halves part from the centre — with a slight drape and a seam shadow — to reveal the hero behind, on enter.

on A hero, or a chapter to open theatrically  ·  falls back to Hero shown plainly, no curtains
Open demotheatrical curtain reveal idiom
Diagonal Split-Reveal preview T1
Transitions

Diagonal Split-Reveal ↗

Two angular halves split along a diagonal seam tear apart in opposite directions, revealing a giant headline on cream that rises in with a stagger.

on a section boundary / [data-mod] chapter  ·  falls back to chapter shown plainly on cream, all visible
Open demosakazuki.io
Paper Flip 3d preview T1
Transitions

Paper Flip 3d ↗

A sheet — a logo card, wordmark panel or dish — turns in 3D like a real piece of paper, with a fold crease, a soft curl shadow along the lifting edge and a subtly-grained backface. Built to suit a folded-corner-paper logo (shown here with Brightfront's).

on A logo card / wordmark panel / a single dish or content figure  ·  falls back to Flat static sheet, both faces visible
Open demoCSS-3D page-turn paradigm (Brightfront)
Pull Down Dismiss preview T1
Transitions

Pull Down Dismiss ↗

Drag a full-screen dish lightbox downward to dismiss — it scales down, corners round, and the backdrop fades with the drag; flick to close or spring back.

on A dish lightbox from a grid  ·  falls back to Static in-flow figure + grid
Open demoiOS drag-to-dismiss
Ripped Paper Reveal preview T1
Transitions

Ripped Paper Reveal ↗

A torn-paper cover with an organic deckle edge tears across to reveal the content beneath, a faint fibre-and-shadow lip running along the rip.

on A section boundary or any image/figure  ·  falls back to Content shown plainly, no tear
Open demotorn-paper reveal idiom
Sawtooth Band Wipe preview T1 ✦ signature
Transitions

Sawtooth Band Wipe ↗

A red toothed band sweeps down a section boundary on scroll, hiding the dark outgoing chapter and revealing the cream incoming one.

on A section boundary between two chapters  ·  falls back to Static red sawtooth divider between stacked sections
Open demosakazuki.io
Stripe Shutter Reveal preview T1
Transitions

Stripe Shutter Reveal ↗

A row of diagonal red, ink, and cream shutters slides open in alternating directions, band by band, parting to reveal a giant header with a red wedge.

on A section boundary / chapter reveal  ·  falls back to Chapter shown plainly with static diagonal-stripe motif
Open demosakazuki.io
Swipe Tabs preview T1
Transitions

Swipe Tabs ↗

Swipe horizontally to page between menu-category panels while a sliding underline tracks the drag, with a rubber-band at the ends.

on A menu with category tabs  ·  falls back to Native scroll-snap paged scroller
Open demoMaterial/iOS paged tabs
Carousel 3D Cylinder preview T2
3D / WebGL

Carousel 3D Cylinder ↗

A grab-and-spin 3D cylinder carousel of cards — a CSS-3D ring with drag, inertial throw and idle auto-drift, each facet gradient-lit by its angle to the viewer.

on A gallery / menu / featured card strip  ·  falls back to horizontal-reel (flat scrollable card row)
Open demoCodrops 3D Gradient Carousel · GSAP 3.13
Image Sequence Scrub preview T2
3D / WebGL

Image Sequence Scrub ↗

A cup builds itself frame by frame on a canvas as you scroll — filling, then pearls, then straw — like an Apple product reel.

on [data-mod="story"] or a dish feature  ·  falls back to Static poster frame + process text
Open demoApple product-page image sequences + noomoagency.com
Scroll Image Ring preview T2
3D / WebGL

Scroll Image Ring ↗

Dish images arranged as spokes on a face-on circular wheel that rotates with scroll — each item stays upright as it orbits the rim, the one at the top largest and brightest. Pure CSS-3D.

on A menu/gallery featured strip  ·  falls back to horizontal-reel (static flat scrollable row)
Open demoWebGL Image Ring paradigm → CSS-3D clean-room
Hero Cinematic Intro preview T2
Hero

Hero Cinematic Intro ↗

A fully choreographed entrance on one timeline — the hero image settles, the eyebrow fades, the headline rises line by line, then the CTA and a scroll cue arrive.

on A hero opener (full choreographed entrance)  ·  falls back to Static composed hero
Open democinematic hero-entrance idiom
Hero Shards Assemble preview T2
Hero

Hero Shards Assemble ↗

The hero image assembles itself from image-slice shards that fly in from a scatter and lock into the picture as the headline rises — a dramatic on-load entrance.

on An image hero opener  ·  falls back to hero-split-open (static hero)
Open demoshards-assemble hero idiom
Dual Wave Text preview T2
Kinetic type

Dual Wave Text ↗

Two mirrored columns of stacked names glide sideways on a rolling sine wave as you scroll, the centre name lighting up and swapping the middle photo.

on a menu/collections index list (two aligned columns)  ·  falls back to static two-column index list
Open demoCodrops "Dual Wave Text Animation on Scroll" (Valentin Descombes)
Kinetic Type Clip-Reveal preview T2 ✦ signature
Kinetic type

Kinetic Type Clip-Reveal ↗

A giant word split across two lines parts on scroll, opening a gap where a triangle-clipped collage grows and a red sawtooth band wipes across.

on A big section headline  ·  falls back to Static split word, collage + sawtooth open
Open demosakazuki.io "COLLECTIVE" section
Rolling Char Text preview T2
Kinetic type

Rolling Char Text ↗

Each letter of the headline sits on a 3D drum and rolls a quarter-turn in a left-to-right wave, flipping the glyph into place on scroll or hover.

on hero / story headline  ·  falls back to solid static word (letter-stagger-reveal on mobile)
Open demoGreenSock rolling-text family
Scramble Text Decode preview T2
Kinetic type

Scramble Text Decode ↗

Each character of a headline rapidly cycles through random glyphs, then resolves left-to-right into the real words like a terminal decrypting.

on hero / story / cta headline  ·  falls back to Solid resolved headline
Open demoGSAP ScrambleTextPlugin docs demo
Scroll Type Reveal preview T2
Kinetic type

Scroll Type Reveal ↗

A giant headline splits into letters that flip, swing, rise, pop, or scatter into place as the section scroll-scrubs past.

on hero / big section headline  ·  falls back to Solid unsplit headline
Open demoCodrops On-Scroll Typography Animations
Split Text Scrub preview T2
Kinetic type

Split Text Scrub ↗

A giant headline's letters fill from hollow outline to solid ink one by one, left to right, as you scroll.

on hero / story headline  ·  falls back to Solid static headline
Open demoweareboring.nl, trionn.com, db-longbow
Text 3D Depth Scroll preview T2
Kinetic type

Text 3D Depth Scroll ↗

A scroll-driven 3D cylinder of words orbits through depth — CSS perspective + preserve-3d + per-word translateZ + a pinned rotateX turn, each word rushing toward the viewer then receding.

on A big headline / hero  ·  falls back to hero-mask-reveal
Open demoCodrops 3D Text Scroll · GSAP ScrollTrigger 3.13
Triangle Flip Grid preview T2
Kinetic type

Triangle Flip Grid ↗

A grid of triangular tiles flips from edge-on and transparent, locking flat centre-out to assemble a giant faceted headline as you scroll.

on a big section headline  ·  falls back to solid word on faceted static stage
Open demosakazuki.io
Proximity Scale Grid preview T2
Micro-interactions

Proximity Scale Grid ↗

A grid or row whose items scale up by cursor proximity — nearest is biggest with a dock-like falloff, each easing toward the pointer with a quickTo tween.

on A menu/gallery grid or nav (dish/thumb row)  ·  falls back to Static grid (no proximity scale)
Open demoGreenSock Proximity Scale Grid · GSAP 3.13
Elastic Grid Scroll preview T2
Scrollytelling

Elastic Grid Scroll ↗

A gallery/menu grid rubber-bands as you fling it — tiles lag out of step (skew and offset proportional to scroll velocity) and spring elastically back to rest when you stop.

on A gallery/menu grid of tiles  ·  falls back to scroll-velocity-skew / plain static grid
Open demoCodrops ElasticGridScroll · GSAP 3.13
Horizontal Pin Gallery preview T2
Scrollytelling

Horizontal Pin Gallery ↗

The section locks in place and a row of full-height dish cards glides sideways as you scroll down, damped and smooth.

on menu-preview / .dish items  ·  falls back to horizontal-reel (Tier 1)
Open demoshowcase.noomoagency.com + db-longbow.webflow.io
Infinite Canvas Drag preview T2
Scrollytelling

Infinite Canvas Drag ↗

An infinite, pannable wall of tiled menu photos the visitor drags in any direction (with inertial throw and scroll-nudge), tiles recycling by modulo wrap so it never ends.

on A gallery/menu photo strip  ·  falls back to A plain tappable static gallery grid
Open demoCodrops Infinite Canvas (R3F) → DOM clean-room
Infinite Parallax Loop preview T2
Scrollytelling

Infinite Parallax Loop ↗

A bottomless wall of image columns loops endlessly by modulo wrap — no top or bottom — each column parallaxing at its own rate and direction as you scroll.

on A gallery/menu-preview column set  ·  falls back to horizontal-reel / scroll-reveal (static grid)
Open demoCodrops Infinite Scroll Parallax · GSAP 3.13
Pinned Scrub Cinematic preview T2
Scrollytelling

Pinned Scrub Cinematic ↗

As you scroll a pinned section, a big word swaps, an ingredient flies in, a cup keeps filling, the background color-morphs and captions crossfade in lockstep.

on [data-mod="story"] / about  ·  falls back to Tier-1 pinned-scrub
Open demonoomoagency.com + decathlonyestalgia.com
Pinned Word Zoom preview T2
Scrollytelling

Pinned Word Zoom ↗

A giant word or monogram scales up on a pinned scroll until one focal letter's aperture fills the viewport and the next section emerges through it.

on A story wordmark → next chapter boundary  ·  falls back to pinned-scrub (static wordmark stacked)
Open demotype scale-through portals · GSAP
Polaroid Stack Scroll preview T2
Scrollytelling

Polaroid Stack Scroll ↗

Scattered, tilted photos fly in and rotate to settle into a tight overlapping polaroid pile as you scroll the pinned section.

on A phase-1 photo/gallery set  ·  falls back to Static tilted polaroid deck (sticky-stack)
Open demoCodrops Scrollaroids (Tom Miller)
Scroll 3D Image Rotate preview T2
Scrollytelling

Scroll 3D Image Rotate ↗

A column of dish photos where each plate turns in 3D as it scrolls — edge-on, flat at mid-pass, then tilting away while pushing toward you.

on gallery / menu-preview image tiles  ·  falls back to scroll-reveal (flat static)
Open demoCodrops Rotating On-Scroll Animations
Scroll Graph Draw preview T2
Scrollytelling

Scroll Graph Draw ↗

A data/stat line graph draws itself — the growth line strokes in, the area fills, each point pops, and the headline KPI counts — as the by-the-numbers section scrolls into view.

on A story/about/stats growth band  ·  falls back to scroll-count-up (line drawn, KPI final, table visible)
Open demoCodrops ScrollGraph · GSAP ScrollTrigger 3.13
Sticky Grid Reveal preview T2
Scrollytelling

Sticky Grid Reveal ↗

A pinned photo grid assembles cell-by-cell, then zooms to 2x and parts like a curtain to reveal a headline and Order CTA behind it.

on gallery / menu-preview grid  ·  falls back to scroll-reveal (static hero + grid)
Open demoCodrops "Sticky Grid Scroll" (theoplawinski)
SVG Map Draw preview T2
Scrollytelling

SVG Map Draw ↗

A locations SVG map draws its routes and pins in via stroke-dashoffset as you scroll — a natural throughline for a multi-location section.

on A locations map area  ·  falls back to Static fully-drawn map (all pins visible)
Open demoCodrops Scroll SVG Map · GSAP ScrollTrigger 3.13
Telescope Zoom Scroll preview T2
Scrollytelling

Telescope Zoom Scroll ↗

A hero image zooms up from nothing as nested blurred rings converge and sharpen, dish thumbnails fly past the camera, and the headline parts left and right.

on a hero / feature figure  ·  falls back to scroll-reveal (Tier 1)
Open demotympanus.net/Tutorials/TelescopeZoom
Tilt Pin Section preview T2
Scrollytelling

Tilt Pin Section ↗

A chapter panel enters tilted a few degrees off level, then un-tilts to straight as its chevron edge relaxes and text staggers in on scroll.

on a [data-mod] chapter panel (story/about/identity band)  ·  falls back to static level panel with chevron edge
Open demosakazuki.io + exoape.com + locomotive.ca
Blade Swipe Slides preview T2
Transitions

Blade Swipe Slides ↗

Slides swap via a torn diagonal clip-path wipe led by a red blade edge sweeping across the frame, auto-advancing under a chevron control plate.

on gallery/hero slideshow  ·  falls back to stacked full-bleed panels
Open demosakazuki.io
Flip Shared-Element preview T2
Transitions

Flip Shared-Element ↗

A dish card morphs its image and name into an expanding detail panel, then the description and CTA fade in mid-flight.

on menu dish cards / location cards  ·  falls back to instant un-animated detail open
Open demoindex.studio, program.studio, beaucoup.studio
Grid Flip Shuffle preview T2
Transitions

Grid Flip Shuffle ↗

Filter or sort a card grid and many items FLIP smoothly between their old and new layout positions at once — the menu-category reflow (distinct from a card→detail shared element).

on A menu card grid + a filter/sort bar  ·  falls back to Instant (un-animated) filter/sort
Open demoCodrops Grid Layout Transitions · GSAP Flip 3.13
Magazine Page Flip preview T2
Transitions

Magazine Page Flip ↗

The menu rendered as a book you page through — leaves turn in 3D around a centre spine as you scroll, the turned page settling on the left as the next dish appears on the right. CSS-3D, no WebGL.

on A menu/menu-preview/lookbook  ·  falls back to scroll-reveal (static column)
Open demoWebGL Magazine paradigm → CSS-3D clean-room
Motionpath Card Flow preview T2
Transitions

Motionpath Card Flow ↗

Grid cards fly along curved bezier arcs, staggering into a neat corner deck as a big featured dish scales and fades up behind them.

on gallery/menu grid of .dish items  ·  falls back to static spread gallery (scroll-reveal)
Open demoCodrops — GSAP MotionPathPlugin Image Flow
Scroll Keyhole Slideshow preview T2
Transitions

Scroll Keyhole Slideshow ↗

A full-bleed slideshow scrubbed by scroll, where each slide is revealed through a growing keyhole/aperture clip that dilates open — scroll is the playhead.

on A gallery/hero slideshow  ·  falls back to Plain stacked full-bleed panels (all captions visible)
Open demoluis-lessrain keyhole paradigm → clean-room
Section Timeline Morph preview T2
Transitions

Section Timeline Morph ↗

At each chapter boundary a brand pearl grows from a point to fill the screen, becoming the next section's background color.

on Section boundaries (data-mod sections)  ·  falls back to Solid per-chapter colors
Open demodecathlonyestalgia.com + horizonte-village.com
Shatter Triangle Morph preview T2 ✦ signature
Transitions

Shatter Triangle Morph ↗

A plane of black-and-white crystal triangle shards explodes outward with spin and fade as you scroll, revealing the chapter behind it.

on A chapter boundary [data-mod]  ·  falls back to Chapter shown plainly, no shards
Open demosakazuki.io
SVG Mask Transition preview T2
Transitions

SVG Mask Transition ↗

One fullscreen image reveals the next behind an SVG mask of venetian slats/grid cells that sweep open as you scroll.

on gallery / fullscreen hero band  ·  falls back to static vertical image gallery
Open demoCodrops / Hiro-kiii — SVG Mask Transitions
SVG Path Morph preview T2
Transitions

SVG Path Morph ↗

A single SVG outline liquid-redraws its shape — blob to wave to drop on scroll, or icon to icon on hover — nothing cross-fades.

on brand mark / hero graphic, or a .btn/.dish icon  ·  falls back to static authored shape, no morph
Open demoGreenSock MorphSVG showcase (CodePen EaKpEpJ)
Zoom Blur Transition preview T2
Transitions

Zoom Blur Transition ↗

A punchy zoom-blur dolly cut between two frames — the outgoing lunges and motion-blurs toward you and dissolves as the incoming rushes in from a zoomed blur and locks sharp.

on A gallery / a two-frame menu or hero boundary  ·  falls back to scroll-reveal (both frames stacked sharp)
Open demozoom-blur dolly-cut idiom
Atmospheric Depth Gallery preview T3
3D / WebGL

Atmospheric Depth Gallery ↗

A gallery where distance reads as atmosphere — far photos sit hazier, desaturated and smaller, then sharpen, saturate and rise forward as scroll brings them close (aerial perspective).

on A gallery/menu vertical dish column  ·  falls back to Static clear gallery (every photo sharp, visible)
Open demoCodrops Atmospheric Depth Gallery → layered CSS
Crt Scroll Glitch preview T3
3D / WebGL

Crt Scroll Glitch ↗

A retro CRT treatment over a hero image — scanlines, a barrel curve and an RGB shift — that glitches harder the faster you scroll and calms to a clean scanlined image when still.

on A hero/dish figure's real image  ·  falls back to Clean static image
Open demoCRT/VFX-JS paradigm → hand-written GLSL clean-room
Cursor Bulge Lens preview T3
3D / WebGL

Cursor Bulge Lens ↗

A lens-like bulge trails the cursor across the hero image, magnifying and warping the pixels under the pointer, then un-bulges once as it scrolls in.

on hero/signature-dish figure  ·  falls back to clean static image
Open demoCodrops "Bulge Distortion Effect" (Robpayot)
Data Tunnel preview T3
3D / WebGL

Data Tunnel ↗

A wormhole of streaming numbers and glyph rings recedes to a vanishing point and rushes toward you, its drift and spiral twist linked to scroll velocity — a canvas-2d data stream.

on A tech/flagship hero background layer  ·  falls back to Static tunnel-mouth gradient (headline legible on top)
Open demomatrix-wormhole paradigm · original generative
Dish 360 Viewer preview T3
3D / WebGL

Dish 360 Viewer ↗

A plated dish rotates as you drag to spin it or scroll to gently turn it, reading as an inspectable 3D model.

on story module or signature-dish scene  ·  falls back to static poster frame + caption
Open demoSirv / Magic360, Apple image-sequence, noomoagency.com
Displacement Image Morph preview T3
3D / WebGL

Displacement Image Morph ↗

Hovering an image liquefies it, warping through a turbulent displacement map into a second image, then reverses on mouse-out.

on Menu/gallery figure  ·  falls back to Pure-CSS opacity crossfade, then static image A
Open demorobin-dela/hover-effect
Infinite 3d Tunnel preview T3
3D / WebGL

Infinite 3d Tunnel ↗

Scroll flies the camera forward through an endless tube of dish panels lining a receding tunnel, each rushing past and recycling seamlessly at the far end — pure CSS-3D, no WebGL.

on A flagship hero, or a full-bleed menu/gallery band  ·  falls back to Static dish gallery grid (all panels flat, visible)
Open demoCodrops 3D Image Tube (R3F) paradigm → CSS-3D clean-room
Particle Field preview T3
3D / WebGL

Particle Field ↗

Tiny brand-tinted motes drift upward on a curling flow-field, glowing where they overlap, over a dark hero.

on hero/section background layer  ·  falls back to static brand gradient
Open demogsap.com/showcase, bruno-simon.com, active-theory
Shader Image Distortion preview T3
3D / WebGL

Shader Image Distortion ↗

A food photo ripples and liquifies toward the cursor with a flowing noise warp and a subtle RGB color fringe on the moving edges.

on hero / signature-dish figure  ·  falls back to clean static image
Open demoCodrops image distortion, cuberto.com, lusion.co
Shader Image Reveal preview T3
3D / WebGL

Shader Image Reveal ↗

A hero photo assembles bottom-to-top as it scrolls in, its rows warping with an RGB-split displacement that settles into a crisp image.

on A hero/signature-dish figure with a real img  ·  falls back to The clean static img (scroll-reveal)
Open democurtains.js displacement demo + Codrops image-distortion-on-reveal
Velocity RGB Drag preview T3
3D / WebGL

Velocity RGB Drag ↗

Dragging across the hero image smears its red, green and blue channels apart along the pointer’s motion, snapping back crisp as it rests.

on hero / signature-dish figure  ·  falls back to clean static image
Open demoakella / Codrops — Interactive WebGL Hover Effects
◐spec only
T3
Physics

Draggable Throw ↗

You grab a card and fling it; it coasts with momentum, slows under friction, and bounces gently off the stage edges.

on A draggable gallery or scattered sticker board  ·  falls back to A normal non-draggable static layout
View specGSAP Draggable/Observer showcase + award draggable-gallery sites
◐spec only
T3
Physics

Matter Drop ↗

Branded stickers and toppings rain down under gravity, collide, stack into a settled pile, and scatter when you fling them with the pointer.

on brand-playful specials section or hero prop shelf  ·  falls back to static pre-arranged CSS pile
View specaward Matter.js sites (brm.io/matter-js demos)
No moves match — clear the filters.