Fluid Orb React component for Tailwind CSS v4
v1.0.1Updated in 1.2.1
A React WebGL orb with drifting fluid shading for AI voice assistants and ambient loading states, inspired by ChatGPT's voice mode.
Ambient: the color patches drift left, right, up, down and diagonally on their own, blending and reforming with no interaction required. The top of the orb stays near white (highlightColor) while the middle and bottom take a pale tint and the full color. Honors prefers-reduced-motion by holding a still frame.
Fluid Orb is a free React component in the React AI components category, written in TypeScript for React 19 and Tailwind CSS v4. It installs as source with npx wingo-ui@latest add fluid-orb, together with UIProvider.
Add to a project
Requirements: React 19 and Tailwind CSS v4, in Next.js (App Router or Pages), Vite or React Router. Installation guide · Next.js setup · Vite setup
npx wingo-ui@latest add fluid-orbUsage
Import FluidOrb from @/components/ui/fluid-orb.
import FluidOrb from "@/components/ui/fluid-orb"
export function Demo() {
return <FluidOrb size={280} color="#F75001" />
}Props
colordefault"#1A73F2"stringAny CSS color for the fluid: hex, rgb(), hsl(), oklch(), a name or var(--token). The middle and bottom bands are derived from it (a pale tint and the full color), while the top takes highlightColor. Anything the browser cannot parse falls back to the original blue.
sizedefault240numberDiameter of the orb in pixels. The canvas renders at up to 2x device pixel ratio, so it stays crisp at any size.
highlightColordefault"#FCFFFF"stringAny CSS color for the top of the orb, where the fluid thins out. The pale middle band is mixed from it and color. Anything the browser cannot parse falls back to near white.
turbulencedefault0.8numberHow far the noise pushes the bands into each other. 0 gives smooth horizontal bands, higher values give deeper, more tangled waves.
speeddefault1numberPlayback rate of the drift. 1 is the original pace, 0 holds the current frame, and changing it mid-flight bends the motion without a jump.
pauseddefaultfalsebooleanFreezes the drift on the current frame; color, size and turbulence still update. Unpausing picks up where it stopped.
classNamestringExtra classes merged onto the root element (data-slot="fluid-orb"). Other div props are spread onto it too.
styleReact.CSSPropertiesInline styles merged after the size, so a width or height here overrides the size prop.
Examples
Voice assistant states
Tap the mic to move from idle to listening to thinking; speed and turbulence follow, bending the motion without a jump.
Colors
Any CSS color; the middle band is mixed toward highlightColor, here pink-white for the purple orb.
Empty AI chat
A small, slow orb above the greeting and a few suggested prompts.
Dependencies
Files
- components/ui/fluid-orb.tsx
FAQ
Is the React Fluid Orb component free?
Yes. The source is free and needs no account: copy it from the Code tab or install it with the CLI.
How do I install Fluid Orb?
Run npx wingo-ui@latest add fluid-orb. It also adds the Wingo UI item it builds on (UIProvider). With shadcn, run npx shadcn@latest add https://wingo-ui.com/r/fluid-orb.json.
See also
Used in
More React AI components
Articles using this component
- Magic UI Alternatives: 5 Animated React Libraries Compared
Comparisons and alternatives11 min read
Credits
- •Inspired by chatgpt.com