Files
CheckTheethKids/lib/widgets/terms_content.dart
Carlos Correia a8af2c6845 CKT String|Colors
2026-07-15 19:13:15 +01:00

84 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import '../colors/app_colors.dart';
import '../strings/terms_strings.dart';
const Color kTermsPink = AppColors.pink;
/// Emblema circular rosa + título "Termos e Condições", reutilizado nos
/// dois ecrãs que mostram este conteúdo.
class TermsHeader extends StatelessWidget {
const TermsHeader({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
width: 76,
height: 76,
decoration: BoxDecoration(
color: kTermsPink.withValues(alpha: 0.12),
shape: BoxShape.circle,
),
child: const Icon(
Icons.gavel_rounded,
color: kTermsPink,
size: 36,
),
),
const SizedBox(height: 16),
const Text(
TermsStrings.headerTitle,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w900,
color: Colors.black,
),
),
],
);
}
}
/// Corpo de texto dos Termos, dentro de um cartão branco.
class TermsBody extends StatelessWidget {
const TermsBody({super.key});
@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.all(18),
decoration: BoxDecoration(
color: Colors.white.withValues(alpha: 0.9),
borderRadius: BorderRadius.circular(20),
boxShadow: [
BoxShadow(
color: Colors.black.withValues(alpha: 0.05),
blurRadius: 14,
offset: const Offset(0, 6),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
for (var i = 0; i < TermsStrings.paragraphs.length; i++) ...[
if (i > 0) const SizedBox(height: 14),
Text(
TermsStrings.paragraphs[i],
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 13,
fontWeight: FontWeight.w600,
height: 1.5,
color: Colors.black.withValues(alpha: 0.78),
),
),
],
],
),
);
}
}