diff --git a/docs/.vitepress/theme/components/ColorPicker.vue b/docs/.vitepress/theme/components/ColorPicker.vue index 3615c4821..f54ef0f03 100644 --- a/docs/.vitepress/theme/components/ColorPicker.vue +++ b/docs/.vitepress/theme/components/ColorPicker.vue @@ -3,6 +3,27 @@ import { colors } from '@fmhy/colors' import { useStorage, useStyleTag } from '@vueuse/core' import { watch } from 'vue' +// Add Halloween colors locally +const halloweenColors = { + 50: '#fff7ed', + 100: '#ffedd5', + 200: '#fed7aa', + 300: '#fdba74', + 400: '#fb923c', + 500: '#FF6A00', + 600: '#ea580c', + 700: '#c2410c', + 800: '#9a3412', + 900: '#7c2d12', + 950: '#431407' +} + +// Extend colors with Halloween theme +const extendedColors = { + ...colors, + halloween: halloweenColors +} + const colorScales = [ '50', '100', @@ -17,17 +38,17 @@ const colorScales = [ '950' ] as const -type ColorNames = keyof typeof colors +type ColorNames = keyof typeof extendedColors const selectedColor = useStorage('preferred-color', 'swarm') -const colorOptions = Object.keys(colors).filter( - (key) => typeof colors[key as keyof typeof colors] === 'object' +const colorOptions = Object.keys(extendedColors).filter( + (key) => typeof extendedColors[key as keyof typeof extendedColors] === 'object' ) as Array const { css } = useStyleTag('', { id: 'brand-color' }) const updateThemeColor = (colorName: ColorNames) => { - const colorSet = colors[colorName] + const colorSet = extendedColors[colorName] const cssVars = colorScales .map((scale) => `--vp-c-brand-${scale}: ${colorSet[scale]};`) @@ -75,7 +96,7 @@ const normalizeColorName = (colorName: string) => > diff --git a/unocss.config.ts b/unocss.config.ts index 5c15a2253..a33dcbc69 100644 --- a/unocss.config.ts +++ b/unocss.config.ts @@ -25,6 +25,27 @@ import { transformerDirectives } from 'unocss' +// Add Halloween colors to extend the existing colors +const halloweenColors = { + 50: '#fff7ed', + 100: '#ffedd5', + 200: '#fed7aa', + 300: '#fdba74', + 400: '#fb923c', + 500: '#FF6A00', + 600: '#ea580c', + 700: '#c2410c', + 800: '#9a3412', + 900: '#7c2d12', + 950: '#431407' +} + +// Extend colors with Halloween theme +const extendedColors = { + ...colors, + halloween: halloweenColors +} + const colorScales = [ '50', '100', @@ -39,7 +60,7 @@ const colorScales = [ '950' ] as const -const colorPattern = Object.keys(colors).join('|') +const colorPattern = Object.keys(extendedColors).join('|') const createColorRules = (type: 'text' | 'bg' | 'border'): Rule[] => { const property = type === 'text' @@ -52,7 +73,7 @@ const createColorRules = (type: 'text' | 'bg' | 'border'): Rule[] => { (scale) => [ new RegExp(`^${type}-(${colorPattern})-${scale}$`), - ([, color]) => ({ [property]: colors[color][scale] }) + ([, color]) => ({ [property]: extendedColors[color][scale] }) ] as const ) } @@ -63,7 +84,7 @@ export default defineConfig({ }, theme: { colors: { - ...colors, + ...extendedColors, primary: 'var(--vp-c-brand-1)', bg: 'var(--vp-c-bg)', 'bg-alt': 'var(--vp-c-bg-alt)',