Colour harmony is geometry, not taste
Complementary, triadic, analogous — the classical harmonies are angles on a hue wheel. Knowing the mathematics tells you when to break them.
The classical colour harmonies are usually taught as rules of thumb. They are not — they are a small set of angular relationships, and once you see them that way you can pick the right one deliberately and know exactly what you are trading away.
The angles
- Monochromatic — one hue. All variation comes from lightness and chroma. Maximum coherence, minimum signalling power.
- Analogous — neighbouring hues, typically 20–40° apart. Calm, naturalistic, no colour fights another for attention.
- Complementary — 0° and 180°. Maximum hue separation, which is why it is the standard choice for a primary and an accent.
- Split complementary — 0°, 150°, 210°. Complementary tension without the vibration that two exact opposites can produce at high chroma.
- Triadic — 0°, 120°, 240°. Even, energetic, hard to balance: usually one dominates and the other two support.
- Tetradic and square — two complementary pairs. Four hues is more than most interfaces need, and almost always requires pulling three of them down in chroma.
The part nobody teaches
Hue angle alone does not make a palette. Two colours 180° apart at identical lightness will have a contrast ratio near 1:1 — they are maximally different in hue and functionally identical in the one dimension that determines whether text is readable. Harmony chooses which colours; lightness decides whether the palette works.
That is why Colorstruct pairs every harmony with an explicit lightness range and a contrast strength control. The angles come from the method; the usability comes from the ramp.
When to use a custom interval
The named harmonies are just common cases of “step by ndegrees”. If you need five hues that feel evenly spaced but not as aggressive as a full triad, 72° is a perfectly good answer and has no traditional name. The custom interval method exists for exactly that.
Determinism matters
Every method here is a pure function of its settings. Save the settings and you can reconstruct the palette exactly, months later, on another machine. Even the variation control is seeded — it perturbs the ramps by a reproducible amount rather than rolling dice. If a colleague asks how you got a palette, you can tell them the answer rather than shrugging.