UNPKG

@primer/primitives

Version:

Typography, spacing, and color primitives for Primer design system

10 lines (9 loc) 535 B
import { z } from 'zod'; import { schemaErrorMessage } from '../utilities/index.js'; const colorHex3RegEx = '^#[0-9a-f]{3}$'; const colorHex6RegEx = '^#[0-9a-f]{6}$'; const colorHex8RegEx = '^#[0-9a-f]{8}$'; const colorHexRegex = new RegExp(`(${colorHex3RegEx})|(${colorHex6RegEx})|(${colorHex8RegEx})`, 'i'); export const colorHexValue = z.string().refine(color => colorHexRegex.test(color), color => ({ message: schemaErrorMessage(`Invalid color: "${color}"`, 'Color must be a hex string or a reference to a color token.'), }));