import 'package:flutter/material.dart'; /// Responsive utilities for different screen sizes class Responsive { /// Mobile: < 600px static bool isMobile(BuildContext context) => MediaQuery.of(context).size.width < 600; /// Tablet: 600px - 1200px static bool isTablet(BuildContext context) => MediaQuery.of(context).size.width >= 600 && MediaQuery.of(context).size.width < 1200; /// Desktop: >= 1200px static bool isDesktop(BuildContext context) => MediaQuery.of(context).size.width >= 1200; /// Get maximum content width based on screen size static double getMaxWidth(BuildContext context) { if (isDesktop(context)) return 1200; if (isTablet(context)) return 900; return double.infinity; } /// Get grid cross axis count based on screen size static int getGridCrossAxisCount(BuildContext context) { if (isDesktop(context)) return 4; if (isTablet(context)) return 3; return 2; } /// Get responsive padding static EdgeInsets getPagePadding(BuildContext context) { if (isDesktop(context)) { return const EdgeInsets.symmetric(horizontal: 32, vertical: 24); } if (isTablet(context)) { return const EdgeInsets.symmetric(horizontal: 24, vertical: 16); } return const EdgeInsets.all(16); } } /// Widget that constrains content width for better readability on large screens class ResponsiveCenter extends StatelessWidget { const ResponsiveCenter({ required this.child, super.key, }); final Widget child; @override Widget build(BuildContext context) { return Center( child: ConstrainedBox( constraints: BoxConstraints( maxWidth: Responsive.getMaxWidth(context), ), child: child, ), ); } }