Files
FarmaFinder/apps/frontend-mobile/constants/theme.ts
T
Antoni Nuñez Romeu 9949b85001
Run Tests on Branches / Frontend Tests (push) Has been cancelled
Run Tests on Branches / Backend Tests (push) Has been cancelled
Refactor frontend-mobile
2026-07-07 18:08:44 +02:00

121 lines
2.2 KiB
TypeScript

export const colors = {
// Primary - pastel green pharmacy palette (matching PWA)
primary: '#7fbf8f',
primaryLight: '#cfead0',
primaryDark: '#09310a',
onPrimary: '#09310a',
primaryContainer: '#cfead0',
onPrimaryContainer: '#0d2b12',
// Secondary - soft blue
secondary: '#a3b8ff',
secondaryContainer: '#dbe7ff',
// Tertiary - soft lavender
tertiary: '#c9b3ff',
tertiaryContainer: '#efe7ff',
// Scan button - vivid blue (intentionally prominent)
scanButton: '#2b5bb5',
scanButtonShadow: 'rgba(43, 91, 181, 0.32)',
// Semantic
success: '#34C759',
danger: '#b91c1c',
dangerContainer: '#feecec',
warning: '#FF9500',
// Surface
background: '#fbfbfb',
card: '#ffffff',
surfaceLow: '#f2f4f5',
surface: '#eceeef',
surfaceHigh: '#e6e8e9',
border: '#c0c9bb',
separator: '#c0c9bb',
// Text
text: '#111417',
textSecondary: '#41493e',
textInverse: '#ffffff',
textLink: '#7fbf8f',
// Accent
accentWarm: '#f5a97a',
};
export const spacing = {
xs: 4,
sm: 8,
md: 16,
lg: 24,
xl: 32,
xxl: 48,
};
export const borderRadius = {
sm: 4,
md: 8,
lg: 12,
xl: 16,
full: 9999,
};
export const typography = {
title: {
fontSize: 28,
fontWeight: 'bold' as const,
color: '#111417',
},
heading: {
fontSize: 20,
fontWeight: '600' as const,
color: '#111417',
},
body: {
fontSize: 16,
fontWeight: 'normal' as const,
color: '#111417',
},
bodyLarge: {
fontSize: 18,
fontWeight: '400' as const,
color: '#41493e',
lineHeight: 27,
},
caption: {
fontSize: 12,
fontWeight: 'normal' as const,
color: '#41493e',
},
label: {
fontSize: 14,
fontWeight: '500' as const,
color: '#41493e',
},
};
export const shadows = {
soft: {
shadowColor: '#000',
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.08,
shadowRadius: 20,
elevation: 3,
},
card: {
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.06,
shadowRadius: 8,
elevation: 2,
},
scanButton: {
shadowColor: '#2b5bb5',
shadowOffset: { width: 0, height: 8 },
shadowOpacity: 0.32,
shadowRadius: 26,
elevation: 8,
},
};