diff --git a/scripts/preview-theme.js b/scripts/preview-theme.js index 3137abae3e275..25a2e45d0e40d 100644 --- a/scripts/preview-theme.js +++ b/scripts/preview-theme.js @@ -500,14 +500,12 @@ export const run = async () => { ); invalidColors = true; } else if ( - !isValidHexColor(colorValue) || - !( - colorKey === "bg_color" && - isValidGradient(colorValue.split(",")) - ) + !(colorKey === "bg_color" && colorValue.split(",").length > 1 + ? isValidGradient(colorValue.split(",")) + : isValidHexColor(colorValue)) ) { errors.push( - `Theme color property \`${colorKey}\` is not a valid hex color: #${colorValue}`, + `Theme color property \`${colorKey}\` is not a valid hex color: ${colorValue}`, ); invalidColors = true; } @@ -548,6 +546,10 @@ export const run = async () => { Object.keys(colorPairs).forEach((item) => { let color1 = colorPairs[item][0]; let color2 = colorPairs[item][1]; + const isGradientColor = color2.split(",").length > 1; + if (isGradientColor) { + return; + } color1 = color1.length === 4 ? color1.slice(0, 3) : color1.slice(0, 6); color2 = color2.length === 4 ? color2.slice(0, 3) : color2.slice(0, 6); if (!ccc.isLevelAA(`#${color1}`, `#${color2}`)) { diff --git a/src/common/utils.js b/src/common/utils.js index 8fefe3857a13d..6792df881ac7a 100644 --- a/src/common/utils.js +++ b/src/common/utils.js @@ -245,7 +245,10 @@ const clampValue = (number, min, max) => { * @returns {boolean} True if the given string is a valid gradient. */ const isValidGradient = (colors) => { - return colors.slice(1).every((color) => isValidHexColor(color)); + return ( + colors.length > 2 && + colors.slice(1).every((color) => isValidHexColor(color)) + ); }; /**