#2F6231 · #3A5289
Four independent scores (read the one that fits your goal): Readability 1/100 (fail) · Harmony 69/100 (triadic (soft)) · Distinguishable 57/100 (somewhat similar) · Match 0/100 (different). There is no single “good/bad” — a pair can clash for text yet be great for an outfit.
Juniper and Dusty Blue are very different (ΔE 67). They have distinctly different hues (99° apart) and their lightness is similar, so they read as two same-weight colours.
Juniper text on Dusty Blue: 1.06:1 (Fail); Dusty Blue text on Juniper: 1.06:1 (Fail). Neither meets AA at body size — nudging one color to #9ED59D clears it.
Triadic (soft) — workable but not a textbook harmony (harmony 69/100). This is about how they look together (clothing, interiors, branding), independent of text contrast.
Not at body size — the best direction is only 1.1:1, below the 4.5:1 minimum. Nudging one colour to #9ED59D clears AA.
Their CIE76 ΔE is about 67 — very different.
clearly different colours (ΔE 67).
Explore each color: Juniper #2F6231 · Dusty Blue #3A5289 · Shades: Juniper shades · Dusty Blue shades · Contrast checker →