Lexicon / Image

Image

What a picture can do · 7 named effects, each running below

  1. 25Blur-up (LQIP)
  2. 26Ken Burns
  3. 27Duotone
  4. 28Progressive Blur
  5. 29Ordered Dithering
  6. 30Clip-path Reveal
  7. 31Image Comparison Slider
25 / Image

Blur-up (LQIP)

A small blurred stand-in appears at once and the real picture fades in over it — in a box that was already the right size, so nothing jumps.

also called low-quality image placeholder · progressive loading

Two jobs at once: something to look at immediately, and a reserved box so nothing shifts when the real file lands. Layout shift is a ranked Core Web Vital, so the aspect-ratio is not decoration.

How it is builtfigure { aspect-ratio: 3 / 2 } /* the box is reserved before the file lands */ .placeholder { filter: blur(18px); transform: scale(1.1) } .full { opacity: 0; transition: opacity .9s } /* → 1 once loaded */
Open its page
watch it load
26 / Image

Ken Burns

A still photograph is given a slow drift and a slow push in — just enough to feel like time passing.

also called slow pan and zoom · documentary pan

Named for the documentarian who made a career of it. The rule is that the move must be slower than the viewer's attention — if they notice the motion starting, it is too fast.

How it is built@keyframes kb { to { transform: scale(1.14) translate(-2%, 1.5%) } } animation: kb 18s ease-in-out infinite alternate;
Open its page
runs by itself
27 / Image

Duotone

Any photograph, whatever it arrived wearing, comes out in one colour. Drag back to see what it came in as.

also called two-tone mapping · bichromate

A brand-colour treatment that survives any source image. Grayscale the base, then lay a single hue over it with mix-blend-mode.

How it is builtbackground: var(--accent); mix-blend-mode: color; /* over a grayscale base */
Open its page
drag the slider
28 / Image

Progressive Blur

The picture softens towards the bottom, so the caption sits on something readable without a black bar laid across it.

also called gradient blur · layered blur · tapered blur

Stacked layers, each blurring more than the last, each masked to a different band. Far more elegant than a scrim because the image stays legible while the text still reads.

How it is builtbackdrop-filter: blur(Npx); mask-image: linear-gradient(to top, #000, transparent);
Open its page
read the caption

Text sits on light

29 / Image

Ordered Dithering

The picture is cut down to a handful of tones, and the ones that are missing are made up out of a regular grain. Drag to take more away.

also called Bayer dithering · halftone · posterize

Real pixel work — it needs crossorigin="anonymous" and a CORS-clean host, otherwise the canvas is tainted and getImageData throws. Wikimedia sends the header; most museum CDNs do not.

How it is builtconst BAYER8 = [...]; // 8×8 threshold matrix v = v + (BAYER8[y%8][x%8]/64 - 0.5) * spread;
Open its page
drag the slider
30 / Image

Clip-path Reveal

The picture is uncovered by an edge travelling across it, not by fading up underneath.

also called mask reveal · wipe · shape reveal

A wipe has a direction and an edge; a fade has neither. That edge is what makes the reveal feel authored rather than merely delayed.

How it is builtclip-path: inset(0 100% 0 0) → inset(0 0 0 0); transition: clip-path .9s cubic-bezier(.16,.84,.24,1);
Open its page
hover
31 / Image

Image Comparison Slider

Two versions of the same frame, one laid over the other. Drag the divider across to compare them.

also called before/after · juxtapose

One image clipped over another, the clip driven by pointer position. Keep both layers exactly registered or the comparison lies.

How it is builtclip-path: inset(0 calc(100% - var(--x)) 0 0);
Open its page
drag across