feat: add expo mobile application source code
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
export const MOCK_ARTICLES = [
|
||||
{
|
||||
id: 'A1',
|
||||
title: 'How Transformers Work in Deep Learning',
|
||||
author: 'Dr. Martin Shah',
|
||||
category: 'LLM',
|
||||
img: 'https://images.unsplash.com/photo-1677442136019-21780ecad995?auto=format&fit=crop&w=400&q=80',
|
||||
},
|
||||
{
|
||||
id: 'A2',
|
||||
title: 'AI Ethics in Modern Journalism',
|
||||
author: 'Alex Wong',
|
||||
category: 'Ethics',
|
||||
img: 'https://images.unsplash.com/photo-1485827404703-89b55fcc595e?auto=format&fit=crop&w=400&q=80',
|
||||
},
|
||||
{
|
||||
id: 'A3',
|
||||
title: 'Medical Diagnosis with Computer Vision',
|
||||
author: 'Sarah Lee',
|
||||
category: 'Health',
|
||||
img: 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=400&q=80',
|
||||
},
|
||||
];
|
||||
|
||||
export const MOCK_NOTIFICATIONS = [
|
||||
{ id: '1', title: 'System Sync Complete', desc: 'All configurations have been updated successfully.', time: '2m ago', type: 'success' },
|
||||
{ id: '2', title: 'Model Updated', desc: 'AI engine has been upgraded to the latest version.', time: '1h ago', type: 'update' },
|
||||
{ id: '3', title: 'New Login Detected', desc: 'A new login was detected from a MacOS device.', time: '3h ago', type: 'alert' },
|
||||
{ id: '4', title: 'Usage Report Ready', desc: 'Your weekly usage report is now available.', time: '1d ago', type: 'info' },
|
||||
{ id: '5', title: 'Subscription Reminder', desc: 'Your plan renews in 3 days. Check payment details.', time: '2d ago', type: 'warning' },
|
||||
];
|
||||
|
||||
export const MOCK_FAQS = [
|
||||
{ id: '1', q: 'How to initiate a system sync?', a: 'Go to Dashboard and click the Sync System button at the top right.' },
|
||||
{ id: '2', q: 'How to change security settings?', a: 'Visit Profile > Preferences to manage biometrics and passwords.' },
|
||||
{ id: '3', q: 'Where to find API documentation?', a: 'Documentation can be accessed via the Help Center links.' },
|
||||
];
|
||||
@@ -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