Aperture Bloom
Web (React)
A centred, noise-warped pair of WebGL rings inked in the theme colours that leans toward the pointer.
A full-bleed Three.js shader draws a tight aperture of two noise-warped rings at the centre of the frame. In light mode they are inked on --background in --primary with a --muted-foreground fringe; in dark mode they glow additively, a --foreground core over a --primary fringe. It follows palette and mode changes live, and drifts slightly toward the pointer. It fills its positioned parent, pauses when off screen and renders a still frame when the user prefers reduced motion.
Installation
CLI
npx @modus-ui/cli add aperture-bloomManual
- Install
three. - Copy the code from the component tab.
- Create a file at
components/ui/aperture-bloom.tsx. - Paste the code.
Usage
tsx
Props
| Prop | Type | Default | Description |
|---|---|---|---|
speed | number | 1 | Animation speed multiplier (0 to 3). |
size | number | 1 | Ring thickness multiplier. |
length | number | 1 | Ring radius multiplier (0.35 to 2.5). |
opacity | number | 1 | Opacity of the glow (0.05 to 1). |
hue | number | 0 | Hue rotation in degrees (-180 to 180). |
saturation | number | 1 | Saturation multiplier (0 to 2). |
brightness | number | 1 | Brightness multiplier (0.35 to 1.65). |
coreColor | string | theme tokens | Colour of the ring's bright core. |
fringeColor | string | theme tokens | Colour of the soft fringe and ambient wash. |
backgroundColor | string | theme --background | Scene background behind the glow. |
Comments