Dusklayer
Sign in Get Pro
N° 0006Product filmPro

Orbit & Explode

An earbuds pod separates into seven labelled parts as you scroll.

Source files, Studio plan

35 KB of text that builds one HTML file. Paste it into Claude Code, Cursor or v0 to rebuild this page.

Open full page Live. Scroll inside the preview to play it.
Loading the layer
LooksShowing MidnightEach look changes the colours of the live preview and goes into the prompt you copy.
Make it yoursYour brand, copy and colours go into the prompt you copy. Colours change the preview live.
Brand remix is a Pro feature at launch. It is open in the preview.

Overview

An earbuds pod turns half a circle on scroll, then splits into seven floating parts, each with a label that rides along.

Signature momentThe lid lifts, the parts drift apart, and a leader line grows out of each one to its label as it comes free.

  1. The orbit

    The closed pod turns half a circle over 65 frames beside the hero copy. The frames are transparent, so the page tone is yours to choose.

  2. The explode

    It opens and separates into seven floating parts over 96 frames. The camera pulls back from the pod to the whole stack as it happens.

  3. Callouts that ride along

    Each part has a label on a leader line pinned to its silhouette. The anchors were tracked frame by frame, so the dots stay on the parts as they move.

  4. Pins on phones

    Narrow screens swap the side labels for numbered pins and one legend card that names the newest part.

  5. Parts, specs and price

    A seven row parts list with cutouts from the last frame, repair steps, a 12 row specs table and a price card.

  6. Settles on a frame

    When scrolling stops the canvas eases to a single frame, so nothing ever rests on a blend.

Build details

Kind
Product film
Plan
Pro
Tone
Dark, Light
Industries
Ecommerce, Agency
Technique
Image sequence
Built with
Lenis 1.3.27, plain HTML, CSS and one ES module
Looks
9
Weight
7.6 MB, layer files only
Mobile performance
99
Accessibility
100
Fidelity Score
In review
Licence
Commercial, including client work. No redistribution. Read it
Version
1, updated 2 November 2026
Released
2 November 2026
Parameters, 12 of them, all live through DUSKLAYER.set()
ControlKeyRangeDefault
Background tonetonecolor#0B1120
Backlight behind the productglow0 to 10.8
Inkinkcolor#EDE7DD
Muted inkmutedcolor#9AA3B1
Accentaccentcolor#E28B4D
Callout setcalloutsselect: parts, specs, materials, noneparts
Frame densityframeDensityselect: full, half, thirdfull
Product scaleproductScale0.8 to 1.151
Pointer parallaxparallax0 to 10.5
Scrub weightscrubWeight0 to 10.55
Film graingrain0 to 0.080
Seedseed1 to 99997

Something wrong with this layer? Report a problem and we fix it in the next version.

The prompt

One text file, 35 KB, 14 sections. Every number the page uses is in it, so another model can rebuild the layer without seeing this one.

  1. Role
  2. Output contract
  3. Assets (next to the file)
  4. Design tokens
  5. Layout
  6. Film engine
  7. Presets
  8. Camera
  9. Callouts (the core technique)
  10. Motion
  11. Responsive and performance
  12. Acceptance checklist
  13. Customize
  14. Appendix: making your own film

How to use it

  1. Pick a look. The look you choose above is written into the prompt’s parameter block.
  2. Copy the prompt. Paste it into Claude Code, Cursor or v0 as the first message of a new session.
  3. Make it yours. Change the brand name, copy, colours and fonts first; every placeholder is marked. Keep the structure.
  4. Check it. The prompt ends with an acceptance checklist. Run through it before you ship.
Read the opening of the prompt
# Orbit & Explode: build prompt

## Role
You are a senior creative front-end developer. Build the layer below as one self-contained `index.html`: the product page of {{BRAND_NAME}}, an invented audio brand, for {{PRODUCT_NAME}}, {{PRODUCT_TYPE}} in a flax-fibre pod. At the top a scroll-scrubbed film: the closed pod turns half a circle beside the hero copy, drifts to the centre and pulls apart into seven floating parts, each with a DOM callout (number, name, spec) on a leader line grown from a dot on its silhouette. Frames are transparent, so the page tone is free; narrow or portrait screens get numbered pins and a legend card. Below the film, what an earbuds shop publishes: parts with prices, a repair guide, specs, a price card, a footer. A screenshot must pass for a real company's page.

## Output contract
- One file `index.html`, no build step, no framework; `lang="en"`; viewport `width=device-width, initial-scale=1, viewport-fit=cover`; `<title>{{PRODUCT_NAME}} earbuds | {{BRAND_NAME}}</title>`, a one-sentence meta description, `theme-color` {{COLOR_BG}}, `<link rel="icon" href="data:,">`, an inline `<script>document.documentElement.classList.add('js')</script>`; real DOM text; canvas `aria-hidden`; alt text on the poster and repair still, empty alt on the cut-outs.
- Fonts: one Google Fonts link `family={{FONT_DISPLAY}}:wght@300;400;500;600&display=swap`, `media="print" onload="this.media='all'"`, after preconnects. No second family, no mono. Stack `'{{FONT_DISPLAY}}', '{{BRAND_NAME}} Fallback', ui-sans-serif, system-ui, sans-serif`; the fallback is two local `@font-face` rules so copy doesn't reflow: 300 to 500 → `local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo'), local('Helvetica')`, `size-adjust: 103%`; 600 to 700 → their Bold faces, `size-adjust: 98%`.
- Preload frame 0 of each set (`fetchpriority="high"`): `d/f000.webp` under `not all and (max-width: 600px) and (max-aspect-ratio: 1/1)`, `m/f000.webp` under the phone query.
- Import map, one exact version: `"lenis": "https://cdn.jsdelivr.net/npm/lenis@1.3.27/dist/lenis.mjs"`, loaded by a dynamic `import('lenis')` after first paint (failures ignored), not under reduced motion.

[32,966 more characters. Copy the prompt to get all of it.]

More layers

Open the library

One vessel turns from glass to stone to brushed steel as you scroll, with a finish picker and copy for each material.

Product filmStudio

A bottle drops into its own splash as you scroll, then the camera circles it while droplets cross the headline.

Product filmPro

Tidal Glass

N° 0022

An underwater scene that rises through the surface as you scroll.

ScenePro