From 614d656a2a0cb871cafdc4aeb75ae928eaa067fa Mon Sep 17 00:00:00 2001 From: Nitwel Date: Mon, 21 Sep 2020 12:00:08 +0200 Subject: [PATCH] use lib instead of own functions --- app/src/displays/color/color.vue | 19 ++-- app/src/interfaces/color/color.vue | 151 +++++++++++++---------------- app/src/styles/themes/_light.scss | 2 +- app/src/utils/color/index.ts | 115 ---------------------- 4 files changed, 78 insertions(+), 209 deletions(-) diff --git a/app/src/displays/color/color.vue b/app/src/displays/color/color.vue index 93c56a5940..b37ec1e126 100644 --- a/app/src/displays/color/color.vue +++ b/app/src/displays/color/color.vue @@ -1,6 +1,6 @@ @@ -9,7 +9,7 @@ import { defineComponent, computed, PropType } from '@vue/composition-api'; import formatTitle from '@directus/format-title'; import Color from 'color'; -import colorString from 'color-string'; +import { isHex } from '@/utils/color'; export default defineComponent({ props: { @@ -20,7 +20,7 @@ export default defineComponent({ defaultColor: { type: String, default: '#B0BEC5', - validator: (value: string) => colorString.get.rgb(value) !== null, + validator: (value: string) => value === null || isHex(value), }, }, setup(props) { @@ -31,17 +31,14 @@ export default defineComponent({ const styles = computed(() => { const style: Record = { 'background-color': props.defaultColor }; - if (Color(props.value) !== undefined) style['background-color'] = props.value; + if (props.value !== null) style['background-color'] = props.value; - const pageColorString = getComputedStyle(document.body).getPropertyValue('--background-page'); + const pageColorString = getComputedStyle(document.body).getPropertyValue('--background-page').trim(); - const pageColorRGB = colorString.get.rgb(pageColorString) || colorString.get.rgb('#FFF'); - const colorRGB = colorString.get.rgb(props.value) || colorString.get.rgb(props.defaultColor); + const pageColorRGB = Color(pageColorString); + const colorRGB = props.value === null ? Color(props.defaultColor) : Color(props.value); - if (pageColorRGB == null || colorRGB == null) return {}; - - if (Color.rgb(...colorRGB.slice(0.3)).contrast(Color.rgb(...pageColorRGB.slice(0, 3))) < 3) - style['border'] = '1px solid var(--border-normal-alt)'; + if (colorRGB.contrast(pageColorRGB) < 3) style['border'] = '1px solid var(--border-normal-alt)'; return style; }); diff --git a/app/src/interfaces/color/color.vue b/app/src/interfaces/color/color.vue index 08d3bdf784..241760da55 100644 --- a/app/src/interfaces/color/color.vue +++ b/app/src/interfaces/color/color.vue @@ -4,20 +4,20 @@