Lerp

Fantasy

Visitfantasy.co
Intro · 1440 px · 8 s · 30 fps
Intro · 235 ms Lenisthree.js 30 fps
Specs

The motion

Fantasy is known for ease-out intro at 240 ms. Measured from frames; estimates from notes. Each fit includes its error.

01 · Intro reveal

Measured±0.94 %

ease-out · 240 ms · 33 ms stagger

Curve
cubic-bezier(0, 0, 0.58, 1)
Matches
ease-out
Duration
235 ms
Stagger
33 ms

Fit against the frames · 1440 px · intro

010 ms100200
Progress, per frame Fit 0.94 % RMS over 9 frames
Intro · 1440 px · 8 s · 30 fps

02 · Intro

Estimate

cubic-bezier(0.19, 1, 0.22, 1) · about 3.9 s

Curve
cubic-bezier(0.19, 1, 0.22, 1)
Duration
3.9 s

white flash, then black; the spaced "FANTASY" wordmark fades in centred (about 3.9 s), a pink-glowing logo-mark silhouette swells behind it and dims the letters (about 5–6.4 s), then the hero car video fades up under the header (about 8 s). The logo mark eases with cubic-bezier(0.19, 1, 0.22, 1) over 1 s.

Intro · 390 px · 8 s · 30 fps

03 · Scroll smoothing

Measured±0.084 %

Native scroll · no smoothing, 1:1 with the touch

Scroll
native, 1:1 with the touch

Fit against the frames · 390 px · scroll

0px1px0 s1s2s3s4s5s6s7s8s9s10s11s12s13s14s15s16s17s18s19s20s21s22s
Page trails input, per frame Fit 9.1 px RMS over 10771 px
Scroll · 390 px · 24 s · 30 fps

04 · Scroll

Estimate

Lenis smooth scroll, settles in about 1.6 s, pinned, scrubbed

Scroll
Lenis smooth scroll, settles in about 1.6 s, pinned, scrubbed

Lenis (a 400 px wheel settles in about 1.6 s). Sticky full-screen chapters: the hero video pins as a client badge cycles; statements go word by word from dim and blurred to white (probably scrubbed SplitText); a dark product grid zooms around a centred line; services and cases pin over media. A white footer rises last.

Scroll · 1440 px · 22 s · 30 fps

05 · Hover

Estimate

ease-out · 650 ms

Curve
ease-out
Duration
650 ms

native cursor. The collapsed header button widens into "Menu" (width 0.65 s); logo and nav paths fade and shift (350 ms ease-out, 175 ms delay). Menu opens a full-screen black overlay with three large centred links, small secondary links and a featured-case card.

Hover · 1440 px · 7 s · 30 fps

06 · Page transition

Estimate

Client-side route change

client-side (Nuxt) route change; a fixed black overlay fades over the page before the new route shows (seen at 390 going to /policy).

Page transition · 1440 px · 8 s · 30 fps
Page transition · 390 px · 7 s · 30 fps

More footage

Menu · 1440 px · 5 s · 30 fps
Menu · 390 px · 5 s · 30 fps
Prompt

Prompt pack

The site presents a cinematic, high-fidelity digital experience defined by deep contrast and fluid motion. It prioritises full-bleed video content over static imagery, creating an immersive atmosphere where the interface recedes to let the work speak. The mood is sophisticated and technical, characterised by smooth scrolling and precise animations that feel responsive yet weighty. Distinctive features include sticky pinned sections that hold media in place while text reveals itself, and a dark aesthetic that allows vibrant product colours to pop without visual clutter.

2 measured values 18/18 claims checked Generated 25 Sep 2026

Recreate this site's feel

Everything: look, layout, type, colour, motion and libraries, in one prompt.

Recreate the look and feel of Fantasy (fantasy.co) for a new site with its own content.

Look and feel:
The site presents a cinematic, high-fidelity digital experience defined by deep contrast and fluid motion. It prioritises full-bleed video content over static imagery, creating an immersive atmosphere where the interface recedes to let the work speak. The mood is sophisticated and technical, characterised by smooth scrolling and precise animations that feel responsive yet weighty. Distinctive features include sticky pinned sections that hold media in place while text reveals itself, and a dark aesthetic that allows vibrant product colours to pop without visual clutter.

Layout:
The composition relies on a full-width, edge-to-edge grid where sections often occupy the entire viewport height. Elements are arranged with generous negative space, typically aligning text to the left or centre against large background videos or device mockups. Sticky positioning is used heavily to pin media layers while content scrolls over or beside them, creating a layered depth rather than a traditional vertical stack.
- Page length: 14832 px at a 1440 px wide viewport
- Corner radii: 8 px
- Sticky elements: 2
- Video elements: 18

Type (sizes at a 1440 px wide viewport):
Typography utilises a clean sans-serif family across all weights, keeping body copy small and unobtrusive to maintain focus on the visuals. Display text is set with tight tracking and specific leading, often animating word-by-word from a blurred or dim state into sharp white clarity.
- sans: weights 400, 500 (100 % of the text)
- Display: 42 px · sans 400 · leading 1.1 · tracking -0.02 em
- Body: 17 px · sans 400 · leading 1.4 · tracking -0.01 em
- Small: 15 px · sans 500 · leading 1 · tracking -0.011 em
- Small: 13 px · sans 400 · leading 1.4 · tracking -0.013 em

Colour:
The palette is anchored by a near-black ground and white ink, establishing a stark, gallery-like contrast for the content. Occasional use of frosted glass effects adds subtle texture, while the primary colour comes from the saturated hues within the video assets themselves.
- Ground: #000000 (near-black)
- Ink: #ffffff (white)
- Line: #000000 at 10 % (near-black)

Motion:
The page enters with a white flash that resolves into black, followed by the central logo fading in before a glowing silhouette swells behind it. This intro sequence dissolves to reveal the hero video underneath, transitioning smoothly from the brand mark to the moving image. Scrolling feels weighted and smooth, decoupled from the native browser scroll to create a continuous, gliding sensation. As the user moves down, sections pin to the screen; background videos remain fixed while text statements scrub into view, and grids of images zoom or shift perspective relative to the scroll position. Interactive elements respond with subtle ease-out transitions; collapsed header buttons expand in width to reveal labels, and navigation links fade in with a slight delay. The cursor remains native, but clickable paths and buttons shift opacity or position gently to indicate interactivity without disrupting the visual flow. Page changes are handled via a client-side route transition where a fixed black overlay fades in to cover the current view before the new page content appears beneath it.
- Intro (Intro reveal): ease-out · 240 ms · 33 ms stagger (measured from 30 fps frames, ±0.94 % fit error)
- Scroll (Scroll smoothing): Native scroll · no smoothing, 1:1 with the touch (measured from 30 fps frames, ±0.084 % fit error)
- Intro (Load): cubic-bezier(0.19, 1, 0.22, 1) · about 3.9 s (estimate)
- Scroll: Lenis smooth scroll, settles in about 1.6 s, pinned, scrubbed (estimate)
- Hover (Hover and cursor): ease-out · 650 ms (estimate)
- Page transition (Transitions): Client-side route change (estimate)
- Hover and focus (CSS): 350 ms ease-out on all
- Hover and focus (CSS): 300 ms ease-out on all, background-color, fill
- Custom curves in the CSS: cubic-bezier(0.19, 1, 0.22, 1); cubic-bezier(0.23, 1, 0.32, 1)

Libraries: ScrollTrigger, Lenis, three.js, Nuxt, GSAP (bundled only), SplitText (bundled only), ScrollSmoother (bundled only) and Motion (bundled only).
Techniques: smooth (lerped) scroll, sticky or pinned sections, background or inline video, clip-path reveals and wipes, frosted glass (backdrop-filter) and view transitions api.

The curator's notes on this site:
- Design: a full-bleed cinematic video hero (a car moving across saturated blue light) with only the logo, a "Menu" button and "Lead by Design" on top. About 20 muxed videos; the type stays small and lets the footage lead.
- Load: white flash, then black; the spaced "FANTASY" wordmark fades in centred (about 3.9 s), a pink-glowing logo-mark silhouette swells behind it and dims the letters (about 5–6.4 s), then the hero car video fades up under the header (about 8 s). The logo mark eases with cubic-bezier(0.19, 1, 0.22, 1) over 1 s.
- Scroll: Lenis (a 400 px wheel settles in about 1.6 s). Sticky full-screen chapters: the hero video pins as a client badge cycles; statements go word by word from dim and blurred to white (probably scrubbed SplitText); a dark product grid zooms around a centred line; services and cases pin over media. A white footer rises last.
- Hover and cursor: native cursor. The collapsed header button widens into "Menu" (width 0.65 s); logo and nav paths fade and shift (350 ms ease-out, 175 ms delay). Menu opens a full-screen black overlay with three large centred links, small secondary links and a featured-case card.
- Transitions: client-side (Nuxt) route change; a fixed black overlay fades over the page before the new route shows (seen at 390 going to /policy).
- Mobile: same chapters and word reveals in one column; Lenis stays on for touch; the header collapses to logo mark plus a small menu icon; videos stay autoplaying.

Constraints:
- Recreate the feel, not the site: write your own copy and use your own images, icons and logo; do not copy its code, fonts or assets.
- Where a font is not licensed for you, pick a close substitute with the same build (width, contrast, x-height) and keep the sizes, weights and tracking below.
- Animate transform and opacity (clip-path or filter only where the reference clearly does); list exact properties, never "transition: all".
- Honour prefers-reduced-motion: keep opacity and colour fades, drop movement and smooth scrolling.
- Values marked (estimate) were drafted from notes, not measured: tune them by eye against the reference.

Just the scroll feel

Smoothing, what moves with scroll, pinned sections.

Give my page the scroll feel of Fantasy (fantasy.co) for a new site with its own content.

Scrolling feels weighted and smooth, decoupled from the native browser scroll to create a continuous, gliding sensation. As the user moves down, sections pin to the screen; background videos remain fixed while text statements scrub into view, and grids of images zoom or shift perspective relative to the scroll position.

Measured and noted:
- Scroll (Scroll smoothing): Native scroll · no smoothing, 1:1 with the touch (measured from 30 fps frames, ±0.084 % fit error)
- Scroll: Lenis smooth scroll, settles in about 1.6 s, pinned, scrubbed (estimate)

Techniques: smooth (lerped) scroll and sticky or pinned sections.

Libraries: ScrollTrigger, Lenis, GSAP and ScrollSmoother.

Curator's notes:
- Lenis (a 400 px wheel settles in about 1.6 s). Sticky full-screen chapters: the hero video pins as a client badge cycles; statements go word by word from dim and blurred to white (probably scrubbed SplitText); a dark product grid zooms around a centred line; services and cases pin over media. A white footer rises last.

Constraints:
- Recreate the feel, not the site: write your own copy and use your own images, icons and logo; do not copy its code, fonts or assets.
- Where a font is not licensed for you, pick a close substitute with the same build (width, contrast, x-height) and keep the sizes, weights and tracking below.
- Animate transform and opacity (clip-path or filter only where the reference clearly does); list exact properties, never "transition: all".
- Honour prefers-reduced-motion: keep opacity and colour fades, drop movement and smooth scrolling.
- Values marked (estimate) were drafted from notes, not measured: tune them by eye against the reference.

Just the intro

How the page enters: sequence, curve, duration, stagger.

Build an intro sequence in the manner of Fantasy (fantasy.co) for a new site with its own content.

The page enters with a white flash that resolves into black, followed by the central logo fading in before a glowing silhouette swells behind it. This intro sequence dissolves to reveal the hero video underneath, transitioning smoothly from the brand mark to the moving image.

Measured and noted:
- Intro (Intro reveal): ease-out · 240 ms · 33 ms stagger (measured from 30 fps frames, ±0.94 % fit error)
- Intro (Load): cubic-bezier(0.19, 1, 0.22, 1) · about 3.9 s (estimate)

Curator's notes:
- white flash, then black; the spaced "FANTASY" wordmark fades in centred (about 3.9 s), a pink-glowing logo-mark silhouette swells behind it and dims the letters (about 5–6.4 s), then the hero car video fades up under the header (about 8 s). The logo mark eases with cubic-bezier(0.19, 1, 0.22, 1) over 1 s.

Constraints:
- Recreate the feel, not the site: write your own copy and use your own images, icons and logo; do not copy its code, fonts or assets.
- Where a font is not licensed for you, pick a close substitute with the same build (width, contrast, x-height) and keep the sizes, weights and tracking below.
- Animate transform and opacity (clip-path or filter only where the reference clearly does); list exact properties, never "transition: all".
- Honour prefers-reduced-motion: keep opacity and colour fades, drop movement and smooth scrolling.
- Values marked (estimate) were drafted from notes, not measured: tune them by eye against the reference.

Just the hovers

Links, buttons and cursor: timings from the live CSS.

Style hover and focus states in the manner of Fantasy (fantasy.co) for a new site with its own content.

Interactive elements respond with subtle ease-out transitions; collapsed header buttons expand in width to reveal labels, and navigation links fade in with a slight delay. The cursor remains native, but clickable paths and buttons shift opacity or position gently to indicate interactivity without disrupting the visual flow.

Measured and noted:
- Hover (Hover and cursor): ease-out · 650 ms (estimate)
- Hover and focus (CSS): 350 ms ease-out on all
- Hover and focus (CSS): 300 ms ease-out on all, background-color, fill

Curator's notes:
- native cursor. The collapsed header button widens into "Menu" (width 0.65 s); logo and nav paths fade and shift (350 ms ease-out, 175 ms delay). Menu opens a full-screen black overlay with three large centred links, small secondary links and a featured-case card.

Gate hover effects behind @media (hover: hover) and (pointer: fine), and give every hover a matching :focus-visible state.

Constraints:
- Recreate the feel, not the site: write your own copy and use your own images, icons and logo; do not copy its code, fonts or assets.
- Where a font is not licensed for you, pick a close substitute with the same build (width, contrast, x-height) and keep the sizes, weights and tracking below.
- Animate transform and opacity (clip-path or filter only where the reference clearly does); list exact properties, never "transition: all".
- Honour prefers-reduced-motion: keep opacity and colour fades, drop movement and smooth scrolling.
- Values marked (estimate) were drafted from notes, not measured: tune them by eye against the reference.

Just the type and colour

Families, scale, weights, tracking and the palette with roles.

Set up type and colour tokens in the manner of Fantasy (fantasy.co) for a new site with its own content.

Type (sizes at a 1440 px wide viewport; scale them fluidly with clamp() for smaller screens):
Typography utilises a clean sans-serif family across all weights, keeping body copy small and unobtrusive to maintain focus on the visuals. Display text is set with tight tracking and specific leading, often animating word-by-word from a blurred or dim state into sharp white clarity.
- sans: weights 400, 500 (100 % of the text)
- Display: 42 px · sans 400 · leading 1.1 · tracking -0.02 em
- Body: 17 px · sans 400 · leading 1.4 · tracking -0.01 em
- Small: 15 px · sans 500 · leading 1 · tracking -0.011 em
- Small: 13 px · sans 400 · leading 1.4 · tracking -0.013 em

Colour:
The palette is anchored by a near-black ground and white ink, establishing a stark, gallery-like contrast for the content. Occasional use of frosted glass effects adds subtle texture, while the primary colour comes from the saturated hues within the video assets themselves.
- Ground: #000000 (near-black)
- Ink: #ffffff (white)
- Line: #000000 at 10 % (near-black)

Define these as CSS custom properties (for example --font-display, --font-body, --color-ground, --color-ink, --color-accent) and use the roles as named.

Constraints:
- Recreate the feel, not the site: write your own copy and use your own images, icons and logo; do not copy its code, fonts or assets.
- Where a font is not licensed for you, pick a close substitute with the same build (width, contrast, x-height) and keep the sizes, weights and tracking below.

Layout and grid

The composition relies on a full-width, edge-to-edge grid where sections often occupy the entire viewport height. Elements are arranged with generous negative space, typically aligning text to the left or centre against large background videos or device mockups. Sticky positioning is used heavily to pin media layers while content scrolls over or beside them, creating a layered depth rather than a traditional vertical stack.

Page length
14832 px at a 1440 px wide viewport
Corner radii
8 px
Sticky elements
2
Video elements
18

Type

Typography utilises a clean sans-serif family across all weights, keeping body copy small and unobtrusive to maintain focus on the visuals. Display text is set with tight tracking and specific leading, often animating word-by-word from a blurred or dim state into sharp white clarity.

sans
weights 400, 500 100 % of the text
Display
42 px · sans 400 · leading 1.1 · tracking -0.02 em
Body
17 px · sans 400 · leading 1.4 · tracking -0.01 em
Small
15 px · sans 500 · leading 1 · tracking -0.011 em
Small
13 px · sans 400 · leading 1.4 · tracking -0.013 em

Colour

The palette is anchored by a near-black ground and white ink, establishing a stark, gallery-like contrast for the content. Occasional use of frosted glass effects adds subtle texture, while the primary colour comes from the saturated hues within the video assets themselves.

  • Ground#000000near-black
  • Ink#ffffffwhite
  • Line#000000 at 10 %near-black

Motion

The page enters with a white flash that resolves into black, followed by the central logo fading in before a glowing silhouette swells behind it. This intro sequence dissolves to reveal the hero video underneath, transitioning smoothly from the brand mark to the moving image. Scrolling feels weighted and smooth, decoupled from the native browser scroll to create a continuous, gliding sensation. As the user moves down, sections pin to the screen; background videos remain fixed while text statements scrub into view, and grids of images zoom or shift perspective relative to the scroll position. Interactive elements respond with subtle ease-out transitions; collapsed header buttons expand in width to reveal labels, and navigation links fade in with a slight delay. The cursor remains native, but clickable paths and buttons shift opacity or position gently to indicate interactivity without disrupting the visual flow. Page changes are handled via a client-side route transition where a fixed black overlay fades in to cover the current view before the new page content appears beneath it.

Intro: intro reveal
ease-out · 240 ms · 33 ms stagger Measured ±0.94 % fit error, from the 30 fps frames
Intro
cubic-bezier(0.19, 1, 0.22, 1) · about 3.9 s Estimate drafted from notes; tune by eye
Scroll: scroll smoothing
Native scroll · no smoothing, 1:1 with the touch Measured ±0.084 % fit error, from the 30 fps frames
Scroll
Lenis smooth scroll, settles in about 1.6 s, pinned, scrubbed Estimate drafted from notes; tune by eye
Hover
ease-out · 650 ms Estimate drafted from notes; tune by eye
Page transition
Client-side route change Estimate drafted from notes; tune by eye
Hover and focus (CSS)
350 ms ease-out on all Live CSS
Hover and focus (CSS)
300 ms ease-out on all, background-color, fill Live CSS
Custom curves in the CSS
cubic-bezier(0.19, 1, 0.22, 1); cubic-bezier(0.23, 1, 0.32, 1) Live CSS

Libraries and techniques

  • ScrollTrigger
  • Lenis
  • three.js
  • Nuxt
  • GSAP
  • SplitText
  • ScrollSmoother
  • Motion
  • Smooth (lerped) scroll
  • Sticky or pinned sections
  • Background or inline video
  • Clip-path reveals and wipes
  • Frosted glass (backdrop-filter)
  • View Transitions API

Record

Capture record

Savedon 24 Sep 2026. Full pages, stills and key frames.

Captured

  1. 24 Sep 2026 Shown home · 1440 px · home · 390 px · key pages · 1440 px · key pages · 390 px
Notes

Fantasy (fantasy.co): ease-out intro at 240 ms.

6 effects · 2 measured · 30 fps clips

Motion
Intro, Scroll, Hover, Page transition
Libraries
Lenis, three.js, Nuxt
Footage
9 clips, frame-stepped 30 fps
Captured
24 Sep 2026

a full-bleed cinematic video hero (a car moving across saturated blue light) with only the logo, a "Menu" button and "Lead by Design" on top. About 20 muxed videos; the type stays small and lets the footage lead.

Stack as observed

Nuxt (Vue; window.nuxt); motion: Lenis (html.lenis), three.js r174 (window.THREE; a webgl context was created but no canvas stays in the DOM), bundle contains GSAP + ScrollTrigger + SplitText + CustomEase; about 22 Mux videos.

On phones

same chapters and word reveals in one column; Lenis stays on for touch; the header collapses to logo mark plus a small menu icon; videos stay autoplaying.

Techniques

Techniques on this site

Each one taught on its own page: a live demo you can tune, how it works, and the code. Lerp smooth scroll, Ease-out intro reveal, Split-text mask reveal, Pinned scroll chapters, Scroll text brightening.

More like this

Similar motion and feel.