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:

{
  "accentColor": <Color>,
  "accentColorBrightness": <Brightness>,
  "accentIconTheme": <IconThemeData>,
  "accentTextTheme": <TextTheme>,
  "appBarTheme": <AppBarTheme>,
  "applyElevationOverlayColor": <bool>,
  "bannerTheme": <MaterialBannerThemeData>,
  "backgroundColor": <Color>,
  "bottomAppBarColor": <Color>,
  "bottomAppBarTheme": <BottomAppBarTheme>,
  "bottomNavigationBarTheme": <BottomNavigationBarThemeData>,
  "bottomSheetTheme": <BottomSheetThemeData>,
  "brightness": <Brightness>,
  "buttonColor": <Color>,
  "buttonBarTheme": <ButtonBarThemeData>,
  "buttonTheme": <ButtonThemeData>,
  "canvasColor": <Color>,
  "cardColor": <Color>,
  "cardTheme": <CardTheme>,
  "chipTheme": <ChipThemeData>,
  "colorScheme": <ColorScheme>,
  "cupertinoOverrideTheme": <CupertinoThemeData>,
  "dataTableTheme": <DataTableThemeData>,
  "dialogBackgroundColor": <Color>,
  "dialogTheme": <DialogTheme>,
  "disabledColor": <Color>,
  "dividerColor": <Color>,
  "dividerTheme": <DividerThemeData>,
  "elevatedButtonTheme": <ElevatedButtonThemeData>,
  "errorColor": <Color>,
  "floatingActionButtonTheme": <FloatingActionButtonThemeData>,
  "focusColor": <Color>,
  "fontFamily": <String>,
  "highlightColor": <Color>,
  "hintColor": <Color>,
  "hoverColor": <Color>,
  "iconTheme": <IconThemeData>,
  "indicatorColor": <Color>,
  "inputDecorationTheme": <InputDecorationTheme>,
  "materialTapTargetSize": <MaterialTapTargetSize>,
  "navigationRailTheme": <NavigationRailThemeData>,
  "outlinedButtonTheme": <OutlinedButtonThemeData>,
  "platform": <TargetPlatform>,
  "popupMenuTheme": <PopupMenuThemeData>,
  "primaryColor": <Color>,
  "primaryColorBrightness": <Brightness>,
  "primaryColorDark": <Color>,
  "primaryColorLight": <Color>,
  "primaryIconTheme": <IconThemeData>,
  "primarySwatch": <MaterialColor>,
  "primaryTextTheme": <TextTheme>,
  "scaffoldBackgroundColor": <Color>,
  "secondaryHeaderColor": <Color>,
  "selectedRowColor": <Color>,
  "shadowColor": <Color>,
  "sliderTheme": <SliderThemeData>,
  "snackBarTheme": SnackBarThemeData>,
  "splashColor": <Color>,
  "splashFactory": <InteractiveInkFeatureFactory>,
  "tabBarTheme": <TabBarTheme>,
  "textButtonTheme": <TextButtonThemeData>,
  "textSelectionTheme": <TextSelectionThemeData>,
  "textTheme": <TextTheme>,
  "toggleButtonsTheme": <ToggleButtonsThemeData>,
  "toggleableActiveColor": <Color>,
  "tooltipTheme": <TooltipThemeData>,
  "typography": <Typography>,
  "unselectedWidgetColor": <Color>,
  "visualDensity": <VisualDensity>
}

See also:

Implementation

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

  if (value != null) {
    result = <String, dynamic>{
      'accentColor': encodeColor(value.accentColor),
      'accentColorBrightness': encodeBrightness(value.accentColorBrightness),
      'accentIconTheme': encodeIconThemeData(value.accentIconTheme),
      'accentTextTheme': encodeTextTheme(value.accentTextTheme),
      'appBarTheme': encodeAppBarTheme(value.appBarTheme),
      'applyElevationOverlayColor': value.applyElevationOverlayColor,
      'bannerTheme': encodeMaterialBannerThemeData(value.bannerTheme),
      'backgroundColor': encodeColor(value.backgroundColor),
      'bottomAppBarColor': encodeColor(value.bottomAppBarColor),
      'bottomAppBarTheme': encodeBottomAppBarTheme(value.bottomAppBarTheme),
      'bottomNavigationBarTheme': encodeBottomNavigationBarThemeData(
        value.bottomNavigationBarTheme,
      ),
      'bottomSheetTheme': encodeBottomSheetThemeData(value.bottomSheetTheme),
      'brightness': encodeBrightness(value.brightness),
      'buttonColor': encodeColor(value.buttonColor),
      'buttonBarTheme': encodeButtonBarThemeData(value.buttonBarTheme),
      'buttonTheme': encodeButtonThemeData(value.buttonTheme),
      'canvasColor': encodeColor(value.canvasColor),
      'cardColor': encodeColor(value.cardColor),
      'cardTheme': encodeCardTheme(value.cardTheme),
      'chipTheme': encodeChipThemeData(value.chipTheme),
      'colorScheme': encodeColorScheme(value.colorScheme),
      'cupertinoOverrideTheme': encodeCupertinoThemeData(
        value.cupertinoOverrideTheme,
      ),
      'dataTableTheme': encodeDataTableThemeData(value.dataTableTheme),
      'dialogBackgroundColor': encodeColor(value.dialogBackgroundColor),
      'dialogTheme': encodeDialogTheme(value.dialogTheme),
      'disabledColor': encodeColor(value.disabledColor),
      'dividerColor': encodeColor(value.dividerColor),
      'dividerTheme': encodeDividerThemeData(value.dividerTheme),
      'elevatedButtonTheme': encodeElevatedButtonThemeData(
        value.elevatedButtonTheme,
      ),
      'errorColor': encodeColor(value.errorColor),
      'fixTextFieldOutlineLabel': value.fixTextFieldOutlineLabel,
      'floatingActionButtonTheme': encodeFloatingActionButtonThemeData(
        value.floatingActionButtonTheme,
      ),
      'focusColor': encodeColor(value.focusColor),
      'highlightColor': encodeColor(value.highlightColor),
      'hintColor': encodeColor(value.hintColor),
      'hoverColor': encodeColor(value.hoverColor),
      'iconTheme': encodeIconThemeData(value.iconTheme),
      'indicatorColor': encodeColor(value.indicatorColor),
      'inputDecorationTheme': encodeInputDecorationTheme(
        value.inputDecorationTheme,
      ),
      'materialTapTargetSize': encodeMaterialTapTargetSize(
        value.materialTapTargetSize,
      ),
      'navigationRailTheme': encodeNavigationRailThemeData(
        value.navigationRailTheme,
      ),
      'outlinedButtonTheme': encodeOutlinedButtonThemeData(
        value.outlinedButtonTheme,
      ),
      'platform': encodeTargetPlatform(value.platform),
      'popupMenuTheme': encodePopupMenuThemeData(value.popupMenuTheme),
      'primaryColor': encodeColor(value.primaryColor),
      'primaryColorBrightness': encodeBrightness(
        value.primaryColorBrightness,
      ),
      'primaryColorDark': encodeColor(value.primaryColorDark),
      'primaryColorLight': encodeColor(value.primaryColorLight),
      'primaryIconTheme': encodeIconThemeData(value.primaryIconTheme),
      'primaryTextTheme': encodeTextTheme(value.primaryTextTheme),
      'scaffoldBackgroundColor': encodeColor(value.scaffoldBackgroundColor),
      'secondaryHeaderColor': encodeColor(value.secondaryHeaderColor),
      'selectedRowColor': encodeColor(value.selectedRowColor),
      'shadowColor': encodeColor(value.shadowColor),
      'sliderTheme': encodeSliderThemeData(value.sliderTheme),
      'snackBarTheme': encodeSnackBarThemeData(value.snackBarTheme),
      'splashColor': encodeColor(value.splashColor),
      'splashFactory':
          encodeInteractiveInkFeatureFactory(value.splashFactory),
      'tabBarTheme': encodeTabBarTheme(value.tabBarTheme),
      'textButtonTheme': encodeTextButtonThemeData(value.textButtonTheme),
      'textSelectionTheme': encodeTextSelectionThemeData(
        value.textSelectionTheme,
      ),
      'textTheme': encodeTextTheme(value.textTheme),
      'toggleButtonsTheme': encodeToggleButtonsThemeData(
        value.toggleButtonsTheme,
      ),
      'toggleableActiveColor': encodeColor(value.toggleableActiveColor),
      'tooltipTheme': encodeTooltipThemeData(value.tooltipTheme),
      'typography': encodeTypography(value.typography),
      'unselectedWidgetColor': encodeColor(value.unselectedWidgetColor),
      'visualDensity': encodeVisualDensity(value.visualDensity),
    };
  }

  return _stripNull(result);
}