∞ forever components

Kinetic Typography

Vapor Condense

300 teal particles drift as a glowing haze then gradually condense into the crisp word VAPOR via cosine easing, then dissolve back — looping continuously.

canvasheavy complexitymoderate motionclickmobile-ready

Open on the canvas to copy the code → Free account · 3 copies a day · membership goes unlimited

Live demo — the real component, running in a sandbox. One self-contained HTML file, zero dependencies. Open it on the canvas →
1

When to use it

Dark-mode hero sections, loading screens, or ambient brand reveals where a word needs to emerge from atmospheric noise.

When not to

Long words that exceed canvas width. Contexts requiring fast legibility — the condense phase takes half the cycle.

Working with an AI agent

Every component ships agent-ready metadata. An example instruction for this one:

Change WORD to "DREAM", increase N to 450, and shift the teal palette by setting r/g/b base to rgba(120,80,220) in the color calculation. Theme: dark tokens live in :root, the light variant in :root[data-theme="light"]; ?theme=light or a {type:'forever:theme'} postMessage switches at runtime.

Safe to edit

  • word content (WORD constant)
  • particle count (N=300)
  • cycle speed (t += 0.0052)
  • drift spread (drift=18*scale)
  • color teal base (r/g/b formula in frame loop)
  • theme tokens (:root dark defaults + [data-theme=light] overrides)

Keep intact

  • offscreen word sampling only after positive element layout; ResizeObserver repaint; zero-size mounts sleep
  • visibilitychange pause/start
  • prefers-reduced-motion static frame
  • IIFE wrapper
  • theme hook (?theme= bootstrap + forever:theme message listener + theme tokens)
  • demo-v1 preview lifecycle: initialize demoEnabled from window.__foreverPreview and stop attract work on the window forever:interactive event; retain manual feedback, settling, cleanup and explicit sessions
  • Enter/Space activation and visible focus; manual word/geometry changes finish before the renderer sleeps

Known limitations

  • Word-mask shapes depend on the available local monospace font.
  • Click switches between haze and condensed word; pointer nudge remains subtle.
  • Canvas aria-label names activation; update it when adapting the word.
  • State remains local to each mounted instance; format/theme remount preserves takeover, not component values.

typographyparticlescanvascondensevaporambientgenerative

More Kinetic Typography components

  • Weight Morph WaveEach letter of a word pulses font-weight and vertical scale in a staggered sine wave, shifting hue from cyan to blue.
  • Scramble DecodeNeon-green monospace words scramble through random glyphs then lock left-to-right like a terminal decrypting. Auto-cycles; click skips to next word.
  • Split-Flap BoardSix amber tiles cycle through letters to spell airport-style words (DEPART, ARRIVE, ONTIME, BOARDS) on a dark charcoal background with a rotateX flip…
  • Gradient ShimmerBold "SHIMMER" text with a rainbow gradient clipped to the letterforms, continuously panning for a glossy iridescent sweep on deep umber.
  • Glitch RGB SplitRed and cyan pseudo-element copies of GLITCH drift and randomly snap with clipped displacement, simulating a CRT RGB-split glitch on near-black.
  • Marquee TickerTwo rows of bold words scroll in opposite directions — yellow left, teal right — with red bullet separators on a dark green background, news-ticker style.