CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/spintextcirclefx

Spin Text Circle FX

Up to three concentric rings of text spinning around an optional centre badge or image. Each ring has its own text, colour and speed (negative speed reverses direction); the radii pack inward automatically based on font sizes.

ReactImageInteractiveFont#circular#spin#rings#typography#badge

Usage

import SpinTextCircleFx from '@crazygl/hero-spintextcirclefx';

<SpinTextCircleFx
  ring1Text="REACT · BITS · COMPONENTS · "
  ring2Text="DESIGN — MOTION — CODE — "
  ring1Speed={2}
  ring2Speed={-1}
/>

Customise

  • Ring 1 (outer): ring1Text, ring1Color, ring1FontSize, ring1Speed (turns/min, negative reverses).
  • Ring 2 / Ring 3: ring2Enabled / ring3Enabled toggles plus matching text, colour, font size and speed.
  • Hover: hoverModenone or pause (pauses all rings on pointer over).
  • Centre badge: showCenterDisc, centerDiscType (text/image), centerText, centerImage, centerSize, discColor, centerTextColor.
  • Typography: headingFontFamily, headingFontWeight.
  • Backdrop: transparentBackground, bgColor.

Best for

  • Brand and studio landing badges with a high-fashion, editorial spin.
  • "New / available for work" rotating seals around a logo.
  • Looping marquee callouts where opposing ring directions add motion depth.
01 · Install the package

One command, zero config.

npm install @crazygl/hero-spintextcirclefx
02 · Render the component

Import once, drop it in.

The component takes the same props you see in the live customizer on the right — every default ships poster-quality.

hero.tsx
import SpinTextCircleFX from '@crazygl/hero-spintextcirclefx';

export default function Landing() {
  return (
    <SpinTextCircleFX />
  );
}
03 · Use it in a page

SSR-safe by default.

The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.

page.tsx
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';

import SpinTextCircleFX from '@crazygl/hero-spintextcirclefx';

export default function Page() {
  return (
    <section>
      <SpinTextCircleFX
        heading="Say hi."
        subheading="Your new hero."
      />
      <article>
        <h2>Welcome</h2>
        <p>Your content keeps its own voice below the hero.</p>
      </article>
    </section>
  );
}
You might also like

Similar heroes

Circular Text Pro

Three concentric rings of text spinning at independent speeds, with a centred wordmark and accent dots — a fully composed badge.

Rotate Text FX

Each letter rotates independently with offset phase. Trigger the rotation as a one-shot entrance on load, or let it spin forever.

Rotating Text Badge

A self-contained rotating sticker badge — text on the rim of a circle, an icon (or your own word) in the middle, next to a heading.

Jumpy Text FX

Each letter bounces in independently with spring-damped physics, then idles with a subtle hover-bounce — text that feels alive.

Proximity Text FX

Letters near the cursor scale up and brighten; letters further away dim and shrink — an inverse-distance attention effect.

Scroll Text FX

Each letter scales, rotates and brightens as it passes the scroll midpoint — an editorial mid-line emphasis effect.
Live customizer

Spin Text Circle FX

TextColourFont size51pxSpeed2turns/minTurns per minute. Positive spins clockwise, negative counter-clockwise, 0 stops.Enable ring 2TextColourFont size38pxSpeed-1turns/minEnable ring 3TextColourFont size32pxSpeed1turns/minOn hoverShow centre discFontWeight600Transparent backgroundBackgroundInteractivityWhich input drives the hero — try Scroll if you want the page to drive motion.
CrazyGL · crazygl.comProgrammable hero sections for real websites.