import 'package:flutter/material.dart'; import '../config/strings.dart'; class AboutPage extends StatelessWidget { const AboutPage({super.key}); @override Widget build(BuildContext context) { final theme = Theme.of(context); return SingleChildScrollView( padding: const EdgeInsets.all(24), child: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 500), child: Column( children: [ const SizedBox(height: 32), Icon(Icons.qr_code_scanner, size: 64, color: theme.colorScheme.primary), const SizedBox(height: 16), Text( AppStrings.aboutTitle, style: theme.textTheme.headlineSmall?.copyWith( fontWeight: FontWeight.bold, ), ), const SizedBox(height: 8), Text( AppStrings.aboutDesc, style: theme.textTheme.bodyMedium?.copyWith( color: theme.colorScheme.onSurfaceVariant, ), textAlign: TextAlign.center, ), const SizedBox(height: 24), Card( elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), side: BorderSide( color: theme.colorScheme.outline.withValues(alpha: 0.3), ), ), child: Padding( padding: const EdgeInsets.all(20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( AppStrings.credits, style: theme.textTheme.labelLarge?.copyWith( color: theme.colorScheme.primary, fontWeight: FontWeight.w600, ), ), const SizedBox(height: 12), _creditRow(theme, AppStrings.creditBuiltWith, 'Flutter'), _creditRow(theme, AppStrings.creditQRDecode, 'jsQR (web)'), _creditRow(theme, AppStrings.creditIconAssets, 'assets2.lxns.net'), _creditRow(theme, AppStrings.creditLicense, 'MIT'), ], ), ), ), ], ), ), ); } Widget _creditRow(ThemeData theme, String label, String value) { return Padding( padding: const EdgeInsets.symmetric(vertical: 6), child: Row( children: [ SizedBox( width: 120, child: Text( label, style: theme.textTheme.bodySmall?.copyWith( color: theme.colorScheme.onSurfaceVariant, ), ), ), Expanded( child: Text(value, style: theme.textTheme.bodyMedium), ), ], ), ); } }