vaweGitHub

Animated backgrounds in CSS and shaders.

A flat colour behind a line of type reads as unfinished. This group holds the ground layers: soft light, grain, dots, tiles and photo particles that move under the copy without competing with it.

Several run in one fragment shader (aurora-drift, ink-warp), one is plain CSS with no shader (light-pool), and one is a plain SVG dot grid (dot-grid-wave). Each one moves from the seek time, not from a clock.

13 components13 with a clip3 to 5.6 s

Pick by how still the frame should feel.

ComponentUse it when
Light poolA matte held frame needs the stillest ground, one soft pool in plain CSS.
Grain fieldA printed or filmic frame should breathe.
Aurora driftSoft bands of light hang from the top and the copy sits low.
Ink warpShort, large copy sits on a marbled ink ground.
Dot grid waveA clean product or data frame needs a quiet travelling wave.
Halftone fieldA physical or retro frame gets a 45 degree dot screen.
Photo particlesA real photo turns into 120,000 lit points.
Simple marqueeRows of tiles should slide for a whole beat.

All 13 components in grounds

  • Aurora drift: final frame of the background animation

    three soft bands of light hang from the top of the frame and fold slowly in one shader while the copy sits low; the light thins out above the type

    Aurora drift

    three soft bands of light hang from the top of the frame and fold slowly in one shader while the copy sits low; the light thins out above the type

  • Grain field: final frame of the background animation

    a quiet printed or filmic frame breathes: a slow tonal ground and film grain that turns over 24 times a second, seeded from the seek time, never from Math.random

    Grain field

    a quiet printed or filmic frame breathes: a slow tonal ground and film grain that turns over 24 times a second, seeded from the seek time, never from Math.random

  • Halftone field: final frame of the background animation

    a physical or retro frame gets a 45 degree dot screen whose dot size waves across the frame while every dot stays in its cell

    Halftone field

    a physical or retro frame gets a 45 degree dot screen whose dot size waves across the frame while every dot stays in its cell

  • Ink warp: final frame of the background animation

    a rich liquid ground for short large copy: marbled ink flows by domain warp in one shader, thinner behind the type

    Ink warp

    a rich liquid ground for short large copy: marbled ink flows by domain warp in one shader, thinner behind the type

  • Dot grid wave: final frame of the background animation

    a clean product or data frame gets a plain SVG dot grid with one travelling wave of scale and brightness, weaker behind the copy

    Dot grid wave

    a clean product or data frame gets a plain SVG dot grid with one travelling wave of scale and brightness, weaker behind the copy

  • Light pool: final frame of the background animation

    a matte held frame gets one soft pool of light that wanders on a seeded path, plain CSS with no shader; the stillest ground of the group

    Light pool

    a matte held frame gets one soft pool of light that wanders on a seeded path, plain CSS with no shader; the stillest ground of the group

  • Marquee along path: final frame of the background animation

    tiles ride one SVG path forever at an even gap, turned with the curve, rolling z-index, 8 percent of the path per second; one element along the path is an option

    Marquee along path

    tiles ride one SVG path forever at an even gap, turned with the curve, rolling z-index, 8 percent of the path per second; one element along the path is an option

  • Simple marquee: final frame of the background animation

    three rows of tiles slide for a whole beat, left, right, left, each row four copies that wrap by one set width at 8 percent per second

    Simple marquee

    three rows of tiles slide for a whole beat, left, right, left, each row four copies that wrap by one set width at 8 percent per second

  • Circling elements: final frame of the background animation

    eight upright tiles orbit one point on a 120 px radius, one linear turn in 10 s

    Circling elements

    eight upright tiles orbit one point on a 120 px radius, one linear turn in 10 s

  • CSS box: final frame of the background animation

    a 200 px cube of bold type turns to another face on a stiff overdamped spring (stiffness 100, damping 30, no overshoot) under perspective 600

    CSS box

    a 200 px cube of bold type turns to another face on a stiff overdamped spring (stiffness 100, damping 30, no overshoot) under perspective 600

  • Pixelate SVG filter: final frame of the background animation

    a photo breaks into square blocks that grow and shrink with one number, size = x / 30 through a convolve, tile and dilate SVG filter

    Pixelate SVG filter

    a photo breaks into square blocks that grow and shrink with one number, size = x / 30 through a convolve, tile and dilate SVG filter

  • Photo particles: final frame of the background animation

    a real photo (filaments, veins, scales) is sampled into 120 000 lit, coloured points that gather from a seeded scatter over 1.5 s and then breathe, filmed through the lens with the film-halation look

    Photo particles

    a real photo (filaments, veins, scales) is sampled into 120 000 lit, coloured points that gather from a seeded scatter over 1.5 s and then breathe, filmed through the lens with the film-halation look

  • Media between text: final frame of the background animation

    a picture grows from zero width inside a line of type on a 0.4 s critical spring and closes on a 0.3 s tween, the words part and wrap

    Media between text

    a picture grows from zero width inside a line of type on a 0.4 s critical spring and closes on a 0.3 s tween, the words part and wrap

Rules that come with this group

grain-field turns over 24 times a second and is seeded from the seek time, never from Math.random.

aurora-drift and ink-warp thin out the light behind the type.

marquee-along-path moves 8 percent of the path per second, and circling-elements makes one linear turn in 10 s.

Chain it into a film.

Copy chains of video components from the recipes, or hand the list to an agent.