import { LinearGradient } from 'expo-linear-gradient'; import { useRouter } from 'expo-router'; import { StyleSheet, Text, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { BrandPressable } from '@/components/brand-pressable'; import { Brand, BrandFont } from '@/constants/theme'; /** * Frame `52-54` in the Figma ("UI variation - 2"). The opening splash that * introduces Gumble and offers Sign Up / Log In. The hero artwork in the * Figma is a custom illustration that we approximate with a magenta-to-pink * gradient and a stylised game-pad silhouette drawn from primitives. */ export default function OnboardingScreen() { const router = useRouter(); const insets = useSafeAreaInsets(); return ( G Gumble Gamble your games, gamble your skills Play mini-games, complete tasks, and earn rewards — all powered by your favorite games. router.push('/(auth)/login')} /> router.push('/(auth)/login')} /> ); } function GamePadIllustration() { return ( ); } const styles = StyleSheet.create({ root: { flex: 1, backgroundColor: Brand.bg, paddingHorizontal: 24, }, header: { flexDirection: 'row', alignItems: 'center', gap: 10, paddingTop: 12, }, logoMark: { width: 28, height: 28, borderRadius: 8, backgroundColor: Brand.accent, alignItems: 'center', justifyContent: 'center', }, logoMarkText: { color: Brand.text, fontSize: 16, lineHeight: 20, fontFamily: BrandFont.montserratBold, }, brandWordmark: { color: Brand.accent, fontSize: 18, lineHeight: 22, fontFamily: BrandFont.montserratBold, }, hero: { flex: 1, justifyContent: 'center', alignItems: 'center', paddingVertical: 16, }, heroFrame: { width: '100%', aspectRatio: 1, maxHeight: 320, borderRadius: 16, overflow: 'hidden', backgroundColor: Brand.surfaceAlt, alignItems: 'center', justifyContent: 'center', }, copy: { gap: 12, paddingBottom: 24, }, title: { color: Brand.text, fontSize: 26, lineHeight: 32, fontFamily: BrandFont.montserratBold, textAlign: 'center', }, subtitle: { color: Brand.textMuted, fontSize: 14, lineHeight: 20, fontFamily: BrandFont.poppinsRegular, textAlign: 'center', paddingHorizontal: 8, }, actions: { gap: 12, paddingBottom: 8, }, }); const illustStyles = StyleSheet.create({ root: { width: '70%', aspectRatio: 1.2, alignItems: 'center', justifyContent: 'center', }, pad: { width: '100%', height: '60%', backgroundColor: 'rgba(255,255,255,0.05)', borderRadius: 24, borderWidth: 1, borderColor: 'rgba(255,255,255,0.08)', flexDirection: 'row', alignItems: 'center', justifyContent: 'space-around', paddingHorizontal: 24, }, dpad: { width: 44, height: 44, alignItems: 'center', justifyContent: 'center', }, dpadArm: { position: 'absolute', backgroundColor: 'rgba(255,255,255,0.5)', borderRadius: 3, }, dpadHorizontal: { width: 44, height: 10, }, dpadVertical: { width: 10, height: 44, }, buttons: { flexDirection: 'row', gap: 12, }, button: { width: 18, height: 18, borderRadius: 9, }, stick: { position: 'absolute', bottom: 14, alignSelf: 'center', width: 16, height: 16, borderRadius: 8, backgroundColor: 'rgba(255,255,255,0.3)', }, });