import { ThemeConfig } from 'antd'; import { designTokens } from './designTokens'; export const chorusTheme: ThemeConfig = { // algorithm: darkAlgorithm, // Temporarily removed to fix build issue token: { // Primary brand colors - CHORUS brand system colorPrimary: designTokens.system.orchestration.blue, // #007AFF colorSuccess: designTokens.system.harmony.green, // #30D158 colorInfo: designTokens.system.orchestration.light, // #4A90E2 colorWarning: designTokens.system.resonance.amber, // #FF9F0A colorError: designTokens.system.alert.coral, // #FF453A // Background colors - Carbon Black foundation colorBgContainer: designTokens.brand.carbon.medium, // #1a1a1a colorBgElevated: designTokens.brand.carbon.light, // #2a2a2a colorBgLayout: designTokens.brand.carbon.black, // #000000 colorBgSpotlight: designTokens.brand.carbon.medium, // #1a1a1a colorBgBase: designTokens.brand.carbon.black, // #000000 // Text colors - Accessibility compliant hierarchy colorText: '#F2F2F7', // Primary text (19.96:1 contrast) colorTextSecondary: '#A1A1A6', // Secondary text (6.64:1 contrast) colorTextTertiary: '#6D6D73', // Tertiary text (4.51:1 contrast) colorTextQuaternary: '#48484A', // Disabled text // Border colors colorBorder: '#48484A', // Primary borders colorBorderSecondary: designTokens.brand.carbon.light, // #2a2a2a // Typography - Enhanced brand system fontFamily: 'Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif', fontFamilyCode: 'SF Mono, Monaco, Inconsolata, Fira Code, monospace', fontSize: 16, // Base 16px for accessibility fontSizeHeading1: 48, // Display typography fontSizeHeading2: 36, fontSizeHeading3: 28, fontSizeHeading4: 24, fontSizeHeading5: 20, fontSizeLG: 18, // Body large fontSizeSM: 14, // Body small fontSizeXL: 20, // Spacing and sizing borderRadius: 8, borderRadiusLG: 12, borderRadiusOuter: 6, borderRadiusSM: 4, borderRadiusXS: 2, // Layout padding: 16, paddingLG: 24, paddingSM: 12, paddingXL: 32, paddingXS: 8, margin: 16, marginLG: 24, marginSM: 12, marginXL: 32, marginXS: 8, // Component specific controlHeight: 40, controlHeightLG: 48, controlHeightSM: 32, // Motion motionDurationFast: '0.1s', motionDurationMid: '0.2s', motionDurationSlow: '0.3s', // Box shadow for depth boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)', boxShadowSecondary: '0 2px 8px rgba(0, 0, 0, 0.12)', // Wire frame (for development) wireframe: false, }, components: { // Button customization - Brand system integration Button: { borderRadius: 8, controlHeight: 44, fontWeight: 600, fontFamily: 'Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif', primaryShadow: '0 2px 8px rgba(0, 122, 255, 0.2)', defaultShadow: '0 2px 4px rgba(0, 0, 0, 0.1)', }, // Typography - Exo for headings, Roboto for body Typography: { titleMarginBottom: '0.5em', titleMarginTop: '1.2em', fontFamilyCode: 'SF Mono, Monaco, Inconsolata, Fira Code, monospace', }, // Layout - Carbon Black foundation Layout: { headerBg: designTokens.brand.carbon.dark, // #0f0f0f bodyBg: designTokens.brand.carbon.black, // #000000 footerBg: designTokens.brand.carbon.dark, // #0f0f0f siderBg: designTokens.brand.carbon.medium, // #1a1a1a }, // Menu - Orchestration Blue highlights Menu: { itemBg: 'transparent', itemSelectedBg: 'rgba(0, 122, 255, 0.08)', itemHoverBg: 'rgba(255, 255, 255, 0.03)', itemActiveBg: 'rgba(0, 122, 255, 0.12)', itemColor: '#A1A1A6', itemSelectedColor: '#F2F2F7', itemHoverColor: '#F2F2F7', }, // Card Card: { borderRadius: 12, boxShadow: '0 4px 20px rgba(0, 0, 0, 0.25)', }, // Input Input: { borderRadius: 8, controlHeight: 44, }, // Divider Divider: { colorSplit: '#2a2a2a', }, // Spin (loading) Spin: { colorPrimary: '#4A90E2', }, // Progress Progress: { defaultColor: '#4A90E2', }, // Tooltip Tooltip: { borderRadius: 6, colorBgSpotlight: '#2a2a2a', }, // Modal Modal: { borderRadius: 12, contentBg: '#1a1a1a', headerBg: '#1a1a1a', }, // Drawer Drawer: { colorBgElevated: '#1a1a1a', }, // Table Table: { borderRadius: 8, headerBg: '#2a2a2a', headerSortActiveBg: '#3a3a3a', rowHoverBg: 'rgba(255, 255, 255, 0.02)', }, }, }; // Color palette for consistent usage across components export const chorusColors = { // Core brand colors carbon: designTokens.brand.carbon, walnut: designTokens.brand.walnut, aluminum: designTokens.brand.aluminum, paper: designTokens.brand.paper, // System colors orchestrationBlue: designTokens.system.orchestration.blue, // #007AFF harmonyGreen: designTokens.system.harmony.green, // #30D158 resonanceAmber: designTokens.system.resonance.amber, // #FF9F0A alertCoral: designTokens.system.alert.coral, // #FF453A // Semantic colors primary: designTokens.system.orchestration.blue, success: designTokens.system.harmony.green, warning: designTokens.system.resonance.amber, error: designTokens.system.alert.coral, info: designTokens.system.orchestration.light, // Backgrounds - Carbon Black foundation bgPrimary: designTokens.brand.carbon.black, // #000000 bgSecondary: designTokens.brand.carbon.medium, // #1a1a1a bgTertiary: designTokens.brand.carbon.light, // #2a2a2a bgElevated: designTokens.brand.carbon.dark, // #0f0f0f // Text hierarchy - WCAG compliant textPrimary: '#F2F2F7', // 19.96:1 contrast textSecondary: '#A1A1A6', // 6.64:1 contrast textTertiary: '#6D6D73', // 4.51:1 contrast textDisabled: '#48484A', // 3.0:1 contrast (minimum for disabled) textInverse: designTokens.brand.carbon.black, // For light backgrounds // Interactive elements interactivePrimary: designTokens.system.orchestration.blue, interactivePrimaryHover: designTokens.system.orchestration.deep, interactiveSecondary: designTokens.brand.aluminum.metallic, interactiveSecondaryHover: designTokens.brand.aluminum.slate, // Borders borderPrimary: '#48484A', borderSecondary: designTokens.brand.carbon.light, borderAccent: designTokens.system.orchestration.blue, } as const; export type ChorusColor = keyof typeof chorusColors;