crucıble

Amalgam

A wordmark cast in living liquid chrome: a glyph alpha mask shaded by an original OGL metal shader — domain-warped churn, thin specular bands over dark troughs, a fresnel-lit rim, a whisper of chromatic fringing, and one crisp highlight that sweeps the full mark every few seconds. Polished cool steel by default; tint reaches warm bronze/gold.

oglpro

Installation

CLI

npx shadcn@latest add @crucible/amalgam

Manual — install dependencies, then copy the source

npm install ogl

Props

PropTypeDefaultDescription
textstring"AMALGAM"The wordmark rendered as liquid metal.
fontSizenumber120Cap height of the wordmark, in CSS pixels.
fontWeightnumber | string800Font weight of the mask glyphs.
fontFamilystringa heavy cross-platform sans stackFont family used to render the mask. Must be a concrete family (canvas cannot inherit CSS fonts).
letterSpacingnumber2Extra letter spacing in CSS pixels.
colorsAmalgamColorspolished cool steelMetal ramp: { dark, light, tint }.
speednumber1Flow speed multiplier. 1 = default, 0 = frozen churn.
intensitynumber1Overall surface brightness. 1 = default.
amplitudenumber1Liquid wave amplitude — how far the metal churns. 1 = default.
scalenumber1Pattern scale of the flow field. Higher = finer marbling.
sharpnessnumber1Specular band sharpness. Higher = thinner, crisper highlights.
fresnelnumber1Fresnel rim strength along the silhouette.
chromanumber0.14Chromatic-aberration amount — a faint per-channel split at the bands. Defaults to a whisper; push up for a rainbow oil-slick edge.
sweepIntervalnumber6Seconds between the single crisp highlight sweeps that travel the full mark. 0 disables the sweep, leaving only ambient churn.
mouseAnimationbooleanfalseSwap the auto flow loop for pointer-driven flow.
pausedbooleanfalseFreeze the animation at its current frame.
Also accepts all props of React.ComponentPropsWithoutRef<"div">they pass through to the underlying element.

Honors prefers-reduced-motion with a designed static fallback, pauses offscreen and on hidden tabs, and passes className through.