Your system asks for reduced motion, so VFX-JS draws nothing. Demos on this site show plain HTML.

Type

HalftoneParams

effects/src/halftone.ts:224 ↗
import type { HalftoneParams } from "@vfx-js/effects";

Properties

angle

angle: number

Global grid rotation in degrees, added to per-channel angles.

background

background: [number, number, number, number]

SRC-OVER backdrop behind the dots, RGBA in [0, 1] (non-premul). Default [0, 0, 0, 0].

blackAmount

blackAmount: number

How much black ink to use during CMYK separation, [0, 1]. CMYK only: 1 = max GCR (k = 1 - max(rgb)); 0 = pure CMY, no K. Lowering it preserves hue in dark regions that max-GCR would collapse to a flat K stack.

dotSize

dotSize: number

Dot size relative to the cell. 1.0 = dot exactly reaches the cell corners (saturation threshold); >1.0 lets dots overlap into neighbours.

gridSize

gridSize: number

Grid pitch in physical px.

inkPalette

inkPalette: HalftoneInkPalette

Per-channel inks. CMYK mode uses cyan/magenta/yellow/black, RGB mode uses red/green/blue. Each ink is [r, g, b, density], with density in [0, 1] scaling coverage independently of colour. Use HalftoneEffect.setInkPreset to apply named presets, or write into the palette directly for custom inks.

mode

mode: HalftoneMode

"rgb" (additive) or "cmyk" (subtractive ink simulation).

smoothing

smoothing: number

Soft-edge fraction of the dot radius, in [0, 1].

trimEdge

trimEdge: boolean

Skip dots whose maximum extent would cross the image edge.