UNPKG

@terrazzo/react-color-picker

Version:

React color picker that supports Color Module 4, wide color gamut (WCG), and Display-P3 using WebGL for monitor-accurate colors. Powered by Culori.

72 lines 2.17 kB
import type { Oklab } from '@terrazzo/use-color'; /** create a WebGL2 rendering context and throw errors if needed */ export declare function createRenderingContext(canvas: HTMLCanvasElement): WebGL2RenderingContext; export interface CreateProgramOptions { gl: WebGL2RenderingContext; vShaderSrc: string; fShaderSrc: string; } /** create a WebGL program from vertex shader & fragment shader sources */ export declare function createProgram({ gl, vShaderSrc, fShaderSrc }: CreateProgramOptions): WebGLProgram; /** * Create a pixel-perfect gradient blend in Oklab space using WebGL */ export declare const GRADIENT_RGB_SHADERS: { attrs: { a_position: string; a_resolution: string; a_start_color: string; a_end_color: string; }; vShader: string; fShader: string; }; /** * Create a gradient from A to B, blended in Oklab space. */ export declare class GradientOklab { gl: WebGL2RenderingContext; startColor: Oklab; endColor: Oklab; program: WebGLProgram; attr: Record<keyof typeof GRADIENT_RGB_SHADERS.attrs, number>; ro: ResizeObserver; private lastFrame; constructor({ canvas, startColor, endColor }: { canvas: HTMLCanvasElement; startColor: Oklab; endColor: Oklab; }); setColors(startColor: Oklab, endColor: Oklab): void; setSize(rect: DOMRect): void; /** render the canvas */ render(): void; } /** * Generate a perceptually-uniform rainbow gradient in the Oklab space. */ export declare const HUE_SHADERS: { attrs: { a_position: string; a_resolution: string; }; vShader: string; fShader: string; }; export declare class HueWheel { gl: WebGL2RenderingContext; program: WebGLProgram; gamut: 'srgb' | 'p3'; attr: Record<keyof typeof HUE_SHADERS.attrs, number>; ro: ResizeObserver; private lastFrame; constructor({ canvas, gamut }: { canvas: HTMLCanvasElement; gamut?: 'srgb' | 'p3'; }); setGamut(gamut: 'srgb' | 'p3'): void; setSize(rect: DOMRect): void; /** render the canvas */ render(): void; } //# sourceMappingURL=webgl.d.ts.map