This PR is to make `InputDecorationTheme` conform to Flutter Material's conventions for component themes: - Added a `InputDecorationThemeData` class which defines overrides for the defaults for `InputDecorator` properties. - Added `InputDecorationTheme` constructor parameters: `InputDecorationThemeData? data` and `Widget? child`. This is now the preferred way to configure a `InputDecorationTheme`: ```dart InputDecorationTheme( data: InputDecorationThemeData( filled: true, fillColor: Colors.amber, ... ), child: const TextField() ) ``` These two properties are made nullable to not break existing apps which has customized `ThemeData.inputDecorationTheme`. - Update `InputDecorationTheme` to be an `InheritedTheme` subclass. - Changed the type of component theme defaults from `InputDecorationTheme` to `InputDecorationThemeData`. - Changed the `InputDecorationTheme bottomAppBarTheme` property to `Object? bottomAppBarTheme` in `ThemeData` and `ThemeData.copyWith()` (Object? is used for the moment to minimize Google tests failure. A follow-up PR will replace `Object?` with `InputDecorationThemeData`. - Addresses the "theme normalization" sub-project within #91772. A migration guide will be created on website repo.
Flutter Gallery
NOTE: The Flutter Gallery is now deprecated, and no longer being active maintained.
Flutter Gallery was a resource to help developers evaluate and use Flutter. It is now being used primarily for testing. For posterity, the web version remains hosted here.
We recommend Flutter developers check out the following resources:
-
Wonderous (web demo, App Store, Google Play, source code):
A Flutter app that showcases Flutter's support for elegant design and rich animations. -
Material 3 Demo (web demo, source code):
A Flutter app that showcases Material 3 features in the Flutter Material library. -
Flutter Samples (samples, source code):
A collection of open source samples that illustrate best practices for Flutter. -
Widget catalogs (Material, Cupertino):
Catalogs for Material, Cupertino, and other widgets available for use in UI.