@pastel-palette/colors
Version:
Core color definitions package for the UI Color System, featuring OKLCH color space support, TypeScript types, and a kawaii aesthetic.
1 lines • 60.8 kB
Source Map (JSON)
{"version":3,"sources":["../src/index.ts","../src/utils.ts","../src/themes/high-contrast/application.ts","../src/themes/high-contrast/colors.ts","../src/themes/high-contrast/grayScale.ts","../src/themes/high-contrast/semantic.ts","../src/themes/kawaii/application.ts","../src/themes/kawaii/colors.ts","../src/themes/kawaii/grayScale.ts","../src/themes/kawaii/semantic.ts","../src/themes/regular/application.ts","../src/themes/regular/colors.ts","../src/themes/regular/grayScale.ts","../src/themes/regular/semantic.ts","../src/palette.ts"],"sourcesContent":["export {\n colorPalette,\n colorSystem,\n highContrastColorSystem,\n kawaiiColorSystem,\n regularColorSystem,\n} from './palette'\nexport * from './themes'\nexport * from './types'\nexport * from './types/utilities'\nexport * from './utils'\n","import { oklch, p3, rgb } from 'culori'\n\nimport type { ColorValue } from './types'\nimport type {\n ColorValidationResult,\n ContrastRatio,\n OKLCH,\n RGB,\n} from './types/utilities'\n\nexport function mapHexToRGBString(hex: string): string {\n const r = Number.parseInt(hex.slice(1, 3), 16)\n const g = Number.parseInt(hex.slice(3, 5), 16)\n const b = Number.parseInt(hex.slice(5, 7), 16)\n return `rgb(${r} ${g} ${b})`\n}\n\nexport function addAlphaToHex(hex: string, alpha: number): string {\n const alphaHex = Math.round(alpha * 255)\n .toString(16)\n .padStart(2, '0')\n return hex + alphaHex\n}\n\nexport function parseOKLCH(oklchString: string): OKLCH | null {\n const match = oklchString.match(\n /oklch\\(([\\d.]+)%?\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.]+))?\\)/,\n )\n if (!match) return null\n\n const l = Number.parseFloat(match[1]) / (match[1].includes('%') ? 100 : 1)\n const c = Number.parseFloat(match[2])\n const h = Number.parseFloat(match[3])\n const a = match[4] ? Number.parseFloat(match[4]) : 1\n\n return { l, c, h, a }\n}\n\nexport function formatOKLCH(oklch: OKLCH): string {\n const { l, c, h, a = 1 } = oklch\n if (a < 1) {\n return `oklch(${l} ${c} ${h} / ${a})`\n }\n return `oklch(${l} ${c} ${h})`\n}\n\nexport function parseRGB(rgbString: string): RGB | null {\n const match = rgbString.match(\n /rgba?\\(([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.]+))?\\)/,\n )\n if (!match) return null\n\n const r = Number.parseInt(match[1])\n const g = Number.parseInt(match[2])\n const b = Number.parseInt(match[3])\n const a = match[4] ? Number.parseFloat(match[4]) : 1\n\n return { r, g, b, a }\n}\n\nexport function formatRGB(rgb: RGB): string {\n const { r, g, b, a = 1 } = rgb\n if (a < 1) {\n return `rgba(${r} ${g} ${b} / ${a})`\n }\n return `rgb(${r} ${g} ${b})`\n}\n\nexport function validateColor(colorValue: string): ColorValidationResult {\n const errors: string[] = []\n const warnings: string[] = []\n\n if (colorValue.startsWith('oklch(')) {\n const oklch = parseOKLCH(colorValue)\n if (!oklch) {\n errors.push('Invalid OKLCH format')\n } else {\n if (oklch.l < 0 || oklch.l > 1) {\n errors.push('Lightness must be between 0 and 1')\n }\n if (oklch.c < 0 || oklch.c > 0.37) {\n errors.push('Chroma must be between 0 and 0.37')\n }\n if (oklch.h < 0 || oklch.h >= 360) {\n errors.push('Hue must be between 0 and 360')\n }\n if (oklch.c > 0.3) {\n warnings.push(\n 'Chroma values above 0.3 may not display correctly in sRGB',\n )\n }\n }\n } else if (colorValue.startsWith('rgb')) {\n const rgb = parseRGB(colorValue)\n if (!rgb) {\n errors.push('Invalid RGB format')\n } else {\n if (\n rgb.r < 0 ||\n rgb.r > 255 ||\n rgb.g < 0 ||\n rgb.g > 255 ||\n rgb.b < 0 ||\n rgb.b > 255\n ) {\n errors.push('RGB values must be between 0 and 255')\n }\n }\n } else {\n errors.push('Unknown color format')\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\nexport function calculateRelativeLuminance(rgb: RGB): number {\n const rsRGB = rgb.r / 255\n const gsRGB = rgb.g / 255\n const bsRGB = rgb.b / 255\n\n const r =\n rsRGB <= 0.03928 ? rsRGB / 12.92 : Math.pow((rsRGB + 0.055) / 1.055, 2.4)\n const g =\n gsRGB <= 0.03928 ? gsRGB / 12.92 : Math.pow((gsRGB + 0.055) / 1.055, 2.4)\n const b =\n bsRGB <= 0.03928 ? bsRGB / 12.92 : Math.pow((bsRGB + 0.055) / 1.055, 2.4)\n\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n\nexport function calculateContrastRatio(rgb1: RGB, rgb2: RGB): ContrastRatio {\n const l1 = calculateRelativeLuminance(rgb1)\n const l2 = calculateRelativeLuminance(rgb2)\n const lighter = Math.max(l1, l2)\n const darker = Math.min(l1, l2)\n\n const ratio = (lighter + 0.05) / (darker + 0.05)\n\n return {\n ratio,\n passes: {\n aa: ratio >= 4.5,\n aaa: ratio >= 7,\n largeTextAa: ratio >= 3,\n largeTextAaa: ratio >= 4.5,\n },\n }\n}\n\nexport function clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function toFixed(value: number, precision = 3): number {\n return Math.round(value * Math.pow(10, precision)) / Math.pow(10, precision)\n}\n\n/**\n * Generate color formats from OKLCH string\n */\nexport function createColorFromOKLCH(oklchString: string): ColorValue {\n // Parse OKLCH string manually to get the raw values\n const match = oklchString.match(\n /oklch\\(([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.]+))?\\)/,\n )\n if (!match) {\n throw new Error(`Invalid OKLCH format: ${oklchString}`)\n }\n\n const l = Number.parseFloat(match[1])\n const c = Number.parseFloat(match[2])\n const h = Number.parseFloat(match[3])\n const alpha = match[4] ? Number.parseFloat(match[4]) : 1\n\n // Create culori OKLCH object with proper mode\n const oklchColor = { mode: 'oklch' as const, l, c, h, alpha }\n\n // Convert to sRGB\n const srgbColor = rgb(oklchColor)\n const srgbString = srgbColor\n ? alpha < 1\n ? `rgb(${Math.max(\n 0,\n Math.min(255, Math.round(srgbColor.r * 255)),\n )} ${Math.max(\n 0,\n Math.min(255, Math.round(srgbColor.g * 255)),\n )} ${Math.max(\n 0,\n Math.min(255, Math.round(srgbColor.b * 255)),\n )} / ${alpha})`\n : `rgb(${Math.max(\n 0,\n Math.min(255, Math.round(srgbColor.r * 255)),\n )} ${Math.max(\n 0,\n Math.min(255, Math.round(srgbColor.g * 255)),\n )} ${Math.max(0, Math.min(255, Math.round(srgbColor.b * 255)))})`\n : alpha < 1\n ? `rgb(0 0 0 / ${alpha})`\n : 'rgb(0 0 0)'\n\n // Convert to P3\n const p3Color = p3(oklchColor)\n const p3String = p3Color\n ? alpha < 1\n ? `color(display-p3 ${toFixed(p3Color.r, 3)} ${toFixed(\n p3Color.g,\n 3,\n )} ${toFixed(p3Color.b, 3)} / ${alpha})`\n : `color(display-p3 ${toFixed(p3Color.r, 3)} ${toFixed(\n p3Color.g,\n 3,\n )} ${toFixed(p3Color.b, 3)})`\n : undefined\n\n return {\n oklch: oklchString,\n srgb: srgbString,\n p3: p3String,\n }\n}\n\n/**\n * Generate color formats from sRGB string\n */\nexport function createColorFromSRGB(srgbString: string): ColorValue {\n // Parse sRGB string\n const match = srgbString.match(\n /rgba?\\((\\d+)\\s+(\\d+)\\s+(\\d+)(?:\\s*\\/\\s*([\\d.]+))?\\)/,\n )\n if (!match) {\n throw new Error(`Invalid sRGB format: ${srgbString}`)\n }\n\n const r = Number.parseInt(match[1]) / 255\n const g = Number.parseInt(match[2]) / 255\n const b = Number.parseInt(match[3]) / 255\n const alpha = match[4] ? Number.parseFloat(match[4]) : 1\n\n // Create culori RGB object with proper mode\n const rgbColor = { mode: 'rgb' as const, r, g, b, alpha }\n\n // Convert to OKLCH\n const oklchColor = oklch(rgbColor)\n const oklchString = oklchColor\n ? `oklch(${toFixed(oklchColor.l, 3)} ${toFixed(oklchColor.c, 3)} ${toFixed(\n oklchColor.h || 0,\n 0,\n )})`\n : 'oklch(0 0 0)'\n\n // Convert to P3\n const p3Color = p3(rgbColor)\n const p3String = p3Color\n ? `color(display-p3 ${toFixed(p3Color.r, 3)} ${toFixed(\n p3Color.g,\n 3,\n )} ${toFixed(p3Color.b, 3)})`\n : undefined\n\n return {\n oklch: oklchString,\n srgb: srgbString,\n p3: p3String,\n }\n}\n\n/**\n * Create color from either OKLCH or sRGB input\n */\nexport function createColor(input: string): ColorValue {\n if (input.startsWith('oklch(')) {\n return createColorFromOKLCH(input)\n } else if (input.startsWith('rgb')) {\n return createColorFromSRGB(input)\n } else {\n throw new Error(\n `Unsupported color format: ${input}. Use oklch() or rgb() format.`,\n )\n }\n}\n","import type { ApplicationColorName, ColorVariants } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const highContrastApplicationColors: Record<\n ApplicationColorName,\n ColorVariants\n> = {\n accent: {\n light: createColor('oklch(0.45 0.25 238)'),\n dark: createColor('oklch(0.75 0.2 236)'),\n },\n\n primary: {\n light: createColor('oklch(0.4 0.28 261)'),\n dark: createColor('oklch(0.75 0.22 259)'),\n },\n\n secondary: {\n light: createColor('oklch(0.5 0.2 156)'),\n dark: createColor('oklch(0.77 0.18 154)'),\n },\n}\n","import type { ColorVariants, RegularColorName } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const highContrastColors: Record<RegularColorName, ColorVariants> = {\n blue: {\n light: createColor('oklch(0.45 0.25 237)'),\n dark: createColor('oklch(0.75 0.2 237)'),\n },\n\n pink: {\n light: createColor('oklch(0.5 0.3 350)'),\n dark: createColor('oklch(0.78 0.25 350)'),\n },\n\n purple: {\n light: createColor('oklch(0.45 0.28 280)'),\n dark: createColor('oklch(0.75 0.22 280)'),\n },\n\n green: {\n light: createColor('oklch(0.5 0.2 155)'),\n dark: createColor('oklch(0.77 0.18 155)'),\n },\n\n orange: {\n light: createColor('oklch(0.55 0.18 60)'),\n dark: createColor('oklch(0.78 0.2 60)'),\n },\n\n yellow: {\n light: createColor('oklch(0.65 0.15 100)'),\n dark: createColor('oklch(0.82 0.16 100)'),\n },\n\n sky: {\n light: createColor('oklch(0.5 0.2 210)'),\n dark: createColor('oklch(0.8 0.16 210)'),\n },\n\n red: {\n light: createColor('oklch(0.5 0.28 20)'),\n dark: createColor('oklch(0.75 0.24 20)'),\n },\n\n brown: {\n light: createColor('oklch(0.45 0.15 45)'),\n dark: createColor('oklch(0.72 0.14 45)'),\n },\n\n gray: {\n light: createColor('oklch(0.3 0 0)'),\n dark: createColor('oklch(0.85 0 0)'),\n },\n\n\n neutral: {\n light: createColor('oklch(0.25 0 0)'),\n dark: createColor('oklch(0.9 0 0)'),\n },\n\n black: {\n light: createColor('oklch(0 0 0)'),\n dark: createColor('oklch(0.2 0 0)'),\n },\n\n white: {\n light: createColor('oklch(1 0 0)'),\n dark: createColor('oklch(0.95 0 0)'),\n },\n\n teal: {\n light: createColor('oklch(0.45 0.25 180)'),\n dark: createColor('oklch(0.78 0.2 180)'),\n },\n\n cyan: {\n light: createColor('oklch(0.5 0.22 195)'),\n dark: createColor('oklch(0.8 0.18 195)'),\n },\n\n indigo: {\n light: createColor('oklch(0.4 0.28 260)'),\n dark: createColor('oklch(0.75 0.22 260)'),\n },\n\n violet: {\n light: createColor('oklch(0.42 0.3 300)'),\n dark: createColor('oklch(0.78 0.24 300)'),\n },\n\n lime: {\n light: createColor('oklch(0.6 0.22 125)'),\n dark: createColor('oklch(0.82 0.2 125)'),\n },\n\n emerald: {\n light: createColor('oklch(0.48 0.22 160)'),\n dark: createColor('oklch(0.78 0.18 160)'),\n },\n\n amber: {\n light: createColor('oklch(0.62 0.18 85)'),\n dark: createColor('oklch(0.83 0.17 85)'),\n },\n\n rose: {\n light: createColor('oklch(0.48 0.3 15)'),\n dark: createColor('oklch(0.78 0.22 15)'),\n },\n\n slate: {\n light: createColor('oklch(0.35 0.02 240)'),\n dark: createColor('oklch(0.82 0.02 240)'),\n },\n\n zinc: {\n light: createColor('oklch(0.38 0.01 240)'),\n dark: createColor('oklch(0.8 0.01 240)'),\n },\n}\n","import type { ColorVariants, GrayScaleColorName } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const highContrastGrayScale: Record<GrayScaleColorName, ColorVariants> =\n {\n gray1: {\n light: createColor('oklch(0.900 0 0)'),\n dark: createColor('oklch(0.200 0 0)'),\n },\n\n gray2: {\n light: createColor('oklch(0.850 0 0)'),\n dark: createColor('oklch(0.250 0 0)'),\n },\n\n gray3: {\n light: createColor('oklch(0.800 0 0)'),\n dark: createColor('oklch(0.300 0 0)'),\n },\n\n gray4: {\n light: createColor('oklch(0.750 0 0)'),\n dark: createColor('oklch(0.350 0 0)'),\n },\n\n gray5: {\n light: createColor('oklch(0.700 0 0)'),\n dark: createColor('oklch(0.400 0 0)'),\n },\n\n gray6: {\n light: createColor('oklch(0.650 0 0)'),\n dark: createColor('oklch(0.451 0 0)'),\n },\n\n gray7: {\n light: createColor('oklch(0.600 0 0)'),\n dark: createColor('oklch(0.501 0 0)'),\n },\n\n gray8: {\n light: createColor('oklch(0.550 0 0)'),\n dark: createColor('oklch(0.551 0 0)'),\n },\n\n gray9: {\n light: createColor('oklch(0.500 0 0)'),\n dark: createColor('oklch(0.601 0 0)'),\n },\n\n gray10: {\n light: createColor('oklch(0.450 0 0)'),\n dark: createColor('oklch(0.651 0 0)'),\n },\n }\n","import type {\n ElementColorName,\n MaterialColor,\n MaterialOpacity,\n SemanticColor,\n} from '../../types'\nimport { createColor } from '../../utils'\n\nexport const highContrastElementColors: Record<\n ElementColorName,\n SemanticColor\n> = {\n text: {\n primary: {\n light: createColor('oklch(0.12 0.02 200)'), // Darker text for high contrast against light backgrounds, based on regular's 0.25\n dark: createColor('oklch(0.98 0.005 200)'), // Very light text for dark mode, amplified from regular's 0.95\n },\n secondary: {\n light: createColor('oklch(0.25 0.02 200)'), // Enhanced from regular's 0.45 for better visibility\n dark: createColor('oklch(0.93 0.01 200)'), // Lighter than regular's 0.85 for maximum contrast\n },\n tertiary: {\n light: createColor('oklch(0.4 0.02 200)'), // Adjusted from regular's 0.6 to increase darkness\n dark: createColor('oklch(0.85 0.015 200)'), // Based on regular's 0.7, made lighter for dark mode\n },\n quaternary: {\n light: createColor('oklch(0.55 0.015 200)'), // From regular's 0.75, darkened for contrast\n dark: createColor('oklch(0.75 0.01 200)'), // Aligned with regular's 0.55 but optimized for visibility\n },\n },\n\n placeholderText: {\n primary: {\n light: createColor('oklch(0.5 0.015 200)'), // Based on regular's 0.65, slightly darkened for emphasis\n dark: createColor('oklch(0.8 0.01 200)'), // From regular's 0.6, lightened for dark mode contrast\n },\n },\n\n border: {\n primary: {\n light: createColor('oklch(0.80 0.02 200)'), // 原: 0.85,稍微加深为 0.80\n dark: createColor('oklch(0.251 0.02 200)'), // 原: 0.3,稍微加深为 0.25\n },\n secondary: {\n light: createColor('oklch(0.85 0.01 200)'), // 原: 0.9,稍微加深为 0.85\n dark: createColor('oklch(0.20 0.01 200)'), // 原: 0.25,稍微加深为 0.20\n },\n },\n\n separator: {\n primary: {\n light: createColor('oklch(0.83 0.01 200)'), // 原: 0.88,稍微加深为 0.83\n dark: createColor('oklch(0.23 0.01 200)'), // 原: 0.28,稍微加深为 0.23\n },\n },\n\n link: {\n primary: {\n light: createColor('oklch(0.35 0.3 200)'), // Adjusted from regular's 0.7 and hue 250; heightened contrast with more saturation\n dark: createColor('oklch(0.85 0.2 200)'), // From regular's 0.78, lightened and shifted hue\n },\n },\n\n disabledControl: {\n primary: {\n light: createColor('oklch(0.7 0.01 200)'), // Based on regular's 0.92, slightly darkened for differentiation\n dark: createColor('oklch(0.4 0.01 200)'), // From regular's 0.22, optimized for contrast\n },\n },\n\n disabledText: {\n primary: {\n light: createColor('oklch(0.6 0.01 200)'), // Adjusted from regular's 0.7 for subtle high contrast\n dark: createColor('oklch(0.5 0.01 200)'), // From regular's 0.5, kept similar but with hue shift\n },\n },\n}\nexport const highContrastBackgroundColors: SemanticColor = {\n primary: {\n light: createColor('oklch(1.0 0.005 200)'), // Near-pure white with a subtle blue-green tint for high contrast\n dark: createColor('oklch(0.08 0.005 200)'), // Very dark blue-green, ensuring strong contrast in dark mode\n },\n secondary: {\n light: createColor('oklch(0.985 0.003 200)'), // Smaller step from primary\n dark: createColor('oklch(0.095 0.008 200)'), // Smaller step from primary\n },\n tertiary: {\n light: createColor('oklch(0.97 0.005 200)'), // Uniform gradual steps\n dark: createColor('oklch(0.11 0.008 200)'), // Uniform gradual steps\n },\n quaternary: {\n light: createColor('oklch(0.955 0.005 200)'), // Uniform gradual steps\n dark: createColor('oklch(0.125 0.008 200)'), // Uniform gradual steps\n },\n quinary: {\n light: createColor('oklch(0.94 0.005 200)'), // Uniform gradual steps\n dark: createColor('oklch(0.14 0.008 200)'), // Uniform gradual steps\n },\n}\n\nexport const highContrastFillColors: SemanticColor = {\n primary: {\n light: createColor('oklch(0.66 0.005 200)'), // Slightly lighter for smoother ramp\n dark: createColor('oklch(0.62 0.005 200)'), // Slightly lighter for smoother ramp\n },\n secondary: {\n light: createColor('oklch(0.52 0.01 200)'), // Smooth step from primary\n dark: createColor('oklch(0.70 0.005 200)'), // Smooth step from primary\n },\n tertiary: {\n light: createColor('oklch(0.38 0.01 200)'), // Smooth step from secondary\n dark: createColor('oklch(0.78 0.005 200)'), // Smooth step from secondary\n },\n quaternary: {\n light: createColor('oklch(0.24 0.005 200)'), // Smooth step from tertiary\n dark: createColor('oklch(0.86 0.005 200)'), // Smooth step from tertiary\n },\n}\n\nexport const highContrastMaterialColors: Record<\n MaterialOpacity,\n MaterialColor\n> = {\n ultraThick: {\n light: createColor('oklch(0.98 0 0 / 0.95)'), // 高对比度浅灰材质,更强对比\n dark: createColor('oklch(0.08 0 0 / 0.95)'), // 高对比度深灰材质\n },\n\n thick: {\n light: createColor('oklch(0.96 0 0 / 0.88)'), // 高对比度厚材质\n dark: createColor('oklch(0.12 0 0 / 0.88)'), // 高对比度深厚材质\n },\n\n medium: {\n light: createColor('oklch(0.94 0 0 / 0.70)'), // 高对比度中等材质\n dark: createColor('oklch(0.16 0 0 / 0.82)'), // 高对比度深中等材质\n },\n\n thin: {\n light: createColor('oklch(0.92 0 0 / 0.65)'), // 高对比度薄材质\n dark: createColor('oklch(0.18 0 0 / 0.65)'), // 高对比度深薄材质\n },\n\n ultraThin: {\n light: createColor('oklch(0.90 0 0 / 0.50)'), // 高对比度超薄材质\n dark: createColor('oklch(0.20 0 0 / 0.50)'), // 高对比度深超薄材质\n },\n\n opaque: {\n light: createColor('oklch(0.949 0 0)'), // 高对比度不透明浅材质\n dark: createColor('oklch(0.15 0 0)'), // 高对比度不透明深材质\n },\n}\n","import type { ApplicationColorName, ColorVariants } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const kawaiiApplicationColors: Record<\n ApplicationColorName,\n ColorVariants\n> = {\n accent: {\n light: createColor('oklch(0.71 0.14 237)'),\n dark: createColor('oklch(0.67 0.14 237)'),\n },\n\n primary: {\n light: createColor('oklch(0.68 0.14 237)'),\n dark: createColor('oklch(0.7 0.14 237)'),\n },\n\n secondary: {\n light: createColor('oklch(0.7486 0.1168 187.91)'),\n dark: createColor('oklch(0.77 0.1168 187.91)'),\n },\n}\n","import type { ColorVariants, RegularColorName } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const kawaiiColors: Record<RegularColorName, ColorVariants> = {\n blue: {\n light: createColor('oklch(0.85 0.12 237)'),\n dark: createColor('oklch(0.65 0.14 237)'),\n },\n\n pink: {\n light: createColor('oklch(0.87 0.16 350)'),\n dark: createColor('oklch(0.7 0.18 350)'),\n },\n\n purple: {\n light: createColor('oklch(0.84 0.14 280)'),\n dark: createColor('oklch(0.67 0.16 280)'),\n },\n\n green: {\n light: createColor('oklch(0.85 0.12 155)'),\n dark: createColor('oklch(0.68 0.14 155)'),\n },\n\n orange: {\n light: createColor('oklch(0.86 0.12 60)'),\n dark: createColor('oklch(0.69 0.14 60)'),\n },\n\n yellow: {\n light: createColor('oklch(0.9 0.1 100)'),\n dark: createColor('oklch(0.73 0.12 100)'),\n },\n\n sky: {\n light: createColor('oklch(0.87 0.11 210)'),\n dark: createColor('oklch(0.7 0.13 210)'),\n },\n\n red: {\n light: createColor('oklch(0.84 0.14 20)'),\n dark: createColor('oklch(0.67 0.16 20)'),\n },\n\n brown: {\n light: createColor('oklch(0.82 0.1 45)'),\n dark: createColor('oklch(0.65 0.12 45)'),\n },\n\n gray: {\n light: createColor('oklch(0.87 0 0)'),\n dark: createColor('oklch(0.7 0 0)'),\n },\n\n\n neutral: {\n light: createColor('oklch(0.82 0 0)'),\n dark: createColor('oklch(0.65 0 0)'),\n },\n\n black: {\n light: createColor('oklch(0.35 0 0)'),\n dark: createColor('oklch(0.5 0 0)'),\n },\n\n white: {\n light: createColor('oklch(0.999 0 0)'),\n dark: createColor('oklch(0.95 0 0)'),\n },\n\n teal: {\n light: createColor('oklch(0.86 0.1 180)'),\n dark: createColor('oklch(0.72 0.12 180)'),\n },\n\n cyan: {\n light: createColor('oklch(0.88 0.09 195)'),\n dark: createColor('oklch(0.74 0.11 195)'),\n },\n\n indigo: {\n light: createColor('oklch(0.83 0.11 260)'),\n dark: createColor('oklch(0.69 0.13 260)'),\n },\n\n violet: {\n light: createColor('oklch(0.85 0.12 300)'),\n dark: createColor('oklch(0.71 0.14 300)'),\n },\n\n lime: {\n light: createColor('oklch(0.89 0.08 125)'),\n dark: createColor('oklch(0.75 0.1 125)'),\n },\n\n emerald: {\n light: createColor('oklch(0.86 0.1 160)'),\n dark: createColor('oklch(0.72 0.12 160)'),\n },\n\n amber: {\n light: createColor('oklch(0.9 0.08 85)'),\n dark: createColor('oklch(0.76 0.1 85)'),\n },\n\n rose: {\n light: createColor('oklch(0.86 0.13 15)'),\n dark: createColor('oklch(0.72 0.15 15)'),\n },\n\n slate: {\n light: createColor('oklch(0.84 0.01 240)'),\n dark: createColor('oklch(0.7 0.01 240)'),\n },\n\n zinc: {\n light: createColor('oklch(0.85 0.005 240)'),\n dark: createColor('oklch(0.71 0.005 240)'),\n },\n}\n","import type { ColorVariants, GrayScaleColorName } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const kawaiiGrayScale: Record<GrayScaleColorName, ColorVariants> = {\n gray1: {\n light: createColor('oklch(0.900 0 0)'),\n dark: createColor('oklch(0.200 0 0)'),\n },\n\n gray2: {\n light: createColor('oklch(0.850 0 0)'),\n dark: createColor('oklch(0.250 0 0)'),\n },\n\n gray3: {\n light: createColor('oklch(0.800 0 0)'),\n dark: createColor('oklch(0.300 0 0)'),\n },\n\n gray4: {\n light: createColor('oklch(0.750 0 0)'),\n dark: createColor('oklch(0.350 0 0)'),\n },\n\n gray5: {\n light: createColor('oklch(0.700 0 0)'),\n dark: createColor('oklch(0.400 0 0)'),\n },\n\n gray6: {\n light: createColor('oklch(0.650 0 0)'),\n dark: createColor('oklch(0.451 0 0)'),\n },\n\n gray7: {\n light: createColor('oklch(0.600 0 0)'),\n dark: createColor('oklch(0.501 0 0)'),\n },\n\n gray8: {\n light: createColor('oklch(0.550 0 0)'),\n dark: createColor('oklch(0.551 0 0)'),\n },\n\n gray9: {\n light: createColor('oklch(0.500 0 0)'),\n dark: createColor('oklch(0.601 0 0)'),\n },\n\n gray10: {\n light: createColor('oklch(0.450 0 0)'),\n dark: createColor('oklch(0.651 0 0)'),\n },\n}\n","import type {\n ElementColorName,\n MaterialColor,\n MaterialOpacity,\n SemanticColor,\n} from '../../types'\nimport { createColor } from '../../utils'\n\nexport const kawaiiElementColors: Record<ElementColorName, SemanticColor> = {\n text: {\n primary: {\n light: createColor('oklch(0.15 0.02 320)'), // 深粉灰色主文本,保持可读性\n dark: createColor('oklch(0.95 0.01 320)'), // 浅粉色主文本\n },\n secondary: {\n light: createColor('oklch(0.3 0.02 320)'), // 中粉灰色次要文本\n dark: createColor('oklch(0.85 0.01 320)'), // 浅粉灰色次要文本\n },\n tertiary: {\n light: createColor('oklch(0.5 0.01 320)'), // 浅粉灰色三级文本\n dark: createColor('oklch(0.7 0.01 320)'), // 中粉灰色三级文本\n },\n quaternary: {\n light: createColor('oklch(0.75 0.01 320)'), // 非常浅的粉灰色四级文本\n dark: createColor('oklch(0.55 0.01 320)'), // 中深粉灰色四级文本\n },\n },\n\n placeholderText: {\n primary: {\n light: createColor('oklch(0.65 0.02 320)'),\n dark: createColor('oklch(0.6 0.01 320)'),\n },\n },\n\n border: {\n primary: {\n light: createColor('oklch(0.85 0.02 330)'),\n dark: createColor('oklch(0.3 0.0049 338.82)'),\n },\n secondary: {\n light: createColor('oklch(0.9 0.01 330)'),\n dark: createColor('oklch(0.25 0.0049 338.82)'),\n },\n },\n\n separator: {\n primary: {\n light: createColor('oklch(0.88 0.01 330)'),\n dark: createColor('oklch(0.28 0.0049 338.82)'),\n },\n },\n\n link: {\n primary: {\n light: createColor('oklch(0.86 0.0617 256.24)'),\n dark: createColor('oklch(0.8959 0.0524530753637823 250.67881278919134)'),\n },\n },\n\n disabledControl: {\n primary: {\n light: createColor('oklch(0.92 0.0049 338.82)'),\n dark: createColor('oklch(0.22 0.0049 338.82)'),\n },\n },\n\n disabledText: {\n primary: {\n light: createColor('oklch(0.7 0.0049 338.82)'),\n dark: createColor('oklch(0.5 0.0049 338.82)'),\n },\n },\n}\nexport const kawaiiBackgroundColors: SemanticColor = {\n primary: {\n light: createColor('oklch(0.986 0 358.73967248753775)'),\n dark: createColor('oklch(0.241 0.0049 338.82)'),\n },\n secondary: {\n light: createColor('oklch(0.978 0.004 358.73967248753775)'),\n dark: createColor('oklch(0.253 0.0049 338.82)'),\n },\n tertiary: {\n light: createColor('oklch(0.970 0.005 358.73967248753775)'),\n dark: createColor('oklch(0.265 0.0049 338.82)'),\n },\n quaternary: {\n light: createColor('oklch(0.962 0.006 358.73967248753775)'),\n dark: createColor('oklch(0.277 0.0049 338.82)'),\n },\n quinary: {\n light: createColor('oklch(0.954 0.01 358.73967248753775)'),\n dark: createColor('oklch(0.289 0.0049 338.82)'),\n },\n}\n\nexport const kawaiiFillColors: SemanticColor = {\n primary: {\n light: createColor('oklch(0.964 0.0049 338.82)'),\n dark: createColor('oklch(0.255 0.0049 338.82)'),\n },\n secondary: {\n light: createColor('oklch(0.952 0.0049 338.82)'),\n dark: createColor('oklch(0.275 0.0049 338.82)'),\n },\n tertiary: {\n light: createColor('oklch(0.940 0.0049 338.82)'),\n dark: createColor('oklch(0.295 0.0049 338.82)'),\n },\n quaternary: {\n light: createColor('oklch(0.928 0.0049 338.82)'),\n dark: createColor('oklch(0.315 0.0049 338.82)'),\n },\n}\n\nexport const kawaiiMaterialColors: Record<MaterialOpacity, MaterialColor> = {\n ultraThick: {\n light: createColor('oklch(0.956 0.0049 338.82 / 0.93)'),\n dark: createColor('oklch(0.156 0.0049 338.82 / 0.93)'),\n },\n\n thick: {\n light: createColor('oklch(0.952 0.0049 338.82 / 0.85)'),\n dark: createColor('oklch(0.152 0.0049 338.82 / 0.85)'),\n },\n\n medium: {\n light: createColor('oklch(0.948 0.0049 338.82 / 0.65)'),\n dark: createColor('oklch(0.148 0.0049 338.82 / 0.80)'),\n },\n\n thin: {\n light: createColor('oklch(0.944 0.0049 338.82 / 0.60)'),\n dark: createColor('oklch(0.144 0.0049 338.82 / 0.60)'),\n },\n\n ultraThin: {\n light: createColor('oklch(0.940 0.0049 338.82 / 0.45)'),\n dark: createColor('oklch(0.140 0.0049 338.82 / 0.45)'),\n },\n\n opaque: {\n light: createColor('oklch(0.936 0.0049 338.82)'),\n dark: createColor('oklch(0.136 0.0049 338.82)'),\n },\n}\n","import type { ApplicationColorName, ColorVariants } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const regularApplicationColors: Record<\n ApplicationColorName,\n ColorVariants\n> = {\n accent: {\n light: createColor('oklch(0.65 0.18 238)'),\n dark: createColor('oklch(0.70 0.16 237)'),\n },\n\n primary: {\n light: createColor('oklch(0.55 0.20 249)'),\n dark: createColor('oklch(0.75 0.17 250)'),\n },\n\n secondary: {\n light: createColor('oklch(0.77 0.14 171)'),\n dark: createColor('oklch(0.8 0.14 170)'),\n },\n}\n","import type { ColorVariants, RegularColorName } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const regularColors: Record<RegularColorName, ColorVariants> = {\n blue: {\n light: createColor('oklch(0.65 0.18 237)'),\n dark: createColor('oklch(0.7 0.16 237)'),\n },\n\n pink: {\n light: createColor('oklch(0.68 0.22 350)'),\n dark: createColor('oklch(0.73 0.2 350)'),\n },\n\n purple: {\n light: createColor('oklch(0.65 0.2 280)'),\n dark: createColor('oklch(0.7 0.18 280)'),\n },\n\n green: {\n light: createColor('oklch(0.67 0.15 155)'),\n dark: createColor('oklch(0.72 0.16 155)'),\n },\n\n orange: {\n light: createColor('oklch(0.68 0.15 60)'),\n dark: createColor('oklch(0.73 0.16 60)'),\n },\n\n yellow: {\n light: createColor('oklch(0.9 0.19 100)'),\n dark: createColor('oklch(0.85 0.18 100)'),\n },\n\n sky: {\n light: createColor('oklch(0.7 0.14 210)'),\n dark: createColor('oklch(0.75 0.13 210)'),\n },\n\n red: {\n light: createColor('oklch(0.65 0.22 27)'),\n dark: createColor('oklch(0.7 0.21 27)'),\n },\n\n brown: {\n light: createColor('oklch(0.62 0.12 45)'),\n dark: createColor('oklch(0.67 0.12 45)'),\n },\n\n gray: {\n light: createColor('oklch(0.65 0 0)'),\n dark: createColor('oklch(0.7 0 0)'),\n },\n\n neutral: {\n light: createColor('oklch(0.6 0 0)'),\n dark: createColor('oklch(0.652 0 0)'),\n },\n\n black: {\n light: createColor('oklch(0.2 0 0)'),\n dark: createColor('oklch(0.25 0 0)'),\n },\n\n white: {\n light: createColor('oklch(0.99 0.005 200)'),\n dark: createColor('oklch(0.97 0 0)'),\n },\n\n teal: {\n light: createColor('oklch(0.66 0.16 180)'),\n dark: createColor('oklch(0.71 0.15 180)'),\n },\n\n cyan: {\n light: createColor('oklch(0.7 0.15 195)'),\n dark: createColor('oklch(0.75 0.14 195)'),\n },\n\n indigo: {\n light: createColor('oklch(0.58 0.2 260)'),\n dark: createColor('oklch(0.65 0.18 260)'),\n },\n\n violet: {\n light: createColor('oklch(0.62 0.22 300)'),\n dark: createColor('oklch(0.68 0.2 300)'),\n },\n\n lime: {\n light: createColor('oklch(0.75 0.16 125)'),\n dark: createColor('oklch(0.78 0.17 125)'),\n },\n\n emerald: {\n light: createColor('oklch(0.64 0.16 160)'),\n dark: createColor('oklch(0.69 0.15 160)'),\n },\n\n amber: {\n light: createColor('oklch(0.75 0.13 85)'),\n dark: createColor('oklch(0.78 0.14 85)'),\n },\n\n rose: {\n light: createColor('oklch(0.63 0.21 15)'),\n dark: createColor('oklch(0.68 0.19 15)'),\n },\n\n slate: {\n light: createColor('oklch(0.55 0.015 240)'),\n dark: createColor('oklch(0.6 0.015 240)'),\n },\n\n zinc: {\n light: createColor('oklch(0.58 0.01 240)'),\n dark: createColor('oklch(0.63 0.01 240)'),\n },\n}\n","import type { ColorVariants, GrayScaleColorName } from '../../types'\nimport { createColor } from '../../utils'\n\nexport const regularGrayScale: Record<GrayScaleColorName, ColorVariants> = {\n gray1: {\n light: createColor('oklch(0.900 0 0)'),\n dark: createColor('oklch(0.200 0 0)'),\n },\n\n gray2: {\n light: createColor('oklch(0.850 0 0)'),\n dark: createColor('oklch(0.250 0 0)'),\n },\n\n gray3: {\n light: createColor('oklch(0.800 0 0)'),\n dark: createColor('oklch(0.300 0 0)'),\n },\n\n gray4: {\n light: createColor('oklch(0.750 0 0)'),\n dark: createColor('oklch(0.350 0 0)'),\n },\n\n gray5: {\n light: createColor('oklch(0.700 0 0)'),\n dark: createColor('oklch(0.400 0 0)'),\n },\n\n gray6: {\n light: createColor('oklch(0.650 0 0)'),\n dark: createColor('oklch(0.451 0 0)'),\n },\n\n gray7: {\n light: createColor('oklch(0.600 0 0)'),\n dark: createColor('oklch(0.501 0 0)'),\n },\n\n gray8: {\n light: createColor('oklch(0.550 0 0)'),\n dark: createColor('oklch(0.551 0 0)'),\n },\n\n gray9: {\n light: createColor('oklch(0.500 0 0)'),\n dark: createColor('oklch(0.601 0 0)'),\n },\n\n gray10: {\n light: createColor('oklch(0.450 0 0)'),\n dark: createColor('oklch(0.651 0 0)'),\n },\n}\n","import type {\n ElementColorName,\n MaterialColor,\n MaterialOpacity,\n SemanticColor,\n} from '../../types'\nimport { createColor } from '../../utils'\n\nexport const regularElementColors: Record<ElementColorName, SemanticColor> = {\n text: {\n primary: {\n light: createColor('oklch(0.15 0.0049 230)'),\n dark: createColor('oklch(0.95 0.0049 230)'),\n },\n secondary: {\n light: createColor('oklch(0.45 0.0049 230)'),\n dark: createColor('oklch(0.75 0.0049 230)'),\n },\n tertiary: {\n light: createColor('oklch(0.55 0.0049 230)'),\n dark: createColor('oklch(0.65 0.0049 230)'),\n },\n quaternary: {\n light: createColor('oklch(0.7 0.0049 230)'),\n dark: createColor('oklch(0.451 0.0049 230)'),\n },\n },\n\n placeholderText: {\n primary: {\n light: createColor('oklch(0.8 0.0049 226)'),\n dark: createColor('oklch(0.6 0.0049 226)'),\n },\n },\n\n border: {\n primary: {\n light: createColor('oklch(0.92 0.0049 234)'),\n dark: createColor('oklch(0.35 0.0049 234)'),\n },\n secondary: {\n light: createColor('oklch(0.94 0.0049 234)'),\n dark: createColor('oklch(0.3 0.0049 234)'),\n },\n },\n\n separator: {\n primary: {\n light: createColor('oklch(0.88 0.0049 236)'),\n dark: createColor('oklch(0.33 0.0049 236)'),\n },\n },\n\n link: {\n primary: {\n light: createColor('oklch(0.7 0.16 250)'),\n dark: createColor('oklch(0.78 0.14 250)'),\n },\n },\n\n disabledControl: {\n primary: {\n light: createColor('oklch(0.94 0.0049 226)'),\n dark: createColor('oklch(0.27 0.0049 226)'),\n },\n },\n\n disabledText: {\n primary: {\n light: createColor('oklch(0.9 0.0049 226)'),\n dark: createColor('oklch(0.55 0.0049 226)'),\n },\n },\n}\n\nexport const regularBackgroundColors: SemanticColor = {\n primary: {\n light: createColor('oklch(0.99 0.0049 230)'),\n dark: createColor('oklch(0.22 0.0049 230)'),\n },\n secondary: {\n light: createColor('oklch(0.98 0.0049 230)'),\n dark: createColor('oklch(0.26 0.0049 230)'),\n },\n tertiary: {\n light: createColor('oklch(0.97 0.0049 230)'),\n dark: createColor('oklch(0.30 0.0049 230)'),\n },\n quaternary: {\n light: createColor('oklch(0.96 0.0049 230)'),\n dark: createColor('oklch(0.34 0.0049 230)'),\n },\n quinary: {\n light: createColor('oklch(0.949 0.0049 230)'),\n dark: createColor('oklch(0.38 0.0049 230)'),\n },\n}\n\nexport const regularFillColors: SemanticColor = {\n primary: {\n light: createColor('oklch(0.96 0.0049 228)'),\n dark: createColor('oklch(0.3 0.0049 228)'),\n },\n secondary: {\n light: createColor('oklch(0.94 0.0049 228)'),\n dark: createColor('oklch(0.35 0.0049 228)'),\n },\n tertiary: {\n light: createColor('oklch(0.92 0.0049 228)'),\n dark: createColor('oklch(0.4 0.0049 228)'),\n },\n quaternary: {\n light: createColor('oklch(0.90 0.0049 228)'),\n dark: createColor('oklch(0.45 0.0049 228)'),\n },\n}\n\nexport const regularMaterialColors: Record<MaterialOpacity, MaterialColor> = {\n ultraThick: {\n light: createColor('oklch(0.96 0.0049 232 / 0.93)'),\n dark: createColor('oklch(0.2 0.0049 232 / 0.93)'),\n },\n\n thick: {\n light: createColor('oklch(0.96 0.0049 232 / 0.85)'),\n dark: createColor('oklch(0.2 0.0049 232 / 0.85)'),\n },\n\n medium: {\n light: createColor('oklch(0.96 0.0049 232 / 0.65)'),\n dark: createColor('oklch(0.2 0.0049 232 / 0.80)'),\n },\n\n thin: {\n light: createColor('oklch(0.96 0.0049 232 / 0.60)'),\n dark: createColor('oklch(0.2 0.0049 232 / 0.60)'),\n },\n\n ultraThin: {\n light: createColor('oklch(0.96 0.0049 232 / 0.45)'),\n dark: createColor('oklch(0.2 0.0049 232 / 0.45)'),\n },\n\n opaque: {\n light: createColor('oklch(0.96 0.0049 232)'),\n dark: createColor('oklch(0.2 0.0049 232)'),\n },\n}\n","import {\n highContrastApplicationColors,\n highContrastBackgroundColors,\n highContrastColors,\n highContrastElementColors,\n highContrastFillColors,\n highContrastGrayScale,\n highContrastMaterialColors,\n} from './themes/high-contrast'\nimport {\n kawaiiApplicationColors,\n kawaiiBackgroundColors,\n kawaiiColors,\n kawaiiElementColors,\n kawaiiFillColors,\n kawaiiGrayScale,\n kawaiiMaterialColors,\n} from './themes/kawaii'\nimport {\n regularApplicationColors,\n regularBackgroundColors,\n regularColors,\n regularElementColors,\n regularFillColors,\n regularGrayScale,\n regularMaterialColors,\n} from './themes/regular'\nimport type { ColorPalette, ColorSystem, ThemeColorSystem } from './types'\n\nexport const regularColorSystem: ThemeColorSystem = {\n colors: regularColors,\n grayScale: regularGrayScale,\n element: regularElementColors,\n background: regularBackgroundColors,\n fill: regularFillColors,\n material: regularMaterialColors,\n application: regularApplicationColors,\n}\n\nexport const kawaiiColorSystem: ThemeColorSystem = {\n colors: kawaiiColors,\n grayScale: kawaiiGrayScale,\n element: kawaiiElementColors,\n background: kawaiiBackgroundColors,\n fill: kawaiiFillColors,\n material: kawaiiMaterialColors,\n application: kawaiiApplicationColors,\n}\n\nexport const highContrastColorSystem: ThemeColorSystem = {\n colors: highContrastColors,\n grayScale: highContrastGrayScale,\n element: highContrastElementColors,\n background: highContrastBackgroundColors,\n fill: highContrastFillColors,\n material: highContrastMaterialColors,\n application: highContrastApplicationColors,\n}\n\nexport const colorSystem: ColorSystem = {\n regular: regularColorSystem,\n kawaii: kawaiiColorSystem,\n 'high-contrast': highContrastColorSystem,\n}\n\nexport const colorPalette: ColorPalette = {\n colors: colorSystem,\n meta: {\n name: 'Universal Color System',\n description:\n 'A comprehensive color system with regular, kawaii, and high-contrast themes',\n theme: 'regular',\n },\n}\n\n// Export individual theme systems for convenience - using different names to avoid conflicts\nexport { regularColorSystem as regularTheme }\nexport { kawaiiColorSystem as kawaiiTheme }\nexport { highContrastColorSystem as highContrastTheme }\n"],"mappings":"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