tasq/lib/screens/shared/under_development_screen.dart

82 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import '../../widgets/responsive_body.dart';
class UnderDevelopmentScreen extends StatelessWidget {
const UnderDevelopmentScreen({
super.key,
required this.title,
required this.subtitle,
required this.icon,
});
final String title;
final String subtitle;
final IconData icon;
@override
Widget build(BuildContext context) {
final cs = Theme.of(context).colorScheme;
return ResponsiveBody(
maxWidth: 720,
padding: const EdgeInsets.symmetric(vertical: 32),
child: Center(
// M3 Expressive: elevated card with tonal fill, 28 dp radius.
child: Card(
child: Padding(
padding: const EdgeInsets.all(40),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 80,
height: 80,
decoration: BoxDecoration(
color: cs.primaryContainer,
borderRadius: BorderRadius.circular(28),
),
child: Icon(icon, size: 40, color: cs.onPrimaryContainer),
),
const SizedBox(height: 24),
Text(
title,
style: Theme.of(context).textTheme.headlineSmall?.copyWith(
fontWeight: FontWeight.w700,
),
textAlign: TextAlign.center,
),
const SizedBox(height: 8),
Text(
subtitle,
style: Theme.of(
context,
).textTheme.bodyMedium?.copyWith(color: cs.onSurfaceVariant),
textAlign: TextAlign.center,
),
const SizedBox(height: 24),
Container(
padding: const EdgeInsets.symmetric(
horizontal: 20,
vertical: 10,
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(28),
color: cs.secondaryContainer,
),
child: Text(
'Under development',
style: Theme.of(context).textTheme.labelLarge?.copyWith(
color: cs.onSecondaryContainer,
fontWeight: FontWeight.w600,
),
),
),
],
),
),
),
),
);
}
}