crucıble

Argon

SVG gas-discharge tube lettering — ignition travels along each glyph's tube with a seeded strike flicker, then holds with a faint mains hum; the letter under the pointer destabilises. Neon, argon and mercury presets; fully lit and steady under reduced motion.

cssfree

Installation

CLI

npx shadcn@latest add @crucible/argon

Props

PropTypeDefaultDescription
textstring"Open late"The lettering. Use "\n" for a stacked multi-line sign.
gasArgonGas"argon"Gas fill: "neon" (red-orange), "argon" (ice blue), "mercury" (cold white), or any CSS color.
as"h1" | "h2" | "h3" | "p""h2"Element the (visually hidden) real text is rendered as, so it stays a heading.
fontSizenumber96Glyph size in px at natural size; the sign scales down to fit its container.
strokeWidthnumber2.4Lit tube stroke width in px at natural size.
clipsbooleantrueRender mounting clips beneath each glyph and a back-wire behind every line.
igniteOnViewbooleantrueWait until the sign scrolls into view before igniting (otherwise ignite on mount).
intensitynumber1Glow strength: bloom size/opacity and interior gas fill. 0–2.
idlebooleantrueWhen no pointer has been present for ~1.5s, glyphs occasionally destabilise on their own.
pausedbooleanfalseHold the sign fully lit and steady — no intro, hum, or flicker.
refReact.Ref<ArgonHandle>Imperative handle: replay() and flicker(index?).
Also accepts all props of Omit<React.HTMLAttributes<HTMLElement>, "children"> — they pass through to the underlying element.

Honors prefers-reduced-motion with a designed static fallback, and passes className through.