diff --git a/package.json b/package.json index f0f34ff1..d0062e3b 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,6 @@ "@tinymce/tinymce-react": "^3.12.6", "algoliasearch": "^4.8.6", "ansi-to-react": "^6.1.5", - "chroma-js": "^2.1.2", "colord": "^2.7.0", "craco-swc": "^0.1.3", "csv-parse": "^4.15.3", @@ -100,7 +99,6 @@ ] }, "devDependencies": { - "@types/chroma-js": "^2.1.3", "@types/dompurify": "^2.2.1", "@types/file-saver": "^2.0.1", "@types/lodash": "^4.14.168", diff --git a/src/components/fields/Percentage/BasicCell.tsx b/src/components/fields/Percentage/BasicCell.tsx index 2fffb3f0..468abd33 100644 --- a/src/components/fields/Percentage/BasicCell.tsx +++ b/src/components/fields/Percentage/BasicCell.tsx @@ -11,7 +11,7 @@ export default function Percentage({ value }: IBasicCellProps) { <>
resultColor: ({ value }: { value: number | undefined }) => ({ backgroundColor: typeof value === "number" - ? resultColorsScale(value).hex() + "!important" + ? resultColorsScale(value).toHex() + "!important" : undefined, color: typeof value === "number" - ? emphasize(resultColorsScale(value).hex(), 1) + "!important" + ? emphasize(resultColorsScale(value).toHex(), 1) + "!important" : undefined, }), diff --git a/src/components/fields/Slider/TableCell.tsx b/src/components/fields/Slider/TableCell.tsx index 9307b3fb..7d324fde 100644 --- a/src/components/fields/Slider/TableCell.tsx +++ b/src/components/fields/Slider/TableCell.tsx @@ -48,7 +48,7 @@ export default function Slider({ column, value }: IHeavyCellProps) { maxWidth: "100%", width: `${progress}%`, - backgroundColor: resultColorsScale(progress / 100).hex(), + backgroundColor: resultColorsScale(progress / 100).toHex(), }} /> diff --git a/src/utils/color.ts b/src/utils/color.ts index 20d9a0ab..819be165 100644 --- a/src/utils/color.ts +++ b/src/utils/color.ts @@ -1,4 +1,6 @@ -import { scale } from "chroma-js"; +import { colord, extend } from "colord"; +import mixPlugin from "colord/plugins/mix"; +extend([mixPlugin]); export const resultColors = { No: "#ED4747", @@ -6,4 +8,7 @@ export const resultColors = { Yes: "#1fad5f", }; -export const resultColorsScale = scale(Object.values(resultColors)).mode("lab"); +export const resultColorsScale = (value: number) => + value <= 0.5 + ? colord(resultColors.No).mix(resultColors.Maybe, value * 2) + : colord(resultColors.Maybe).mix(resultColors.Yes, (value - 0.5) * 2); diff --git a/yarn.lock b/yarn.lock index f190913e..d995a16f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2957,11 +2957,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/chroma-js@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-2.1.3.tgz#0b03d737ff28fad10eb884e0c6cedd5ffdc4ba0a" - integrity sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g== - "@types/dompurify@^2.2.1": version "2.2.3" resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.2.3.tgz#6e89677a07902ac1b6821c345f34bd85da239b08" @@ -5119,13 +5114,6 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -chroma-js@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.1.2.tgz#1075cb9ae25bcb2017c109394168b5cf3aa500ec" - integrity sha512-ri/ouYDWuxfus3UcaMxC1Tfp3IE9K5iQzxc2hSxbBRVNQFut1UuGAsZmiAf2mOUubzGJwgMSv9lHg+XqLaz1QQ== - dependencies: - cross-env "^6.0.3" - chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -5742,13 +5730,6 @@ cross-env@^5.1.3: dependencies: cross-spawn "^6.0.5" -cross-env@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941" - integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag== - dependencies: - cross-spawn "^7.0.0" - cross-fetch@^3.0.4: version "3.1.4" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39"