import 'dart:math' as math; import 'package:flutter/material.dart'; import 'package:lottie/lottie.dart'; class CuriosidadeScreen extends StatelessWidget { const CuriosidadeScreen({super.key}); static const Color _teal = Color(0xFF2F9E94); @override Widget build(BuildContext context) { final size = MediaQuery.sizeOf(context); return Scaffold( appBar: AppBar( backgroundColor: _teal, foregroundColor: Colors.white, elevation: 0, title: const Text( 'Curiosidades', style: TextStyle(fontWeight: FontWeight.w900), ), ), body: Stack( clipBehavior: Clip.none, children: [ Positioned.fill( child: Container( decoration: const BoxDecoration( gradient: LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ Color(0xFFFFE6F1), Color(0xFFFFC9DF), ], ), ), ), ), Positioned( left: -size.width * 0.40, bottom: -size.width * 0.45, child: IgnorePointer( child: SizedBox( width: size.width * 1.05, height: size.width * 1.05, child: Transform.rotate( angle: 35 * math.pi / 180, child: Opacity( opacity: 0.95, child: Lottie.asset( 'lottie/Liquid waves.json', fit: BoxFit.cover, repeat: true, ), ), ), ), ), ), SafeArea( child: Align( alignment: Alignment.topCenter, child: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 560), child: ListView( padding: const EdgeInsets.fromLTRB(16, 16, 16, 16), children: [ _CuriosityTopicTile( title: 'Tema X', description: 'Aprenda dicas rápidas e simples para cuidar dos dentes no dia a dia.', ), const SizedBox(height: 12), const _CuriosityTopicTile( title: 'Tema Y', description: 'Conteúdo em breve.', ), const SizedBox(height: 12), const _CuriosityTopicTile( title: 'Tema Z', description: 'Conteúdo em breve.', ), const SizedBox(height: 12), const _CuriosityTopicTile( title: 'Tema U', description: 'Conteúdo em breve.', ), ], ), ), ), ), ], ), ); } } class _CuriosityTopicTile extends StatelessWidget { const _CuriosityTopicTile({required this.title, required this.description}); final String title; final String description; @override Widget build(BuildContext context) { return Material( color: Colors.white.withValues(alpha: 0.82), borderRadius: BorderRadius.circular(18), elevation: 8, shadowColor: Colors.black.withValues(alpha: 0.10), child: InkWell( borderRadius: BorderRadius.circular(18), onTap: () { showModalBottomSheet( context: context, showDragHandle: true, backgroundColor: const Color(0xFFFFE6F1), shape: const RoundedRectangleBorder( borderRadius: BorderRadius.vertical(top: Radius.circular(24)), ), builder: (ctx) { return SafeArea( child: Padding( padding: const EdgeInsets.fromLTRB(18, 6, 18, 18), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Text( title, textAlign: TextAlign.center, style: const TextStyle( fontSize: 18, fontWeight: FontWeight.w900, color: Color(0xFFFF55A7), ), ), const SizedBox(height: 10), Container( padding: const EdgeInsets.all(14), decoration: BoxDecoration( color: Colors.white.withValues(alpha: 0.82), borderRadius: BorderRadius.circular(16), border: Border.all(color: Colors.black.withValues(alpha: 0.08)), ), child: Text( description, style: TextStyle( color: Colors.black.withValues(alpha: 0.72), fontWeight: FontWeight.w600, height: 1.25, ), ), ), const SizedBox(height: 14), SizedBox( height: 44, child: FilledButton( style: FilledButton.styleFrom( backgroundColor: const Color(0xFF2F9E94), foregroundColor: Colors.white, shape: const StadiumBorder(), textStyle: const TextStyle(fontWeight: FontWeight.w900), ), onPressed: () => Navigator.of(ctx).pop(), child: const Text('Fechar'), ), ), ], ), ), ); }, ); }, child: Padding( padding: const EdgeInsets.fromLTRB(16, 18, 16, 18), child: Row( children: [ Container( width: 36, height: 36, decoration: BoxDecoration( color: const Color(0xFFFF55A7).withValues(alpha: 0.12), borderRadius: BorderRadius.circular(12), ), child: const Icon( Icons.lightbulb_rounded, color: Color(0xFFFF55A7), ), ), const SizedBox(width: 12), Expanded( child: Text( title, style: const TextStyle( fontWeight: FontWeight.w900, color: Color(0xFF2F9E94), ), ), ), const Icon(Icons.chevron_right_rounded, color: Colors.black54), ], ), ), ), ); } }