/** * 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 { Platform } from 'react-native'; const tintColorLight = '#0a7ea4'; const tintColorDark = '#fff'; export const Colors = { light: { text: '#11181C', background: '#fff', tint: tintColorLight, icon: '#687076', tabIconDefault: '#687076', tabIconSelected: tintColorLight, card: '#fff', cardBorder: '#e0e0e0', categoryBadge: '#007AFF', categoryBadgeText: '#fff', tagBadge: '#e0e0e0', tagBadgeText: '#11181C', imagePlaceholder: '#f0f0f0', error: '#ff3b30', border: '#e0e0e0', textPlaceholder: '#A0A4AB', }, dark: { text: '#ECEDEE', background: '#151718', tint: tintColorDark, icon: '#9BA1A6', tabIconDefault: '#9BA1A6', tabIconSelected: tintColorDark, card: '#1F2223', cardBorder: '#2C2E2F', categoryBadge: '#0A84FF', categoryBadgeText: '#fff', tagBadge: '#2C2E2F', tagBadgeText: '#ECEDEE', imagePlaceholder: '#2C2E2F', error: '#ff453a', border: '#2C2E2F', textPlaceholder: '#8A8F9C', }, brand: { primary: '#007AFF', secondary: '#4ECDC4', points: '#FF6B6B', success: '#07C160', danger: '#FF4444', warning: '#FF9500', }, text: { primary: '#333333', secondary: '#666666', tertiary: '#999999', }, background: { primary: '#F5F5F5', secondary: '#FFFFFF', tertiary: '#FAFAFA', }, border: '#E0E0E0', }; export const Spacing = { xs: 4, sm: 8, md: 16, lg: 20, xl: 24, xxl: 32, }; export const BorderRadius = { sm: 8, md: 12, lg: 16, xl: 20, xxl: 28, full: 999, }; export const FontSize = { xs: 12, sm: 14, md: 16, lg: 18, xl: 20, xxl: 24, title: 28, }; export const Shadow = { small: { shadowColor: '#000000', shadowOffset: { width: 0, height: 2, }, shadowOpacity: 0.05, shadowRadius: 4, elevation: 2, }, medium: { shadowColor: '#000000', shadowOffset: { width: 0, height: 4, }, shadowOpacity: 0.1, shadowRadius: 8, elevation: 4, }, large: { shadowColor: '#000000', shadowOffset: { width: 0, height: 8, }, shadowOpacity: 0.15, shadowRadius: 12, elevation: 8, }, }; export const Animation = { scale: { pressed: 0.98, }, duration: { fast: 200, normal: 300, slow: 500, }, }; export const Layout = { headerHeight: 56, buttonHeight: { small: 36, medium: 48, large: 56, }, tabBarHeight: 60, safeAreaPadding: { top: 16, bottom: 16, left: 16, right: 16, }, }; 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: "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif", serif: "Georgia, 'Times New Roman', serif", rounded: "'SF Pro Rounded', 'Hiragino Maru Gothic ProN', Meiryo, 'MS PGothic', sans-serif", mono: "SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace", }, }); export const Theme = { colors: Colors, spacing: Spacing, borderRadius: BorderRadius, fontSize: FontSize, shadow: Shadow, animation: Animation, layout: Layout, };