Skip to content

Displacement Smear Type

A headline that smears along the pointer's direction of travel with a real accumulation blur.

Probrutalisteditorialneon
Category
Text Effects
Added
2026-09-21
Deps
none
Updated
2026-09-21

This is a viberdy Pro component

The live preview, the props panel and the write-up are open to everyone. The full source, the AI prompt and CLI install are part of Pro.

Preview
pointer velocity
MOMENTUM
sweep across the word

Props

4
0.9
180
0.22
No runtime dependencies
"use client";

import { useEffect, useRef } from "react";

/**
 * Type that smears along the direction the pointer is travelling.
 *
 * The blur is an ACCUMULATION, not a Gaussian: several copies of the line,
 * offset along the velocity vector with falling opacity. That is how motion
 * blur is actually produced in real-time rendering, and it is the difference
 * between type that looks fast and type that looks out of focus.
 */
export function DisplacementSmearType({
  text = "MOMENTUM",
  ghosts = 4,
  strength = 0.9,
  falloff = 180,
  smoothing = 0.22,

  // ---------------------------------------------------------------
  // Full source available with a viberdy Pro subscription.
  // https://viberdy.dev/pricing
  // ---------------------------------------------------------------
}
Notes

About this text effect

A CSS blur cannot make type look fast. Gaussian blur is symmetric, so it always reads as out of focus; motion is directional, and the way real-time rendering fakes it is accumulation — the same frame drawn several times, each offset further along the velocity vector, each fainter than the last. That is what this does, and the details around it are what make it convincing. The copies trail behind the motion rather than straddling it, because a straddled stack reads as a double image. The opacity ramp falls toward zero so the stack sums to roughly the original density instead of blowing the type out into a slab. The displacement is weighted by a Gaussian on each glyph's distance from the pointer, so the line bends around the cursor rather than sliding as a block. And the velocity is run through an exponential moving average inside a rAF loop rather than being set from pointer events — which is the detail almost everyone misses, because a stationary pointer emits no events at all, so an event-driven smear freezes at full stretch the instant you stop moving. Feeding the average a per-frame delta that becomes zero when nothing moves is what lets it relax back to rest. Glyph centres are measured once at rest and again after webfonts resolve, since measuring during the animation would read the transformed position and feed the displacement back into itself.

Curator’s note

The decay is the part people miss — drive the smear only from pointermove and it freezes at full stretch the moment the cursor stops.

Related

Pairs well with

Matched on shared tags and category — the entries most likely to be used alongside this one.

Featured
NewPro

Split Flap Board

text effects

A real Solari departure board — four layers and a hinge, with reels that land apart because they travel different distances.

typeflipboard
Featured
NewPro

A rotating word wheel built on a real cylinder — derived radius, accumulated rotation, no backwards spin on the wrap.

type3dcarousel
Featured

Oversized, tightly-stacked headline words that reveal in on mount — big type as sculpture.

herotypographyeditorial