encodeThemeData static method

Map<String, dynamic>? encodeThemeData(
  1. ThemeData? value
)

Encodes the given value to a JSON compatible Map. The returned Map will have the following structure:

{
  "actionIconThemeData": "<ActionIconThemeData>",
  "appBarTheme": "<AppBarTheme>",
  "applyElevationOverlayColor": "<bool>",
  "badgeTheme": "<BadgeThemeData>",
  "bannerTheme": "<MaterialBannerThemeData>",
  "bottomAppBarTheme": "<BottomAppBarThemeScheme.id,
  "bottomNavigationBarTheme": "<BottomNavigationBarThemeData>",
  "bottomSheetTheme": "<BottomSheetThemeData>",
  "brightness": "<Brightness>",
  "buttonBarTheme": "<ButtonBarThemeData>",
  "buttonTheme": "<ButtonThemeData>",
  "canvasColor": "<Color>",
  "cardColor": "<Color>",
  "cardTheme": "<CardTheme>",
  "checkboxTheme": "<CheckboxThemeData>",
  "chipTheme": "<ChipThemeData>",
  "colorScheme": "<ColorScheme>",
  "colorSchemeSeed": "<Color>",
  "cupertinoOverrideTheme": "<CupertinoThemeData>",
  "datePickerTheme": "<DatePickerThemeData>",
  "dataTableTheme": "<DataTableThemeData>",
  "dialogBackgroundColor": "<Color>",
  "dialogTheme": "<DialogTheme>",
  "disabledColor": "<Color>",
  "dividerColor": "<Color>",
  "dividerTheme": "<DividerThemeData>",
  "drawerTheme": "<DrawerThemeData>",
  "dropdownMenuTheme": "<DropDownMenuThemeData>",
  "elevatedButtonTheme": "<ElevatedButtonThemeData>",
  "expansionTileTheme": "<ExpansionTileThemeData>",
  "filledButtonTheme": "<FilledButtonThemeDataScheme>"",
  "floatingActionButtonTheme": "<FloatingActionButtonThemeData>",
  "focusColor": "<Color>",
  "fontFamily": "<String>",
  "fontFamilyFallback": "<List<String>>",
  "highlightColor": "<Color>",
  "hintColor": "<Color>",
  "hoverColor": "<Color>",
  "iconButtonTheme": "<IconButtonThemeData>",
  "iconTheme": "<IconThemeData>",
  "indicatorColor": "<Color>",
  "inputDecorationTheme": "<InputDecorationTheme>",
  "listTileTheme": "<ListTileThemeData>",
  "materialTapTargetSize": "<MaterialTapTargetSize>",
  "menuBarTheme": "<MenuBarThemeData>",
  "menuButtonTheme": "<MenuButtonThemeData>",
  "menuTheme": "<MenuThemeData>",
  "navigationBarTheme": "<NavigationBarThemeData>",
  "navigationDrawerTheme": "<NavigationDrawerThemeData>",
  "navigationRailTheme": "<NavigationRailThemeData>",
  "outlinedButtonTheme": "<OutlinedButtonThemeData>",
  "package": "<String>",
  "pageTransitionsTheme": "<PageTransitionsTheme>",
  "platform": "<TargetPlatform>",
  "popupMenuTheme": "<PopupMenuThemeData>",
  "primaryColor": "<Color>",
  "primaryColorDark": "<Color>",
  "primaryColorLight": "<Color>",
  "primaryIconTheme": "<IconThemeData>",
  "primarySwatch": "<MaterialColor>",
  "primaryTextTheme": "<TextTheme>",
  "progressIndicatorTheme": "<ProgressIndicatorThemeData>",
  "radioTheme": "<RadioThemeData>",
  "scaffoldBackgroundColor": "<Color>",
  "scrollbarTheme": "<ScrollbarThemeData>",
  "searchBarTheme": "<SearchBarThemeData>",
  "searchViewTheme": "<SearchViewThemeData>",
  "secondaryHeaderColor": "<Color>",
  "segmentedButtonTheme": "<SegmentedButtonThemeData>",
  "shadowColor": "<Color>",
  "sliderTheme": "<SliderThemeData>",
  "snackBarTheme": "<SnackBarThemeData>",
  "splashColor": "<Color>",
  "splashFactory": "<InteractiveInkFeatureFactory>",
  "switchTheme": "<SwitchThemeData>",
  "tabBarTheme": "<TabBarTheme>",
  "textButtonTheme": "<TextButtonThemeData>",
  "textSelectionTheme": "<TextSelectionThemeData>",
  "textTheme": "<TextTheme>",
  "timePickerTheme": "<TimePickerThemeData>",
  "toggleButtonsTheme": "<ToggleButtonsThemeData>",
  "tooltipTheme": "<TooltipThemeData>",
  "typography": "<Typography>",
  "unselectedWidgetColor": "<Color>",
  "useMaterial3": "<bool>",
  "visualDensity": "<VisualDensity>"
}

See also:

Implementation

static Map<String, dynamic>? encodeThemeData(ThemeData? value) {
  Map<String, dynamic>? result;

  if (value != null) {
    result = <String, dynamic>{
      'actionIconTheme': encodeActionIconThemeData(value.actionIconTheme),
      'appBarTheme': encodeAppBarTheme(value.appBarTheme),
      'applyElevationOverlayColor': value.applyElevationOverlayColor,
      'badgeTheme': encodeBadgeThemeData(value.badgeTheme),
      'bannerTheme': encodeMaterialBannerThemeData(value.bannerTheme),
      'bottomAppBarTheme': encodeBottomAppBarTheme(value.bottomAppBarTheme),
      'bottomNavigationBarTheme': encodeBottomNavigationBarThemeData(
        value.bottomNavigationBarTheme,
      ),
      'bottomSheetTheme': encodeBottomSheetThemeData(value.bottomSheetTheme),
      'brightness': encodeBrightness(value.brightness),
      'buttonBarTheme': encodeButtonBarThemeData(value.buttonBarTheme),
      'buttonTheme': encodeButtonThemeData(value.buttonTheme),
      'canvasColor': encodeColor(value.canvasColor),
      'cardColor': encodeColor(value.cardColor),
      'cardTheme': encodeCardTheme(value.cardTheme),
      'checkboxTheme': encodeCheckboxThemeData(value.checkboxTheme),
      'chipTheme': encodeChipThemeData(value.chipTheme),
      'colorScheme': encodeColorScheme(value.colorScheme),
      // 'colorSchemeSeed': @nonexistant,
      'cupertinoOverrideTheme': encodeCupertinoThemeData(
        value.cupertinoOverrideTheme,
      ),
      'datePickerThemeData': encodeDatePickerThemeData(value.datePickerTheme),
      'dataTableTheme': encodeDataTableThemeData(value.dataTableTheme),
      'dialogBackgroundColor': encodeColor(value.dialogBackgroundColor),
      'dialogTheme': encodeDialogTheme(value.dialogTheme),
      'disabledColor': encodeColor(value.disabledColor),
      'dividerColor': encodeColor(value.dividerColor),
      'dividerTheme': encodeDividerThemeData(value.dividerTheme),
      'drawerTheme': encodeDrawerThemeData(value.drawerTheme),
      'elevatedButtonTheme': encodeElevatedButtonThemeData(
        value.elevatedButtonTheme,
      ),
      'expansionTileThemeData': encodeExpansionTileThemeData(
        value.expansionTileTheme,
      ),
      'filledButtonTheme': encodeFilledButtonThemeData(
        value.filledButtonTheme,
      ),
      'floatingActionButtonTheme': encodeFloatingActionButtonThemeData(
        value.floatingActionButtonTheme,
      ),
      'focusColor': encodeColor(value.focusColor),
      'highlightColor': encodeColor(value.highlightColor),
      'hintColor': encodeColor(value.hintColor),
      'hoverColor': encodeColor(value.hoverColor),
      'iconButtonTheme': encodeIconButtonThemeData(value.iconButtonTheme),
      'iconTheme': encodeIconThemeData(value.iconTheme),
      'indicatorColor': encodeColor(value.indicatorColor),
      'inputDecorationTheme': encodeInputDecorationTheme(
        value.inputDecorationTheme,
      ),
      'listTileTheme': encodeListTileThemeData(value.listTileTheme),
      'materialTapTargetSize': encodeMaterialTapTargetSize(
        value.materialTapTargetSize,
      ),
      'menuBarTheme': encodeMenuBarThemeData(value.menuBarTheme),
      'menuButtonTheme': encodeMenuButtonThemeData(value.menuButtonTheme),
      'menuTheme': encodeMenuThemeData(value.menuTheme),
      'navigationBarTheme': encodeNavigationBarThemeData(
        value.navigationBarTheme,
      ),
      'navigationRailTheme': encodeNavigationRailThemeData(
        value.navigationRailTheme,
      ),
      'outlinedButtonTheme': encodeOutlinedButtonThemeData(
        value.outlinedButtonTheme,
      ),
      'platform': encodeTargetPlatform(value.platform),
      'popupMenuTheme': encodePopupMenuThemeData(value.popupMenuTheme),
      'primaryColor': encodeColor(value.primaryColor),
      'primaryColorDark': encodeColor(value.primaryColorDark),
      'primaryColorLight': encodeColor(value.primaryColorLight),
      'primaryIconTheme': encodeIconThemeData(value.primaryIconTheme),
      'primaryTextTheme': encodeTextTheme(value.primaryTextTheme),
      'radioTheme': encodeRadioThemeData(value.radioTheme),
      'scaffoldBackgroundColor': encodeColor(value.scaffoldBackgroundColor),
      'searchBarTheme': encodeSearchBarThemeData(value.searchBarTheme),
      'searchViewTheme': encodeSearchViewThemeData(value.searchViewTheme),
      'secondaryHeaderColor': encodeColor(value.secondaryHeaderColor),
      'shadowColor': encodeColor(value.shadowColor),
      'sliderTheme': encodeSliderThemeData(value.sliderTheme),
      'snackBarTheme': encodeSnackBarThemeData(value.snackBarTheme),
      'splashColor': encodeColor(value.splashColor),
      'splashFactory':
          encodeInteractiveInkFeatureFactory(value.splashFactory),
      'switchTheme': encodeSwitchThemeData(value.switchTheme),
      'tabBarTheme': encodeTabBarTheme(value.tabBarTheme),
      'textButtonTheme': encodeTextButtonThemeData(value.textButtonTheme),
      'textSelectionTheme': encodeTextSelectionThemeData(
        value.textSelectionTheme,
      ),
      'textTheme': encodeTextTheme(value.textTheme),
      'toggleButtonsTheme': encodeToggleButtonsThemeData(
        value.toggleButtonsTheme,
      ),
      'tooltipTheme': encodeTooltipThemeData(value.tooltipTheme),
      'typography': encodeTypography(value.typography),
      'unselectedWidgetColor': encodeColor(value.unselectedWidgetColor),
      'useMaterial3': value.useMaterial3,
      'visualDensity': encodeVisualDensity(value.visualDensity),
    };
  }

  return _stripDynamicNull(result);
}