/**
 * Below are the colors that are used in the app. The colors are defined in the light and dark mode.
 * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc.
 */

import '@/global.css';

import { Platform } from 'react-native';

export const Colors = {
  light: {
    text: '#1A1626',
    background: '#FFF6E9',
    surface: '#FFFFFF',
    surfaceRaised: '#FFFFFF',
    backgroundElement: '#F1E7D6',
    backgroundSelected: '#FFE7A8',
    textSecondary: '#6B6280',
    textMuted: '#9A93A8',
    border: '#1A1626',
    accent: '#7B5BFF',
    accentSoft: '#EBE5FF',
    clear: '#12C46A',
    clearSoft: '#D8F8E7',
    resistance: '#FF4D5E',
    resistanceSoft: '#FFE1E0',
    tabBar: '#FFFFFF',
  },
  dark: {
    text: '#F7F3FF',
    background: '#15121C',
    surface: '#241D33',
    surfaceRaised: '#2A2338',
    backgroundElement: '#2A2338',
    backgroundSelected: '#3A2F58',
    textSecondary: '#B7AECB',
    textMuted: '#7C7393',
    border: '#0A0810',
    accent: '#9B7BFF',
    accentSoft: '#2E2747',
    clear: '#22D67E',
    clearSoft: '#16321F',
    resistance: '#FF6B79',
    resistanceSoft: '#3A1820',
    tabBar: '#1C1726',
  },
} as const;

export type ThemeColor = keyof typeof Colors.light & keyof typeof Colors.dark;

export const Fonts = Platform.select({
  ios: {
    /** iOS `UIFontDescriptorSystemDesignDefault` */
    sans: 'system-ui',
    /** iOS `UIFontDescriptorSystemDesignSerif` */
    serif: 'ui-serif',
    /** iOS `UIFontDescriptorSystemDesignRounded` */
    rounded: 'ui-rounded',
    /** iOS `UIFontDescriptorSystemDesignMonospaced` */
    mono: 'ui-monospace',
  },
  default: {
    sans: 'normal',
    serif: 'serif',
    rounded: 'normal',
    mono: 'monospace',
  },
  web: {
    sans: 'var(--font-display)',
    serif: 'var(--font-serif)',
    rounded: 'var(--font-rounded)',
    mono: 'var(--font-mono)',
  },
});

export const Spacing = {
  half: 2,
  one: 4,
  two: 8,
  three: 16,
  four: 24,
  five: 32,
  six: 64,
} as const;

export const BottomTabInset = Platform.select({ ios: 50, android: 80 }) ?? 0;
export const MaxContentWidth = 800;
