Halftone CMYK is an image filter shader that simulates the traditional four-color printing process. It decomposes an input image into Cyan, Magenta, Yellow, and Black ink channels, each rendered as an angled halftone screen. Dot shape, ink colors, cell size, contrast, grain, and per-channel flood/gain controls are all exposed.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/paper-design/shaders/llms.txt
Use this file to discover all available pages before exploring further.
This is an image filter shader — it requires an image input. In React, pass a URL string to the
image prop and it is loaded automatically. In vanilla JS, pass a fully loaded HTMLImageElement to u_image.Usage
- React
- Vanilla JS
Props
The source image to apply the CMYK halftone effect to. In React, pass a URL string — the component loads it automatically. In vanilla JS, pass a fully loaded
HTMLImageElement as u_image.Dot shape style. Use the
HalftoneCmykTypes enum (vanilla JS) or string literal (React).| Value | Description |
|---|---|
dots | Separate circular dots |
ink | Joined ink blobs |
sharp | Hard-edge joined dots with direct pixel color sampling |
Halftone cell size, controlling the density of the dot screen. Range:
0 to 1.Image contrast adjustment applied before channel extraction. Range:
0 to 2.Edge softness of dots.
0 = hard, 1 = fully soft. Range: 0 to 1.Paper (background) color visible between dots.
Cyan ink color.
Magenta ink color.
Yellow ink color.
Black (key) ink color.
Strength of smooth noise applied to both dot positions and color sampling, producing an organic, hand-printed feel. Range:
0 to 1.Flat cyan dot size adjustment applied uniformly across the image. Range:
-1 to 1.Flat magenta dot size adjustment. Range:
-1 to 1.Flat yellow dot size adjustment. Range:
-1 to 1.Flat black dot size adjustment. Range:
-1 to 1.Proportional cyan dot size gain — enhances existing dots proportionally. Range:
-1 to 1.Proportional magenta dot size gain. Range:
-1 to 1.Proportional yellow dot size gain. Range:
-1 to 1.Proportional black dot size gain. Range:
-1 to 1.Scale of the grain texture applied to both dot edges and the overlay. Range:
0 to 1.Strength of grain distortion affecting dot sizes. Range:
0 to 1.Post-processing black/white grain overlay strength. Range:
0 to 1.Presets
The following presets are exported from@paper-design/shaders-react:
| Export | Name | Description |
|---|---|---|
defaultPreset | Default | Ink type, tight grid, classic CMYK colors |
dropsPreset | Drops | Large ink drops with heavy grid noise |
newspaper | Newspaper | Fine dots, boosted contrast, monochrome inks |
vintagePreset | Vintage | Sharp type, muted vintage CMYK palette |
Enums
ImportHalftoneCmykTypes from @paper-design/shaders when using the vanilla JS API: