RemotionUI

Neon Flicker Text

Light a word tube by tube, with a mains hum that never quite settles. Install with npx remotion-ui@latest add neon-flicker-text.

PrimitivePrimitives

neon-flicker-text30fps · 960×540
Install
$ npx remotion-ui@latest add neon-flicker-text

A neon sign starting the way neon actually starts.

import { NeonFlickerText } from "@/remotion/primitives/neon-flicker-text";

<NeonFlickerText
  text="Open all night"
  order="random"
  glowColor="#f472b6"
  staggerInFrames={5}
/>

A gas-discharge model, not random opacity

Three things separate this from Math.random() on opacity:

  • An unlit tube is still there as cold glass (offColor), not invisible.
  • The strike probability climbs across each character's own window, so the sign resolves instead of sputtering forever.
  • A lit tube keeps a mains hum and an occasional stutter.

That last one matters more than it sounds. A settled state with no hum is what makes a neon effect look like a static PNG two seconds in.

Tuning

hum is the depth of the idle breathe and buzz is the chance per beat that a settled tube drops out. glowSize is the halo radius in px at full brightness; the glow is four stacked shadows, so it stays soft at large sizes instead of banding.

order="random" is the natural fit — tubes in a real sign do not strike left to right — and the shuffle is seeded, so the same seed renders the same order everywhere.

Going out

exit stutters the tubes back off rather than fading them, because an exit is not an entrance played backwards. Set flickerOnExit={false} for a clean fade.

A gas-discharge model: unlit tubes are still cold glass, strike probability climbs so the sign resolves, and a lit tube keeps a hum. A settled state with no hum looks like a PNG.

Agent notes

Install first, then import the copied source component locally. AI guide →

Import
@/remotion/primitives/neon-flicker-text
  • Use when: frame-level motion primitives and reusable animation wrappers.
  • Customize: text, glowColor, glowSize, offColor, plus copied source for timing, layout, colors, and typography.
  • Rule: do not import this component from the remotion-ui npm package; it is copied into your project.

Usage

Example
import { NeonFlickerText } from "@/remotion/primitives/neon-flicker-text"; <NeonFlickerText text="Open all night" order="random" glowColor="#f472b6" />

API Reference

PropTypeDescription
textstringThe sign.
glowColorstringColour of the halo around the tube.
glowSizenumberHalo radius in px at full brightness. Four stacked shadows, so it stays soft.
offColorstringThe tube with no gas lit — cold glass, not invisible.
offLevelnumberBrightness of an unlit tube, 0–1.
humnumberDepth of the mains hum once the sign has settled.
buzznumberChance per beat that a settled tube stutters. 0 disables it.
flickerOnExitbooleanStutter back off instead of fading cleanly.
order"start" | "end" | "center" | "edges" | "random"Which tube strikes first. `random` is the natural fit.
staggerInFramesnumberFrames between one tube striking and the next.
durationInFramesnumberLength of one tube's ignition. Longer sputters more.
seednumberSeeds the flicker and `order="random"`.
exitAtInFramesnumberFrame the sign starts cutting out on.

Related

On this page