nkbmusic/lib/features/welcome/splash_screen.dart
metatroncubeswdev 178d2d00ab Nanga Kathai: Flutter app, self-hosted backend and song tools
- Flutter app (Android/iOS): home, explore, albums, search, player with
  equalizer, mini player, sign up/sign in with email codes, profile,
  encrypted offline downloads, About page
- server/: one-command deploy of self-hosted Supabase behind HestiaCP/nginx
  (or Caddy), migrations, backups, email templates
- supabase/migrations: schema, row-level security, profiles
- tools/: song scanner and importer

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 10:39:26 -04:00

83 lines
3.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import '../../app/theme.dart';
import '../../shared/widgets/artwork.dart';
class SplashScreen extends StatelessWidget {
const SplashScreen({super.key});
@override
Widget build(BuildContext context) {
final text = Theme.of(context).textTheme;
return Scaffold(
body: Stack(
fit: StackFit.expand,
children: [
Image.asset('assets/images/nilgiris_valley.jpg', fit: BoxFit.cover, alignment: const Alignment(0.25, 0)),
const PhotoScrim(stops: [0.35, 1]),
DecoratedBox(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.center,
colors: [NkColors.ground.withValues(alpha: 0.55), NkColors.ground.withValues(alpha: 0)],
),
),
),
SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 24),
child: Column(
children: [
const SizedBox(height: 48),
Container(
width: 150,
height: 150,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: NkColors.cream,
boxShadow: [BoxShadow(color: Colors.black.withValues(alpha: 0.35), blurRadius: 32, offset: const Offset(0, 12))],
),
clipBehavior: Clip.antiAlias,
child: Transform.scale(
scale: 1.08,
child: Image.asset('assets/images/emblem.png', semanticLabel: 'Nanga Kathai emblem'),
),
),
const SizedBox(height: 20),
Text('Nanga Kathai', style: text.headlineLarge?.copyWith(fontSize: 42)),
const SizedBox(height: 10),
Text(
'Our song · music of the\nBadaga people, Nilgiris',
textAlign: TextAlign.center,
style: text.titleMedium?.copyWith(height: 1.4, fontWeight: FontWeight.w600),
),
const Spacer(),
SizedBox(
width: double.infinity,
height: 58,
child: FilledButton(
onPressed: () => context.go('/login?mode=signup'),
child: const Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [Text('Get Started'), SizedBox(width: 12), Icon(Icons.arrow_forward_rounded)],
),
),
),
const SizedBox(height: 20),
const Text(
'Music · Culture · Our People',
style: TextStyle(color: NkColors.mutedOnPhoto, fontWeight: FontWeight.w600),
),
const SizedBox(height: 24),
],
),
),
),
],
),
);
}
}