066

Radial Headline Burst

£10 or the whole Vault, £99

A scroll-scrubbed headline that explodes each character from one centre point into crisp, readable type with a chromatic fringe and spring-like settle.

ScrollTriggerSplitText Lenis intermediate
6 more details
scrubpinningradial-bursttext-animationchromatic-aberration3d-transforms

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

Updated

About this effect

A radial headline effect that releases hidden characters from a shared centre point into a confident, perfectly placed statement as the visitor scrolls. Every character travels from the same centre point, while rotation, scale, opacity, blur and a restrained two-channel fringe resolve with it.

Read the full effect overview

The effect is built for the moment a hero needs to announce itself. ScrollTrigger pins the stage for a deliberate runway, then the characters overshoot their final positions by a fraction and settle into alignment before the page continues.

Radial Headline Burst - GSAP animation effect preview

What's included

8 items
  • Centre-out character burst powered by SplitText, with every glyph calculated from its real rendered position
  • One scrubbed ScrollTrigger timeline that reverses cleanly when the visitor scrolls back
  • Layered response: radial travel, rotation, scale, opacity and blur resolve as one visual gesture
  • Optional two-channel chromatic fringe, tinted from CSS custom properties and automatically omitted on coarse pointers
  • Controlled overshoot and staggered back-out settle for a physical finish instead of a linear snap
  • Pinned runway with separate desktop and mobile distances, all configurable through data attributes
  • Real reduced-motion and no-JavaScript fallbacks leave the headline readable and untransformed
  • Multiple independent headlines can share one page without the script knowing anything about the surrounding design

Perfect for

5 use cases
  • Agency and studio hero sections that need a memorable first scroll
  • Product launches with a single statement that should assemble with ceremony
  • Editorial opening spreads where typography is the visual subject
  • Portfolio case studies that turn a project title into a scroll-led entrance
  • Campaign landing pages that want a compact, high-impact type transition

How it works

2 sections

After document.fonts.ready, each [data-radial-burst-text] element is split into characters and measured against the optional [data-radial-burst-origin] point. GSAP positions every character at that shared origin, then a pinned ScrollTrigger scrubs a timeline that moves each one toward its measured resting position, with the stagger ordered from the centre of the string outward.

The first leg also resolves rotation, scale, opacity, blur and the optional text-shadow fringe. A second, overlapping leg carries each character a few percent beyond rest with back.out before bringing it back to x: 0, y: 0 and scale: 1. The mobile branch keeps the same geometry with shorter travel and transform-only rendering; the reduced-motion branch creates no trigger and shows the original text immediately.

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

Lighthouse, as measured

Google Lighthouse on this effect'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.

Paid effect

Purchase to unlock the code.

Buying Radial Headline Burst 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.

£10 Standard license, unlimited projects

Browse free effects

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

Documentation

Quick Start

1. Add to your HTML <head>:

Code snippet omitted: it ships with the download.

2. Add before the closing </body> tag:

Code snippet omitted: it ships with the download.

3. Add the effect to your <body>:

Code snippet omitted: it ships with the download.

The script waits for document.fonts.ready, measures each character against the origin, and creates a pinned, scrubbed ScrollTrigger runway. The headline starts hidden at the origin and resolves as the visitor scrolls down.

Using It With Your Own Design

What the effect needs from your markup:

  • One wrapper with data-radial-burst per scene.
  • One text element with data-radial-burst-text inside each wrapper. Keep the real headline text in this element; the script splits it into character spans at runtime.
  • An optional [data-radial-burst-origin] element. Its centre is the explosion point. If omitted, the wrapper's centre is used.
  • An optional [data-radial-burst-progress] element for a three-digit scrub percentage. It is updated by ScrollTrigger and can be omitted without changing the effect.

What is only the demo's styling:

The supplied demo is a plain dark hero: a neutral near-black stage, one kicker line and the headline itself. The Mona Sans type and the fringe colours are showcase styling only; replace them freely. The two fringe channels are read from the --fringe-a and --fringe-b CSS custom properties on the headline, so retinting the split is a stylesheet change and needs no JavaScript edit. The effect does not query any demo class name and only reads the documented data-radial-burst-* hooks.

CSS the effect depends on:

  • The scene needs position: relative and a defined height. For a hero, use height: 100svh or another height that can hold the pinned composition.
  • The text needs to be positioned over the scene, normally with position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);. GSAP animates the generated characters' x, y, rotation and scale, so do not add another transform to the individual character spans.
  • Keep .has-js [data-radial-burst-text] pre-hidden and reveal it after splitting, as the supplied stylesheet does. The reduced-motion rule must restore visibility: visible, and the no-JavaScript state must remain readable.
  • The scene should use overflow: hidden or overflow: clip so the burst can leave the frame without creating horizontal page scroll. Decorative origin elements should have pointer-events: none.
  • Load the same display font before the text is split. The script waits for document.fonts.ready, but the font still needs to be available to the browser.

Options

Attribute Values Default Description
data-radial-burst marker required Identifies a burst scene.
data-radial-burst-text marker required Text element to split into characters.
data-radial-burst-origin marker wrapper centre Element whose centre becomes the shared launch point.
data-radial-burst-progress marker optional Receives the scrub progress from 000 to 100.
data-radial-burst-runway 260–1800 pixels 820 Desktop pinned scroll distance.
data-radial-burst-mobile-runway 220–1200 pixels 500 Pinned scroll distance on coarse-pointer devices.
data-radial-burst-stagger 0–0.12 seconds 0.026 Delay between characters in centre-out order.
data-radial-burst-intensity 0.2–1.6 1 Scales the initial rotation and settle overshoot.
data-radial-burst-blur 0–12 pixels 7 Initial character blur; capped at 3px on touch.
data-radial-burst-fringe true, false true Enables the two-channel initial text-shadow fringe on fine pointers. Colours come from --fringe-a and --fringe-b.

Values outside the documented ranges are clamped. Set data-radial-burst-fringe="false" when the surrounding design does not need the colour split.

Accessibility

  • Reduced motion: gsap.matchMedia() skips SplitText animation and ScrollTrigger pinning when prefers-reduced-motion: reduce matches. The headline stays visible, readable and untransformed.
  • No JavaScript: the supplied CSS only hides the headline under .has-js, which is added by the script path. Without JavaScript, the original text is visible.
  • Keyboard and semantics: the effect is scroll-driven and adds no custom interaction or keyboard trap. Keep the supplied text element as a real heading, and preserve its accessible name if your design uses nested decorative markup.
  • Touch: coarse pointers keep the radial burst with a shorter runway and transform-first rendering. The expensive fringe channel is removed on touch devices.
  • Colour: the chromatic fringe is decorative; the final headline uses the normal text colour and does not rely on the effect to be readable.

Dependencies

Required:

  • GSAP 3.12+ (the demo uses 3.15.0)
  • ScrollTrigger
  • SplitText

Optional:

  • Lenis 1.x for smooth scrolling. The supplied demo wires Lenis to the GSAP ticker; native scrolling works without it.

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