flutter_adaptive_design 1.0.0 copy "flutter_adaptive_design: ^1.0.0" to clipboard
flutter_adaptive_design: ^1.0.0 copied to clipboard

Platform-adaptive Flutter design system automatically dispatching native iOS (Cupertino HIG) and Android (Material 3) UI from a single codebase.

example/lib/main.dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_adaptive_design/flutter_adaptive_design.dart';

import 'screens/overview_screen.dart';

void main() {
  runApp(const AdaptiveGalleryApp());
}

class AdaptiveGalleryApp extends StatefulWidget {
  const AdaptiveGalleryApp({super.key});

  @override
  State<AdaptiveGalleryApp> createState() => _AdaptiveGalleryAppState();
}

class _AdaptiveGalleryAppState extends State<AdaptiveGalleryApp> {
  TargetPlatform _currentPlatform = TargetPlatform.iOS;
  ThemeMode _themeMode = ThemeMode.light;

  void _togglePlatform() {
    setState(() {
      _currentPlatform = _currentPlatform == TargetPlatform.iOS
          ? TargetPlatform.android
          : TargetPlatform.iOS;
      PlatformUtils.debugOverridePlatform = _currentPlatform;
    });
  }

  void _toggleTheme() {
    setState(() {
      _themeMode =
          _themeMode == ThemeMode.light ? ThemeMode.dark : ThemeMode.light;
    });
  }

  @override
  void initState() {
    super.initState();
    PlatformUtils.debugOverridePlatform = _currentPlatform;
  }

  @override
  Widget build(BuildContext context) {
    final isDark = _themeMode == ThemeMode.dark;

    if (_currentPlatform == TargetPlatform.iOS) {
      return CupertinoApp(
        title: 'Flutter Adaptive Design Gallery',
        debugShowCheckedModeBanner: false,
        theme: CupertinoThemeData(
          brightness: isDark ? Brightness.dark : Brightness.light,
          primaryColor: CupertinoColors.activeBlue,
        ),
        home: OverviewScreen(
          onTogglePlatform: _togglePlatform,
          onToggleTheme: _toggleTheme,
          isDark: isDark,
        ),
      );
    }

    return MaterialApp(
      title: 'Flutter Adaptive Design Gallery',
      debugShowCheckedModeBanner: false,
      themeMode: _themeMode,
      theme: ThemeData(
        useMaterial3: true,
        brightness: Brightness.light,
        colorSchemeSeed: Colors.indigo,
      ),
      darkTheme: ThemeData(
        useMaterial3: true,
        brightness: Brightness.dark,
        colorSchemeSeed: Colors.indigo,
      ),
      home: OverviewScreen(
        onTogglePlatform: _togglePlatform,
        onToggleTheme: _toggleTheme,
        isDark: isDark,
      ),
    );
  }
}
0
likes
160
points
83
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Platform-adaptive Flutter design system automatically dispatching native iOS (Cupertino HIG) and Android (Material 3) UI from a single codebase.

Repository (GitHub)
View/report issues

Topics

#adaptive #cupertino #material3 #design-system #responsive

License

MIT (license)

Dependencies

flutter, flutter_test, hugeicons

More

Packages that depend on flutter_adaptive_design