198 lines
4.4 KiB
TypeScript
198 lines
4.4 KiB
TypeScript
import { StyleSheet } from 'react-native';
|
|
import { ThemeColors } from '../../theme';
|
|
|
|
export const getStyles = (colors: ThemeColors) =>
|
|
StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: colors.background,
|
|
},
|
|
content: {
|
|
padding: 16,
|
|
paddingBottom: 36,
|
|
},
|
|
headerCard: {
|
|
backgroundColor: colors.card,
|
|
borderRadius: 18,
|
|
padding: 20,
|
|
alignItems: 'center',
|
|
marginBottom: 16,
|
|
shadowColor: '#0F172A',
|
|
shadowOffset: { width: 0, height: 2 },
|
|
shadowOpacity: 0.06,
|
|
shadowRadius: 6,
|
|
elevation: 3,
|
|
},
|
|
avatarWrapper: {
|
|
position: 'relative',
|
|
marginBottom: 12,
|
|
},
|
|
avatarImage: {
|
|
width: 84,
|
|
height: 84,
|
|
borderRadius: 42,
|
|
borderWidth: 3,
|
|
borderColor: colors.icon,
|
|
},
|
|
avatarCircle: {
|
|
width: 84,
|
|
height: 84,
|
|
borderRadius: 42,
|
|
backgroundColor: colors.icon,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
shadowColor: colors.icon,
|
|
shadowOffset: { width: 0, height: 4 },
|
|
shadowOpacity: 0.3,
|
|
shadowRadius: 6,
|
|
elevation: 4,
|
|
},
|
|
avatarInitial: {
|
|
color: '#FFFFFF',
|
|
fontSize: 34,
|
|
fontWeight: '800',
|
|
},
|
|
onlineDot: {
|
|
position: 'absolute',
|
|
bottom: 2,
|
|
right: 4,
|
|
width: 16,
|
|
height: 16,
|
|
borderRadius: 8,
|
|
backgroundColor: '#10B981',
|
|
borderWidth: 2.5,
|
|
borderColor: colors.card,
|
|
},
|
|
profileName: {
|
|
fontSize: 20,
|
|
fontWeight: '700',
|
|
color: colors.text,
|
|
textAlign: 'center',
|
|
marginBottom: 4,
|
|
},
|
|
profileEmail: {
|
|
fontSize: 13,
|
|
color: colors.textSecondary,
|
|
textAlign: 'center',
|
|
marginBottom: 10,
|
|
},
|
|
roleBadge: {
|
|
paddingHorizontal: 12,
|
|
paddingVertical: 5,
|
|
borderRadius: 20,
|
|
backgroundColor: `${colors.icon}15`,
|
|
},
|
|
roleBadgeText: {
|
|
fontSize: 12,
|
|
fontWeight: '700',
|
|
color: colors.icon,
|
|
letterSpacing: 0.3,
|
|
},
|
|
// Stats Summary Row
|
|
statsRow: {
|
|
flexDirection: 'row',
|
|
gap: 12,
|
|
marginBottom: 16,
|
|
},
|
|
statBox: {
|
|
flex: 1,
|
|
backgroundColor: colors.card,
|
|
borderRadius: 14,
|
|
padding: 14,
|
|
alignItems: 'center',
|
|
shadowColor: '#0F172A',
|
|
shadowOffset: { width: 0, height: 2 },
|
|
shadowOpacity: 0.04,
|
|
shadowRadius: 4,
|
|
elevation: 2,
|
|
},
|
|
statValue: {
|
|
fontSize: 18,
|
|
fontWeight: '700',
|
|
color: colors.text,
|
|
marginBottom: 2,
|
|
},
|
|
statLabel: {
|
|
fontSize: 11,
|
|
fontWeight: '600',
|
|
color: colors.textSecondary,
|
|
textTransform: 'uppercase',
|
|
letterSpacing: 0.3,
|
|
},
|
|
// Section Cards
|
|
sectionCard: {
|
|
backgroundColor: colors.card,
|
|
borderRadius: 16,
|
|
paddingHorizontal: 16,
|
|
paddingTop: 16,
|
|
paddingBottom: 6,
|
|
marginBottom: 16,
|
|
shadowColor: '#0F172A',
|
|
shadowOffset: { width: 0, height: 2 },
|
|
shadowOpacity: 0.05,
|
|
shadowRadius: 4,
|
|
elevation: 2,
|
|
},
|
|
sectionHeader: {
|
|
fontSize: 13,
|
|
fontWeight: '700',
|
|
color: colors.textSecondary,
|
|
textTransform: 'uppercase',
|
|
letterSpacing: 0.6,
|
|
marginBottom: 8,
|
|
},
|
|
preferenceRow: {
|
|
flexDirection: 'row',
|
|
justifyContent: 'space-between',
|
|
alignItems: 'center',
|
|
paddingVertical: 12,
|
|
borderBottomWidth: 1,
|
|
borderBottomColor: colors.border,
|
|
},
|
|
noBorder: {
|
|
borderBottomWidth: 0,
|
|
},
|
|
preferenceLabelGroup: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
},
|
|
iconWrapper: {
|
|
width: 32,
|
|
height: 32,
|
|
borderRadius: 8,
|
|
backgroundColor: colors.surface,
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
marginRight: 12,
|
|
},
|
|
preferenceText: {
|
|
fontSize: 14,
|
|
color: colors.text,
|
|
fontWeight: '500',
|
|
},
|
|
// Sign Out Button
|
|
signOutButton: {
|
|
backgroundColor: '#EF4444',
|
|
flexDirection: 'row',
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
borderRadius: 12,
|
|
height: 50,
|
|
marginTop: 8,
|
|
shadowColor: '#EF4444',
|
|
shadowOffset: { width: 0, height: 4 },
|
|
shadowOpacity: 0.25,
|
|
shadowRadius: 6,
|
|
elevation: 3,
|
|
},
|
|
buttonIcon: {
|
|
marginRight: 8,
|
|
},
|
|
signOutButtonText: {
|
|
color: '#FFFFFF',
|
|
fontSize: 15,
|
|
fontWeight: '700',
|
|
letterSpacing: 0.3,
|
|
},
|
|
});
|