super assets

This commit is contained in:
2026-05-10 21:32:28 +02:00
parent 852fbfa225
commit a5a4040daf
29 changed files with 464 additions and 319 deletions

View File

@@ -28,6 +28,7 @@ class PantallaSeleccionModoJuego extends StatelessWidget {
const _ModoHero().animate().fadeIn(duration: 320.ms).slideY(begin: -0.12),
const SizedBox(height: 34),
_ModoCard(
marcoAsset: 'assets/ui/generated/mode/mode_single_card_frame.png',
icono: Icons.phone_android_rounded,
titulo: 'Un móvil',
subtitulo: 'Partida en este dispositivo',
@@ -44,6 +45,7 @@ class PantallaSeleccionModoJuego extends StatelessWidget {
).animate().fadeIn(delay: 120.ms).slideX(begin: -0.08),
const SizedBox(height: 16),
_ModoCard(
marcoAsset: 'assets/ui/generated/mode/mode_multi_card_frame.png',
icono: Icons.devices_rounded,
titulo: 'Multidispositivo',
subtitulo: 'Cada jugador en su móvil',
@@ -75,74 +77,45 @@ class _ModoHero extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SizedBox(
height: 230,
child: Stack(
alignment: Alignment.center,
children: [
Positioned.fill(
child: Image.asset(
'assets/ui/premium/lantern_radial_glow.png',
fit: BoxFit.contain,
opacity: const AlwaysStoppedAnimation(0.58),
),
return Column(
children: [
SizedBox(
height: 230,
child: Image.asset(
'assets/ui/generated/mode/mode_duel_hero.png',
fit: BoxFit.contain,
opacity: const AlwaysStoppedAnimation(0.95),
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 90,
height: 90,
decoration: BoxDecoration(
shape: BoxShape.circle,
gradient: RadialGradient(
colors: [
TemaApp.colorDorado.withValues(alpha: 0.95),
TemaApp.colorNaranja.withValues(alpha: 0.58),
Colors.black.withValues(alpha: 0.76),
],
),
border: Border.all(color: TemaApp.colorDorado, width: 3),
boxShadow: [
BoxShadow(
color: TemaApp.colorNaranja.withValues(alpha: 0.55),
blurRadius: 42,
spreadRadius: 5,
),
],
),
child: const Icon(Icons.sports_esports_rounded, size: 48, color: Color(0xFF241103)),
),
const SizedBox(height: 10),
Text(
'?C?mo quer?s jugar?',
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.headlineMedium?.copyWith(
color: TemaApp.colorDorado,
fontSize: 32,
fontWeight: FontWeight.w900,
shadows: [
Shadow(color: TemaApp.colorNaranja.withValues(alpha: 0.45), blurRadius: 16),
],
),
const SizedBox(height: 18),
Text(
'¿Cómo querés jugar?',
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.headlineMedium?.copyWith(
color: TemaApp.colorDorado,
fontSize: 32,
fontWeight: FontWeight.w900,
shadows: [
Shadow(color: TemaApp.colorNaranja.withValues(alpha: 0.45), blurRadius: 16),
],
),
),
const SizedBox(height: 8),
Text(
'Eleg? el tipo de partida y arranc? sin fricci?n.',
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.titleMedium?.copyWith(
color: TemaApp.colorTextoSecundario,
),
const SizedBox(height: 8),
Text(
'Elegí el tipo de partida y arrancá sin fricción.',
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.titleMedium?.copyWith(
color: TemaApp.colorTextoSecundario,
),
),
],
),
],
),
),
],
);
}
}
class _ModoCard extends StatelessWidget {
final String marcoAsset;
final IconData icono;
final String titulo;
final String subtitulo;
@@ -151,6 +124,7 @@ class _ModoCard extends StatelessWidget {
final VoidCallback onTap;
const _ModoCard({
required this.marcoAsset,
required this.icono,
required this.titulo,
required this.subtitulo,
@@ -189,6 +163,16 @@ class _ModoCard extends StatelessWidget {
),
child: Stack(
children: [
Positioned.fill(
child: ClipRRect(
borderRadius: BorderRadius.circular(28),
child: Image.asset(
marcoAsset,
fit: BoxFit.fill,
opacity: const AlwaysStoppedAnimation(0.86),
),
),
),
Positioned.fill(
child: Image.asset(
'assets/ui/premium/card_sheen_overlay.png',