import 'package:flutter/material.dart'; import '../widgets/fade_in_up.dart'; class WelcomeScreen extends StatefulWidget { const WelcomeScreen({super.key}); @override State createState() => _WelcomeScreenState(); } class _WelcomeScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, body: Stack( children: [ /// 1. ORIGINAL SOFT GRADIENT BACKGROUND Container( decoration: const BoxDecoration( gradient: LinearGradient( begin: Alignment.topLeft, end: Alignment.bottomRight, stops: [0.0, 0.4, 0.7, 1.0], colors: [ Color(0xFFE8F5E9), Color(0xFFFFFDF0), Color(0xFFF1F8E9), Color(0xFFE8F5E9), ], ), ), ), /// DESIGNER BACKGROUND SPOTLIGHTS Positioned( top: -60, right: -60, child: Container( width: 240, height: 240, decoration: BoxDecoration( shape: BoxShape.circle, color: const Color(0xFF2E7D32).withOpacity(0.05), ), ), ), Positioned( bottom: 250, left: -80, child: Container( width: 260, height: 260, decoration: BoxDecoration( shape: BoxShape.circle, color: Colors.orange.withOpacity(0.04), ), ), ), /// 2. CORE LAYOUT SafeArea( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 24), child: Column( children: [ const Spacer(flex: 3), /// FLOATING HERO IMAGE WITH ELEVATED SHADOW EFFECT FadeInUp( delay: 0, child: Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( shape: BoxShape.circle, boxShadow: [ BoxShadow( color: const Color(0xFF2E7D32).withOpacity(0.06), blurRadius: 45, offset: const Offset(0, 8), ), ], ), child: Image.asset( "assets/images/tape.png", height: 260, fit: BoxFit.contain, ), ), ), const Spacer(flex: 3), /// MAIN TITLE (SIMPLIFIED & UPDATED) FadeInUp( delay: 150, child: Center( child: FittedBox( fit: BoxFit.scaleDown, child: RichText( textAlign: TextAlign.center, text: const TextSpan( style: TextStyle( fontSize: 21, fontWeight: FontWeight.w900, letterSpacing: 1.0, height: 1.45, ), children: [ TextSpan( text: "MONITORING & KONTROL\n", style: TextStyle(color: Color(0xFF2E7D32)), ), TextSpan( text: "MAKANAN BERFERMENTASI", style: TextStyle(color: Colors.orange), ), ], ), ), ), ), ), const Spacer(flex: 2), /// START BUTTON WITH ORIGINAL EMERALD COLOR & ORIGINAL ACCENTS FadeInUp( delay: 300, child: Container( width: double.infinity, height: 60, margin: const EdgeInsets.only(bottom: 10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(25), boxShadow: [ BoxShadow( color: const Color(0xFF2E7D32).withOpacity(0.35), blurRadius: 18, offset: const Offset(0, 8), ), ], ), child: ElevatedButton( onPressed: () { Navigator.pushNamed(context, '/register'); }, style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFF2E7D32), foregroundColor: Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(25), ), elevation: 0, ), child: const FittedBox( fit: BoxFit.scaleDown, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( "Let's Start", style: TextStyle( fontSize: 18, fontWeight: FontWeight.bold, letterSpacing: 0.5, ), ), SizedBox(width: 12), Icon( Icons.arrow_right_alt_rounded, size: 28, ), ], ), ), ), ), ), const Spacer(flex: 3), ], ), ), ), ], ), ); } }