Demos

Every behavior, theme, and mode. Open the theme picker to watch the themed variants re-skin with Vanilla Breeze.

1. Legacy <blink> emulation

Drop-in mental model. The classic on/off blink — but pausable and reduced-motion safe.

This is what the old <blink> looked like.

2. Behaviors

blink (hard on/off), pulse (soft fade), flicker (irregular flutter). rate sets the cycle time.

behavior="blink"

classic blink

behavior="pulse"

soft pulse

behavior="flicker"

tired fluorescent

3. count — finite blinks, then stop

Blink three times to grab attention, then settle. Reload to replay.

Look here!

4. Surface themes

mode="neon" — a buzzing neon sign

OPEN ALL NIGHT

mode="crt" — green phosphor glow

SYSTEM READY

mode="terminal" — steady text, blinking cursor

C:\> _

mode="warning" — amber hazard panel

⚠ Low Battery

mode="alert" — flashing red banner

● REC

mode="police" — alternating red/blue

PULL OVER

mode="vegas" — a glowing gold sign

JACKPOT

5. mode="morse" & mode="decode" — blink it out in code

morse blinks the text out as International Morse code (with a dot/dash caption). decode flickers each unit through random glyphs, then locks onto the real text — both driven by a small requestAnimationFrame loop.

SOS
HELLO WORLD
DECODING TRANSMISSION

6. Per-unit motion modes

These split the text into per-character spans and animate each with a staggered delay, so the effect ripples across the words. Add unit="word" to animate whole words.

mode="wave" — a blink travels across

catch the wave

mode="twinkle" — each letter on its own clock

twinkle twinkle little star

mode="sparkle" — twinkle with a glint

✦ sparkle ✦

mode="rainbow" — spectrum, blinking

taste the rainbow

mode="chase" — theater-marquee chase

chasing lights around

mode="glitch" — jittery chromatic blink

s y s t e m _ e r r o r

mode="cascade" — a soft falling pulse

a soft falling cascade

mode="typewriter" — typed out with a caret

now typing…

mode="zoom" — letters swell toward you

zoom in and out

mode="flip3d" — split-flap tumble

DEPARTURES

mode="swing" — pendulum letters

swing it

mode="shake" — nervous jitter

shaken not stirred

mode="heartbeat" — double-thump pulse

♥ ba-dum ba-dum ♥

7. unit="word" — animate whole words

Any per-unit mode can run per word instead of per letter.

mode="cascade" unit="word"

one word at a time

mode="twinkle" unit="word"

whole words twinkling now

8. The multi-step engine

With behavior="steps" (or any step mode) the blink advances through N steps across one cycle, and each step is its own style state — data-step="0"…data-step="N-1". A plain blink is the 2-step case. step-durations sets how long each step holds; --blink-step-ease and --blink-step-timing morph between steps (and can differ per step).

mode="extrude" — isometric 3D punch toward you

PUNCH IT

mode="collapse" — squash flat, then pop

collapse

mode="outline" — solid ↔ hollow

OUTLINE

mode="morph" — a 4-step colour + transform sequence

METAMORPH

mode="depth" — a true-3D punch toward you

DEPTH

mode="revolve" — flips to the back and around

REVOLVE

step-by="letter" — the sequence ripples across the letters

Every unit runs the step cycle offset by its index, so the states travel across the text rather than changing in lockstep.

RIPPLE
CASCADE OF COLOUR

behavior="steps" — roll your own with per-step timing

A custom 3-step traffic light: green holds longest, yellow briefly, red a while (step-durations="6 1 4"), and each light eases in with its own timing — all via blink-wc :is(.blink-content, .blink-char)[data-step='K'] { … }.

●

9. Programmatic control

start(), stop(), and toggle() work just like the old <blink>. The component also fires blink-cycle on each blink.

Control me with the buttons.