@pbroom/color-kitGamut

ChromaBandOptions

Options for chromaBand: the MaxChromaAtOptions search settings plus mode and sampling controls.

interfaceimport type { ChromaBandOptions } from '@pbroom/color-kit';types.ts:166
interface ChromaBandOptions extends MaxChromaAtOptions {
  gamut?: GamutTarget;
  tolerance?: number;
  maxIterations?: number;
  maxChroma?: number;
  alpha?: number;
  mode?: ChromaBandMode;
  steps?: number;
  samplingMode?: 'uniform' | 'adaptive';
  adaptiveTolerance?: number;
  adaptiveMaxDepth?: number;
  selectedLightness?: number;
}

Properties

gamut?GamutTargetdefault 'srgb'
Target gamut.
tolerance?numberdefault 0.0001
Width of the bisection interval at which the search stops; the result can be up to this much below the true boundary chroma. Lower values increase precision and work per call. Non-positive values use the default.
maxIterations?numberdefault 30
Hard cap on bisection iterations. Non-finite or non-positive values use the default.
maxChroma?numberdefault 0.4
Upper chroma search bound. If a color at this chroma is already in gamut, it is returned as is, so this also acts as a chroma cap.
alpha?numberdefault 1
Alpha channel used while sampling.
mode?ChromaBandModedefault 'clamped'
Chroma distribution strategy across the lightness sweep.
steps?numberdefault 12
Number of equal lightness segments to sample (integer >= 2). The returned band has steps + 1 colors. Ignored when samplingMode is 'adaptive'.
samplingMode?'uniform' | 'adaptive'default 'uniform'
'uniform': fixed lightness steps. 'adaptive': reuse adaptive boundary sampling and project to chroma mode.
adaptiveTolerance?numberdefault 0.001
Max perpendicular error in (l, c) before subdividing in adaptive mode.
adaptiveMaxDepth?numberdefault 12
Max recursion depth in adaptive mode to avoid runaway.
selectedLightness?numberdefault 0.5
Lightness anchor for proportional mode, clamped to 0-1. Used to resolve the requested/max chroma ratio.