Matrix orb
A liquid orb that breathes while idle, ripples while listening and churns up droplets while it thinks.
Installation
npx shadcn@latest add fujiDevv/calamansi-ui/matrix-orbHow to use
import { MatrixOrb } from "@/components/ui/matrix-orb"export function Demo() {return <MatrixOrb state="thinking" variant="calamansi" />}
Props
Options you can pass to customize this component.
stateoptionalidlelisteningthinkingWhat the orb is doing. Each state has its own motion, and changing it blends from the state currently on screen.
leveloptionalnumberAmplitude from 0 to 1, for driving the orb from a real signal such as an audio level. Omit it and the orb runs its own envelope.
variantoptionalwhitecalamansislatecitrusAccent the dots are painted in — brand lime by default. White is the ink, read from the theme, so the sphere stays monochrome and follows light and dark.
coloroptionalstringDot colour, overriding the palette accent. A change recolours the sphere without restarting its motion.
sizeoptionalnumberWidth and height of the orb in pixels. The gap under its caption scales with it.
lobesoptionalnumberSatellites around the core, 2 to 10. More of them means a busier body and shorter necks between the lobes.
gooeyoptionalbooleanRun the fuse at all. Off, the circles simply overlap and you can see the body's construction.
viscosityoptionalnumberThe blur behind the fuse, in pixels — how far a lobe reaches for its neighbour before the neck parts. Defaults to 0.078 of the stage, which at five lobes leaves neighbouring bulges just touching: one silhouette with a dip between them, rather than a pinwheel of separate drops. It scales with the stage, so the body reads the same at every size.
thresholdoptionalnumberThe alpha ramp's slope — how hard the fused edge is, and how much a lobe stretches before it comes off.
labelsoptionalPartial<Record<MatrixOrbState, string>>Caption under the orb, per state. Defaults to "Idle", "Listening" and "Thinking".
captionoptionalbooleanShow the caption under the orb. Turn it off when the orb is a small decorative indicator instead of a status the reader is reading.
classNameoptionalstringExtra classes merged onto the orb's wrapper.
Dependencies
License & Usage
- •Free to use and modify in personal and commercial projects.
- •Attribution to Calamansi UI is appreciated when using a component.
- •Please do not resell the components as your own kit.