← All components
Surfaces / effect

Dither Veil

An interactive image veil with five complete dither families, trails and a keyboard reveal.

Open in studio ↗
PLAYGROUND
Live preview
Preparing preview…

Take it with you.

SOURCE ACCESS

Preview freely. Unlock the files.

Enter the shared password to copy the complete source, download every file, and install components in your app.

Access lasts 24 hours. Your preview settings stay with you.

Component notes

  • Preserves Bayer, blue noise, line processing and complete Atkinson and Floyd–Steinberg diffusion kernels, reveal trails, rim and click bursts.
  • Original local studio sculpture media is bundled. The primitive has no implicit image URL: supply src and meaningful alt text, or use Demo for the complete media scene.
  • Arrows position the reveal, Enter or Space reveals, and Escape restores the veil. Reduced motion settles the image and gives an immediate reveal.
  • DPR is capped at 1.5; diffusion deliberately caps its grid at 512×512 and enlarges cells when necessary. Stale image loads are ignored; readable image/GPU failure and retry remain.
React 19.2Modern browsersWebGL

React Bits — David Haz · MIT + Commons Clause. Reuse explicitly authorized; see bundled exact notice.

Props

PropTypeDefaultDescription
srcstringundefinedCaller-owned image source. The primitive requests no image when omitted; Demo and gallery controls supply the bundled local artwork.
altstring"Image with an interactive dither veil"Meaningful image description; Demo and gallery controls describe the bundled artwork.
pattern'bayer' | 'noise' | 'atkinson' | 'floyd' | 'lines'"floyd"Pattern; accepted ranges and choices are shown in the controls.
fit'contain' | 'cover'"contain"Image fitting; accepted ranges and choices are shown in the controls.
palette'duotone' | 'rgb'"duotone"Palette; accepted ranges and choices are shown in the controls.
inkColorstring"#120f17"Ink; accepted ranges and choices are shown in the controls.
paperColorstring"#f4f1ea"Paper; accepted ranges and choices are shown in the controls.
pixelSizenumber2Pixel size; accepted ranges and choices are shown in the controls.
levelsnumber2Levels; accepted ranges and choices are shown in the controls.
contrastnumber1.15Contrast; accepted ranges and choices are shown in the controls.
brightnessnumber0Brightness; accepted ranges and choices are shown in the controls.
revealRadiusnumber200Reveal radius; accepted ranges and choices are shown in the controls.
softnessnumber0.6Softness; accepted ranges and choices are shown in the controls.
lingernumber1Trail linger; accepted ranges and choices are shown in the controls.
rimnumber0Rim intensity; accepted ranges and choices are shown in the controls.
rimColorstring"#a78bfa"Rim color; accepted ranges and choices are shown in the controls.
reversebooleanfalseReverse reveal; accepted ranges and choices are shown in the controls.
wanderbooleanfalseAutomatic reveal; accepted ranges and choices are shown in the controls.
clickBurstbooleantrueClick bursts; accepted ranges and choices are shown in the controls.
pausedbooleanfalseStops decorative motion while preserving useful content and interaction.
replayTokennumber0Change to restart decorative phase without remounting content; static prints and agent activity retain their state.
classNamestring''Additional scoped host class.
styleCSSPropertiesundefinedInline host styles; caller owns container layout.