import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; final isAndroid = !kIsWeb && defaultTargetPlatform == TargetPlatform.android; final isiOS = !kIsWeb && defaultTargetPlatform == TargetPlatform.iOS; final isMac = !kIsWeb && defaultTargetPlatform == TargetPlatform.macOS; final isWindows = !kIsWeb && defaultTargetPlatform == TargetPlatform.windows; final isLinux = !kIsWeb && defaultTargetPlatform == TargetPlatform.linux; final isMobile = !kIsWeb && (defaultTargetPlatform == TargetPlatform.iOS || defaultTargetPlatform == TargetPlatform.android); final isDesktop = !kIsWeb && !(defaultTargetPlatform == TargetPlatform.iOS || defaultTargetPlatform == TargetPlatform.android); const isWeb = kIsWeb; final isWebMobile = kIsWeb && (defaultTargetPlatform == TargetPlatform.iOS || defaultTargetPlatform == TargetPlatform.android); final isWebDesktop = kIsWeb && !(defaultTargetPlatform == TargetPlatform.iOS || defaultTargetPlatform == TargetPlatform.android); final isAnyMobile = isMobile || isWebMobile; const kMobileWidthCutoff = 500.0; bool isMobileWidth(BuildContext context) => MediaQuery.of(context).size.width < kMobileWidthCutoff; bool isMobileSize(BuildContext context) => MediaQuery.of(context).size.width < kMobileWidthCutoff || MediaQuery.of(context).size.height < kMobileWidthCutoff; bool responsiveVisibility({ required BuildContext context, bool phone = true, bool tablet = true, bool tabletLandscape = true, bool desktop = true, }) { final width = MediaQuery.of(context).size.width; if (width < kMobileWidthCutoff) { return phone; } else if (width < 767) { return tablet; } else if (width < 991) { return tabletLandscape; } else { return desktop; } }