From 1eb97af0f30c890c08eaf20db20fbee1262c497e Mon Sep 17 00:00:00 2001 From: Marcel Gerber Date: Tue, 20 Aug 2024 17:11:31 +0100 Subject: [PATCH] enhance: darken all colorbrewer schemes --- .../grapher/src/color/ColorBrewerSchemes.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/@ourworldindata/grapher/src/color/ColorBrewerSchemes.ts b/packages/@ourworldindata/grapher/src/color/ColorBrewerSchemes.ts index 88ff9a9f94..b872dcf3ae 100644 --- a/packages/@ourworldindata/grapher/src/color/ColorBrewerSchemes.ts +++ b/packages/@ourworldindata/grapher/src/color/ColorBrewerSchemes.ts @@ -4,6 +4,8 @@ import { ColorSchemeInterface, ColorSchemeName, } from "@ourworldindata/types" +import ColorJS from "colorjs.io" +import { memoize } from "@ourworldindata/utils" type ColorSchemeProps = { displayName: string; singleColorScale: boolean } @@ -59,6 +61,14 @@ const ColorBrewerSchemeIndex: { PuBu: { displayName: "Purple-Blue shades", singleColorScale: true }, } as const +const _darkenColorForContrast = (color: string) => { + const col = new ColorJS(color) + col.oklab.l *= 0.95 + return col.toString({ format: "hex" }) +} + +const darkenColorForContrast = memoize(_darkenColorForContrast) + export const getColorBrewerScheme: ( name: string ) => ColorSchemeInterface | undefined = (name: string) => { @@ -69,7 +79,10 @@ export const getColorBrewerScheme: ( const colorSetsArray: Color[][] = [] Object.keys(colorSets).forEach( - (numColors) => (colorSetsArray[+numColors] = colorSets[numColors]) + (numColors) => + (colorSetsArray[+numColors] = colorSets[numColors].map( + darkenColorForContrast + )) ) return { name,