Palette

Text colour on each swatch is chosen automatically. Ratios follow WCAG 2.1.

Monogram

Initials set in the display face, inside a mark shaped by the mood.

Export

Drop these tokens straight into a project.

How contrast is calculated

The interface is a thin layer over pure functions: hexToHsl, hslToHex, harmonies, luminance and contrast.

  1. Each sRGB channel c (0–1) is linearised: c ≤ 0.03928 ? c/12.92 : ((c+0.055)/1.055)^2.4
  2. Relative luminance: L = 0.2126·R + 0.7152·G + 0.0722·B
  3. Ratio: (Llighter + 0.05) / (Ldarker + 0.05), from 1:1 to 21:1
  4. Thresholds: 4.5 for AA body text, 7 for AAA, 3 for large text.

Worked example, live for your primary colour