Skip to content
GaudiGaudi Design System home

Search documentation

Search every page, heading and paragraph.

LiquidEther

Colored dye follows pointer movement, curls through a retained velocity field, and gradually dissipates.

AnimationsBackgrounds@gaudi/design-system/animations/LiquidEtherView in StorybookSource

Installation

pnpm add github:ahmadassaf/design-system

Import from @gaudi/design-system. Load @gaudi/design-system/global.css once and add transpilePackages: ['@gaudi/design-system'] in Next.js.

import { LiquidEther } from '@gaudi/design-system/animations/LiquidEther';

Usage

import { LiquidEther } from '@gaudi/design-system/animations/LiquidEther';
<LiquidEther height={360} paused={false} />

Examples

Playground

Storybook

API

10 props

Accessibility

The canvas is decorative and hidden from assistive technology. Keep important content in children and provide a pause control for continuous animation. Reduced motion renders a static frame; unsupported WebGL retains the styled container and content.

Notes

  • The playground layers a Gaudi header, hero and working documentation links above the effect. The Demo content switch hides only this foreground; canvas size, animation phase and pause state are retained.
  • A bounded velocity and dye simulation retains, transports, and dissipates each plume. Pointer movement adds dye and momentum; an autonomous drifting source runs when the pointer is absent. Pausing and zero-delta redraws preserve the field, and a seeded plume provides a deterministic reduced-motion still.
  • Visual idea inspired by Liquid Ether from React Bits (MIT + Commons Clause). Independently implemented for Gaudi; no React Bits source, shaders or assets are included.