axi0motion

Fuzz

The text shivers in torn slivers like a weak signal, with thin red and blue edges; hovering turns it up and a click jolts it.

  • enhancer
  • canvas
  • hover
  • glitch
  • since 0.2

Background Studio: tune it below, then copy the code

Your system asks for reduced motion: the demo shows its final state and nothing moves.

Live demo

Fuzz example

Not found

Controls

0.18
0.5
0.3 em
1 px
60

Code

It follows the controls above: change an option and the code changes with it.

<script src="https://search.axi0.io/axi0/motion/motion.js" defer></script>

<p class="m-demo-xl" data-motion="fuzz">Not found</p>

The wrappers: Fuzz.tsx (React, TypeScript) and Fuzz.vue (Vue). Both render the same attributes as the HTML; the loader does the rest.

Options

AttributeDefaultWhat it does
data-motion-base0.18Fuzz at rest
data-motion-hover0.5Fuzz while hovered
data-motion-range0.3Widest shift
data-motion-band1Sliver height
data-motion-axisxDirection of the shifts
data-motion-fps60Frames per second
data-motion-splittrueRed and blue edges
data-motion-color1#ff2e63First edge
data-motion-color2#08d9d6Second edge

Accessibility

The words stay real, selectable text in their places (painted transparent while the canvas shows them) and the canvas is aria-hidden, so readers hear the text once and nothing reflows. Reduced motion shows the plain text. The frame loop stops off screen and in hidden tabs.

Size

fuzz.js is 1.4 KB gzip, with text-kit.js 3.2 KB it needs. A page loads the loader (2.9 KB) and core.js (1.4 KB) once, whatever it uses.