Completo y absoluto cambio de diseño
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||
import '../tema/componentes_farolero.dart';
|
||||
import '../tema/tema_app.dart';
|
||||
|
||||
class PantallaReglas extends StatelessWidget {
|
||||
@@ -11,56 +12,117 @@ class PantallaReglas extends StatelessWidget {
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: Text(l10n.rulesTitle)),
|
||||
body: SingleChildScrollView(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
body: FondoFarolero(
|
||||
child: SingleChildScrollView(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
_seccion(context, l10n.rulesWhatIsTitle, l10n.rulesWhatIsBody),
|
||||
_seccion(context, l10n.rulesHowToPlayTitle, l10n.rulesHowToPlayBody),
|
||||
_seccion(context, l10n.rulesWhoWinsTitle, l10n.rulesWhoWinsBody),
|
||||
_seccion(context, l10n.rulesTipsPlayersTitle, l10n.rulesTipsPlayersBody),
|
||||
_seccion(context, l10n.rulesTipsImpostorTitle, l10n.rulesTipsImpostorBody),
|
||||
_seccion(context, l10n.rulesModesTitle, l10n.rulesModesBody),
|
||||
_seccion(
|
||||
context,
|
||||
1,
|
||||
Icons.person_search,
|
||||
l10n.rulesWhatIsTitle,
|
||||
l10n.rulesWhatIsBody,
|
||||
),
|
||||
_seccion(
|
||||
context,
|
||||
2,
|
||||
Icons.chat_bubble,
|
||||
l10n.rulesHowToPlayTitle,
|
||||
l10n.rulesHowToPlayBody,
|
||||
),
|
||||
_seccion(
|
||||
context,
|
||||
3,
|
||||
Icons.how_to_vote,
|
||||
l10n.rulesWhoWinsTitle,
|
||||
l10n.rulesWhoWinsBody,
|
||||
),
|
||||
_seccion(
|
||||
context,
|
||||
4,
|
||||
Icons.lightbulb,
|
||||
l10n.rulesTipsPlayersTitle,
|
||||
l10n.rulesTipsPlayersBody,
|
||||
),
|
||||
_seccion(
|
||||
context,
|
||||
5,
|
||||
Icons.theater_comedy,
|
||||
l10n.rulesTipsImpostorTitle,
|
||||
l10n.rulesTipsImpostorBody,
|
||||
),
|
||||
_seccion(
|
||||
context,
|
||||
6,
|
||||
Icons.devices,
|
||||
l10n.rulesModesTitle,
|
||||
l10n.rulesModesBody,
|
||||
),
|
||||
_ejemplo(context, l10n.rulesExampleTitle, l10n.rulesExampleBody),
|
||||
const SizedBox(height: 32),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _seccion(BuildContext context, String titulo, String contenido) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(bottom: 16),
|
||||
child: Card(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(titulo,
|
||||
style: Theme.of(context).textTheme.titleLarge),
|
||||
const SizedBox(height: 8),
|
||||
Text(contenido,
|
||||
style: Theme.of(context).textTheme.bodyLarge?.copyWith(
|
||||
height: 1.5,
|
||||
)),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _seccion(
|
||||
BuildContext context,
|
||||
int numero,
|
||||
IconData icono,
|
||||
String titulo,
|
||||
String contenido,
|
||||
) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(bottom: 16),
|
||||
child: PanelFarolero(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
width: 54,
|
||||
height: 54,
|
||||
decoration: BoxDecoration(
|
||||
color: TemaApp.colorNaranja.withValues(alpha: 0.16),
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
border: Border.all(color: TemaApp.colorNaranja),
|
||||
),
|
||||
child: Icon(icono, color: TemaApp.colorNaranja, size: 30),
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'$numero. ${titulo.toUpperCase()}',
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(contenido,
|
||||
style: Theme.of(context).textTheme.bodyLarge?.copyWith(
|
||||
height: 1.5,
|
||||
)),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _ejemplo(BuildContext context, String titulo, String contenido) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(bottom: 16),
|
||||
child: Card(
|
||||
child: PanelFarolero(
|
||||
color: TemaApp.colorNaranja.withValues(alpha: 0.15),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
borderColor: TemaApp.colorNaranja,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(titulo,
|
||||
@@ -73,7 +135,6 @@ class PantallaReglas extends StatelessWidget {
|
||||
height: 1.5,
|
||||
)),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user