feat: add expo mobile application source code
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
// ─────────────────────────────────────────────────────
|
||||
// BIIPROJECT — Design System v3.0
|
||||
// Palette: Neon Lime (#C6F135) · Charcoal Black (#1A1A1A) · Clean White (#FFFFFF)
|
||||
// Inspired by: modern fintech/logistics dark-contrast UI
|
||||
// ─────────────────────────────────────────────────────
|
||||
|
||||
export const PALETTE = {
|
||||
// ── Core ──────────────────────────────────────────
|
||||
lime: '#C6F135', // Primary Neon Lime — CTA, active states, highlights
|
||||
limeDark: '#A8D820', // Darker lime for pressed states
|
||||
limeLight: '#ECFB97', // Soft lime for backgrounds/badges
|
||||
limeMuted: '#C6F13526', // 15% opacity lime for subtle tints
|
||||
|
||||
black: '#111111', // True near-black — primary surfaces/dark mode bg
|
||||
charcoal: '#1A1A1A', // Charcoal — text, buttons, cards
|
||||
graphite: '#2A2A2A', // Card surface in dark mode
|
||||
steel: '#3D3D3D', // Borders, dividers in dark mode
|
||||
|
||||
white: '#FFFFFF', // Pure white — light mode backgrounds
|
||||
offWhite: '#F5F5F5', // Light gray background
|
||||
snow: '#FAFAFA', // Card surfaces in light mode
|
||||
mist: '#EEEEEE', // Border / divider in light mode
|
||||
fog: '#D4D4D4', // Muted / disabled
|
||||
|
||||
// ── Semantic ──────────────────────────────────────
|
||||
textDark: '#111111', // Primary text in light mode
|
||||
textMuted: '#6B6B6B', // Secondary text in light mode
|
||||
textDimmed: '#9B9B9B', // Placeholder / timestamp
|
||||
|
||||
textLight: '#FFFFFF', // Primary text in dark mode
|
||||
textLightMuted: '#A3A3A3', // Secondary text in dark mode
|
||||
|
||||
// ── Status ────────────────────────────────────────
|
||||
success: '#22C55E', // Green (status success)
|
||||
error: '#EF4444', // Red (errors, danger)
|
||||
warning: '#F59E0B', // Amber (warnings)
|
||||
info: '#3B82F6', // Blue (info)
|
||||
};
|
||||
|
||||
export const Theme = {
|
||||
light: {
|
||||
background: PALETTE.offWhite, // Page background: #F5F5F5
|
||||
surface: PALETTE.white, // Card surface: #FFFFFF
|
||||
surfaceLight: PALETTE.snow, // Subtle surface: #FAFAFA
|
||||
surfaceElevated: PALETTE.white,
|
||||
|
||||
primary: PALETTE.lime, // CTA / Active: #C6F135
|
||||
primaryDark: PALETTE.limeDark, // Press state: #A8D820
|
||||
primaryLight: PALETTE.limeLight, // Badge bg: #ECFB97
|
||||
primaryMuted: PALETTE.limeMuted, // Tinted bg: #C6F13526
|
||||
secondary: PALETTE.charcoal, // Buttons/icons: #1A1A1A
|
||||
accent: PALETTE.lime,
|
||||
|
||||
text: PALETTE.textDark, // #111111
|
||||
textSecondary: PALETTE.textMuted, // #6B6B6B
|
||||
textPlaceholder: PALETTE.textDimmed, // #9B9B9B
|
||||
|
||||
border: PALETTE.mist, // #EEEEEE
|
||||
divider: PALETTE.fog, // #D4D4D4
|
||||
|
||||
tabBar: PALETTE.white, // Tab bar background
|
||||
tabBarActive: PALETTE.charcoal, // Active tab icon: charcoal
|
||||
tabBarInactive: '#A3A3A3', // Inactive tab icon
|
||||
|
||||
error: PALETTE.error,
|
||||
success: PALETTE.success,
|
||||
warning: PALETTE.warning,
|
||||
|
||||
// Legacy compat
|
||||
darkNav: PALETTE.charcoal,
|
||||
pastelPurple: PALETTE.limeLight,
|
||||
pastelBlue: '#C6F135',
|
||||
pastelYellow: PALETTE.limeLight,
|
||||
pastelPink: PALETTE.limeMuted,
|
||||
glass: 'rgba(255, 255, 255, 0.92)',
|
||||
},
|
||||
|
||||
dark: {
|
||||
background: PALETTE.black, // #111111
|
||||
surface: PALETTE.graphite, // #2A2A2A
|
||||
surfaceLight: '#333333',
|
||||
surfaceElevated: '#3A3A3A',
|
||||
|
||||
primary: PALETTE.lime, // Lime stays vibrant in dark: #C6F135
|
||||
primaryDark: PALETTE.limeDark,
|
||||
primaryLight: '#3A3D00', // Dark lime tint for dark mode badges
|
||||
primaryMuted: PALETTE.limeMuted,
|
||||
secondary: PALETTE.white,
|
||||
accent: PALETTE.lime,
|
||||
|
||||
text: PALETTE.textLight, // #FFFFFF
|
||||
textSecondary: PALETTE.textLightMuted, // #A3A3A3
|
||||
textPlaceholder: '#6B6B6B',
|
||||
|
||||
border: PALETTE.steel, // #3D3D3D
|
||||
divider: '#333333',
|
||||
|
||||
tabBar: PALETTE.black,
|
||||
tabBarActive: PALETTE.lime, // Active = lime in dark mode
|
||||
tabBarInactive: '#6B6B6B',
|
||||
|
||||
error: '#FF6B6B',
|
||||
success: '#4ADE80',
|
||||
warning: '#FBBF24',
|
||||
|
||||
// Legacy compat
|
||||
darkNav: PALETTE.black,
|
||||
pastelPurple: '#C6F13515',
|
||||
pastelBlue: '#C6F13515',
|
||||
pastelYellow: '#C6F13515',
|
||||
pastelPink: '#C6F13515',
|
||||
glass: 'rgba(17, 17, 17, 0.92)',
|
||||
},
|
||||
|
||||
spacing: {
|
||||
xs: 4,
|
||||
sm: 8,
|
||||
md: 16,
|
||||
lg: 24,
|
||||
xl: 32,
|
||||
xxl: 40,
|
||||
},
|
||||
|
||||
radius: {
|
||||
sm: 12,
|
||||
md: 20,
|
||||
lg: 28,
|
||||
xl: 36,
|
||||
full: 999,
|
||||
},
|
||||
};
|
||||
|
||||
export const Colors = {
|
||||
light: {
|
||||
text: PALETTE.textDark,
|
||||
background: PALETTE.offWhite,
|
||||
tint: PALETTE.lime,
|
||||
icon: PALETTE.textMuted,
|
||||
tabIconDefault: '#A3A3A3',
|
||||
tabIconSelected: PALETTE.charcoal,
|
||||
},
|
||||
dark: {
|
||||
text: PALETTE.textLight,
|
||||
background: PALETTE.black,
|
||||
tint: PALETTE.lime,
|
||||
icon: PALETTE.textLightMuted,
|
||||
tabIconDefault: '#6B6B6B',
|
||||
tabIconSelected: PALETTE.lime,
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user