fixed bugs

This commit is contained in:
2026-08-21 13:11:55 +02:00
parent ab36215b7a
commit 64eade33f3
16 changed files with 367 additions and 361 deletions
+150
View File
@@ -0,0 +1,150 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'login_page.dart';
class SplashPage extends StatefulWidget {
const SplashPage({super.key});
@override
State<SplashPage> createState() => _SplashPageState();
}
class _SplashPageState extends State<SplashPage> {
// rosso bordeaux ripreso dal cuore del logo YogaSoul
static const Color kRed = Color(0xFFB01E28);
Timer? _timer;
@override
void initState() {
super.initState();
// dopo ~2.5s vai al login
_timer = Timer(const Duration(milliseconds: 5000), _goToLogin);
}
@override
void dispose() {
_timer?.cancel();
super.dispose();
}
void _goToLogin() {
if (!mounted) return;
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (_) => const LoginPage()),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
// tocca lo schermo per saltare subito al login
body: GestureDetector(
onTap: _goToLogin,
child: Stack(
fit: StackFit.expand,
children: [
// ---- Foto di sfondo full-screen
Image.asset('assets/images/splash_bg.png', fit: BoxFit.cover),
// ---- Contenuto (logo + testo) in alto
SafeArea(
child: Padding(
padding: const EdgeInsets.fromLTRB(24, 10, 24, 24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const SizedBox(height: 8),
// Logo YogaSoul
Image.asset(
'assets/images/yogasoul_logo.png',
height: 90,
fit: BoxFit.contain,
),
const SizedBox(height: 26),
// ---- Blocco testo su velo bianco morbido per leggibilità
Container(
padding: const EdgeInsets.symmetric(
horizontal: 18,
vertical: 16,
),
decoration: BoxDecoration(
// velo bianco semitrasparente: stacca il testo dal cielo
color: Colors.white.withOpacity(0.42),
borderRadius: BorderRadius.circular(20),
),
child: Column(
children: [
// Titolo riga 1 (scuro)
const Text(
'Il tuo spazio.',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 30,
height: 1.1,
fontWeight: FontWeight.w900,
color: Color(0xFF1F1F1F),
),
),
// Titolo riga 2 (rosso bordeaux)
const Text(
'La tua energia.',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 30,
height: 1.1,
fontWeight: FontWeight.w900,
color: kRed,
),
),
const SizedBox(height: 14),
// Sottotitolo
const Text(
'Ti diamo il benvenuto in YogiBook,\n'
'lapp della scuola YogaSoul — Seregno.\n'
'Ti accompagna nelle tue lezioni e nei tuoi pacchetti.',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 14,
height: 1.4,
fontWeight: FontWeight.w600,
color: Color(0xFF2A2A2A),
),
),
],
),
),
],
),
),
),
// ---- Indicatore caricamento in basso
const Positioned(
left: 0,
right: 0,
bottom: 34,
child: Center(
child: SizedBox(
width: 26,
height: 26,
child: CircularProgressIndicator(
strokeWidth: 2.4,
valueColor: AlwaysStoppedAnimation(Colors.white),
),
),
),
),
],
),
),
);
}
}