Square Harmony Palette
#3B82F6
#d54b97
#c17400
#00a875
You Might Also Need
The square harmony palette takes one base colour and returns four hues spaced ninety degrees apart — a square inscribed on the colour wheel, anchored wherever your base sits.
What is Square Harmony Palette?
Four hues at even spacing is the most symmetric thing a colour wheel can do, and the square harmony palette produces exactly that from one input. Set a base colour and four swatches appear: the base itself, then the hues ninety, one hundred and eighty and two hundred and seventy degrees around the wheel. Because the spacing is equal, the resulting square color scheme has no dominant member by construction — every hue has the same number of neighbours at the same distance, which is why four-way charts and four-category dashboards reach for it.
- The four slots are the base, +90°, +180° and +270°, in that order.
- Rotation happens in OKLCH and only hue moves: lightness and chroma are carried over from your base, so the four swatches share one weight.
- Hue wraps through the full circle, so a base near 300 degrees produces derived hues that continue past 360 rather than clipping.
- The derivation is deterministic: the same base always returns the same four values, on any machine and in any session.
The engine behind it is the shared harmony routine this domain uses everywhere: the base is converted to OKLCH once, each derived hue is written back as an oklch string and converted to hex for the strip, and every value is clamped to the valid range. The page presents the tetradic derivation, which is the 90 degree color harmony by another name — the same four evenly spaced hues the tetradic page produces, since all four-square work in this domain runs through one function.
The set is also easy to reason about when something looks wrong later. Because the angles are equal, a complaint that two colours sit too close is always a complaint about the base's lightness and chroma rather than about the geometry, and the remedy is a tonal step rather than a different rule. Recording the base beside the four values keeps that diagnosis possible months afterwards, when nobody remembers which hue the square started from.
- There is no control beyond the base colour: no spacing, no rotation offset, no count.
- The order is fixed at base, +90, +180, +270. Nothing sorts or reorders the strip.
- Equal lightness across four hues does not mean equal legibility. Two of the four can look far closer than the angles suggest, and none of them is checked for text use.
- No alpha, no neutrals and no lightness ladder: this is a hue set, not a full design system.
Use it when a layout genuinely has four channels that deserve equal weight: a four-series chart, a quad of feature cards, a board with four columns. Where one of the four needs to dominate, the square is the wrong geometry — the triadic set leaves room for an accent and the complementary pair is louder still. Before any of the four carries text, put the pairing through the contrast checker, since even spacing says nothing about readability, and use the palette sorter if the strip has to be ordered by hue or lightness for a legend.
How to use Square Harmony Palette
- Set the base colour with the picker field, or type a hex value and let the field normalise it.
- Read the four swatches: the base, then the hues at +90, +180 and +270 degrees.
- Copy the hex value from any swatch you want to keep.
- Check any text pairing from the set with the contrast checker before it ships.
When to use Square Harmony Palette vs related tools
Use this when four categories deserve equal visual weight. The rectangle harmony palette describes the other four-hue geometry, the triadic generator spreads three hues for the same purpose with room left for an accent, and the palette sorter orders the result for a legend or a swatch sheet.
Privacy & Security
This tool runs entirely in your browser — no data ever leaves your device. There is no server round-trip, no upload, no logging, and no account required. Your input is processed locally using client-side JavaScript and is never stored, transmitted, or accessible to anyone else. When you close the tab, everything disappears.