TKK_E32230499/lib/screen/welcome.dart

190 lines
6.5 KiB
Dart

import 'package:flutter/material.dart';
import '../widgets/fade_in_up.dart';
class WelcomeScreen extends StatefulWidget {
const WelcomeScreen({super.key});
@override
State<WelcomeScreen> createState() => _WelcomeScreenState();
}
class _WelcomeScreenState extends State<WelcomeScreen> {
@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),
],
),
),
),
],
),
);
}
}