Harmonies

Color harmonies are combinations of colors that create aesthetically pleasing contrasts and consonances that are said to be harmonious. The Color Pro package includes several extension methods declared in the static class Harmonies for generating common color harmonies.


Monochromatic

A set of tints and shades formed from a base color.

Color[] harmony = baseColor.Monochromatic(10, 0.5f); // 10 colors with a 50% spread
baseColor.MonochromaticNonAlloc(outputArray); // prevent heap allocations

Analogous

A set of colors located next to each other on the color wheel.

Color[] harmony = baseColor.Analogous(3, 30); // 3 colors with 30° hue shift each
baseColor.AnalogousNonAlloc(outputArray, 30); // prevent heap allocations

Complementary

Two colors located opposite to each other on the color wheel.

Color[] harmony = baseColor.Complementary();
baseColor.ComplementaryNonAlloc(outputArray); // prevent heap allocations

Split Complementary

A base color with two colors adjacent to the directly opposing color on the color wheel.

Color[] harmony = baseColor.SplitComplementary();
baseColor.SplitComplementaryNonAlloc(outputArray); // prevent heap allocations

Double Split Complementary

Two pairs of complementary colors on either side of a base color.

Color[] harmony = baseColor.DoubleSplitComplementary();
baseColor.DoubleSplitComplementaryNonAlloc(outputArray); // prevent heap allocations

Triadic

Three colors evenly spaced around the color wheel to form a triangle (120° shift).

Color[] harmony = baseColor.Triadic();
baseColor.TriadicNonAlloc(outputArray); // prevent heap allocations

Square

Four colors evenly spaced around the color wheel to form a square (90° shift).

Color[] harmony = baseColor.Square();
baseColor.SquareNonAlloc(outputArray); // prevent heap allocations