Skip to content

No.111 · Backgrounds

Ribbon Flow

Translucent ribbons drift across the field and add light where they cross — silk, or aurora seen edge-on.

The prompt

Written for the variant you picked above: Aurora

Create a background of translucent ribbons. Each ribbon is a filled band between two edges; each edge is the ribbon's centre line plus a thickness offset. The centre line is a sum of two travelling sines (different frequencies and speeds per ribbon) and the thickness itself breathes along the ribbon, so it twists between thick and thin like a piece of silk turning in air. Fill each band with a horizontal linear gradient that is transparent at both ends and ~33% opacity in the middle so ribbons fade in and out at the edges; add a hairline 25% stroke. Composite with globalCompositeOperation "screen" over a near-black background so overlaps add light and crossings glow. One ribbon per colour in the colours prop. The pointer bends ribbons: edge points near the cursor are pushed away along y with a Gaussian falloff (radius ≈ 130px, up to 46px), easing in and out. Draw at ~30fps, pause offscreen or in hidden tabs, cap DPR at 2, and draw a single still frame under reduced motion. Selected variant — Aurora: Four ribbons in cool aurora tones — #8fa8d8, #a898e0, #7fc4c8, #d8a8c8 — on #08060c.

Notes

Interaction
The cursor pushes the ribbons aside as it passes over them.
Motion
Continuous sine travel per ribbon; ~30fps canvas; cursor influence eases at 6% per frame.
Accessibility
Canvas is aria-hidden; reduced motion draws a still frame and disables the cursor effect.
Responsive
Fills its container; segment count scales with width.
On touch
No cursor bend on touch; the ribbons still drift.

Featured

301 components