import { MD3LightTheme, MD3DarkTheme } from 'react-native-paper'; // ─── Antaram Brand Colors ────────────────────────────────────────────────────── const antaramBrand = { /** Primary green – main brand color */ primary: '#1B6B4D', /** Lighter tint of the primary green */ primaryLight: '#2E9970', /** Darker shade of the primary green */ primaryDark: '#0F4A35', /** Accent warm amber for CTAs and highlights */ accent: '#E8A838', /** Lighter tint of the accent amber */ accentLight: '#F0C060', /** Darker shade of the accent amber */ accentDark: '#C88820', /** Surface background for the app */ background: '#F7F5F0', /** Slightly darker surface used for cards and elevated containers */ surface: '#FFFFFF', /** Elevated surface color for modals and dialogs */ surfaceElevated: '#FFFFFF', /** Error / danger color */ error: '#D32F2F', /** Warning color */ warning: '#F57C00', /** Success color */ success: '#2E7D32', /** Informational / info color */ info: '#1565C0', }; // ─── Extended semantic status colors (same in light & dark) ──────────────────── const antaramStatus = { /** A ride is currently in progress */ rideActive: '#1B6B4D', /** A ride match has been confirmed */ rideMatched: '#E8A838', /** The user is searching for a ride */ rideSearching: '#1565C0', /** The user's online / available indicator */ onlineIndicator: '#4CAF50', /** The user's offline indicator */ offlineIndicator: '#9E9E9E', }; // ─── Light-mode M3 overrides ─────────────────────────────────────────────────── const lightOverrides = { primary: antaramBrand.primary, onPrimary: '#FFFFFF', primaryContainer: '#A8DCC8', onPrimaryContainer: '#002114', secondary: '#4E6355', onSecondary: '#FFFFFF', secondaryContainer: '#D0E8D6', onSecondaryContainer: '#0B1F14', tertiary: antaramBrand.accent, onTertiary: '#FFFFFF', tertiaryContainer: '#FFE0A0', onTertiaryContainer: '#3D2E00', error: antaramBrand.error, onError: '#FFFFFF', errorContainer: '#FFDAD6', onErrorContainer: '#410002', background: antaramBrand.background, onBackground: '#1A1C19', surface: antaramBrand.surface, onSurface: '#1A1C19', surfaceVariant: '#DDE5DB', onSurfaceVariant: '#414942', outline: '#717971', outlineVariant: '#C1C9BE', shadow: '#000000', scrim: '#000000', inverseSurface: '#2F312D', inverseOnSurface: '#F0F1EC', inversePrimary: '#8DCEAF', elevation: { level0: 'transparent', level1: 'rgba(0, 0, 0, 0.05)', level2: 'rgba(0, 0, 0, 0.08)', level3: 'rgba(0, 0, 0, 0.11)', level4: 'rgba(0, 0, 0, 0.12)', level5: 'rgba(0, 0, 0, 0.14)', }, }; // ─── Dark-mode M3 overrides ──────────────────────────────────────────────────── const darkOverrides = { primary: '#8DCEAF', onPrimary: '#003824', primaryContainer: '#005237', onPrimaryContainer: '#A8DCC8', secondary: '#B4CCBA', onSecondary: '#203528', secondaryContainer: '#374B3E', onSecondaryContainer: '#D0E8D6', tertiary: antaramBrand.accentLight, onTertiary: '#3D2E00', tertiaryContainer: '#C88820', onTertiaryContainer: '#FFE0A0', error: '#FFB4AB', onError: '#690005', errorContainer: '#93000A', onErrorContainer: '#FFDAD6', background: '#1A1C19', onBackground: '#E2E3DD', surface: '#1A1C19', onSurface: '#E2E3DD', surfaceVariant: '#414942', onSurfaceVariant: '#C1C9BE', outline: '#8B938A', outlineVariant: '#414942', shadow: '#000000', scrim: '#000000', inverseSurface: '#E2E3DD', inverseOnSurface: '#2F312D', inversePrimary: '#1B6B4D', elevation: { level0: 'transparent', level1: 'rgba(0, 0, 0, 0.12)', level2: 'rgba(0, 0, 0, 0.17)', level3: 'rgba(0, 0, 0, 0.22)', level4: 'rgba(0, 0, 0, 0.25)', level5: 'rgba(0, 0, 0, 0.30)', }, }; // ─── Color type helpers ───────────────────────────────────────────────────────── /** All Antaram brand colors (mode-independent) */ export interface AntaramBrandColors { primary: string; primaryLight: string; primaryDark: string; accent: string; accentLight: string; accentDark: string; background: string; surface: string; surfaceElevated: string; error: string; warning: string; success: string; info: string; } /** Semantic status colors */ export interface AntaramStatusColors { rideActive: string; rideMatched: string; rideSearching: string; onlineIndicator: string; offlineIndicator: string; } /** Combined app colors type */ export interface AppColors { brand: AntaramBrandColors; status: AntaramStatusColors; } // ─── Exports ──────────────────────────────────────────────────────────────────── export const antaramColors = { brand: antaramBrand, status: antaramStatus, } satisfies AppColors; export { lightOverrides, darkOverrides };