003

Product Launch Template

£20 or the whole Vault, £79.20

A complete one-page product launch site built from GSAP Vault effects: bouncy word-pop hero with rising fizz, rotating badge, ink ticker, elastic sticker cards, and a pinned flavour switcher that retints the whole section as you scroll.

ScrollTrigger Lenis beginner
8 more details
scroll-revealstaggermarqueeinfinite-looppinninghover-effecttext-animationmatchMedia

This template reads better at your own screen size than in the frame below:

Updated

About this template

A production-ready one-page launch site for drinks, snacks, cosmetics, and any product that ships in a box, with a sunny CPG art direction: saturated golden ground, thick ink linework, cream CSS-drawn product cans, and sticker-sheet cards.

Read the full template overview

The hero headline pops in word by word with an elastic bounce while fizz bubbles rise behind the can and a circular badge slowly rotates, an ink ticker strip loops the launch messaging, benefit cards snap in and squish on hover, and the signature flavour switcher pins the can while the entire section retints to each flavour's colour as its panel scrolls past.

Swap the placeholder brand, flavours, and prices for your own product and deploy anywhere as static files.

Product Launch Template - website template preview

What's included

10 items
  • Complete deployable one-page site: nav, product hero, ticker, benefits, flavour switcher, stockists, buy, and footer sections
  • Signature pinned flavour switcher: the product stays sticky while the whole section background retints and the can swaps per flavour
  • Bouncy word-pop hero reveal with a rotated sticker chip on the key word
  • Ambient rising fizz bubbles behind the hero product, paused automatically when off screen
  • Rotating circular SVG badge with curved text
  • Seamless ink ticker strip with adjustable pixel-per-second speed
  • Elastic sticker-card reveals with a squish-and-wobble hover
  • Product cans drawn entirely in CSS, no image assets to license or swap
  • Lenis smooth scrolling wired in and fully optional
  • Accessible: reduced motion gets a complete static page, the flavour switcher falls back to stacked cards without JavaScript, focus mirrors hover throughout

Perfect for

5 use cases
  • Drink, snack, and food brand launch sites
  • Cosmetics, candles, and lifestyle product one-pagers
  • Direct-to-consumer product drops that need personality
  • Crowdfunding and pre-order landing pages
  • Learning how GSAP Vault effects compose into a full page

How it works

3 sections

Structure and hero motion

One script initialises each section with a single setup and teardown path and one motion branch. The hero words scale and rotate into place with a slight overshoot, the fizz bubbles are a reused set of spans on looping timelines that drift sideways as they rise, and the ticker loops at a speed set by the width of its own content, so a longer strip does not run faster.

The flavour switcher

The signature flavour switcher keeps the can column in place with CSS position sticky while ScrollTriggers on each copy panel tween the section's backgroundColor and crossfade the matching can; on small screens and without JavaScript the same markup renders as stacked flavour cards.

Reduced motion

A prefers-reduced-motion branch leaves the fully-visible static markup untouched.

Plugins ScrollTrigger
Difficulty Beginner
Smooth scroll Lenis integration
Includes HTML + JS + CSS source, documentation, AI setup prompt, lifetime updates

Lighthouse, as measured

Google Lighthouse on this template's demo, from the latest scan. A measurement of the demo as shipped, not a promise for your page.

Accessibility
100
Best practices
100

No performance score, on purpose. That figure depends on how you deploy: your server's compression and caching, your CDN, the connection and the device doing the test, none of which the code controls. The same page can score very differently on two consecutive runs, so measure it where it will live.

Questions about this template

The cans are drawn in CSS. Can I use photos of my actual product instead?

Yes, and most buyers should. The CSS cans exist so the template ships with nothing to license and no placeholder watermarks. Replace the can element with an <img> of your product cutout on transparent PNG and the hero, flavour switcher and grid all keep working; the retint still drives the background.

What does the flavour switcher actually do?

It is the signature moment: the product stays pinned while you scroll, and the entire section background retints as the can swaps between flavours. It reads as one continuous idea rather than a carousel. Each flavour is a colour value and an image, so three flavours or seven both work.

Can I use it for something that isn't a drink?

Yes. The structure is product hero, benefits, variant switcher, stockists, buy, and nothing in that is drink-specific once you swap the can. It has been built for candles, cosmetics and snack brands as easily as canned drinks; the variant switcher suits anything sold in more than one scent, shade or flavour.

Does the buy button take payment?

No. It is styled and unwired on purpose. Point it at your Shopify product page, a Stripe payment link or a pre-order form. Keeping checkout off the template is deliberate: nobody should be running payments through a static page they just downloaded.

Will the fizz bubbles slow down a phone?

No. The bubbles pause automatically when the hero scrolls off screen rather than animating against a hidden element, and they stop entirely under reduced motion. That off-screen pause is the difference between an ambient effect and a battery drain.

Paid template

Purchase to unlock the code.

Buying Product Launch Template opens the HTML, CSS and JavaScript source, the full documentation, an AI setup prompt for your editor, and every update we ship to it. Standard license: unlimited personal and commercial projects. Every paid product is tested for desktop and mobile layouts, reduced-motion handling, animation cleanup and keyboard controls wherever there is something to operate.

£20 Standard license, unlimited projects

Browse free effects

Or the whole library: the Vault, £79.20, one payment.

Documentation

Quick Start

1. Use the folder as your site root. index.html is the complete page. Open it locally or drop the folder on any static host (Netlify, Vercel, GitHub Pages, a plain server).

2. Replace the placeholder content in index.html:

  • Brand name: search for JUNO and Juno (nav, cans, footer)
  • Hero headline, sub, and meta chips
  • The four "Why" cards
  • The three flavour panels and their matching cans
  • Stockist wordmarks, buy section copy, and footer links

3. Recolour the brand in assets/style.css. All colours live in the :root token block:

Code snippet omitted: it ships with the download.

Flavour panels also carry their colour in the markup for the scroll retint. Keep data-flavour-color in sync with the CSS when you change a flavour:

Code snippet omitted: it ships with the download.

data-flavour-word is the giant word shown behind the can while that flavour is active.

4. Keep the script tags at the bottom of index.html (GSAP core, ScrollTrigger, Lenis, assets/script.js). Lenis is optional; delete its script tag and the Lenis block at the top of assets/script.js for native scrolling.

5. Optional: minify before you go live. assets/script.js is the readable source and is what index.html loads. It is around 12KB, which is fine to ship as-is. If you would rather serve it minified, produce it yourself once your edits are done:

Code snippet omitted: it ships with the download.

Then point the last <script> tag in index.html at assets/script.min.js. Keep script.js as the file you edit and re-run the command after each change.

Section Guide

Every section is independent. Delete any <section> you don't need and the script skips it automatically.

Hero

  • The headline words are <span class="hw"> elements; each pops in separately. Give any word the sticker treatment with class="hw hw--chip".
  • The fizz bubbles are generated into .hero-fizz; adjust the count in initFizz() (default 14) or delete the div to remove them.
  • The badge text lives on a curved SVG path. Edit the <textPath> content; keep it around 38 characters so it fills the circle.

Ticker

  • Edit the .tick-item phrases. The two .ticker-group spans must stay identical for a seamless loop, and each group should be wider than the widest screen you care about (six phrases is plenty).
  • data-ticker-speed is pixels per second (default 80).

Why cards

  • Add or remove .why-card articles freely; the grid reflows. Each card's tilt comes from the nth-child rules in the CSS.
  • Cards squish on hover via GSAP; on touch devices they are static.

Flavour switcher (signature)

Desktop with motion allowed gets the enhanced layout: the can column is position: sticky while ScrollTriggers on each panel retint the section and swap the can. Small screens, no-JS, and reduced motion all get the same markup as stacked flavour cards, so nothing is ever hidden or unreachable.

To add a fourth flavour:

  1. Duplicate a .flavour-panel (with its .panel-can) and a matching .stage-can. They are matched by order, so keep both lists in the same sequence.
  2. Add a can--yourflavour class setting --flav and a panel--yourflavour background in the CSS.
  3. Set the panel's data-flavour-color and data-flavour-word.

Stockists

Each stockist is a styled text wordmark with its own type treatment. Replace them with your own stockists, or with real logos as <img> tags if you have permission to use them.

Buy

The can trio mirrors the flavours. The buttons are plain anchors; point them at your shop, Shopify checkout, or wholesale form.

The CSS cans

The product cans are drawn entirely in CSS, sized by one variable so they scale anywhere:

Code snippet omitted: it ships with the download.

  • Sizes: can--lg (240px), can--sm (140px), can--mini (108px), or set --can-w directly.
  • Flavour classes (can--yuzu, can--cherry, can--cuke) only set the --flav band colour.
  • If your product isn't canned, replace .can markup with your own product shot; every animation targets the wrapper (data-hero-can, data-stage-can, data-buy-can), not the can internals.

Options

Attribute Element Values Default Description
data-pop any presence off Rise-and-fade reveal when scrolled into view
data-pop-delay [data-pop] seconds 0 Stagger delay for grouped reveals
data-sticker any presence off Elastic pop-in reveal plus squish hover
data-ticker-speed .ticker px per second 80 Ticker scroll speed
data-flavour-color .flavour-panel hex colour #F2AE1C Section ground colour while this flavour is active
data-flavour-word .flavour-panel text empty Giant background word behind the can
data-hero-can / data-stage-can / data-buy-can can wrappers presence off Marks cans for the hero rise, flavour swap, and buy trio

Accessibility

  • Reduced motion: both the CSS media query and a gsap.matchMedia branch serve a complete static page; the flavour section stays as stacked cards.
  • No JavaScript: the markup is a plain, fully readable document; every animation is an enhancement on top.
  • Keyboard: focus mirrors hover on the sticker cards, and all interactive elements are real links with visible focus outlines (cream on dark grounds).
  • Screen readers: decorative pieces (fizz, badge, ticker, duplicate cans) are aria-hidden.

Dependencies

  • GSAP 3 core + ScrollTrigger (CDN)
  • Lenis smooth scroll (CDN, optional)
  • Google Fonts: Unbounded, Figtree, DM Mono

Browser Support

All modern browsers. The layout uses CSS grid, aspect-ratio, individual rotate properties, and position: sticky, so it needs a browser from roughly 2022 onwards.

Worked examples, the events and programmatic API, and the class reference ship with the download, alongside the full source.