UNPKG

unich-ui-kit-web

Version:

Mantine theme configuration and provider for Unich UI Kit

1 lines 23.9 kB
{"version":3,"sources":["../../src/theme/generated-colors.ts","../../src/theme/colors.ts","../../src/theme/index.ts","../../src/theme/provider.tsx"],"names":["baseColors","createTheme"],"mappings":"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","file":"provider.mjs","sourcesContent":["// Generated Color System\n// Auto-generated by generate-colors.ts\nexport const baseColors = {\n // PRIMARY COLORS\n // Primary brand color based on logo palette\n orange: {\n 50: '#fff7ed', // Subtle backgrounds - HSL: 33,10000,9600\n 100: '#ffeed8', // Hover states - HSL: 34,10000,9200\n 200: '#ffdbb0', // Borders - HSL: 33,10000,8500\n 300: '#ffc888', // Icons - HSL: 32,10000,7700\n 400: '#ffb55f', // Secondary actions - HSL: 32,10000,6900\n 500: '#ff990a', // Primary actions - HSL: 35,10000,5200\n 600: '#e38607', // Hover - HSL: 35,9400,4600\n 700: '#c87304', // Active - HSL: 34,9600,4000\n 800: '#ad6102', // Dark variant - HSL: 33,9800,3400\n 900: '#935001', // Extra dark - HSL: 32,9900,2900\n 950: '#7a3f00', // Maximum contrast - HSL: 31,10000,2400\n },\n\n // NEUTRAL COLORS\n // Brand neutral colors from light to dark palette\n neutral: {\n 50: '#ececec', // Background, cards - HSL: 0,0,9300\n 100: '#e1e1e1', // Subtle backgrounds - HSL: 0,0,8800\n 200: '#cacaca', // Borders, dividers - HSL: 0,0,7900\n 300: '#b4b4b4', // Disabled states - HSL: 0,0,7100\n 400: '#9f9f9f', // Placeholder text - HSL: 0,0,6200\n 500: '#808080', // Secondary text - HSL: 0,0,5000\n 600: '#696969', // Body text - HSL: 0,0,4100\n 700: '#535353', // Headings - HSL: 0,0,3300\n 800: '#3e3e3e', // High contrast text - HSL: 0,0,2400\n 900: '#2a2a2a', // Extra high contrast - HSL: 0,0,1600\n 950: '#171717', // Maximum contrast - HSL: 0,0,900\n },\n\n // Grayscale for UI elements palette\n gray: {\n 50: '#f9f9f9', // Background, cards - HSL: 0,0,9800\n 100: '#f0f0f1', // Subtle backgrounds - HSL: 240,300,9400\n 200: '#dedee1', // Borders, dividers - HSL: 240,500,8800\n 300: '#ccccd1', // Disabled states - HSL: 240,500,8100\n 400: '#bbbbc1', // Placeholder text - HSL: 240,500,7500\n 500: '#a1a1aa', // Secondary text - HSL: 240,500,6500\n 600: '#83838a', // Body text - HSL: 240,300,5300\n 700: '#66666c', // Headings - HSL: 240,300,4100\n 800: '#4a4a4f', // High contrast text - HSL: 240,300,3000\n 900: '#303034', // Extra high contrast - HSL: 240,400,2000\n 950: '#18181b', // Maximum contrast - HSL: 240,600,1000\n },\n\n // SEMANTIC COLORS\n // Error and danger states palette\n red: {\n 50: '#fef2f2', // HSL: 0,8600,9700\n 100: '#ffe2df', // HSL: 6,10000,9400\n 200: '#ffc2ba', // HSL: 7,10000,8600\n 300: '#ffa297', // HSL: 6,10000,8000\n 400: '#fb8074', // HSL: 5,9400,7200\n 500: '#ef4444', // HSL: 0,8400,6000\n 600: '#ca3738', // HSL: 360,5800,5000\n 700: '#a72b2d', // HSL: 359,5900,4100\n 800: '#842022', // HSL: 359,6100,3200\n 900: '#641517', // HSL: 358,6500,2400\n 950: '#450a0a', // HSL: 0,7500,1500\n },\n\n // Success states palette\n green: {\n 50: '#f0fdf4', // HSL: 138,7600,9700\n 100: '#e0f8e5', // HSL: 133,6300,9300\n 200: '#beedc6', // HSL: 130,5700,8400\n 300: '#9be2a8', // HSL: 131,5500,7500\n 400: '#76d78b', // HSL: 133,5500,6500\n 500: '#22c55e', // HSL: 142,7100,4500\n 600: '#1ca44f', // HSL: 143,7100,3800\n 700: '#168440', // HSL: 143,7100,3000\n 800: '#106631', // HSL: 143,7300,2300\n 900: '#0a4923', // HSL: 144,7600,1600\n 950: '#052e16', // HSL: 145,8000,1000\n },\n\n // Warning states palette\n yellow: {\n 50: '#fefce8', // HSL: 55,9200,9500\n 100: '#fef4d5', // HSL: 45,9500,9200\n 200: '#fde6ae', // HSL: 43,9500,8400\n 300: '#f9d788', // HSL: 42,9000,7500\n 400: '#f4c860', // HSL: 42,8700,6700\n 500: '#eab308', // HSL: 45,9300,4700\n 600: '#c6930e', // HSL: 43,8700,4200\n 700: '#a37410', // HSL: 41,8200,3500\n 800: '#81560f', // HSL: 37,7900,2800\n 900: '#613a0d', // HSL: 32,7600,2200\n 950: '#422006', // HSL: 26,8300,1400\n },\n\n // ACCENT COLORS\n // Secondary brand color for accent use palette\n blue: {\n 50: '#f0f7ff', // HSL: 212,10000,9700\n 100: '#e1ebff', // HSL: 220,10000,9400\n 200: '#c1d3ff', // HSL: 223,10000,8800\n 300: '#9fbcff', // HSL: 222,10000,8100\n 400: '#78a5ff', // HSL: 220,10000,7400\n 500: '#0a85ff', // HSL: 210,10000,5200\n 600: '#0775e3', // HSL: 210,9400,4600\n 700: '#0466c7', // HSL: 210,9600,4000\n 800: '#0257ac', // HSL: 210,9800,3400\n 900: '#014992', // HSL: 210,9900,2900\n 950: '#003b79', // HSL: 211,10000,2400\n },\n};\n","/**\n * Color System for unich-ui-kit-web\n *\n * Design Principles:\n * 1. Hierarchical: Clear primary/secondary/accent color hierarchy\n * 2. Semantic: Colors convey meaning and function\n * 3. Accessible: WCAG 2.1 AA compliant contrast ratios\n * 4. Systematic: Consistent shade progression (50-950)\n * 5. Harmonious: Colors work together in various combinations\n */\n\n// Import generated colors\nimport { baseColors as generatedColors } from './generated-colors';\n\n// Base color palette - using generated colors from user's brand colors\nexport const baseColors = {\n // Neutral - Brand neutral colors from light to dark\n neutral: generatedColors.neutral,\n\n // Primary - Brand orange from logo\n orange: generatedColors.orange,\n\n // Secondary - Brand blue accent color\n blue: generatedColors.blue,\n\n // Grayscale UI elements\n gray: generatedColors.gray,\n\n // Error & Danger\n red: generatedColors.red,\n\n // Success\n green: generatedColors.green,\n\n // Warning\n yellow: generatedColors.yellow,\n};\n\n/**\n * Semantic color mappings for UI elements and states\n * Organized by function and context for intuitive usage\n */\nexport const semanticColors = {\n // Core UI Colors\n primary: baseColors.orange, // Main brand color from logo (#FF990A)\n secondary: baseColors.blue, // Secondary brand color (#0A85FF)\n tertiary: baseColors.gray, // Additional UI options\n\n // State & Feedback\n success: baseColors.green, // Positive actions, completion\n info: baseColors.blue, // Information, help\n warning: baseColors.yellow, // Caution, important notices\n error: baseColors.red, // Errors, destructive actions\n\n // UI Elements\n neutral: baseColors.neutral, // Text, backgrounds, borders\n accent: baseColors.blue, // Highlights, focus states\n\n // Special Purpose\n highlight: baseColors.yellow, // Attention-grabbing elements\n link: baseColors.blue, // Interactive text\n border: baseColors.gray, // Borders and dividers\n background: {\n // Background hierarchy\n page: baseColors.neutral[50], // Light background (#ECECEC)\n card: baseColors.neutral[100],\n active: baseColors.neutral[200],\n dark: baseColors.neutral[950], // Dark background (#171717)\n },\n text: {\n // Text hierarchy\n primary: baseColors.neutral[900],\n secondary: baseColors.neutral[700],\n tertiary: baseColors.neutral[500],\n disabled: baseColors.neutral[400],\n onDark: baseColors.neutral[50], // Text on dark background\n },\n};\n\n/**\n * Export the main colors object for Mantine compatibility\n */\nexport const colors = {\n ...baseColors,\n};\n\n// Type definitions for semantic colors\nexport interface ColorShades {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n 950: string;\n}\n\nexport interface BackgroundColors {\n page: string;\n card: string;\n active: string;\n dark: string;\n}\n\nexport interface TextColors {\n primary: string;\n secondary: string;\n tertiary: string;\n disabled: string;\n onDark: string;\n}\n\nexport type SemanticColor = ColorShades | BackgroundColors | TextColors | string;\n\n/**\n * Helper function to get a specific semantic color shade\n * @param colorName - The semantic color name\n * @param shade - The shade value (50-950)\n * @returns The hex color value\n */\nexport const getSemanticColor = (\n colorName: keyof typeof semanticColors,\n shade: 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 950 = 500\n): string => {\n const color = semanticColors[colorName] as SemanticColor;\n\n // Handle direct string values\n if (typeof color === 'string') return color;\n\n // Handle nested objects (like background and text)\n if (typeof color === 'object') {\n // If it's a color palette object with shades\n if ('50' in color) {\n return (color as ColorShades)[shade];\n }\n\n // If it's a semantic object (like background or text)\n // Just return the first property value as a fallback\n const keys = Object.keys(color);\n if (keys.length > 0) {\n // Type assertion to unknown first for safety\n return (color as unknown as Record<string, string>)[keys[0]];\n }\n }\n\n return '';\n};\n","import { createTheme, MantineThemeOverride, rem } from '@mantine/core';\nimport { baseColors, semanticColors } from './colors';\nexport * from './colors';\n\n// Convert color palette objects to arrays for Mantine\nconst convertPaletteToArray = (\n palette: Record<string, string>\n): [string, string, string, string, string, string, string, string, string, string, string] => {\n return [\n palette['50'] || palette['100'],\n palette['100'],\n palette['200'],\n palette['300'],\n palette['400'],\n palette['500'],\n palette['600'],\n palette['700'],\n palette['800'],\n palette['900'],\n palette['950'],\n ];\n};\n\n/**\n * Default UI Kit theme with semantically organized colors\n * and standardized components based on brand colors:\n * - #FF990A (orange) as main color in logo\n * - #ECECEC (white) as light color in logo text\n * - #171717 (dark) as dark color for backgrounds\n * - #0A85FF (blue) as accent color\n */\nexport const theme: MantineThemeOverride = createTheme({\n // Use orange as primary color (matches our main logo color)\n primaryColor: 'orange',\n defaultRadius: 'xs',\n fontFamily: 'Montserrat, sans-serif',\n fontFamilyMonospace: 'Monaco, Courier, monospace',\n // Use shade 5 (which corresponds to 500) as default\n primaryShade: { light: 5, dark: 5 },\n cursorType: 'pointer',\n autoContrast: true,\n luminanceThreshold: 0.2,\n\n // Enhanced typography settings\n headings: {\n fontFamily: 'Montserrat, sans-serif',\n fontWeight: '600',\n sizes: {\n h1: { fontSize: rem(36), lineHeight: '1.4', fontWeight: '700' },\n h2: { fontSize: rem(30), lineHeight: '1.4', fontWeight: '600' },\n h3: { fontSize: rem(24), lineHeight: '1.4', fontWeight: '600' },\n h4: { fontSize: rem(20), lineHeight: '1.4', fontWeight: '500' },\n h5: { fontSize: rem(16), lineHeight: '1.4', fontWeight: '500' },\n h6: { fontSize: rem(14), lineHeight: '1.4', fontWeight: '500' },\n },\n },\n\n // Enhanced spacing system\n spacing: {\n xs: rem(4), // Compact elements\n sm: rem(8), // Tight spacing\n md: rem(16), // Standard spacing\n lg: rem(24), // Relaxed spacing\n xl: rem(32), // Section spacing\n '2xl': rem(48), // Large sections\n '3xl': rem(64), // Page sections\n },\n\n // Custom shadows for depth\n shadows: {\n xs: '0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.1)',\n sm: '0 1px 3px rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0px 2px 4px',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n },\n\n // Enhanced focus ring for better accessibility\n focusRing: 'auto',\n\n // Configure all the color palettes for Mantine\n colors: {\n // Base colors\n neutral: convertPaletteToArray(baseColors.neutral),\n orange: convertPaletteToArray(baseColors.orange),\n blue: convertPaletteToArray(baseColors.blue),\n gray: convertPaletteToArray(baseColors.gray),\n red: convertPaletteToArray(baseColors.red),\n yellow: convertPaletteToArray(baseColors.yellow),\n green: convertPaletteToArray(baseColors.green),\n },\n\n // Component-specific styles\n components: {\n Button: {\n defaultProps: {\n radius: 'sm',\n },\n styles: {\n root: {\n transition: 'all 0.2s ease',\n '&:hover': {\n transform: 'translateY(-1px)',\n },\n },\n },\n },\n Card: {\n defaultProps: {\n radius: 'md',\n shadow: 'sm',\n },\n },\n Alert: {\n styles: {\n root: {\n borderRadius: 'var(--mantine-radius-md)',\n },\n },\n },\n },\n});\n\n/**\n * Theme variants for specific brand identities\n * or alternative color schemes\n */\nexport const themeVariants = {\n // Brand Theme - Orange primary (logo color)\n brand: theme,\n\n // Dark Brand Theme - Dark background with orange primary\n darkBrand: createTheme({\n ...theme,\n primaryColor: 'orange',\n // For dark mode, handle this via MantineProvider's colorScheme prop\n colors: {\n ...theme.colors,\n },\n }),\n\n // Blue Accent Theme - Blue primary\n blue: createTheme({\n ...theme,\n primaryColor: 'blue',\n colors: {\n ...theme.colors,\n },\n }),\n\n // Neutral Theme - Gray primary\n gray: createTheme({\n ...theme,\n primaryColor: 'gray',\n colors: {\n ...theme.colors,\n },\n }),\n\n // Legacy default theme\n default: theme,\n};\n\n/**\n * Semantic color reference for use in custom styling\n * Example: useStyles = createStyles((theme) => ({\n * successText: { color: getThemeColor(theme, 'success') }\n * }))\n */\nexport const getThemeColor = (\n theme: MantineThemeOverride,\n semantic: keyof typeof semanticColors,\n shade: 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 950 = 500\n): string => {\n const colorName =\n semantic === 'primary'\n ? theme.primaryColor || 'orange'\n : Object.keys(semanticColors).find(key => key === semantic);\n\n if (!colorName) return '';\n\n // Get the matched index in the Mantine theme colors array\n // Mantine uses index 0-10 for its color shades\n const shadeIndex = {\n 50: 0,\n 100: 1,\n 200: 2,\n 300: 3,\n 400: 4,\n 500: 5,\n 600: 6,\n 700: 7,\n 800: 8,\n 900: 9,\n 950: 10,\n }[shade];\n\n return theme.colors?.[colorName as string]?.[shadeIndex] || '';\n};\n\n// Export everything\nexport { convertPaletteToArray, theme as default };\n","import React from 'react';\nimport { MantineProvider, MantineProviderProps, createTheme } from '@mantine/core';\nimport { theme, themeVariants } from './index';\n\n/**\n * Theme variant options available in the UI Kit\n */\nexport type ThemeVariant = keyof typeof themeVariants;\n\ninterface ThemeProviderProps extends Omit<MantineProviderProps, 'theme'> {\n children: React.ReactNode;\n /** Optional theme overrides */\n themeOverrides?: Partial<typeof theme>;\n /** Theme variant selection */\n variant?: ThemeVariant;\n}\n\n/**\n * Theme provider component that applies the UI kit theme\n * and allows for easy theme customization with semantic colors\n *\n * @example\n * // Basic usage with default brand theme (orange primary)\n * <ThemeProvider>\n * <App />\n * </ThemeProvider>\n *\n * @example\n * // With blue accent color as primary\n * <ThemeProvider variant=\"blue\">\n * <App />\n * </ThemeProvider>\n *\n * @example\n * // With dark brand theme\n * <ThemeProvider variant=\"darkBrand\">\n * <App />\n * </ThemeProvider>\n */\nexport function ThemeProvider({\n children,\n themeOverrides,\n variant = 'brand',\n ...otherProps\n}: ThemeProviderProps) {\n // Validate theme variant\n if (variant && !themeVariants[variant]) {\n console.warn(`Invalid theme variant \"${variant}\". Falling back to \"brand\" theme.`);\n }\n\n // Get the selected theme variant\n const selectedTheme = themeVariants[variant] || themeVariants.brand;\n\n // Create the final theme with any overrides\n const finalTheme = createTheme({\n ...selectedTheme,\n ...(themeOverrides || {}),\n });\n\n return (\n <MantineProvider theme={finalTheme} {...otherProps}>\n {children}\n </MantineProvider>\n );\n}\n\n/**\n * Create a custom theme by extending the base theme\n *\n * @example\n * const customTheme = extendTheme({\n * primaryColor: 'orange',\n * defaultRadius: 'lg',\n * });\n */\nexport const extendTheme = (themeOverrides: Partial<typeof theme>) => {\n return createTheme({ ...theme, ...themeOverrides });\n};\n"]}