diff --git a/dev/tools/update_icons.dart b/dev/tools/update_icons.dart
index 0b3e46f..71ac37c 100644
--- a/dev/tools/update_icons.dart
+++ b/dev/tools/update_icons.dart
@@ -97,6 +97,6 @@
   return '''
 
   /// <p><i class="material-icons md-36">$name</i> &#x2014; material icon named "$description".</p>
-  static const IconData $identifier = const IconData(0x$codepoint);
+  static const IconData $identifier = const IconData(0x$codepoint, fontFamily: 'MaterialIcons');
 ''';
 }
diff --git a/packages/flutter/lib/material.dart b/packages/flutter/lib/material.dart
index 141b396..25edf6a 100644
--- a/packages/flutter/lib/material.dart
+++ b/packages/flutter/lib/material.dart
@@ -48,12 +48,8 @@
 export 'src/material/flutter_logo.dart';
 export 'src/material/grid_tile.dart';
 export 'src/material/grid_tile_bar.dart';
-export 'src/material/icon.dart';
 export 'src/material/icon_button.dart';
-export 'src/material/icon_theme.dart';
-export 'src/material/icon_theme_data.dart';
 export 'src/material/icons.dart';
-export 'src/material/image_icon.dart';
 export 'src/material/ink_highlight.dart';
 export 'src/material/ink_splash.dart';
 export 'src/material/ink_well.dart';
diff --git a/packages/flutter/lib/src/material/about.dart b/packages/flutter/lib/src/material/about.dart
index fba1cab..6f7fcd6 100644
--- a/packages/flutter/lib/src/material/about.dart
+++ b/packages/flutter/lib/src/material/about.dart
@@ -12,9 +12,6 @@
 import 'debug.dart';
 import 'dialog.dart';
 import 'flat_button.dart';
-import 'icon.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'list_tile.dart';
 import 'page.dart';
 import 'progress_indicator.dart';
diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart
index ca8643e..900ca87 100644
--- a/packages/flutter/lib/src/material/app_bar.dart
+++ b/packages/flutter/lib/src/material/app_bar.dart
@@ -12,10 +12,7 @@
 import 'back_button.dart';
 import 'constants.dart';
 import 'flexible_space_bar.dart';
-import 'icon.dart';
 import 'icon_button.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'icons.dart';
 import 'material.dart';
 import 'page.dart';
diff --git a/packages/flutter/lib/src/material/back_button.dart b/packages/flutter/lib/src/material/back_button.dart
index f2f2462..d6326a1 100644
--- a/packages/flutter/lib/src/material/back_button.dart
+++ b/packages/flutter/lib/src/material/back_button.dart
@@ -4,7 +4,6 @@
 
 import 'package:flutter/widgets.dart';
 
-import 'icon.dart';
 import 'icon_button.dart';
 import 'icons.dart';
 import 'theme.dart';
diff --git a/packages/flutter/lib/src/material/bottom_navigation_bar.dart b/packages/flutter/lib/src/material/bottom_navigation_bar.dart
index c542d6e..6ea7616 100644
--- a/packages/flutter/lib/src/material/bottom_navigation_bar.dart
+++ b/packages/flutter/lib/src/material/bottom_navigation_bar.dart
@@ -11,8 +11,6 @@
 
 import 'colors.dart';
 import 'constants.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'ink_well.dart';
 import 'material.dart';
 import 'theme.dart';
diff --git a/packages/flutter/lib/src/material/button.dart b/packages/flutter/lib/src/material/button.dart
index 9baa22e..3b1f4d8 100644
--- a/packages/flutter/lib/src/material/button.dart
+++ b/packages/flutter/lib/src/material/button.dart
@@ -9,8 +9,6 @@
 import 'constants.dart';
 import 'debug.dart';
 import 'flat_button.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'ink_well.dart';
 import 'material.dart';
 import 'raised_button.dart';
diff --git a/packages/flutter/lib/src/material/chip.dart b/packages/flutter/lib/src/material/chip.dart
index 6220f5d..f7e7998 100644
--- a/packages/flutter/lib/src/material/chip.dart
+++ b/packages/flutter/lib/src/material/chip.dart
@@ -7,7 +7,6 @@
 
 import 'colors.dart';
 import 'debug.dart';
-import 'icon.dart';
 import 'icons.dart';
 import 'tooltip.dart';
 
diff --git a/packages/flutter/lib/src/material/data_table.dart b/packages/flutter/lib/src/material/data_table.dart
index 2870392..2730acb 100644
--- a/packages/flutter/lib/src/material/data_table.dart
+++ b/packages/flutter/lib/src/material/data_table.dart
@@ -12,9 +12,6 @@
 import 'colors.dart';
 import 'debug.dart';
 import 'dropdown.dart';
-import 'icon.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'icons.dart';
 import 'ink_well.dart';
 import 'material.dart';
diff --git a/packages/flutter/lib/src/material/date_picker.dart b/packages/flutter/lib/src/material/date_picker.dart
index 5b94744..c60a738 100644
--- a/packages/flutter/lib/src/material/date_picker.dart
+++ b/packages/flutter/lib/src/material/date_picker.dart
@@ -18,7 +18,6 @@
 import 'debug.dart';
 import 'dialog.dart';
 import 'flat_button.dart';
-import 'icon.dart';
 import 'icon_button.dart';
 import 'icons.dart';
 import 'ink_well.dart';
diff --git a/packages/flutter/lib/src/material/dropdown.dart b/packages/flutter/lib/src/material/dropdown.dart
index 96b1592..31e05a2 100644
--- a/packages/flutter/lib/src/material/dropdown.dart
+++ b/packages/flutter/lib/src/material/dropdown.dart
@@ -11,7 +11,6 @@
 import 'colors.dart';
 import 'constants.dart';
 import 'debug.dart';
-import 'icon.dart';
 import 'icons.dart';
 import 'ink_well.dart';
 import 'material.dart';
diff --git a/packages/flutter/lib/src/material/expand_icon.dart b/packages/flutter/lib/src/material/expand_icon.dart
index b5fd7aa..b1e1d3a 100644
--- a/packages/flutter/lib/src/material/expand_icon.dart
+++ b/packages/flutter/lib/src/material/expand_icon.dart
@@ -7,7 +7,6 @@
 
 import 'colors.dart';
 import 'debug.dart';
-import 'icon.dart';
 import 'icon_button.dart';
 import 'icons.dart';
 import 'theme.dart';
diff --git a/packages/flutter/lib/src/material/expansion_tile.dart b/packages/flutter/lib/src/material/expansion_tile.dart
index b98cd77..958996f 100644
--- a/packages/flutter/lib/src/material/expansion_tile.dart
+++ b/packages/flutter/lib/src/material/expansion_tile.dart
@@ -6,9 +6,6 @@
 import 'package:flutter/widgets.dart';
 
 import 'colors.dart';
-import 'icon.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'icons.dart';
 import 'list_tile.dart';
 import 'theme.dart';
diff --git a/packages/flutter/lib/src/material/floating_action_button.dart b/packages/flutter/lib/src/material/floating_action_button.dart
index 11dea82..8fe951b 100644
--- a/packages/flutter/lib/src/material/floating_action_button.dart
+++ b/packages/flutter/lib/src/material/floating_action_button.dart
@@ -6,8 +6,6 @@
 import 'package:flutter/widgets.dart';
 
 import 'colors.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'ink_well.dart';
 import 'material.dart';
 import 'theme.dart';
diff --git a/packages/flutter/lib/src/material/flutter_logo.dart b/packages/flutter/lib/src/material/flutter_logo.dart
index e4d01a8..d319247 100644
--- a/packages/flutter/lib/src/material/flutter_logo.dart
+++ b/packages/flutter/lib/src/material/flutter_logo.dart
@@ -5,8 +5,6 @@
 import 'package:flutter/widgets.dart';
 
 import 'colors.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 
 /// The Flutter logo, in widget form. This widget respects the [IconTheme].
 ///
diff --git a/packages/flutter/lib/src/material/grid_tile_bar.dart b/packages/flutter/lib/src/material/grid_tile_bar.dart
index 17052b1..36c56f2 100644
--- a/packages/flutter/lib/src/material/grid_tile_bar.dart
+++ b/packages/flutter/lib/src/material/grid_tile_bar.dart
@@ -5,8 +5,6 @@
 import 'package:flutter/widgets.dart';
 
 import 'colors.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'theme.dart';
 
 /// A header used in a material design [GridTile].
diff --git a/packages/flutter/lib/src/material/icon_button.dart b/packages/flutter/lib/src/material/icon_button.dart
index e1b7a85..583386b 100644
--- a/packages/flutter/lib/src/material/icon_button.dart
+++ b/packages/flutter/lib/src/material/icon_button.dart
@@ -8,9 +8,6 @@
 import 'package:flutter/widgets.dart';
 
 import 'debug.dart';
-import 'icon.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'icons.dart';
 import 'ink_well.dart';
 import 'material.dart';
diff --git a/packages/flutter/lib/src/material/icons.dart b/packages/flutter/lib/src/material/icons.dart
index 9d84275..83935a3 100644
--- a/packages/flutter/lib/src/material/icons.dart
+++ b/packages/flutter/lib/src/material/icons.dart
@@ -2,46 +2,25 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:flutter/foundation.dart';
-
-/// A description of a material design icon.
-///
-/// See [Icons] for a number of predefined icons.
-@immutable
-class IconData {
-  /// Creates icon data.
-  ///
-  /// Rarely used directly. Instead, consider using one of the predefined icons
-  /// from the [Icons] collection.
-  const IconData(this.codePoint, {
-    this.fontFamily: 'MaterialIcons'
-  });
-
-  /// The unicode code point at which this icon is stored in the icon font.
-  final int codePoint;
-
-  /// The font family from which the glyph for the [codePoint] will be selected.
-  final String fontFamily;
-
-  @override
-  bool operator ==(dynamic other) {
-    if (other is! IconData)
-      return false;
-    final IconData typedOther = other;
-    return codePoint == typedOther.codePoint;
-  }
-
-  @override
-  int get hashCode => codePoint.hashCode;
-
-  @override
-  String toString() => 'IconData(U+${codePoint.toRadixString(16).toUpperCase().padLeft(5, '0')})';
-}
+import 'package:flutter/widgets.dart';
 
 /// Identifiers for the supported material design icons.
 ///
 /// Use with with the [Icon] class to show specific icons.
 ///
+/// Icons are identified by their name as listed below.
+///
+/// To use this class, make sure you set `uses-material-design: true` in your
+/// project's `pubspec.yaml` file in the `flutter` section. This ensures that
+/// the MaterialIcons font is included in your application. This font is used to
+/// display the icons. For example:
+///
+/// ```yaml
+/// name: my_awesome_application
+/// flutter:
+///   uses-material-design: true
+/// ```
+///
 /// See also:
 ///
 ///  * [Icon]
@@ -55,2958 +34,2958 @@
   // BEGIN GENERATED
 
   /// <p><i class="material-icons md-36">360</i> &#x2014; material icon named "360".</p>
-  static const IconData threesixty = const IconData(0xe577);
+  static const IconData threesixty = const IconData(0xe577, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">3d_rotation</i> &#x2014; material icon named "3d rotation".</p>
-  static const IconData threed_rotation = const IconData(0xe84d);
+  static const IconData threed_rotation = const IconData(0xe84d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">4k</i> &#x2014; material icon named "4k".</p>
-  static const IconData four_k = const IconData(0xe072);
+  static const IconData four_k = const IconData(0xe072, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">ac_unit</i> &#x2014; material icon named "ac unit".</p>
-  static const IconData ac_unit = const IconData(0xeb3b);
+  static const IconData ac_unit = const IconData(0xeb3b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">access_alarm</i> &#x2014; material icon named "access alarm".</p>
-  static const IconData access_alarm = const IconData(0xe190);
+  static const IconData access_alarm = const IconData(0xe190, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">access_alarms</i> &#x2014; material icon named "access alarms".</p>
-  static const IconData access_alarms = const IconData(0xe191);
+  static const IconData access_alarms = const IconData(0xe191, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">access_time</i> &#x2014; material icon named "access time".</p>
-  static const IconData access_time = const IconData(0xe192);
+  static const IconData access_time = const IconData(0xe192, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">accessibility</i> &#x2014; material icon named "accessibility".</p>
-  static const IconData accessibility = const IconData(0xe84e);
+  static const IconData accessibility = const IconData(0xe84e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">accessibility_new</i> &#x2014; material icon named "accessibility new".</p>
-  static const IconData accessibility_new = const IconData(0xe92c);
+  static const IconData accessibility_new = const IconData(0xe92c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">accessible</i> &#x2014; material icon named "accessible".</p>
-  static const IconData accessible = const IconData(0xe914);
+  static const IconData accessible = const IconData(0xe914, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">accessible_forward</i> &#x2014; material icon named "accessible forward".</p>
-  static const IconData accessible_forward = const IconData(0xe934);
+  static const IconData accessible_forward = const IconData(0xe934, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">account_balance</i> &#x2014; material icon named "account balance".</p>
-  static const IconData account_balance = const IconData(0xe84f);
+  static const IconData account_balance = const IconData(0xe84f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">account_balance_wallet</i> &#x2014; material icon named "account balance wallet".</p>
-  static const IconData account_balance_wallet = const IconData(0xe850);
+  static const IconData account_balance_wallet = const IconData(0xe850, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">account_box</i> &#x2014; material icon named "account box".</p>
-  static const IconData account_box = const IconData(0xe851);
+  static const IconData account_box = const IconData(0xe851, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">account_circle</i> &#x2014; material icon named "account circle".</p>
-  static const IconData account_circle = const IconData(0xe853);
+  static const IconData account_circle = const IconData(0xe853, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">adb</i> &#x2014; material icon named "adb".</p>
-  static const IconData adb = const IconData(0xe60e);
+  static const IconData adb = const IconData(0xe60e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add</i> &#x2014; material icon named "add".</p>
-  static const IconData add = const IconData(0xe145);
+  static const IconData add = const IconData(0xe145, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_a_photo</i> &#x2014; material icon named "add a photo".</p>
-  static const IconData add_a_photo = const IconData(0xe439);
+  static const IconData add_a_photo = const IconData(0xe439, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_alarm</i> &#x2014; material icon named "add alarm".</p>
-  static const IconData add_alarm = const IconData(0xe193);
+  static const IconData add_alarm = const IconData(0xe193, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_alert</i> &#x2014; material icon named "add alert".</p>
-  static const IconData add_alert = const IconData(0xe003);
+  static const IconData add_alert = const IconData(0xe003, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_box</i> &#x2014; material icon named "add box".</p>
-  static const IconData add_box = const IconData(0xe146);
+  static const IconData add_box = const IconData(0xe146, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_call</i> &#x2014; material icon named "add call".</p>
-  static const IconData add_call = const IconData(0xe0e8);
+  static const IconData add_call = const IconData(0xe0e8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_circle</i> &#x2014; material icon named "add circle".</p>
-  static const IconData add_circle = const IconData(0xe147);
+  static const IconData add_circle = const IconData(0xe147, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_circle_outline</i> &#x2014; material icon named "add circle outline".</p>
-  static const IconData add_circle_outline = const IconData(0xe148);
+  static const IconData add_circle_outline = const IconData(0xe148, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_comment</i> &#x2014; material icon named "add comment".</p>
-  static const IconData add_comment = const IconData(0xe266);
+  static const IconData add_comment = const IconData(0xe266, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_location</i> &#x2014; material icon named "add location".</p>
-  static const IconData add_location = const IconData(0xe567);
+  static const IconData add_location = const IconData(0xe567, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_photo_alternate</i> &#x2014; material icon named "add photo alternate".</p>
-  static const IconData add_photo_alternate = const IconData(0xe43e);
+  static const IconData add_photo_alternate = const IconData(0xe43e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_shopping_cart</i> &#x2014; material icon named "add shopping cart".</p>
-  static const IconData add_shopping_cart = const IconData(0xe854);
+  static const IconData add_shopping_cart = const IconData(0xe854, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_to_home_screen</i> &#x2014; material icon named "add to home screen".</p>
-  static const IconData add_to_home_screen = const IconData(0xe1fe);
+  static const IconData add_to_home_screen = const IconData(0xe1fe, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_to_photos</i> &#x2014; material icon named "add to photos".</p>
-  static const IconData add_to_photos = const IconData(0xe39d);
+  static const IconData add_to_photos = const IconData(0xe39d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">add_to_queue</i> &#x2014; material icon named "add to queue".</p>
-  static const IconData add_to_queue = const IconData(0xe05c);
+  static const IconData add_to_queue = const IconData(0xe05c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">adjust</i> &#x2014; material icon named "adjust".</p>
-  static const IconData adjust = const IconData(0xe39e);
+  static const IconData adjust = const IconData(0xe39e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airline_seat_flat</i> &#x2014; material icon named "airline seat flat".</p>
-  static const IconData airline_seat_flat = const IconData(0xe630);
+  static const IconData airline_seat_flat = const IconData(0xe630, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airline_seat_flat_angled</i> &#x2014; material icon named "airline seat flat angled".</p>
-  static const IconData airline_seat_flat_angled = const IconData(0xe631);
+  static const IconData airline_seat_flat_angled = const IconData(0xe631, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airline_seat_individual_suite</i> &#x2014; material icon named "airline seat individual suite".</p>
-  static const IconData airline_seat_individual_suite = const IconData(0xe632);
+  static const IconData airline_seat_individual_suite = const IconData(0xe632, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airline_seat_legroom_extra</i> &#x2014; material icon named "airline seat legroom extra".</p>
-  static const IconData airline_seat_legroom_extra = const IconData(0xe633);
+  static const IconData airline_seat_legroom_extra = const IconData(0xe633, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airline_seat_legroom_normal</i> &#x2014; material icon named "airline seat legroom normal".</p>
-  static const IconData airline_seat_legroom_normal = const IconData(0xe634);
+  static const IconData airline_seat_legroom_normal = const IconData(0xe634, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airline_seat_legroom_reduced</i> &#x2014; material icon named "airline seat legroom reduced".</p>
-  static const IconData airline_seat_legroom_reduced = const IconData(0xe635);
+  static const IconData airline_seat_legroom_reduced = const IconData(0xe635, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airline_seat_recline_extra</i> &#x2014; material icon named "airline seat recline extra".</p>
-  static const IconData airline_seat_recline_extra = const IconData(0xe636);
+  static const IconData airline_seat_recline_extra = const IconData(0xe636, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airline_seat_recline_normal</i> &#x2014; material icon named "airline seat recline normal".</p>
-  static const IconData airline_seat_recline_normal = const IconData(0xe637);
+  static const IconData airline_seat_recline_normal = const IconData(0xe637, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airplanemode_active</i> &#x2014; material icon named "airplanemode active".</p>
-  static const IconData airplanemode_active = const IconData(0xe195);
+  static const IconData airplanemode_active = const IconData(0xe195, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airplanemode_inactive</i> &#x2014; material icon named "airplanemode inactive".</p>
-  static const IconData airplanemode_inactive = const IconData(0xe194);
+  static const IconData airplanemode_inactive = const IconData(0xe194, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airplay</i> &#x2014; material icon named "airplay".</p>
-  static const IconData airplay = const IconData(0xe055);
+  static const IconData airplay = const IconData(0xe055, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">airport_shuttle</i> &#x2014; material icon named "airport shuttle".</p>
-  static const IconData airport_shuttle = const IconData(0xeb3c);
+  static const IconData airport_shuttle = const IconData(0xeb3c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">alarm</i> &#x2014; material icon named "alarm".</p>
-  static const IconData alarm = const IconData(0xe855);
+  static const IconData alarm = const IconData(0xe855, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">alarm_add</i> &#x2014; material icon named "alarm add".</p>
-  static const IconData alarm_add = const IconData(0xe856);
+  static const IconData alarm_add = const IconData(0xe856, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">alarm_off</i> &#x2014; material icon named "alarm off".</p>
-  static const IconData alarm_off = const IconData(0xe857);
+  static const IconData alarm_off = const IconData(0xe857, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">alarm_on</i> &#x2014; material icon named "alarm on".</p>
-  static const IconData alarm_on = const IconData(0xe858);
+  static const IconData alarm_on = const IconData(0xe858, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">album</i> &#x2014; material icon named "album".</p>
-  static const IconData album = const IconData(0xe019);
+  static const IconData album = const IconData(0xe019, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">all_inclusive</i> &#x2014; material icon named "all inclusive".</p>
-  static const IconData all_inclusive = const IconData(0xeb3d);
+  static const IconData all_inclusive = const IconData(0xeb3d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">all_out</i> &#x2014; material icon named "all out".</p>
-  static const IconData all_out = const IconData(0xe90b);
+  static const IconData all_out = const IconData(0xe90b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">alternate_email</i> &#x2014; material icon named "alternate email".</p>
-  static const IconData alternate_email = const IconData(0xe0e6);
+  static const IconData alternate_email = const IconData(0xe0e6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">android</i> &#x2014; material icon named "android".</p>
-  static const IconData android = const IconData(0xe859);
+  static const IconData android = const IconData(0xe859, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">announcement</i> &#x2014; material icon named "announcement".</p>
-  static const IconData announcement = const IconData(0xe85a);
+  static const IconData announcement = const IconData(0xe85a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">apps</i> &#x2014; material icon named "apps".</p>
-  static const IconData apps = const IconData(0xe5c3);
+  static const IconData apps = const IconData(0xe5c3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">archive</i> &#x2014; material icon named "archive".</p>
-  static const IconData archive = const IconData(0xe149);
+  static const IconData archive = const IconData(0xe149, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_back</i> &#x2014; material icon named "arrow back".</p>
-  static const IconData arrow_back = const IconData(0xe5c4);
+  static const IconData arrow_back = const IconData(0xe5c4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios".</p>
-  static const IconData arrow_back_ios = const IconData(0xe5e0);
+  static const IconData arrow_back_ios = const IconData(0xe5e0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_downward</i> &#x2014; material icon named "arrow downward".</p>
-  static const IconData arrow_downward = const IconData(0xe5db);
+  static const IconData arrow_downward = const IconData(0xe5db, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_drop_down</i> &#x2014; material icon named "arrow drop down".</p>
-  static const IconData arrow_drop_down = const IconData(0xe5c5);
+  static const IconData arrow_drop_down = const IconData(0xe5c5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_drop_down_circle</i> &#x2014; material icon named "arrow drop down circle".</p>
-  static const IconData arrow_drop_down_circle = const IconData(0xe5c6);
+  static const IconData arrow_drop_down_circle = const IconData(0xe5c6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_drop_up</i> &#x2014; material icon named "arrow drop up".</p>
-  static const IconData arrow_drop_up = const IconData(0xe5c7);
+  static const IconData arrow_drop_up = const IconData(0xe5c7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_forward</i> &#x2014; material icon named "arrow forward".</p>
-  static const IconData arrow_forward = const IconData(0xe5c8);
+  static const IconData arrow_forward = const IconData(0xe5c8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios".</p>
-  static const IconData arrow_forward_ios = const IconData(0xe5e1);
+  static const IconData arrow_forward_ios = const IconData(0xe5e1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_left</i> &#x2014; material icon named "arrow left".</p>
-  static const IconData arrow_left = const IconData(0xe5de);
+  static const IconData arrow_left = const IconData(0xe5de, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_right</i> &#x2014; material icon named "arrow right".</p>
-  static const IconData arrow_right = const IconData(0xe5df);
+  static const IconData arrow_right = const IconData(0xe5df, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">arrow_upward</i> &#x2014; material icon named "arrow upward".</p>
-  static const IconData arrow_upward = const IconData(0xe5d8);
+  static const IconData arrow_upward = const IconData(0xe5d8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">art_track</i> &#x2014; material icon named "art track".</p>
-  static const IconData art_track = const IconData(0xe060);
+  static const IconData art_track = const IconData(0xe060, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">aspect_ratio</i> &#x2014; material icon named "aspect ratio".</p>
-  static const IconData aspect_ratio = const IconData(0xe85b);
+  static const IconData aspect_ratio = const IconData(0xe85b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assessment</i> &#x2014; material icon named "assessment".</p>
-  static const IconData assessment = const IconData(0xe85c);
+  static const IconData assessment = const IconData(0xe85c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assignment</i> &#x2014; material icon named "assignment".</p>
-  static const IconData assignment = const IconData(0xe85d);
+  static const IconData assignment = const IconData(0xe85d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assignment_ind</i> &#x2014; material icon named "assignment ind".</p>
-  static const IconData assignment_ind = const IconData(0xe85e);
+  static const IconData assignment_ind = const IconData(0xe85e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assignment_late</i> &#x2014; material icon named "assignment late".</p>
-  static const IconData assignment_late = const IconData(0xe85f);
+  static const IconData assignment_late = const IconData(0xe85f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assignment_return</i> &#x2014; material icon named "assignment return".</p>
-  static const IconData assignment_return = const IconData(0xe860);
+  static const IconData assignment_return = const IconData(0xe860, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assignment_returned</i> &#x2014; material icon named "assignment returned".</p>
-  static const IconData assignment_returned = const IconData(0xe861);
+  static const IconData assignment_returned = const IconData(0xe861, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assignment_turned_in</i> &#x2014; material icon named "assignment turned in".</p>
-  static const IconData assignment_turned_in = const IconData(0xe862);
+  static const IconData assignment_turned_in = const IconData(0xe862, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assistant</i> &#x2014; material icon named "assistant".</p>
-  static const IconData assistant = const IconData(0xe39f);
+  static const IconData assistant = const IconData(0xe39f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">assistant_photo</i> &#x2014; material icon named "assistant photo".</p>
-  static const IconData assistant_photo = const IconData(0xe3a0);
+  static const IconData assistant_photo = const IconData(0xe3a0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">atm</i> &#x2014; material icon named "atm".</p>
-  static const IconData atm = const IconData(0xe573);
+  static const IconData atm = const IconData(0xe573, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">attach_file</i> &#x2014; material icon named "attach file".</p>
-  static const IconData attach_file = const IconData(0xe226);
+  static const IconData attach_file = const IconData(0xe226, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">attach_money</i> &#x2014; material icon named "attach money".</p>
-  static const IconData attach_money = const IconData(0xe227);
+  static const IconData attach_money = const IconData(0xe227, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">attachment</i> &#x2014; material icon named "attachment".</p>
-  static const IconData attachment = const IconData(0xe2bc);
+  static const IconData attachment = const IconData(0xe2bc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">audiotrack</i> &#x2014; material icon named "audiotrack".</p>
-  static const IconData audiotrack = const IconData(0xe3a1);
+  static const IconData audiotrack = const IconData(0xe3a1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">autorenew</i> &#x2014; material icon named "autorenew".</p>
-  static const IconData autorenew = const IconData(0xe863);
+  static const IconData autorenew = const IconData(0xe863, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">av_timer</i> &#x2014; material icon named "av timer".</p>
-  static const IconData av_timer = const IconData(0xe01b);
+  static const IconData av_timer = const IconData(0xe01b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">backspace</i> &#x2014; material icon named "backspace".</p>
-  static const IconData backspace = const IconData(0xe14a);
+  static const IconData backspace = const IconData(0xe14a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">backup</i> &#x2014; material icon named "backup".</p>
-  static const IconData backup = const IconData(0xe864);
+  static const IconData backup = const IconData(0xe864, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">battery_alert</i> &#x2014; material icon named "battery alert".</p>
-  static const IconData battery_alert = const IconData(0xe19c);
+  static const IconData battery_alert = const IconData(0xe19c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">battery_charging_full</i> &#x2014; material icon named "battery charging full".</p>
-  static const IconData battery_charging_full = const IconData(0xe1a3);
+  static const IconData battery_charging_full = const IconData(0xe1a3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">battery_full</i> &#x2014; material icon named "battery full".</p>
-  static const IconData battery_full = const IconData(0xe1a4);
+  static const IconData battery_full = const IconData(0xe1a4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">battery_std</i> &#x2014; material icon named "battery std".</p>
-  static const IconData battery_std = const IconData(0xe1a5);
+  static const IconData battery_std = const IconData(0xe1a5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">battery_unknown</i> &#x2014; material icon named "battery unknown".</p>
-  static const IconData battery_unknown = const IconData(0xe1a6);
+  static const IconData battery_unknown = const IconData(0xe1a6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">beach_access</i> &#x2014; material icon named "beach access".</p>
-  static const IconData beach_access = const IconData(0xeb3e);
+  static const IconData beach_access = const IconData(0xeb3e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">beenhere</i> &#x2014; material icon named "beenhere".</p>
-  static const IconData beenhere = const IconData(0xe52d);
+  static const IconData beenhere = const IconData(0xe52d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">block</i> &#x2014; material icon named "block".</p>
-  static const IconData block = const IconData(0xe14b);
+  static const IconData block = const IconData(0xe14b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bluetooth</i> &#x2014; material icon named "bluetooth".</p>
-  static const IconData bluetooth = const IconData(0xe1a7);
+  static const IconData bluetooth = const IconData(0xe1a7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bluetooth_audio</i> &#x2014; material icon named "bluetooth audio".</p>
-  static const IconData bluetooth_audio = const IconData(0xe60f);
+  static const IconData bluetooth_audio = const IconData(0xe60f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bluetooth_connected</i> &#x2014; material icon named "bluetooth connected".</p>
-  static const IconData bluetooth_connected = const IconData(0xe1a8);
+  static const IconData bluetooth_connected = const IconData(0xe1a8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bluetooth_disabled</i> &#x2014; material icon named "bluetooth disabled".</p>
-  static const IconData bluetooth_disabled = const IconData(0xe1a9);
+  static const IconData bluetooth_disabled = const IconData(0xe1a9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bluetooth_searching</i> &#x2014; material icon named "bluetooth searching".</p>
-  static const IconData bluetooth_searching = const IconData(0xe1aa);
+  static const IconData bluetooth_searching = const IconData(0xe1aa, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">blur_circular</i> &#x2014; material icon named "blur circular".</p>
-  static const IconData blur_circular = const IconData(0xe3a2);
+  static const IconData blur_circular = const IconData(0xe3a2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">blur_linear</i> &#x2014; material icon named "blur linear".</p>
-  static const IconData blur_linear = const IconData(0xe3a3);
+  static const IconData blur_linear = const IconData(0xe3a3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">blur_off</i> &#x2014; material icon named "blur off".</p>
-  static const IconData blur_off = const IconData(0xe3a4);
+  static const IconData blur_off = const IconData(0xe3a4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">blur_on</i> &#x2014; material icon named "blur on".</p>
-  static const IconData blur_on = const IconData(0xe3a5);
+  static const IconData blur_on = const IconData(0xe3a5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">book</i> &#x2014; material icon named "book".</p>
-  static const IconData book = const IconData(0xe865);
+  static const IconData book = const IconData(0xe865, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bookmark</i> &#x2014; material icon named "bookmark".</p>
-  static const IconData bookmark = const IconData(0xe866);
+  static const IconData bookmark = const IconData(0xe866, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bookmark_border</i> &#x2014; material icon named "bookmark border".</p>
-  static const IconData bookmark_border = const IconData(0xe867);
+  static const IconData bookmark_border = const IconData(0xe867, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_all</i> &#x2014; material icon named "border all".</p>
-  static const IconData border_all = const IconData(0xe228);
+  static const IconData border_all = const IconData(0xe228, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_bottom</i> &#x2014; material icon named "border bottom".</p>
-  static const IconData border_bottom = const IconData(0xe229);
+  static const IconData border_bottom = const IconData(0xe229, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_clear</i> &#x2014; material icon named "border clear".</p>
-  static const IconData border_clear = const IconData(0xe22a);
+  static const IconData border_clear = const IconData(0xe22a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_color</i> &#x2014; material icon named "border color".</p>
-  static const IconData border_color = const IconData(0xe22b);
+  static const IconData border_color = const IconData(0xe22b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_horizontal</i> &#x2014; material icon named "border horizontal".</p>
-  static const IconData border_horizontal = const IconData(0xe22c);
+  static const IconData border_horizontal = const IconData(0xe22c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_inner</i> &#x2014; material icon named "border inner".</p>
-  static const IconData border_inner = const IconData(0xe22d);
+  static const IconData border_inner = const IconData(0xe22d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_left</i> &#x2014; material icon named "border left".</p>
-  static const IconData border_left = const IconData(0xe22e);
+  static const IconData border_left = const IconData(0xe22e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_outer</i> &#x2014; material icon named "border outer".</p>
-  static const IconData border_outer = const IconData(0xe22f);
+  static const IconData border_outer = const IconData(0xe22f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_right</i> &#x2014; material icon named "border right".</p>
-  static const IconData border_right = const IconData(0xe230);
+  static const IconData border_right = const IconData(0xe230, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_style</i> &#x2014; material icon named "border style".</p>
-  static const IconData border_style = const IconData(0xe231);
+  static const IconData border_style = const IconData(0xe231, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_top</i> &#x2014; material icon named "border top".</p>
-  static const IconData border_top = const IconData(0xe232);
+  static const IconData border_top = const IconData(0xe232, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">border_vertical</i> &#x2014; material icon named "border vertical".</p>
-  static const IconData border_vertical = const IconData(0xe233);
+  static const IconData border_vertical = const IconData(0xe233, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">branding_watermark</i> &#x2014; material icon named "branding watermark".</p>
-  static const IconData branding_watermark = const IconData(0xe06b);
+  static const IconData branding_watermark = const IconData(0xe06b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_1</i> &#x2014; material icon named "brightness 1".</p>
-  static const IconData brightness_1 = const IconData(0xe3a6);
+  static const IconData brightness_1 = const IconData(0xe3a6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_2</i> &#x2014; material icon named "brightness 2".</p>
-  static const IconData brightness_2 = const IconData(0xe3a7);
+  static const IconData brightness_2 = const IconData(0xe3a7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_3</i> &#x2014; material icon named "brightness 3".</p>
-  static const IconData brightness_3 = const IconData(0xe3a8);
+  static const IconData brightness_3 = const IconData(0xe3a8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_4</i> &#x2014; material icon named "brightness 4".</p>
-  static const IconData brightness_4 = const IconData(0xe3a9);
+  static const IconData brightness_4 = const IconData(0xe3a9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_5</i> &#x2014; material icon named "brightness 5".</p>
-  static const IconData brightness_5 = const IconData(0xe3aa);
+  static const IconData brightness_5 = const IconData(0xe3aa, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_6</i> &#x2014; material icon named "brightness 6".</p>
-  static const IconData brightness_6 = const IconData(0xe3ab);
+  static const IconData brightness_6 = const IconData(0xe3ab, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_7</i> &#x2014; material icon named "brightness 7".</p>
-  static const IconData brightness_7 = const IconData(0xe3ac);
+  static const IconData brightness_7 = const IconData(0xe3ac, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_auto</i> &#x2014; material icon named "brightness auto".</p>
-  static const IconData brightness_auto = const IconData(0xe1ab);
+  static const IconData brightness_auto = const IconData(0xe1ab, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_high</i> &#x2014; material icon named "brightness high".</p>
-  static const IconData brightness_high = const IconData(0xe1ac);
+  static const IconData brightness_high = const IconData(0xe1ac, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_low</i> &#x2014; material icon named "brightness low".</p>
-  static const IconData brightness_low = const IconData(0xe1ad);
+  static const IconData brightness_low = const IconData(0xe1ad, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brightness_medium</i> &#x2014; material icon named "brightness medium".</p>
-  static const IconData brightness_medium = const IconData(0xe1ae);
+  static const IconData brightness_medium = const IconData(0xe1ae, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">broken_image</i> &#x2014; material icon named "broken image".</p>
-  static const IconData broken_image = const IconData(0xe3ad);
+  static const IconData broken_image = const IconData(0xe3ad, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">brush</i> &#x2014; material icon named "brush".</p>
-  static const IconData brush = const IconData(0xe3ae);
+  static const IconData brush = const IconData(0xe3ae, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bubble_chart</i> &#x2014; material icon named "bubble chart".</p>
-  static const IconData bubble_chart = const IconData(0xe6dd);
+  static const IconData bubble_chart = const IconData(0xe6dd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">bug_report</i> &#x2014; material icon named "bug report".</p>
-  static const IconData bug_report = const IconData(0xe868);
+  static const IconData bug_report = const IconData(0xe868, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">build</i> &#x2014; material icon named "build".</p>
-  static const IconData build = const IconData(0xe869);
+  static const IconData build = const IconData(0xe869, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">burst_mode</i> &#x2014; material icon named "burst mode".</p>
-  static const IconData burst_mode = const IconData(0xe43c);
+  static const IconData burst_mode = const IconData(0xe43c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">business</i> &#x2014; material icon named "business".</p>
-  static const IconData business = const IconData(0xe0af);
+  static const IconData business = const IconData(0xe0af, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">business_center</i> &#x2014; material icon named "business center".</p>
-  static const IconData business_center = const IconData(0xeb3f);
+  static const IconData business_center = const IconData(0xeb3f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cached</i> &#x2014; material icon named "cached".</p>
-  static const IconData cached = const IconData(0xe86a);
+  static const IconData cached = const IconData(0xe86a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cake</i> &#x2014; material icon named "cake".</p>
-  static const IconData cake = const IconData(0xe7e9);
+  static const IconData cake = const IconData(0xe7e9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">calendar_today</i> &#x2014; material icon named "calendar today".</p>
-  static const IconData calendar_today = const IconData(0xe935);
+  static const IconData calendar_today = const IconData(0xe935, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">calendar_view_day</i> &#x2014; material icon named "calendar view day".</p>
-  static const IconData calendar_view_day = const IconData(0xe936);
+  static const IconData calendar_view_day = const IconData(0xe936, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call</i> &#x2014; material icon named "call".</p>
-  static const IconData call = const IconData(0xe0b0);
+  static const IconData call = const IconData(0xe0b0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call_end</i> &#x2014; material icon named "call end".</p>
-  static const IconData call_end = const IconData(0xe0b1);
+  static const IconData call_end = const IconData(0xe0b1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call_made</i> &#x2014; material icon named "call made".</p>
-  static const IconData call_made = const IconData(0xe0b2);
+  static const IconData call_made = const IconData(0xe0b2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call_merge</i> &#x2014; material icon named "call merge".</p>
-  static const IconData call_merge = const IconData(0xe0b3);
+  static const IconData call_merge = const IconData(0xe0b3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call_missed</i> &#x2014; material icon named "call missed".</p>
-  static const IconData call_missed = const IconData(0xe0b4);
+  static const IconData call_missed = const IconData(0xe0b4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call_missed_outgoing</i> &#x2014; material icon named "call missed outgoing".</p>
-  static const IconData call_missed_outgoing = const IconData(0xe0e4);
+  static const IconData call_missed_outgoing = const IconData(0xe0e4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call_received</i> &#x2014; material icon named "call received".</p>
-  static const IconData call_received = const IconData(0xe0b5);
+  static const IconData call_received = const IconData(0xe0b5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call_split</i> &#x2014; material icon named "call split".</p>
-  static const IconData call_split = const IconData(0xe0b6);
+  static const IconData call_split = const IconData(0xe0b6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">call_to_action</i> &#x2014; material icon named "call to action".</p>
-  static const IconData call_to_action = const IconData(0xe06c);
+  static const IconData call_to_action = const IconData(0xe06c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">camera</i> &#x2014; material icon named "camera".</p>
-  static const IconData camera = const IconData(0xe3af);
+  static const IconData camera = const IconData(0xe3af, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">camera_alt</i> &#x2014; material icon named "camera alt".</p>
-  static const IconData camera_alt = const IconData(0xe3b0);
+  static const IconData camera_alt = const IconData(0xe3b0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">camera_enhance</i> &#x2014; material icon named "camera enhance".</p>
-  static const IconData camera_enhance = const IconData(0xe8fc);
+  static const IconData camera_enhance = const IconData(0xe8fc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">camera_front</i> &#x2014; material icon named "camera front".</p>
-  static const IconData camera_front = const IconData(0xe3b1);
+  static const IconData camera_front = const IconData(0xe3b1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">camera_rear</i> &#x2014; material icon named "camera rear".</p>
-  static const IconData camera_rear = const IconData(0xe3b2);
+  static const IconData camera_rear = const IconData(0xe3b2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">camera_roll</i> &#x2014; material icon named "camera roll".</p>
-  static const IconData camera_roll = const IconData(0xe3b3);
+  static const IconData camera_roll = const IconData(0xe3b3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cancel</i> &#x2014; material icon named "cancel".</p>
-  static const IconData cancel = const IconData(0xe5c9);
+  static const IconData cancel = const IconData(0xe5c9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">card_giftcard</i> &#x2014; material icon named "card giftcard".</p>
-  static const IconData card_giftcard = const IconData(0xe8f6);
+  static const IconData card_giftcard = const IconData(0xe8f6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">card_membership</i> &#x2014; material icon named "card membership".</p>
-  static const IconData card_membership = const IconData(0xe8f7);
+  static const IconData card_membership = const IconData(0xe8f7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">card_travel</i> &#x2014; material icon named "card travel".</p>
-  static const IconData card_travel = const IconData(0xe8f8);
+  static const IconData card_travel = const IconData(0xe8f8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">casino</i> &#x2014; material icon named "casino".</p>
-  static const IconData casino = const IconData(0xeb40);
+  static const IconData casino = const IconData(0xeb40, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cast</i> &#x2014; material icon named "cast".</p>
-  static const IconData cast = const IconData(0xe307);
+  static const IconData cast = const IconData(0xe307, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cast_connected</i> &#x2014; material icon named "cast connected".</p>
-  static const IconData cast_connected = const IconData(0xe308);
+  static const IconData cast_connected = const IconData(0xe308, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">category</i> &#x2014; material icon named "category".</p>
-  static const IconData category = const IconData(0xe574);
+  static const IconData category = const IconData(0xe574, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">center_focus_strong</i> &#x2014; material icon named "center focus strong".</p>
-  static const IconData center_focus_strong = const IconData(0xe3b4);
+  static const IconData center_focus_strong = const IconData(0xe3b4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">center_focus_weak</i> &#x2014; material icon named "center focus weak".</p>
-  static const IconData center_focus_weak = const IconData(0xe3b5);
+  static const IconData center_focus_weak = const IconData(0xe3b5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">change_history</i> &#x2014; material icon named "change history".</p>
-  static const IconData change_history = const IconData(0xe86b);
+  static const IconData change_history = const IconData(0xe86b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">chat</i> &#x2014; material icon named "chat".</p>
-  static const IconData chat = const IconData(0xe0b7);
+  static const IconData chat = const IconData(0xe0b7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">chat_bubble</i> &#x2014; material icon named "chat bubble".</p>
-  static const IconData chat_bubble = const IconData(0xe0ca);
+  static const IconData chat_bubble = const IconData(0xe0ca, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">chat_bubble_outline</i> &#x2014; material icon named "chat bubble outline".</p>
-  static const IconData chat_bubble_outline = const IconData(0xe0cb);
+  static const IconData chat_bubble_outline = const IconData(0xe0cb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">check</i> &#x2014; material icon named "check".</p>
-  static const IconData check = const IconData(0xe5ca);
+  static const IconData check = const IconData(0xe5ca, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">check_box</i> &#x2014; material icon named "check box".</p>
-  static const IconData check_box = const IconData(0xe834);
+  static const IconData check_box = const IconData(0xe834, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">check_box_outline_blank</i> &#x2014; material icon named "check box outline blank".</p>
-  static const IconData check_box_outline_blank = const IconData(0xe835);
+  static const IconData check_box_outline_blank = const IconData(0xe835, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">check_circle</i> &#x2014; material icon named "check circle".</p>
-  static const IconData check_circle = const IconData(0xe86c);
+  static const IconData check_circle = const IconData(0xe86c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">check_circle_outline</i> &#x2014; material icon named "check circle outline".</p>
-  static const IconData check_circle_outline = const IconData(0xe92d);
+  static const IconData check_circle_outline = const IconData(0xe92d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">chevron_left</i> &#x2014; material icon named "chevron left".</p>
-  static const IconData chevron_left = const IconData(0xe5cb);
+  static const IconData chevron_left = const IconData(0xe5cb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">chevron_right</i> &#x2014; material icon named "chevron right".</p>
-  static const IconData chevron_right = const IconData(0xe5cc);
+  static const IconData chevron_right = const IconData(0xe5cc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">child_care</i> &#x2014; material icon named "child care".</p>
-  static const IconData child_care = const IconData(0xeb41);
+  static const IconData child_care = const IconData(0xeb41, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">child_friendly</i> &#x2014; material icon named "child friendly".</p>
-  static const IconData child_friendly = const IconData(0xeb42);
+  static const IconData child_friendly = const IconData(0xeb42, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">chrome_reader_mode</i> &#x2014; material icon named "chrome reader mode".</p>
-  static const IconData chrome_reader_mode = const IconData(0xe86d);
+  static const IconData chrome_reader_mode = const IconData(0xe86d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">class</i> &#x2014; material icon named "class".</p>
-  static const IconData class_ = const IconData(0xe86e);
+  static const IconData class_ = const IconData(0xe86e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">clear</i> &#x2014; material icon named "clear".</p>
-  static const IconData clear = const IconData(0xe14c);
+  static const IconData clear = const IconData(0xe14c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">clear_all</i> &#x2014; material icon named "clear all".</p>
-  static const IconData clear_all = const IconData(0xe0b8);
+  static const IconData clear_all = const IconData(0xe0b8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">close</i> &#x2014; material icon named "close".</p>
-  static const IconData close = const IconData(0xe5cd);
+  static const IconData close = const IconData(0xe5cd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">closed_caption</i> &#x2014; material icon named "closed caption".</p>
-  static const IconData closed_caption = const IconData(0xe01c);
+  static const IconData closed_caption = const IconData(0xe01c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cloud</i> &#x2014; material icon named "cloud".</p>
-  static const IconData cloud = const IconData(0xe2bd);
+  static const IconData cloud = const IconData(0xe2bd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cloud_circle</i> &#x2014; material icon named "cloud circle".</p>
-  static const IconData cloud_circle = const IconData(0xe2be);
+  static const IconData cloud_circle = const IconData(0xe2be, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cloud_done</i> &#x2014; material icon named "cloud done".</p>
-  static const IconData cloud_done = const IconData(0xe2bf);
+  static const IconData cloud_done = const IconData(0xe2bf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cloud_download</i> &#x2014; material icon named "cloud download".</p>
-  static const IconData cloud_download = const IconData(0xe2c0);
+  static const IconData cloud_download = const IconData(0xe2c0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cloud_off</i> &#x2014; material icon named "cloud off".</p>
-  static const IconData cloud_off = const IconData(0xe2c1);
+  static const IconData cloud_off = const IconData(0xe2c1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cloud_queue</i> &#x2014; material icon named "cloud queue".</p>
-  static const IconData cloud_queue = const IconData(0xe2c2);
+  static const IconData cloud_queue = const IconData(0xe2c2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">cloud_upload</i> &#x2014; material icon named "cloud upload".</p>
-  static const IconData cloud_upload = const IconData(0xe2c3);
+  static const IconData cloud_upload = const IconData(0xe2c3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">code</i> &#x2014; material icon named "code".</p>
-  static const IconData code = const IconData(0xe86f);
+  static const IconData code = const IconData(0xe86f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">collections</i> &#x2014; material icon named "collections".</p>
-  static const IconData collections = const IconData(0xe3b6);
+  static const IconData collections = const IconData(0xe3b6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">collections_bookmark</i> &#x2014; material icon named "collections bookmark".</p>
-  static const IconData collections_bookmark = const IconData(0xe431);
+  static const IconData collections_bookmark = const IconData(0xe431, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">color_lens</i> &#x2014; material icon named "color lens".</p>
-  static const IconData color_lens = const IconData(0xe3b7);
+  static const IconData color_lens = const IconData(0xe3b7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">colorize</i> &#x2014; material icon named "colorize".</p>
-  static const IconData colorize = const IconData(0xe3b8);
+  static const IconData colorize = const IconData(0xe3b8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">comment</i> &#x2014; material icon named "comment".</p>
-  static const IconData comment = const IconData(0xe0b9);
+  static const IconData comment = const IconData(0xe0b9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">compare</i> &#x2014; material icon named "compare".</p>
-  static const IconData compare = const IconData(0xe3b9);
+  static const IconData compare = const IconData(0xe3b9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">compare_arrows</i> &#x2014; material icon named "compare arrows".</p>
-  static const IconData compare_arrows = const IconData(0xe915);
+  static const IconData compare_arrows = const IconData(0xe915, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">computer</i> &#x2014; material icon named "computer".</p>
-  static const IconData computer = const IconData(0xe30a);
+  static const IconData computer = const IconData(0xe30a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">confirmation_number</i> &#x2014; material icon named "confirmation number".</p>
-  static const IconData confirmation_number = const IconData(0xe638);
+  static const IconData confirmation_number = const IconData(0xe638, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">contact_mail</i> &#x2014; material icon named "contact mail".</p>
-  static const IconData contact_mail = const IconData(0xe0d0);
+  static const IconData contact_mail = const IconData(0xe0d0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">contact_phone</i> &#x2014; material icon named "contact phone".</p>
-  static const IconData contact_phone = const IconData(0xe0cf);
+  static const IconData contact_phone = const IconData(0xe0cf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">contacts</i> &#x2014; material icon named "contacts".</p>
-  static const IconData contacts = const IconData(0xe0ba);
+  static const IconData contacts = const IconData(0xe0ba, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">content_copy</i> &#x2014; material icon named "content copy".</p>
-  static const IconData content_copy = const IconData(0xe14d);
+  static const IconData content_copy = const IconData(0xe14d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">content_cut</i> &#x2014; material icon named "content cut".</p>
-  static const IconData content_cut = const IconData(0xe14e);
+  static const IconData content_cut = const IconData(0xe14e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">content_paste</i> &#x2014; material icon named "content paste".</p>
-  static const IconData content_paste = const IconData(0xe14f);
+  static const IconData content_paste = const IconData(0xe14f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">control_point</i> &#x2014; material icon named "control point".</p>
-  static const IconData control_point = const IconData(0xe3ba);
+  static const IconData control_point = const IconData(0xe3ba, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">control_point_duplicate</i> &#x2014; material icon named "control point duplicate".</p>
-  static const IconData control_point_duplicate = const IconData(0xe3bb);
+  static const IconData control_point_duplicate = const IconData(0xe3bb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">copyright</i> &#x2014; material icon named "copyright".</p>
-  static const IconData copyright = const IconData(0xe90c);
+  static const IconData copyright = const IconData(0xe90c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">create</i> &#x2014; material icon named "create".</p>
-  static const IconData create = const IconData(0xe150);
+  static const IconData create = const IconData(0xe150, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">create_new_folder</i> &#x2014; material icon named "create new folder".</p>
-  static const IconData create_new_folder = const IconData(0xe2cc);
+  static const IconData create_new_folder = const IconData(0xe2cc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">credit_card</i> &#x2014; material icon named "credit card".</p>
-  static const IconData credit_card = const IconData(0xe870);
+  static const IconData credit_card = const IconData(0xe870, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop</i> &#x2014; material icon named "crop".</p>
-  static const IconData crop = const IconData(0xe3be);
+  static const IconData crop = const IconData(0xe3be, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_16_9</i> &#x2014; material icon named "crop 16 9".</p>
-  static const IconData crop_16_9 = const IconData(0xe3bc);
+  static const IconData crop_16_9 = const IconData(0xe3bc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_3_2</i> &#x2014; material icon named "crop 3 2".</p>
-  static const IconData crop_3_2 = const IconData(0xe3bd);
+  static const IconData crop_3_2 = const IconData(0xe3bd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_5_4</i> &#x2014; material icon named "crop 5 4".</p>
-  static const IconData crop_5_4 = const IconData(0xe3bf);
+  static const IconData crop_5_4 = const IconData(0xe3bf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_7_5</i> &#x2014; material icon named "crop 7 5".</p>
-  static const IconData crop_7_5 = const IconData(0xe3c0);
+  static const IconData crop_7_5 = const IconData(0xe3c0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_din</i> &#x2014; material icon named "crop din".</p>
-  static const IconData crop_din = const IconData(0xe3c1);
+  static const IconData crop_din = const IconData(0xe3c1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_free</i> &#x2014; material icon named "crop free".</p>
-  static const IconData crop_free = const IconData(0xe3c2);
+  static const IconData crop_free = const IconData(0xe3c2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_landscape</i> &#x2014; material icon named "crop landscape".</p>
-  static const IconData crop_landscape = const IconData(0xe3c3);
+  static const IconData crop_landscape = const IconData(0xe3c3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_original</i> &#x2014; material icon named "crop original".</p>
-  static const IconData crop_original = const IconData(0xe3c4);
+  static const IconData crop_original = const IconData(0xe3c4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_portrait</i> &#x2014; material icon named "crop portrait".</p>
-  static const IconData crop_portrait = const IconData(0xe3c5);
+  static const IconData crop_portrait = const IconData(0xe3c5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_rotate</i> &#x2014; material icon named "crop rotate".</p>
-  static const IconData crop_rotate = const IconData(0xe437);
+  static const IconData crop_rotate = const IconData(0xe437, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">crop_square</i> &#x2014; material icon named "crop square".</p>
-  static const IconData crop_square = const IconData(0xe3c6);
+  static const IconData crop_square = const IconData(0xe3c6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">dashboard</i> &#x2014; material icon named "dashboard".</p>
-  static const IconData dashboard = const IconData(0xe871);
+  static const IconData dashboard = const IconData(0xe871, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">data_usage</i> &#x2014; material icon named "data usage".</p>
-  static const IconData data_usage = const IconData(0xe1af);
+  static const IconData data_usage = const IconData(0xe1af, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">date_range</i> &#x2014; material icon named "date range".</p>
-  static const IconData date_range = const IconData(0xe916);
+  static const IconData date_range = const IconData(0xe916, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">dehaze</i> &#x2014; material icon named "dehaze".</p>
-  static const IconData dehaze = const IconData(0xe3c7);
+  static const IconData dehaze = const IconData(0xe3c7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">delete</i> &#x2014; material icon named "delete".</p>
-  static const IconData delete = const IconData(0xe872);
+  static const IconData delete = const IconData(0xe872, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">delete_forever</i> &#x2014; material icon named "delete forever".</p>
-  static const IconData delete_forever = const IconData(0xe92b);
+  static const IconData delete_forever = const IconData(0xe92b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">delete_outline</i> &#x2014; material icon named "delete outline".</p>
-  static const IconData delete_outline = const IconData(0xe92e);
+  static const IconData delete_outline = const IconData(0xe92e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">delete_sweep</i> &#x2014; material icon named "delete sweep".</p>
-  static const IconData delete_sweep = const IconData(0xe16c);
+  static const IconData delete_sweep = const IconData(0xe16c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">departure_board</i> &#x2014; material icon named "departure board".</p>
-  static const IconData departure_board = const IconData(0xe576);
+  static const IconData departure_board = const IconData(0xe576, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">description</i> &#x2014; material icon named "description".</p>
-  static const IconData description = const IconData(0xe873);
+  static const IconData description = const IconData(0xe873, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">desktop_mac</i> &#x2014; material icon named "desktop mac".</p>
-  static const IconData desktop_mac = const IconData(0xe30b);
+  static const IconData desktop_mac = const IconData(0xe30b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">desktop_windows</i> &#x2014; material icon named "desktop windows".</p>
-  static const IconData desktop_windows = const IconData(0xe30c);
+  static const IconData desktop_windows = const IconData(0xe30c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">details</i> &#x2014; material icon named "details".</p>
-  static const IconData details = const IconData(0xe3c8);
+  static const IconData details = const IconData(0xe3c8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">developer_board</i> &#x2014; material icon named "developer board".</p>
-  static const IconData developer_board = const IconData(0xe30d);
+  static const IconData developer_board = const IconData(0xe30d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">developer_mode</i> &#x2014; material icon named "developer mode".</p>
-  static const IconData developer_mode = const IconData(0xe1b0);
+  static const IconData developer_mode = const IconData(0xe1b0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">device_hub</i> &#x2014; material icon named "device hub".</p>
-  static const IconData device_hub = const IconData(0xe335);
+  static const IconData device_hub = const IconData(0xe335, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">device_unknown</i> &#x2014; material icon named "device unknown".</p>
-  static const IconData device_unknown = const IconData(0xe339);
+  static const IconData device_unknown = const IconData(0xe339, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">devices</i> &#x2014; material icon named "devices".</p>
-  static const IconData devices = const IconData(0xe1b1);
+  static const IconData devices = const IconData(0xe1b1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">devices_other</i> &#x2014; material icon named "devices other".</p>
-  static const IconData devices_other = const IconData(0xe337);
+  static const IconData devices_other = const IconData(0xe337, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">dialer_sip</i> &#x2014; material icon named "dialer sip".</p>
-  static const IconData dialer_sip = const IconData(0xe0bb);
+  static const IconData dialer_sip = const IconData(0xe0bb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">dialpad</i> &#x2014; material icon named "dialpad".</p>
-  static const IconData dialpad = const IconData(0xe0bc);
+  static const IconData dialpad = const IconData(0xe0bc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions</i> &#x2014; material icon named "directions".</p>
-  static const IconData directions = const IconData(0xe52e);
+  static const IconData directions = const IconData(0xe52e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_bike</i> &#x2014; material icon named "directions bike".</p>
-  static const IconData directions_bike = const IconData(0xe52f);
+  static const IconData directions_bike = const IconData(0xe52f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_boat</i> &#x2014; material icon named "directions boat".</p>
-  static const IconData directions_boat = const IconData(0xe532);
+  static const IconData directions_boat = const IconData(0xe532, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_bus</i> &#x2014; material icon named "directions bus".</p>
-  static const IconData directions_bus = const IconData(0xe530);
+  static const IconData directions_bus = const IconData(0xe530, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_car</i> &#x2014; material icon named "directions car".</p>
-  static const IconData directions_car = const IconData(0xe531);
+  static const IconData directions_car = const IconData(0xe531, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_railway</i> &#x2014; material icon named "directions railway".</p>
-  static const IconData directions_railway = const IconData(0xe534);
+  static const IconData directions_railway = const IconData(0xe534, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_run</i> &#x2014; material icon named "directions run".</p>
-  static const IconData directions_run = const IconData(0xe566);
+  static const IconData directions_run = const IconData(0xe566, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_subway</i> &#x2014; material icon named "directions subway".</p>
-  static const IconData directions_subway = const IconData(0xe533);
+  static const IconData directions_subway = const IconData(0xe533, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_transit</i> &#x2014; material icon named "directions transit".</p>
-  static const IconData directions_transit = const IconData(0xe535);
+  static const IconData directions_transit = const IconData(0xe535, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">directions_walk</i> &#x2014; material icon named "directions walk".</p>
-  static const IconData directions_walk = const IconData(0xe536);
+  static const IconData directions_walk = const IconData(0xe536, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">disc_full</i> &#x2014; material icon named "disc full".</p>
-  static const IconData disc_full = const IconData(0xe610);
+  static const IconData disc_full = const IconData(0xe610, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">dns</i> &#x2014; material icon named "dns".</p>
-  static const IconData dns = const IconData(0xe875);
+  static const IconData dns = const IconData(0xe875, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">do_not_disturb</i> &#x2014; material icon named "do not disturb".</p>
-  static const IconData do_not_disturb = const IconData(0xe612);
+  static const IconData do_not_disturb = const IconData(0xe612, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">do_not_disturb_alt</i> &#x2014; material icon named "do not disturb alt".</p>
-  static const IconData do_not_disturb_alt = const IconData(0xe611);
+  static const IconData do_not_disturb_alt = const IconData(0xe611, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">do_not_disturb_off</i> &#x2014; material icon named "do not disturb off".</p>
-  static const IconData do_not_disturb_off = const IconData(0xe643);
+  static const IconData do_not_disturb_off = const IconData(0xe643, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">do_not_disturb_on</i> &#x2014; material icon named "do not disturb on".</p>
-  static const IconData do_not_disturb_on = const IconData(0xe644);
+  static const IconData do_not_disturb_on = const IconData(0xe644, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">dock</i> &#x2014; material icon named "dock".</p>
-  static const IconData dock = const IconData(0xe30e);
+  static const IconData dock = const IconData(0xe30e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">domain</i> &#x2014; material icon named "domain".</p>
-  static const IconData domain = const IconData(0xe7ee);
+  static const IconData domain = const IconData(0xe7ee, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">done</i> &#x2014; material icon named "done".</p>
-  static const IconData done = const IconData(0xe876);
+  static const IconData done = const IconData(0xe876, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">done_all</i> &#x2014; material icon named "done all".</p>
-  static const IconData done_all = const IconData(0xe877);
+  static const IconData done_all = const IconData(0xe877, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">done_outline</i> &#x2014; material icon named "done outline".</p>
-  static const IconData done_outline = const IconData(0xe92f);
+  static const IconData done_outline = const IconData(0xe92f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">donut_large</i> &#x2014; material icon named "donut large".</p>
-  static const IconData donut_large = const IconData(0xe917);
+  static const IconData donut_large = const IconData(0xe917, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">donut_small</i> &#x2014; material icon named "donut small".</p>
-  static const IconData donut_small = const IconData(0xe918);
+  static const IconData donut_small = const IconData(0xe918, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">drafts</i> &#x2014; material icon named "drafts".</p>
-  static const IconData drafts = const IconData(0xe151);
+  static const IconData drafts = const IconData(0xe151, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">drag_handle</i> &#x2014; material icon named "drag handle".</p>
-  static const IconData drag_handle = const IconData(0xe25d);
+  static const IconData drag_handle = const IconData(0xe25d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">drive_eta</i> &#x2014; material icon named "drive eta".</p>
-  static const IconData drive_eta = const IconData(0xe613);
+  static const IconData drive_eta = const IconData(0xe613, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">dvr</i> &#x2014; material icon named "dvr".</p>
-  static const IconData dvr = const IconData(0xe1b2);
+  static const IconData dvr = const IconData(0xe1b2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">edit</i> &#x2014; material icon named "edit".</p>
-  static const IconData edit = const IconData(0xe3c9);
+  static const IconData edit = const IconData(0xe3c9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">edit_attributes</i> &#x2014; material icon named "edit attributes".</p>
-  static const IconData edit_attributes = const IconData(0xe578);
+  static const IconData edit_attributes = const IconData(0xe578, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">edit_location</i> &#x2014; material icon named "edit location".</p>
-  static const IconData edit_location = const IconData(0xe568);
+  static const IconData edit_location = const IconData(0xe568, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">eject</i> &#x2014; material icon named "eject".</p>
-  static const IconData eject = const IconData(0xe8fb);
+  static const IconData eject = const IconData(0xe8fb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">email</i> &#x2014; material icon named "email".</p>
-  static const IconData email = const IconData(0xe0be);
+  static const IconData email = const IconData(0xe0be, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">enhanced_encryption</i> &#x2014; material icon named "enhanced encryption".</p>
-  static const IconData enhanced_encryption = const IconData(0xe63f);
+  static const IconData enhanced_encryption = const IconData(0xe63f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">equalizer</i> &#x2014; material icon named "equalizer".</p>
-  static const IconData equalizer = const IconData(0xe01d);
+  static const IconData equalizer = const IconData(0xe01d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">error</i> &#x2014; material icon named "error".</p>
-  static const IconData error = const IconData(0xe000);
+  static const IconData error = const IconData(0xe000, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">error_outline</i> &#x2014; material icon named "error outline".</p>
-  static const IconData error_outline = const IconData(0xe001);
+  static const IconData error_outline = const IconData(0xe001, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">euro_symbol</i> &#x2014; material icon named "euro symbol".</p>
-  static const IconData euro_symbol = const IconData(0xe926);
+  static const IconData euro_symbol = const IconData(0xe926, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">ev_station</i> &#x2014; material icon named "ev station".</p>
-  static const IconData ev_station = const IconData(0xe56d);
+  static const IconData ev_station = const IconData(0xe56d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">event</i> &#x2014; material icon named "event".</p>
-  static const IconData event = const IconData(0xe878);
+  static const IconData event = const IconData(0xe878, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">event_available</i> &#x2014; material icon named "event available".</p>
-  static const IconData event_available = const IconData(0xe614);
+  static const IconData event_available = const IconData(0xe614, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">event_busy</i> &#x2014; material icon named "event busy".</p>
-  static const IconData event_busy = const IconData(0xe615);
+  static const IconData event_busy = const IconData(0xe615, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">event_note</i> &#x2014; material icon named "event note".</p>
-  static const IconData event_note = const IconData(0xe616);
+  static const IconData event_note = const IconData(0xe616, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">event_seat</i> &#x2014; material icon named "event seat".</p>
-  static const IconData event_seat = const IconData(0xe903);
+  static const IconData event_seat = const IconData(0xe903, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">exit_to_app</i> &#x2014; material icon named "exit to app".</p>
-  static const IconData exit_to_app = const IconData(0xe879);
+  static const IconData exit_to_app = const IconData(0xe879, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">expand_less</i> &#x2014; material icon named "expand less".</p>
-  static const IconData expand_less = const IconData(0xe5ce);
+  static const IconData expand_less = const IconData(0xe5ce, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">expand_more</i> &#x2014; material icon named "expand more".</p>
-  static const IconData expand_more = const IconData(0xe5cf);
+  static const IconData expand_more = const IconData(0xe5cf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">explicit</i> &#x2014; material icon named "explicit".</p>
-  static const IconData explicit = const IconData(0xe01e);
+  static const IconData explicit = const IconData(0xe01e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">explore</i> &#x2014; material icon named "explore".</p>
-  static const IconData explore = const IconData(0xe87a);
+  static const IconData explore = const IconData(0xe87a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">exposure</i> &#x2014; material icon named "exposure".</p>
-  static const IconData exposure = const IconData(0xe3ca);
+  static const IconData exposure = const IconData(0xe3ca, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">exposure_neg_1</i> &#x2014; material icon named "exposure neg 1".</p>
-  static const IconData exposure_neg_1 = const IconData(0xe3cb);
+  static const IconData exposure_neg_1 = const IconData(0xe3cb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">exposure_neg_2</i> &#x2014; material icon named "exposure neg 2".</p>
-  static const IconData exposure_neg_2 = const IconData(0xe3cc);
+  static const IconData exposure_neg_2 = const IconData(0xe3cc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">exposure_plus_1</i> &#x2014; material icon named "exposure plus 1".</p>
-  static const IconData exposure_plus_1 = const IconData(0xe3cd);
+  static const IconData exposure_plus_1 = const IconData(0xe3cd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">exposure_plus_2</i> &#x2014; material icon named "exposure plus 2".</p>
-  static const IconData exposure_plus_2 = const IconData(0xe3ce);
+  static const IconData exposure_plus_2 = const IconData(0xe3ce, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">exposure_zero</i> &#x2014; material icon named "exposure zero".</p>
-  static const IconData exposure_zero = const IconData(0xe3cf);
+  static const IconData exposure_zero = const IconData(0xe3cf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">extension</i> &#x2014; material icon named "extension".</p>
-  static const IconData extension = const IconData(0xe87b);
+  static const IconData extension = const IconData(0xe87b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">face</i> &#x2014; material icon named "face".</p>
-  static const IconData face = const IconData(0xe87c);
+  static const IconData face = const IconData(0xe87c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fast_forward</i> &#x2014; material icon named "fast forward".</p>
-  static const IconData fast_forward = const IconData(0xe01f);
+  static const IconData fast_forward = const IconData(0xe01f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fast_rewind</i> &#x2014; material icon named "fast rewind".</p>
-  static const IconData fast_rewind = const IconData(0xe020);
+  static const IconData fast_rewind = const IconData(0xe020, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fastfood</i> &#x2014; material icon named "fastfood".</p>
-  static const IconData fastfood = const IconData(0xe57a);
+  static const IconData fastfood = const IconData(0xe57a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">favorite</i> &#x2014; material icon named "favorite".</p>
-  static const IconData favorite = const IconData(0xe87d);
+  static const IconData favorite = const IconData(0xe87d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">favorite_border</i> &#x2014; material icon named "favorite border".</p>
-  static const IconData favorite_border = const IconData(0xe87e);
+  static const IconData favorite_border = const IconData(0xe87e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">featured_play_list</i> &#x2014; material icon named "featured play list".</p>
-  static const IconData featured_play_list = const IconData(0xe06d);
+  static const IconData featured_play_list = const IconData(0xe06d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">featured_video</i> &#x2014; material icon named "featured video".</p>
-  static const IconData featured_video = const IconData(0xe06e);
+  static const IconData featured_video = const IconData(0xe06e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">feedback</i> &#x2014; material icon named "feedback".</p>
-  static const IconData feedback = const IconData(0xe87f);
+  static const IconData feedback = const IconData(0xe87f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fiber_dvr</i> &#x2014; material icon named "fiber dvr".</p>
-  static const IconData fiber_dvr = const IconData(0xe05d);
+  static const IconData fiber_dvr = const IconData(0xe05d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fiber_manual_record</i> &#x2014; material icon named "fiber manual record".</p>
-  static const IconData fiber_manual_record = const IconData(0xe061);
+  static const IconData fiber_manual_record = const IconData(0xe061, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fiber_new</i> &#x2014; material icon named "fiber new".</p>
-  static const IconData fiber_new = const IconData(0xe05e);
+  static const IconData fiber_new = const IconData(0xe05e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fiber_pin</i> &#x2014; material icon named "fiber pin".</p>
-  static const IconData fiber_pin = const IconData(0xe06a);
+  static const IconData fiber_pin = const IconData(0xe06a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fiber_smart_record</i> &#x2014; material icon named "fiber smart record".</p>
-  static const IconData fiber_smart_record = const IconData(0xe062);
+  static const IconData fiber_smart_record = const IconData(0xe062, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">file_download</i> &#x2014; material icon named "file download".</p>
-  static const IconData file_download = const IconData(0xe2c4);
+  static const IconData file_download = const IconData(0xe2c4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">file_upload</i> &#x2014; material icon named "file upload".</p>
-  static const IconData file_upload = const IconData(0xe2c6);
+  static const IconData file_upload = const IconData(0xe2c6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter</i> &#x2014; material icon named "filter".</p>
-  static const IconData filter = const IconData(0xe3d3);
+  static const IconData filter = const IconData(0xe3d3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_1</i> &#x2014; material icon named "filter 1".</p>
-  static const IconData filter_1 = const IconData(0xe3d0);
+  static const IconData filter_1 = const IconData(0xe3d0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_2</i> &#x2014; material icon named "filter 2".</p>
-  static const IconData filter_2 = const IconData(0xe3d1);
+  static const IconData filter_2 = const IconData(0xe3d1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_3</i> &#x2014; material icon named "filter 3".</p>
-  static const IconData filter_3 = const IconData(0xe3d2);
+  static const IconData filter_3 = const IconData(0xe3d2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_4</i> &#x2014; material icon named "filter 4".</p>
-  static const IconData filter_4 = const IconData(0xe3d4);
+  static const IconData filter_4 = const IconData(0xe3d4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_5</i> &#x2014; material icon named "filter 5".</p>
-  static const IconData filter_5 = const IconData(0xe3d5);
+  static const IconData filter_5 = const IconData(0xe3d5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_6</i> &#x2014; material icon named "filter 6".</p>
-  static const IconData filter_6 = const IconData(0xe3d6);
+  static const IconData filter_6 = const IconData(0xe3d6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_7</i> &#x2014; material icon named "filter 7".</p>
-  static const IconData filter_7 = const IconData(0xe3d7);
+  static const IconData filter_7 = const IconData(0xe3d7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_8</i> &#x2014; material icon named "filter 8".</p>
-  static const IconData filter_8 = const IconData(0xe3d8);
+  static const IconData filter_8 = const IconData(0xe3d8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_9</i> &#x2014; material icon named "filter 9".</p>
-  static const IconData filter_9 = const IconData(0xe3d9);
+  static const IconData filter_9 = const IconData(0xe3d9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_9_plus</i> &#x2014; material icon named "filter 9 plus".</p>
-  static const IconData filter_9_plus = const IconData(0xe3da);
+  static const IconData filter_9_plus = const IconData(0xe3da, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_b_and_w</i> &#x2014; material icon named "filter b and w".</p>
-  static const IconData filter_b_and_w = const IconData(0xe3db);
+  static const IconData filter_b_and_w = const IconData(0xe3db, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_center_focus</i> &#x2014; material icon named "filter center focus".</p>
-  static const IconData filter_center_focus = const IconData(0xe3dc);
+  static const IconData filter_center_focus = const IconData(0xe3dc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_drama</i> &#x2014; material icon named "filter drama".</p>
-  static const IconData filter_drama = const IconData(0xe3dd);
+  static const IconData filter_drama = const IconData(0xe3dd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_frames</i> &#x2014; material icon named "filter frames".</p>
-  static const IconData filter_frames = const IconData(0xe3de);
+  static const IconData filter_frames = const IconData(0xe3de, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_hdr</i> &#x2014; material icon named "filter hdr".</p>
-  static const IconData filter_hdr = const IconData(0xe3df);
+  static const IconData filter_hdr = const IconData(0xe3df, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_list</i> &#x2014; material icon named "filter list".</p>
-  static const IconData filter_list = const IconData(0xe152);
+  static const IconData filter_list = const IconData(0xe152, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_none</i> &#x2014; material icon named "filter none".</p>
-  static const IconData filter_none = const IconData(0xe3e0);
+  static const IconData filter_none = const IconData(0xe3e0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_tilt_shift</i> &#x2014; material icon named "filter tilt shift".</p>
-  static const IconData filter_tilt_shift = const IconData(0xe3e2);
+  static const IconData filter_tilt_shift = const IconData(0xe3e2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">filter_vintage</i> &#x2014; material icon named "filter vintage".</p>
-  static const IconData filter_vintage = const IconData(0xe3e3);
+  static const IconData filter_vintage = const IconData(0xe3e3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">find_in_page</i> &#x2014; material icon named "find in page".</p>
-  static const IconData find_in_page = const IconData(0xe880);
+  static const IconData find_in_page = const IconData(0xe880, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">find_replace</i> &#x2014; material icon named "find replace".</p>
-  static const IconData find_replace = const IconData(0xe881);
+  static const IconData find_replace = const IconData(0xe881, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fingerprint</i> &#x2014; material icon named "fingerprint".</p>
-  static const IconData fingerprint = const IconData(0xe90d);
+  static const IconData fingerprint = const IconData(0xe90d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">first_page</i> &#x2014; material icon named "first page".</p>
-  static const IconData first_page = const IconData(0xe5dc);
+  static const IconData first_page = const IconData(0xe5dc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fitness_center</i> &#x2014; material icon named "fitness center".</p>
-  static const IconData fitness_center = const IconData(0xeb43);
+  static const IconData fitness_center = const IconData(0xeb43, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flag</i> &#x2014; material icon named "flag".</p>
-  static const IconData flag = const IconData(0xe153);
+  static const IconData flag = const IconData(0xe153, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flare</i> &#x2014; material icon named "flare".</p>
-  static const IconData flare = const IconData(0xe3e4);
+  static const IconData flare = const IconData(0xe3e4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flash_auto</i> &#x2014; material icon named "flash auto".</p>
-  static const IconData flash_auto = const IconData(0xe3e5);
+  static const IconData flash_auto = const IconData(0xe3e5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flash_off</i> &#x2014; material icon named "flash off".</p>
-  static const IconData flash_off = const IconData(0xe3e6);
+  static const IconData flash_off = const IconData(0xe3e6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flash_on</i> &#x2014; material icon named "flash on".</p>
-  static const IconData flash_on = const IconData(0xe3e7);
+  static const IconData flash_on = const IconData(0xe3e7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flight</i> &#x2014; material icon named "flight".</p>
-  static const IconData flight = const IconData(0xe539);
+  static const IconData flight = const IconData(0xe539, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flight_land</i> &#x2014; material icon named "flight land".</p>
-  static const IconData flight_land = const IconData(0xe904);
+  static const IconData flight_land = const IconData(0xe904, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flight_takeoff</i> &#x2014; material icon named "flight takeoff".</p>
-  static const IconData flight_takeoff = const IconData(0xe905);
+  static const IconData flight_takeoff = const IconData(0xe905, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flip</i> &#x2014; material icon named "flip".</p>
-  static const IconData flip = const IconData(0xe3e8);
+  static const IconData flip = const IconData(0xe3e8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flip_to_back</i> &#x2014; material icon named "flip to back".</p>
-  static const IconData flip_to_back = const IconData(0xe882);
+  static const IconData flip_to_back = const IconData(0xe882, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">flip_to_front</i> &#x2014; material icon named "flip to front".</p>
-  static const IconData flip_to_front = const IconData(0xe883);
+  static const IconData flip_to_front = const IconData(0xe883, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">folder</i> &#x2014; material icon named "folder".</p>
-  static const IconData folder = const IconData(0xe2c7);
+  static const IconData folder = const IconData(0xe2c7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">folder_open</i> &#x2014; material icon named "folder open".</p>
-  static const IconData folder_open = const IconData(0xe2c8);
+  static const IconData folder_open = const IconData(0xe2c8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">folder_shared</i> &#x2014; material icon named "folder shared".</p>
-  static const IconData folder_shared = const IconData(0xe2c9);
+  static const IconData folder_shared = const IconData(0xe2c9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">folder_special</i> &#x2014; material icon named "folder special".</p>
-  static const IconData folder_special = const IconData(0xe617);
+  static const IconData folder_special = const IconData(0xe617, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">font_download</i> &#x2014; material icon named "font download".</p>
-  static const IconData font_download = const IconData(0xe167);
+  static const IconData font_download = const IconData(0xe167, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_align_center</i> &#x2014; material icon named "format align center".</p>
-  static const IconData format_align_center = const IconData(0xe234);
+  static const IconData format_align_center = const IconData(0xe234, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_align_justify</i> &#x2014; material icon named "format align justify".</p>
-  static const IconData format_align_justify = const IconData(0xe235);
+  static const IconData format_align_justify = const IconData(0xe235, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_align_left</i> &#x2014; material icon named "format align left".</p>
-  static const IconData format_align_left = const IconData(0xe236);
+  static const IconData format_align_left = const IconData(0xe236, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_align_right</i> &#x2014; material icon named "format align right".</p>
-  static const IconData format_align_right = const IconData(0xe237);
+  static const IconData format_align_right = const IconData(0xe237, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_bold</i> &#x2014; material icon named "format bold".</p>
-  static const IconData format_bold = const IconData(0xe238);
+  static const IconData format_bold = const IconData(0xe238, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_clear</i> &#x2014; material icon named "format clear".</p>
-  static const IconData format_clear = const IconData(0xe239);
+  static const IconData format_clear = const IconData(0xe239, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_color_fill</i> &#x2014; material icon named "format color fill".</p>
-  static const IconData format_color_fill = const IconData(0xe23a);
+  static const IconData format_color_fill = const IconData(0xe23a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_color_reset</i> &#x2014; material icon named "format color reset".</p>
-  static const IconData format_color_reset = const IconData(0xe23b);
+  static const IconData format_color_reset = const IconData(0xe23b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_color_text</i> &#x2014; material icon named "format color text".</p>
-  static const IconData format_color_text = const IconData(0xe23c);
+  static const IconData format_color_text = const IconData(0xe23c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_indent_decrease</i> &#x2014; material icon named "format indent decrease".</p>
-  static const IconData format_indent_decrease = const IconData(0xe23d);
+  static const IconData format_indent_decrease = const IconData(0xe23d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_indent_increase</i> &#x2014; material icon named "format indent increase".</p>
-  static const IconData format_indent_increase = const IconData(0xe23e);
+  static const IconData format_indent_increase = const IconData(0xe23e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_italic</i> &#x2014; material icon named "format italic".</p>
-  static const IconData format_italic = const IconData(0xe23f);
+  static const IconData format_italic = const IconData(0xe23f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_line_spacing</i> &#x2014; material icon named "format line spacing".</p>
-  static const IconData format_line_spacing = const IconData(0xe240);
+  static const IconData format_line_spacing = const IconData(0xe240, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_list_bulleted</i> &#x2014; material icon named "format list bulleted".</p>
-  static const IconData format_list_bulleted = const IconData(0xe241);
+  static const IconData format_list_bulleted = const IconData(0xe241, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_list_numbered</i> &#x2014; material icon named "format list numbered".</p>
-  static const IconData format_list_numbered = const IconData(0xe242);
+  static const IconData format_list_numbered = const IconData(0xe242, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_list_numbered_rtl</i> &#x2014; material icon named "format list numbered rtl".</p>
-  static const IconData format_list_numbered_rtl = const IconData(0xe267);
+  static const IconData format_list_numbered_rtl = const IconData(0xe267, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_paint</i> &#x2014; material icon named "format paint".</p>
-  static const IconData format_paint = const IconData(0xe243);
+  static const IconData format_paint = const IconData(0xe243, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_quote</i> &#x2014; material icon named "format quote".</p>
-  static const IconData format_quote = const IconData(0xe244);
+  static const IconData format_quote = const IconData(0xe244, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_shapes</i> &#x2014; material icon named "format shapes".</p>
-  static const IconData format_shapes = const IconData(0xe25e);
+  static const IconData format_shapes = const IconData(0xe25e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_size</i> &#x2014; material icon named "format size".</p>
-  static const IconData format_size = const IconData(0xe245);
+  static const IconData format_size = const IconData(0xe245, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_strikethrough</i> &#x2014; material icon named "format strikethrough".</p>
-  static const IconData format_strikethrough = const IconData(0xe246);
+  static const IconData format_strikethrough = const IconData(0xe246, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_textdirection_l_to_r</i> &#x2014; material icon named "format textdirection l to r".</p>
-  static const IconData format_textdirection_l_to_r = const IconData(0xe247);
+  static const IconData format_textdirection_l_to_r = const IconData(0xe247, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_textdirection_r_to_l</i> &#x2014; material icon named "format textdirection r to l".</p>
-  static const IconData format_textdirection_r_to_l = const IconData(0xe248);
+  static const IconData format_textdirection_r_to_l = const IconData(0xe248, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">format_underlined</i> &#x2014; material icon named "format underlined".</p>
-  static const IconData format_underlined = const IconData(0xe249);
+  static const IconData format_underlined = const IconData(0xe249, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">forum</i> &#x2014; material icon named "forum".</p>
-  static const IconData forum = const IconData(0xe0bf);
+  static const IconData forum = const IconData(0xe0bf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">forward</i> &#x2014; material icon named "forward".</p>
-  static const IconData forward = const IconData(0xe154);
+  static const IconData forward = const IconData(0xe154, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">forward_10</i> &#x2014; material icon named "forward 10".</p>
-  static const IconData forward_10 = const IconData(0xe056);
+  static const IconData forward_10 = const IconData(0xe056, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">forward_30</i> &#x2014; material icon named "forward 30".</p>
-  static const IconData forward_30 = const IconData(0xe057);
+  static const IconData forward_30 = const IconData(0xe057, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">forward_5</i> &#x2014; material icon named "forward 5".</p>
-  static const IconData forward_5 = const IconData(0xe058);
+  static const IconData forward_5 = const IconData(0xe058, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">free_breakfast</i> &#x2014; material icon named "free breakfast".</p>
-  static const IconData free_breakfast = const IconData(0xeb44);
+  static const IconData free_breakfast = const IconData(0xeb44, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fullscreen</i> &#x2014; material icon named "fullscreen".</p>
-  static const IconData fullscreen = const IconData(0xe5d0);
+  static const IconData fullscreen = const IconData(0xe5d0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">fullscreen_exit</i> &#x2014; material icon named "fullscreen exit".</p>
-  static const IconData fullscreen_exit = const IconData(0xe5d1);
+  static const IconData fullscreen_exit = const IconData(0xe5d1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">functions</i> &#x2014; material icon named "functions".</p>
-  static const IconData functions = const IconData(0xe24a);
+  static const IconData functions = const IconData(0xe24a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">g_translate</i> &#x2014; material icon named "g translate".</p>
-  static const IconData g_translate = const IconData(0xe927);
+  static const IconData g_translate = const IconData(0xe927, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">gamepad</i> &#x2014; material icon named "gamepad".</p>
-  static const IconData gamepad = const IconData(0xe30f);
+  static const IconData gamepad = const IconData(0xe30f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">games</i> &#x2014; material icon named "games".</p>
-  static const IconData games = const IconData(0xe021);
+  static const IconData games = const IconData(0xe021, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">gavel</i> &#x2014; material icon named "gavel".</p>
-  static const IconData gavel = const IconData(0xe90e);
+  static const IconData gavel = const IconData(0xe90e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">gesture</i> &#x2014; material icon named "gesture".</p>
-  static const IconData gesture = const IconData(0xe155);
+  static const IconData gesture = const IconData(0xe155, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">get_app</i> &#x2014; material icon named "get app".</p>
-  static const IconData get_app = const IconData(0xe884);
+  static const IconData get_app = const IconData(0xe884, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">gif</i> &#x2014; material icon named "gif".</p>
-  static const IconData gif = const IconData(0xe908);
+  static const IconData gif = const IconData(0xe908, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">golf_course</i> &#x2014; material icon named "golf course".</p>
-  static const IconData golf_course = const IconData(0xeb45);
+  static const IconData golf_course = const IconData(0xeb45, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">gps_fixed</i> &#x2014; material icon named "gps fixed".</p>
-  static const IconData gps_fixed = const IconData(0xe1b3);
+  static const IconData gps_fixed = const IconData(0xe1b3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">gps_not_fixed</i> &#x2014; material icon named "gps not fixed".</p>
-  static const IconData gps_not_fixed = const IconData(0xe1b4);
+  static const IconData gps_not_fixed = const IconData(0xe1b4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">gps_off</i> &#x2014; material icon named "gps off".</p>
-  static const IconData gps_off = const IconData(0xe1b5);
+  static const IconData gps_off = const IconData(0xe1b5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">grade</i> &#x2014; material icon named "grade".</p>
-  static const IconData grade = const IconData(0xe885);
+  static const IconData grade = const IconData(0xe885, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">gradient</i> &#x2014; material icon named "gradient".</p>
-  static const IconData gradient = const IconData(0xe3e9);
+  static const IconData gradient = const IconData(0xe3e9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">grain</i> &#x2014; material icon named "grain".</p>
-  static const IconData grain = const IconData(0xe3ea);
+  static const IconData grain = const IconData(0xe3ea, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">graphic_eq</i> &#x2014; material icon named "graphic eq".</p>
-  static const IconData graphic_eq = const IconData(0xe1b8);
+  static const IconData graphic_eq = const IconData(0xe1b8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">grid_off</i> &#x2014; material icon named "grid off".</p>
-  static const IconData grid_off = const IconData(0xe3eb);
+  static const IconData grid_off = const IconData(0xe3eb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">grid_on</i> &#x2014; material icon named "grid on".</p>
-  static const IconData grid_on = const IconData(0xe3ec);
+  static const IconData grid_on = const IconData(0xe3ec, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">group</i> &#x2014; material icon named "group".</p>
-  static const IconData group = const IconData(0xe7ef);
+  static const IconData group = const IconData(0xe7ef, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">group_add</i> &#x2014; material icon named "group add".</p>
-  static const IconData group_add = const IconData(0xe7f0);
+  static const IconData group_add = const IconData(0xe7f0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">group_work</i> &#x2014; material icon named "group work".</p>
-  static const IconData group_work = const IconData(0xe886);
+  static const IconData group_work = const IconData(0xe886, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hd</i> &#x2014; material icon named "hd".</p>
-  static const IconData hd = const IconData(0xe052);
+  static const IconData hd = const IconData(0xe052, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hdr_off</i> &#x2014; material icon named "hdr off".</p>
-  static const IconData hdr_off = const IconData(0xe3ed);
+  static const IconData hdr_off = const IconData(0xe3ed, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hdr_on</i> &#x2014; material icon named "hdr on".</p>
-  static const IconData hdr_on = const IconData(0xe3ee);
+  static const IconData hdr_on = const IconData(0xe3ee, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hdr_strong</i> &#x2014; material icon named "hdr strong".</p>
-  static const IconData hdr_strong = const IconData(0xe3f1);
+  static const IconData hdr_strong = const IconData(0xe3f1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hdr_weak</i> &#x2014; material icon named "hdr weak".</p>
-  static const IconData hdr_weak = const IconData(0xe3f2);
+  static const IconData hdr_weak = const IconData(0xe3f2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">headset</i> &#x2014; material icon named "headset".</p>
-  static const IconData headset = const IconData(0xe310);
+  static const IconData headset = const IconData(0xe310, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">headset_mic</i> &#x2014; material icon named "headset mic".</p>
-  static const IconData headset_mic = const IconData(0xe311);
+  static const IconData headset_mic = const IconData(0xe311, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">headset_off</i> &#x2014; material icon named "headset off".</p>
-  static const IconData headset_off = const IconData(0xe33a);
+  static const IconData headset_off = const IconData(0xe33a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">healing</i> &#x2014; material icon named "healing".</p>
-  static const IconData healing = const IconData(0xe3f3);
+  static const IconData healing = const IconData(0xe3f3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hearing</i> &#x2014; material icon named "hearing".</p>
-  static const IconData hearing = const IconData(0xe023);
+  static const IconData hearing = const IconData(0xe023, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">help</i> &#x2014; material icon named "help".</p>
-  static const IconData help = const IconData(0xe887);
+  static const IconData help = const IconData(0xe887, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">help_outline</i> &#x2014; material icon named "help outline".</p>
-  static const IconData help_outline = const IconData(0xe8fd);
+  static const IconData help_outline = const IconData(0xe8fd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">high_quality</i> &#x2014; material icon named "high quality".</p>
-  static const IconData high_quality = const IconData(0xe024);
+  static const IconData high_quality = const IconData(0xe024, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">highlight</i> &#x2014; material icon named "highlight".</p>
-  static const IconData highlight = const IconData(0xe25f);
+  static const IconData highlight = const IconData(0xe25f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">highlight_off</i> &#x2014; material icon named "highlight off".</p>
-  static const IconData highlight_off = const IconData(0xe888);
+  static const IconData highlight_off = const IconData(0xe888, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">history</i> &#x2014; material icon named "history".</p>
-  static const IconData history = const IconData(0xe889);
+  static const IconData history = const IconData(0xe889, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">home</i> &#x2014; material icon named "home".</p>
-  static const IconData home = const IconData(0xe88a);
+  static const IconData home = const IconData(0xe88a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hot_tub</i> &#x2014; material icon named "hot tub".</p>
-  static const IconData hot_tub = const IconData(0xeb46);
+  static const IconData hot_tub = const IconData(0xeb46, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hotel</i> &#x2014; material icon named "hotel".</p>
-  static const IconData hotel = const IconData(0xe53a);
+  static const IconData hotel = const IconData(0xe53a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hourglass_empty</i> &#x2014; material icon named "hourglass empty".</p>
-  static const IconData hourglass_empty = const IconData(0xe88b);
+  static const IconData hourglass_empty = const IconData(0xe88b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">hourglass_full</i> &#x2014; material icon named "hourglass full".</p>
-  static const IconData hourglass_full = const IconData(0xe88c);
+  static const IconData hourglass_full = const IconData(0xe88c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">http</i> &#x2014; material icon named "http".</p>
-  static const IconData http = const IconData(0xe902);
+  static const IconData http = const IconData(0xe902, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">https</i> &#x2014; material icon named "https".</p>
-  static const IconData https = const IconData(0xe88d);
+  static const IconData https = const IconData(0xe88d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">image</i> &#x2014; material icon named "image".</p>
-  static const IconData image = const IconData(0xe3f4);
+  static const IconData image = const IconData(0xe3f4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">image_aspect_ratio</i> &#x2014; material icon named "image aspect ratio".</p>
-  static const IconData image_aspect_ratio = const IconData(0xe3f5);
+  static const IconData image_aspect_ratio = const IconData(0xe3f5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">import_contacts</i> &#x2014; material icon named "import contacts".</p>
-  static const IconData import_contacts = const IconData(0xe0e0);
+  static const IconData import_contacts = const IconData(0xe0e0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">import_export</i> &#x2014; material icon named "import export".</p>
-  static const IconData import_export = const IconData(0xe0c3);
+  static const IconData import_export = const IconData(0xe0c3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">important_devices</i> &#x2014; material icon named "important devices".</p>
-  static const IconData important_devices = const IconData(0xe912);
+  static const IconData important_devices = const IconData(0xe912, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">inbox</i> &#x2014; material icon named "inbox".</p>
-  static const IconData inbox = const IconData(0xe156);
+  static const IconData inbox = const IconData(0xe156, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">indeterminate_check_box</i> &#x2014; material icon named "indeterminate check box".</p>
-  static const IconData indeterminate_check_box = const IconData(0xe909);
+  static const IconData indeterminate_check_box = const IconData(0xe909, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">info</i> &#x2014; material icon named "info".</p>
-  static const IconData info = const IconData(0xe88e);
+  static const IconData info = const IconData(0xe88e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">info_outline</i> &#x2014; material icon named "info outline".</p>
-  static const IconData info_outline = const IconData(0xe88f);
+  static const IconData info_outline = const IconData(0xe88f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">input</i> &#x2014; material icon named "input".</p>
-  static const IconData input = const IconData(0xe890);
+  static const IconData input = const IconData(0xe890, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">insert_chart</i> &#x2014; material icon named "insert chart".</p>
-  static const IconData insert_chart = const IconData(0xe24b);
+  static const IconData insert_chart = const IconData(0xe24b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">insert_comment</i> &#x2014; material icon named "insert comment".</p>
-  static const IconData insert_comment = const IconData(0xe24c);
+  static const IconData insert_comment = const IconData(0xe24c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">insert_drive_file</i> &#x2014; material icon named "insert drive file".</p>
-  static const IconData insert_drive_file = const IconData(0xe24d);
+  static const IconData insert_drive_file = const IconData(0xe24d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">insert_emoticon</i> &#x2014; material icon named "insert emoticon".</p>
-  static const IconData insert_emoticon = const IconData(0xe24e);
+  static const IconData insert_emoticon = const IconData(0xe24e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">insert_invitation</i> &#x2014; material icon named "insert invitation".</p>
-  static const IconData insert_invitation = const IconData(0xe24f);
+  static const IconData insert_invitation = const IconData(0xe24f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">insert_link</i> &#x2014; material icon named "insert link".</p>
-  static const IconData insert_link = const IconData(0xe250);
+  static const IconData insert_link = const IconData(0xe250, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">insert_photo</i> &#x2014; material icon named "insert photo".</p>
-  static const IconData insert_photo = const IconData(0xe251);
+  static const IconData insert_photo = const IconData(0xe251, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">invert_colors</i> &#x2014; material icon named "invert colors".</p>
-  static const IconData invert_colors = const IconData(0xe891);
+  static const IconData invert_colors = const IconData(0xe891, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">invert_colors_off</i> &#x2014; material icon named "invert colors off".</p>
-  static const IconData invert_colors_off = const IconData(0xe0c4);
+  static const IconData invert_colors_off = const IconData(0xe0c4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">iso</i> &#x2014; material icon named "iso".</p>
-  static const IconData iso = const IconData(0xe3f6);
+  static const IconData iso = const IconData(0xe3f6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard</i> &#x2014; material icon named "keyboard".</p>
-  static const IconData keyboard = const IconData(0xe312);
+  static const IconData keyboard = const IconData(0xe312, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_arrow_down</i> &#x2014; material icon named "keyboard arrow down".</p>
-  static const IconData keyboard_arrow_down = const IconData(0xe313);
+  static const IconData keyboard_arrow_down = const IconData(0xe313, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_arrow_left</i> &#x2014; material icon named "keyboard arrow left".</p>
-  static const IconData keyboard_arrow_left = const IconData(0xe314);
+  static const IconData keyboard_arrow_left = const IconData(0xe314, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_arrow_right</i> &#x2014; material icon named "keyboard arrow right".</p>
-  static const IconData keyboard_arrow_right = const IconData(0xe315);
+  static const IconData keyboard_arrow_right = const IconData(0xe315, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_arrow_up</i> &#x2014; material icon named "keyboard arrow up".</p>
-  static const IconData keyboard_arrow_up = const IconData(0xe316);
+  static const IconData keyboard_arrow_up = const IconData(0xe316, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_backspace</i> &#x2014; material icon named "keyboard backspace".</p>
-  static const IconData keyboard_backspace = const IconData(0xe317);
+  static const IconData keyboard_backspace = const IconData(0xe317, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_capslock</i> &#x2014; material icon named "keyboard capslock".</p>
-  static const IconData keyboard_capslock = const IconData(0xe318);
+  static const IconData keyboard_capslock = const IconData(0xe318, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_hide</i> &#x2014; material icon named "keyboard hide".</p>
-  static const IconData keyboard_hide = const IconData(0xe31a);
+  static const IconData keyboard_hide = const IconData(0xe31a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_return</i> &#x2014; material icon named "keyboard return".</p>
-  static const IconData keyboard_return = const IconData(0xe31b);
+  static const IconData keyboard_return = const IconData(0xe31b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_tab</i> &#x2014; material icon named "keyboard tab".</p>
-  static const IconData keyboard_tab = const IconData(0xe31c);
+  static const IconData keyboard_tab = const IconData(0xe31c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">keyboard_voice</i> &#x2014; material icon named "keyboard voice".</p>
-  static const IconData keyboard_voice = const IconData(0xe31d);
+  static const IconData keyboard_voice = const IconData(0xe31d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">kitchen</i> &#x2014; material icon named "kitchen".</p>
-  static const IconData kitchen = const IconData(0xeb47);
+  static const IconData kitchen = const IconData(0xeb47, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">label</i> &#x2014; material icon named "label".</p>
-  static const IconData label = const IconData(0xe892);
+  static const IconData label = const IconData(0xe892, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">label_important</i> &#x2014; material icon named "label important".</p>
-  static const IconData label_important = const IconData(0xe937);
+  static const IconData label_important = const IconData(0xe937, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">label_outline</i> &#x2014; material icon named "label outline".</p>
-  static const IconData label_outline = const IconData(0xe893);
+  static const IconData label_outline = const IconData(0xe893, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">landscape</i> &#x2014; material icon named "landscape".</p>
-  static const IconData landscape = const IconData(0xe3f7);
+  static const IconData landscape = const IconData(0xe3f7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">language</i> &#x2014; material icon named "language".</p>
-  static const IconData language = const IconData(0xe894);
+  static const IconData language = const IconData(0xe894, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">laptop</i> &#x2014; material icon named "laptop".</p>
-  static const IconData laptop = const IconData(0xe31e);
+  static const IconData laptop = const IconData(0xe31e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">laptop_chromebook</i> &#x2014; material icon named "laptop chromebook".</p>
-  static const IconData laptop_chromebook = const IconData(0xe31f);
+  static const IconData laptop_chromebook = const IconData(0xe31f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">laptop_mac</i> &#x2014; material icon named "laptop mac".</p>
-  static const IconData laptop_mac = const IconData(0xe320);
+  static const IconData laptop_mac = const IconData(0xe320, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">laptop_windows</i> &#x2014; material icon named "laptop windows".</p>
-  static const IconData laptop_windows = const IconData(0xe321);
+  static const IconData laptop_windows = const IconData(0xe321, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">last_page</i> &#x2014; material icon named "last page".</p>
-  static const IconData last_page = const IconData(0xe5dd);
+  static const IconData last_page = const IconData(0xe5dd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">launch</i> &#x2014; material icon named "launch".</p>
-  static const IconData launch = const IconData(0xe895);
+  static const IconData launch = const IconData(0xe895, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">layers</i> &#x2014; material icon named "layers".</p>
-  static const IconData layers = const IconData(0xe53b);
+  static const IconData layers = const IconData(0xe53b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">layers_clear</i> &#x2014; material icon named "layers clear".</p>
-  static const IconData layers_clear = const IconData(0xe53c);
+  static const IconData layers_clear = const IconData(0xe53c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">leak_add</i> &#x2014; material icon named "leak add".</p>
-  static const IconData leak_add = const IconData(0xe3f8);
+  static const IconData leak_add = const IconData(0xe3f8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">leak_remove</i> &#x2014; material icon named "leak remove".</p>
-  static const IconData leak_remove = const IconData(0xe3f9);
+  static const IconData leak_remove = const IconData(0xe3f9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">lens</i> &#x2014; material icon named "lens".</p>
-  static const IconData lens = const IconData(0xe3fa);
+  static const IconData lens = const IconData(0xe3fa, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">library_add</i> &#x2014; material icon named "library add".</p>
-  static const IconData library_add = const IconData(0xe02e);
+  static const IconData library_add = const IconData(0xe02e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">library_books</i> &#x2014; material icon named "library books".</p>
-  static const IconData library_books = const IconData(0xe02f);
+  static const IconData library_books = const IconData(0xe02f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">library_music</i> &#x2014; material icon named "library music".</p>
-  static const IconData library_music = const IconData(0xe030);
+  static const IconData library_music = const IconData(0xe030, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">lightbulb_outline</i> &#x2014; material icon named "lightbulb outline".</p>
-  static const IconData lightbulb_outline = const IconData(0xe90f);
+  static const IconData lightbulb_outline = const IconData(0xe90f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">line_style</i> &#x2014; material icon named "line style".</p>
-  static const IconData line_style = const IconData(0xe919);
+  static const IconData line_style = const IconData(0xe919, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">line_weight</i> &#x2014; material icon named "line weight".</p>
-  static const IconData line_weight = const IconData(0xe91a);
+  static const IconData line_weight = const IconData(0xe91a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">linear_scale</i> &#x2014; material icon named "linear scale".</p>
-  static const IconData linear_scale = const IconData(0xe260);
+  static const IconData linear_scale = const IconData(0xe260, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">link</i> &#x2014; material icon named "link".</p>
-  static const IconData link = const IconData(0xe157);
+  static const IconData link = const IconData(0xe157, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">link_off</i> &#x2014; material icon named "link off".</p>
-  static const IconData link_off = const IconData(0xe16f);
+  static const IconData link_off = const IconData(0xe16f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">linked_camera</i> &#x2014; material icon named "linked camera".</p>
-  static const IconData linked_camera = const IconData(0xe438);
+  static const IconData linked_camera = const IconData(0xe438, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">list</i> &#x2014; material icon named "list".</p>
-  static const IconData list = const IconData(0xe896);
+  static const IconData list = const IconData(0xe896, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">live_help</i> &#x2014; material icon named "live help".</p>
-  static const IconData live_help = const IconData(0xe0c6);
+  static const IconData live_help = const IconData(0xe0c6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">live_tv</i> &#x2014; material icon named "live tv".</p>
-  static const IconData live_tv = const IconData(0xe639);
+  static const IconData live_tv = const IconData(0xe639, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_activity</i> &#x2014; material icon named "local activity".</p>
-  static const IconData local_activity = const IconData(0xe53f);
+  static const IconData local_activity = const IconData(0xe53f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_airport</i> &#x2014; material icon named "local airport".</p>
-  static const IconData local_airport = const IconData(0xe53d);
+  static const IconData local_airport = const IconData(0xe53d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_atm</i> &#x2014; material icon named "local atm".</p>
-  static const IconData local_atm = const IconData(0xe53e);
+  static const IconData local_atm = const IconData(0xe53e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_bar</i> &#x2014; material icon named "local bar".</p>
-  static const IconData local_bar = const IconData(0xe540);
+  static const IconData local_bar = const IconData(0xe540, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_cafe</i> &#x2014; material icon named "local cafe".</p>
-  static const IconData local_cafe = const IconData(0xe541);
+  static const IconData local_cafe = const IconData(0xe541, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_car_wash</i> &#x2014; material icon named "local car wash".</p>
-  static const IconData local_car_wash = const IconData(0xe542);
+  static const IconData local_car_wash = const IconData(0xe542, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_convenience_store</i> &#x2014; material icon named "local convenience store".</p>
-  static const IconData local_convenience_store = const IconData(0xe543);
+  static const IconData local_convenience_store = const IconData(0xe543, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_dining</i> &#x2014; material icon named "local dining".</p>
-  static const IconData local_dining = const IconData(0xe556);
+  static const IconData local_dining = const IconData(0xe556, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_drink</i> &#x2014; material icon named "local drink".</p>
-  static const IconData local_drink = const IconData(0xe544);
+  static const IconData local_drink = const IconData(0xe544, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_florist</i> &#x2014; material icon named "local florist".</p>
-  static const IconData local_florist = const IconData(0xe545);
+  static const IconData local_florist = const IconData(0xe545, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_gas_station</i> &#x2014; material icon named "local gas station".</p>
-  static const IconData local_gas_station = const IconData(0xe546);
+  static const IconData local_gas_station = const IconData(0xe546, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_grocery_store</i> &#x2014; material icon named "local grocery store".</p>
-  static const IconData local_grocery_store = const IconData(0xe547);
+  static const IconData local_grocery_store = const IconData(0xe547, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_hospital</i> &#x2014; material icon named "local hospital".</p>
-  static const IconData local_hospital = const IconData(0xe548);
+  static const IconData local_hospital = const IconData(0xe548, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_hotel</i> &#x2014; material icon named "local hotel".</p>
-  static const IconData local_hotel = const IconData(0xe549);
+  static const IconData local_hotel = const IconData(0xe549, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_laundry_service</i> &#x2014; material icon named "local laundry service".</p>
-  static const IconData local_laundry_service = const IconData(0xe54a);
+  static const IconData local_laundry_service = const IconData(0xe54a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_library</i> &#x2014; material icon named "local library".</p>
-  static const IconData local_library = const IconData(0xe54b);
+  static const IconData local_library = const IconData(0xe54b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_mall</i> &#x2014; material icon named "local mall".</p>
-  static const IconData local_mall = const IconData(0xe54c);
+  static const IconData local_mall = const IconData(0xe54c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_movies</i> &#x2014; material icon named "local movies".</p>
-  static const IconData local_movies = const IconData(0xe54d);
+  static const IconData local_movies = const IconData(0xe54d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_offer</i> &#x2014; material icon named "local offer".</p>
-  static const IconData local_offer = const IconData(0xe54e);
+  static const IconData local_offer = const IconData(0xe54e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_parking</i> &#x2014; material icon named "local parking".</p>
-  static const IconData local_parking = const IconData(0xe54f);
+  static const IconData local_parking = const IconData(0xe54f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_pharmacy</i> &#x2014; material icon named "local pharmacy".</p>
-  static const IconData local_pharmacy = const IconData(0xe550);
+  static const IconData local_pharmacy = const IconData(0xe550, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_phone</i> &#x2014; material icon named "local phone".</p>
-  static const IconData local_phone = const IconData(0xe551);
+  static const IconData local_phone = const IconData(0xe551, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_pizza</i> &#x2014; material icon named "local pizza".</p>
-  static const IconData local_pizza = const IconData(0xe552);
+  static const IconData local_pizza = const IconData(0xe552, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_play</i> &#x2014; material icon named "local play".</p>
-  static const IconData local_play = const IconData(0xe553);
+  static const IconData local_play = const IconData(0xe553, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_post_office</i> &#x2014; material icon named "local post office".</p>
-  static const IconData local_post_office = const IconData(0xe554);
+  static const IconData local_post_office = const IconData(0xe554, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_printshop</i> &#x2014; material icon named "local printshop".</p>
-  static const IconData local_printshop = const IconData(0xe555);
+  static const IconData local_printshop = const IconData(0xe555, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_see</i> &#x2014; material icon named "local see".</p>
-  static const IconData local_see = const IconData(0xe557);
+  static const IconData local_see = const IconData(0xe557, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_shipping</i> &#x2014; material icon named "local shipping".</p>
-  static const IconData local_shipping = const IconData(0xe558);
+  static const IconData local_shipping = const IconData(0xe558, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">local_taxi</i> &#x2014; material icon named "local taxi".</p>
-  static const IconData local_taxi = const IconData(0xe559);
+  static const IconData local_taxi = const IconData(0xe559, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">location_city</i> &#x2014; material icon named "location city".</p>
-  static const IconData location_city = const IconData(0xe7f1);
+  static const IconData location_city = const IconData(0xe7f1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">location_disabled</i> &#x2014; material icon named "location disabled".</p>
-  static const IconData location_disabled = const IconData(0xe1b6);
+  static const IconData location_disabled = const IconData(0xe1b6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">location_off</i> &#x2014; material icon named "location off".</p>
-  static const IconData location_off = const IconData(0xe0c7);
+  static const IconData location_off = const IconData(0xe0c7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">location_on</i> &#x2014; material icon named "location on".</p>
-  static const IconData location_on = const IconData(0xe0c8);
+  static const IconData location_on = const IconData(0xe0c8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">location_searching</i> &#x2014; material icon named "location searching".</p>
-  static const IconData location_searching = const IconData(0xe1b7);
+  static const IconData location_searching = const IconData(0xe1b7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">lock</i> &#x2014; material icon named "lock".</p>
-  static const IconData lock = const IconData(0xe897);
+  static const IconData lock = const IconData(0xe897, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">lock_open</i> &#x2014; material icon named "lock open".</p>
-  static const IconData lock_open = const IconData(0xe898);
+  static const IconData lock_open = const IconData(0xe898, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">lock_outline</i> &#x2014; material icon named "lock outline".</p>
-  static const IconData lock_outline = const IconData(0xe899);
+  static const IconData lock_outline = const IconData(0xe899, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">looks</i> &#x2014; material icon named "looks".</p>
-  static const IconData looks = const IconData(0xe3fc);
+  static const IconData looks = const IconData(0xe3fc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">looks_3</i> &#x2014; material icon named "looks 3".</p>
-  static const IconData looks_3 = const IconData(0xe3fb);
+  static const IconData looks_3 = const IconData(0xe3fb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">looks_4</i> &#x2014; material icon named "looks 4".</p>
-  static const IconData looks_4 = const IconData(0xe3fd);
+  static const IconData looks_4 = const IconData(0xe3fd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">looks_5</i> &#x2014; material icon named "looks 5".</p>
-  static const IconData looks_5 = const IconData(0xe3fe);
+  static const IconData looks_5 = const IconData(0xe3fe, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">looks_6</i> &#x2014; material icon named "looks 6".</p>
-  static const IconData looks_6 = const IconData(0xe3ff);
+  static const IconData looks_6 = const IconData(0xe3ff, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">looks_one</i> &#x2014; material icon named "looks one".</p>
-  static const IconData looks_one = const IconData(0xe400);
+  static const IconData looks_one = const IconData(0xe400, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">looks_two</i> &#x2014; material icon named "looks two".</p>
-  static const IconData looks_two = const IconData(0xe401);
+  static const IconData looks_two = const IconData(0xe401, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">loop</i> &#x2014; material icon named "loop".</p>
-  static const IconData loop = const IconData(0xe028);
+  static const IconData loop = const IconData(0xe028, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">loupe</i> &#x2014; material icon named "loupe".</p>
-  static const IconData loupe = const IconData(0xe402);
+  static const IconData loupe = const IconData(0xe402, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">low_priority</i> &#x2014; material icon named "low priority".</p>
-  static const IconData low_priority = const IconData(0xe16d);
+  static const IconData low_priority = const IconData(0xe16d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">loyalty</i> &#x2014; material icon named "loyalty".</p>
-  static const IconData loyalty = const IconData(0xe89a);
+  static const IconData loyalty = const IconData(0xe89a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mail</i> &#x2014; material icon named "mail".</p>
-  static const IconData mail = const IconData(0xe158);
+  static const IconData mail = const IconData(0xe158, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mail_outline</i> &#x2014; material icon named "mail outline".</p>
-  static const IconData mail_outline = const IconData(0xe0e1);
+  static const IconData mail_outline = const IconData(0xe0e1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">map</i> &#x2014; material icon named "map".</p>
-  static const IconData map = const IconData(0xe55b);
+  static const IconData map = const IconData(0xe55b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">markunread</i> &#x2014; material icon named "markunread".</p>
-  static const IconData markunread = const IconData(0xe159);
+  static const IconData markunread = const IconData(0xe159, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">markunread_mailbox</i> &#x2014; material icon named "markunread mailbox".</p>
-  static const IconData markunread_mailbox = const IconData(0xe89b);
+  static const IconData markunread_mailbox = const IconData(0xe89b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">maximize</i> &#x2014; material icon named "maximize".</p>
-  static const IconData maximize = const IconData(0xe930);
+  static const IconData maximize = const IconData(0xe930, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">memory</i> &#x2014; material icon named "memory".</p>
-  static const IconData memory = const IconData(0xe322);
+  static const IconData memory = const IconData(0xe322, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">menu</i> &#x2014; material icon named "menu".</p>
-  static const IconData menu = const IconData(0xe5d2);
+  static const IconData menu = const IconData(0xe5d2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">merge_type</i> &#x2014; material icon named "merge type".</p>
-  static const IconData merge_type = const IconData(0xe252);
+  static const IconData merge_type = const IconData(0xe252, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">message</i> &#x2014; material icon named "message".</p>
-  static const IconData message = const IconData(0xe0c9);
+  static const IconData message = const IconData(0xe0c9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mic</i> &#x2014; material icon named "mic".</p>
-  static const IconData mic = const IconData(0xe029);
+  static const IconData mic = const IconData(0xe029, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mic_none</i> &#x2014; material icon named "mic none".</p>
-  static const IconData mic_none = const IconData(0xe02a);
+  static const IconData mic_none = const IconData(0xe02a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mic_off</i> &#x2014; material icon named "mic off".</p>
-  static const IconData mic_off = const IconData(0xe02b);
+  static const IconData mic_off = const IconData(0xe02b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">minimize</i> &#x2014; material icon named "minimize".</p>
-  static const IconData minimize = const IconData(0xe931);
+  static const IconData minimize = const IconData(0xe931, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">missed_video_call</i> &#x2014; material icon named "missed video call".</p>
-  static const IconData missed_video_call = const IconData(0xe073);
+  static const IconData missed_video_call = const IconData(0xe073, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mms</i> &#x2014; material icon named "mms".</p>
-  static const IconData mms = const IconData(0xe618);
+  static const IconData mms = const IconData(0xe618, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mobile_screen_share</i> &#x2014; material icon named "mobile screen share".</p>
-  static const IconData mobile_screen_share = const IconData(0xe0e7);
+  static const IconData mobile_screen_share = const IconData(0xe0e7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mode_comment</i> &#x2014; material icon named "mode comment".</p>
-  static const IconData mode_comment = const IconData(0xe253);
+  static const IconData mode_comment = const IconData(0xe253, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mode_edit</i> &#x2014; material icon named "mode edit".</p>
-  static const IconData mode_edit = const IconData(0xe254);
+  static const IconData mode_edit = const IconData(0xe254, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">monetization_on</i> &#x2014; material icon named "monetization on".</p>
-  static const IconData monetization_on = const IconData(0xe263);
+  static const IconData monetization_on = const IconData(0xe263, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">money_off</i> &#x2014; material icon named "money off".</p>
-  static const IconData money_off = const IconData(0xe25c);
+  static const IconData money_off = const IconData(0xe25c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">monochrome_photos</i> &#x2014; material icon named "monochrome photos".</p>
-  static const IconData monochrome_photos = const IconData(0xe403);
+  static const IconData monochrome_photos = const IconData(0xe403, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mood</i> &#x2014; material icon named "mood".</p>
-  static const IconData mood = const IconData(0xe7f2);
+  static const IconData mood = const IconData(0xe7f2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mood_bad</i> &#x2014; material icon named "mood bad".</p>
-  static const IconData mood_bad = const IconData(0xe7f3);
+  static const IconData mood_bad = const IconData(0xe7f3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">more</i> &#x2014; material icon named "more".</p>
-  static const IconData more = const IconData(0xe619);
+  static const IconData more = const IconData(0xe619, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">more_horiz</i> &#x2014; material icon named "more horiz".</p>
-  static const IconData more_horiz = const IconData(0xe5d3);
+  static const IconData more_horiz = const IconData(0xe5d3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">more_vert</i> &#x2014; material icon named "more vert".</p>
-  static const IconData more_vert = const IconData(0xe5d4);
+  static const IconData more_vert = const IconData(0xe5d4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">motorcycle</i> &#x2014; material icon named "motorcycle".</p>
-  static const IconData motorcycle = const IconData(0xe91b);
+  static const IconData motorcycle = const IconData(0xe91b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">mouse</i> &#x2014; material icon named "mouse".</p>
-  static const IconData mouse = const IconData(0xe323);
+  static const IconData mouse = const IconData(0xe323, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">move_to_inbox</i> &#x2014; material icon named "move to inbox".</p>
-  static const IconData move_to_inbox = const IconData(0xe168);
+  static const IconData move_to_inbox = const IconData(0xe168, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">movie</i> &#x2014; material icon named "movie".</p>
-  static const IconData movie = const IconData(0xe02c);
+  static const IconData movie = const IconData(0xe02c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">movie_creation</i> &#x2014; material icon named "movie creation".</p>
-  static const IconData movie_creation = const IconData(0xe404);
+  static const IconData movie_creation = const IconData(0xe404, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">movie_filter</i> &#x2014; material icon named "movie filter".</p>
-  static const IconData movie_filter = const IconData(0xe43a);
+  static const IconData movie_filter = const IconData(0xe43a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">multiline_chart</i> &#x2014; material icon named "multiline chart".</p>
-  static const IconData multiline_chart = const IconData(0xe6df);
+  static const IconData multiline_chart = const IconData(0xe6df, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">music_note</i> &#x2014; material icon named "music note".</p>
-  static const IconData music_note = const IconData(0xe405);
+  static const IconData music_note = const IconData(0xe405, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">music_video</i> &#x2014; material icon named "music video".</p>
-  static const IconData music_video = const IconData(0xe063);
+  static const IconData music_video = const IconData(0xe063, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">my_location</i> &#x2014; material icon named "my location".</p>
-  static const IconData my_location = const IconData(0xe55c);
+  static const IconData my_location = const IconData(0xe55c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">nature</i> &#x2014; material icon named "nature".</p>
-  static const IconData nature = const IconData(0xe406);
+  static const IconData nature = const IconData(0xe406, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">nature_people</i> &#x2014; material icon named "nature people".</p>
-  static const IconData nature_people = const IconData(0xe407);
+  static const IconData nature_people = const IconData(0xe407, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">navigate_before</i> &#x2014; material icon named "navigate before".</p>
-  static const IconData navigate_before = const IconData(0xe408);
+  static const IconData navigate_before = const IconData(0xe408, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">navigate_next</i> &#x2014; material icon named "navigate next".</p>
-  static const IconData navigate_next = const IconData(0xe409);
+  static const IconData navigate_next = const IconData(0xe409, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">navigation</i> &#x2014; material icon named "navigation".</p>
-  static const IconData navigation = const IconData(0xe55d);
+  static const IconData navigation = const IconData(0xe55d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">near_me</i> &#x2014; material icon named "near me".</p>
-  static const IconData near_me = const IconData(0xe569);
+  static const IconData near_me = const IconData(0xe569, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">network_cell</i> &#x2014; material icon named "network cell".</p>
-  static const IconData network_cell = const IconData(0xe1b9);
+  static const IconData network_cell = const IconData(0xe1b9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">network_check</i> &#x2014; material icon named "network check".</p>
-  static const IconData network_check = const IconData(0xe640);
+  static const IconData network_check = const IconData(0xe640, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">network_locked</i> &#x2014; material icon named "network locked".</p>
-  static const IconData network_locked = const IconData(0xe61a);
+  static const IconData network_locked = const IconData(0xe61a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">network_wifi</i> &#x2014; material icon named "network wifi".</p>
-  static const IconData network_wifi = const IconData(0xe1ba);
+  static const IconData network_wifi = const IconData(0xe1ba, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">new_releases</i> &#x2014; material icon named "new releases".</p>
-  static const IconData new_releases = const IconData(0xe031);
+  static const IconData new_releases = const IconData(0xe031, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">next_week</i> &#x2014; material icon named "next week".</p>
-  static const IconData next_week = const IconData(0xe16a);
+  static const IconData next_week = const IconData(0xe16a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">nfc</i> &#x2014; material icon named "nfc".</p>
-  static const IconData nfc = const IconData(0xe1bb);
+  static const IconData nfc = const IconData(0xe1bb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">no_encryption</i> &#x2014; material icon named "no encryption".</p>
-  static const IconData no_encryption = const IconData(0xe641);
+  static const IconData no_encryption = const IconData(0xe641, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">no_sim</i> &#x2014; material icon named "no sim".</p>
-  static const IconData no_sim = const IconData(0xe0cc);
+  static const IconData no_sim = const IconData(0xe0cc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">not_interested</i> &#x2014; material icon named "not interested".</p>
-  static const IconData not_interested = const IconData(0xe033);
+  static const IconData not_interested = const IconData(0xe033, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">not_listed_location</i> &#x2014; material icon named "not listed location".</p>
-  static const IconData not_listed_location = const IconData(0xe575);
+  static const IconData not_listed_location = const IconData(0xe575, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">note</i> &#x2014; material icon named "note".</p>
-  static const IconData note = const IconData(0xe06f);
+  static const IconData note = const IconData(0xe06f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">note_add</i> &#x2014; material icon named "note add".</p>
-  static const IconData note_add = const IconData(0xe89c);
+  static const IconData note_add = const IconData(0xe89c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">notification_important</i> &#x2014; material icon named "notification important".</p>
-  static const IconData notification_important = const IconData(0xe004);
+  static const IconData notification_important = const IconData(0xe004, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">notifications</i> &#x2014; material icon named "notifications".</p>
-  static const IconData notifications = const IconData(0xe7f4);
+  static const IconData notifications = const IconData(0xe7f4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">notifications_active</i> &#x2014; material icon named "notifications active".</p>
-  static const IconData notifications_active = const IconData(0xe7f7);
+  static const IconData notifications_active = const IconData(0xe7f7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">notifications_none</i> &#x2014; material icon named "notifications none".</p>
-  static const IconData notifications_none = const IconData(0xe7f5);
+  static const IconData notifications_none = const IconData(0xe7f5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">notifications_off</i> &#x2014; material icon named "notifications off".</p>
-  static const IconData notifications_off = const IconData(0xe7f6);
+  static const IconData notifications_off = const IconData(0xe7f6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">notifications_paused</i> &#x2014; material icon named "notifications paused".</p>
-  static const IconData notifications_paused = const IconData(0xe7f8);
+  static const IconData notifications_paused = const IconData(0xe7f8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">offline_bolt</i> &#x2014; material icon named "offline bolt".</p>
-  static const IconData offline_bolt = const IconData(0xe932);
+  static const IconData offline_bolt = const IconData(0xe932, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">offline_pin</i> &#x2014; material icon named "offline pin".</p>
-  static const IconData offline_pin = const IconData(0xe90a);
+  static const IconData offline_pin = const IconData(0xe90a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">ondemand_video</i> &#x2014; material icon named "ondemand video".</p>
-  static const IconData ondemand_video = const IconData(0xe63a);
+  static const IconData ondemand_video = const IconData(0xe63a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">opacity</i> &#x2014; material icon named "opacity".</p>
-  static const IconData opacity = const IconData(0xe91c);
+  static const IconData opacity = const IconData(0xe91c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">open_in_browser</i> &#x2014; material icon named "open in browser".</p>
-  static const IconData open_in_browser = const IconData(0xe89d);
+  static const IconData open_in_browser = const IconData(0xe89d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">open_in_new</i> &#x2014; material icon named "open in new".</p>
-  static const IconData open_in_new = const IconData(0xe89e);
+  static const IconData open_in_new = const IconData(0xe89e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">open_with</i> &#x2014; material icon named "open with".</p>
-  static const IconData open_with = const IconData(0xe89f);
+  static const IconData open_with = const IconData(0xe89f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">outlined_flag</i> &#x2014; material icon named "outlined flag".</p>
-  static const IconData outlined_flag = const IconData(0xe16e);
+  static const IconData outlined_flag = const IconData(0xe16e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pages</i> &#x2014; material icon named "pages".</p>
-  static const IconData pages = const IconData(0xe7f9);
+  static const IconData pages = const IconData(0xe7f9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pageview</i> &#x2014; material icon named "pageview".</p>
-  static const IconData pageview = const IconData(0xe8a0);
+  static const IconData pageview = const IconData(0xe8a0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">palette</i> &#x2014; material icon named "palette".</p>
-  static const IconData palette = const IconData(0xe40a);
+  static const IconData palette = const IconData(0xe40a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pan_tool</i> &#x2014; material icon named "pan tool".</p>
-  static const IconData pan_tool = const IconData(0xe925);
+  static const IconData pan_tool = const IconData(0xe925, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">panorama</i> &#x2014; material icon named "panorama".</p>
-  static const IconData panorama = const IconData(0xe40b);
+  static const IconData panorama = const IconData(0xe40b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">panorama_fish_eye</i> &#x2014; material icon named "panorama fish eye".</p>
-  static const IconData panorama_fish_eye = const IconData(0xe40c);
+  static const IconData panorama_fish_eye = const IconData(0xe40c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">panorama_horizontal</i> &#x2014; material icon named "panorama horizontal".</p>
-  static const IconData panorama_horizontal = const IconData(0xe40d);
+  static const IconData panorama_horizontal = const IconData(0xe40d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">panorama_vertical</i> &#x2014; material icon named "panorama vertical".</p>
-  static const IconData panorama_vertical = const IconData(0xe40e);
+  static const IconData panorama_vertical = const IconData(0xe40e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">panorama_wide_angle</i> &#x2014; material icon named "panorama wide angle".</p>
-  static const IconData panorama_wide_angle = const IconData(0xe40f);
+  static const IconData panorama_wide_angle = const IconData(0xe40f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">party_mode</i> &#x2014; material icon named "party mode".</p>
-  static const IconData party_mode = const IconData(0xe7fa);
+  static const IconData party_mode = const IconData(0xe7fa, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pause</i> &#x2014; material icon named "pause".</p>
-  static const IconData pause = const IconData(0xe034);
+  static const IconData pause = const IconData(0xe034, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pause_circle_filled</i> &#x2014; material icon named "pause circle filled".</p>
-  static const IconData pause_circle_filled = const IconData(0xe035);
+  static const IconData pause_circle_filled = const IconData(0xe035, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pause_circle_outline</i> &#x2014; material icon named "pause circle outline".</p>
-  static const IconData pause_circle_outline = const IconData(0xe036);
+  static const IconData pause_circle_outline = const IconData(0xe036, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">payment</i> &#x2014; material icon named "payment".</p>
-  static const IconData payment = const IconData(0xe8a1);
+  static const IconData payment = const IconData(0xe8a1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">people</i> &#x2014; material icon named "people".</p>
-  static const IconData people = const IconData(0xe7fb);
+  static const IconData people = const IconData(0xe7fb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">people_outline</i> &#x2014; material icon named "people outline".</p>
-  static const IconData people_outline = const IconData(0xe7fc);
+  static const IconData people_outline = const IconData(0xe7fc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">perm_camera_mic</i> &#x2014; material icon named "perm camera mic".</p>
-  static const IconData perm_camera_mic = const IconData(0xe8a2);
+  static const IconData perm_camera_mic = const IconData(0xe8a2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">perm_contact_calendar</i> &#x2014; material icon named "perm contact calendar".</p>
-  static const IconData perm_contact_calendar = const IconData(0xe8a3);
+  static const IconData perm_contact_calendar = const IconData(0xe8a3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">perm_data_setting</i> &#x2014; material icon named "perm data setting".</p>
-  static const IconData perm_data_setting = const IconData(0xe8a4);
+  static const IconData perm_data_setting = const IconData(0xe8a4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">perm_device_information</i> &#x2014; material icon named "perm device information".</p>
-  static const IconData perm_device_information = const IconData(0xe8a5);
+  static const IconData perm_device_information = const IconData(0xe8a5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">perm_identity</i> &#x2014; material icon named "perm identity".</p>
-  static const IconData perm_identity = const IconData(0xe8a6);
+  static const IconData perm_identity = const IconData(0xe8a6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">perm_media</i> &#x2014; material icon named "perm media".</p>
-  static const IconData perm_media = const IconData(0xe8a7);
+  static const IconData perm_media = const IconData(0xe8a7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">perm_phone_msg</i> &#x2014; material icon named "perm phone msg".</p>
-  static const IconData perm_phone_msg = const IconData(0xe8a8);
+  static const IconData perm_phone_msg = const IconData(0xe8a8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">perm_scan_wifi</i> &#x2014; material icon named "perm scan wifi".</p>
-  static const IconData perm_scan_wifi = const IconData(0xe8a9);
+  static const IconData perm_scan_wifi = const IconData(0xe8a9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">person</i> &#x2014; material icon named "person".</p>
-  static const IconData person = const IconData(0xe7fd);
+  static const IconData person = const IconData(0xe7fd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">person_add</i> &#x2014; material icon named "person add".</p>
-  static const IconData person_add = const IconData(0xe7fe);
+  static const IconData person_add = const IconData(0xe7fe, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">person_outline</i> &#x2014; material icon named "person outline".</p>
-  static const IconData person_outline = const IconData(0xe7ff);
+  static const IconData person_outline = const IconData(0xe7ff, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">person_pin</i> &#x2014; material icon named "person pin".</p>
-  static const IconData person_pin = const IconData(0xe55a);
+  static const IconData person_pin = const IconData(0xe55a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">person_pin_circle</i> &#x2014; material icon named "person pin circle".</p>
-  static const IconData person_pin_circle = const IconData(0xe56a);
+  static const IconData person_pin_circle = const IconData(0xe56a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">personal_video</i> &#x2014; material icon named "personal video".</p>
-  static const IconData personal_video = const IconData(0xe63b);
+  static const IconData personal_video = const IconData(0xe63b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pets</i> &#x2014; material icon named "pets".</p>
-  static const IconData pets = const IconData(0xe91d);
+  static const IconData pets = const IconData(0xe91d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone</i> &#x2014; material icon named "phone".</p>
-  static const IconData phone = const IconData(0xe0cd);
+  static const IconData phone = const IconData(0xe0cd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone_android</i> &#x2014; material icon named "phone android".</p>
-  static const IconData phone_android = const IconData(0xe324);
+  static const IconData phone_android = const IconData(0xe324, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone_bluetooth_speaker</i> &#x2014; material icon named "phone bluetooth speaker".</p>
-  static const IconData phone_bluetooth_speaker = const IconData(0xe61b);
+  static const IconData phone_bluetooth_speaker = const IconData(0xe61b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone_forwarded</i> &#x2014; material icon named "phone forwarded".</p>
-  static const IconData phone_forwarded = const IconData(0xe61c);
+  static const IconData phone_forwarded = const IconData(0xe61c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone_in_talk</i> &#x2014; material icon named "phone in talk".</p>
-  static const IconData phone_in_talk = const IconData(0xe61d);
+  static const IconData phone_in_talk = const IconData(0xe61d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone_iphone</i> &#x2014; material icon named "phone iphone".</p>
-  static const IconData phone_iphone = const IconData(0xe325);
+  static const IconData phone_iphone = const IconData(0xe325, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone_locked</i> &#x2014; material icon named "phone locked".</p>
-  static const IconData phone_locked = const IconData(0xe61e);
+  static const IconData phone_locked = const IconData(0xe61e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone_missed</i> &#x2014; material icon named "phone missed".</p>
-  static const IconData phone_missed = const IconData(0xe61f);
+  static const IconData phone_missed = const IconData(0xe61f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phone_paused</i> &#x2014; material icon named "phone paused".</p>
-  static const IconData phone_paused = const IconData(0xe620);
+  static const IconData phone_paused = const IconData(0xe620, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phonelink</i> &#x2014; material icon named "phonelink".</p>
-  static const IconData phonelink = const IconData(0xe326);
+  static const IconData phonelink = const IconData(0xe326, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phonelink_erase</i> &#x2014; material icon named "phonelink erase".</p>
-  static const IconData phonelink_erase = const IconData(0xe0db);
+  static const IconData phonelink_erase = const IconData(0xe0db, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phonelink_lock</i> &#x2014; material icon named "phonelink lock".</p>
-  static const IconData phonelink_lock = const IconData(0xe0dc);
+  static const IconData phonelink_lock = const IconData(0xe0dc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phonelink_off</i> &#x2014; material icon named "phonelink off".</p>
-  static const IconData phonelink_off = const IconData(0xe327);
+  static const IconData phonelink_off = const IconData(0xe327, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phonelink_ring</i> &#x2014; material icon named "phonelink ring".</p>
-  static const IconData phonelink_ring = const IconData(0xe0dd);
+  static const IconData phonelink_ring = const IconData(0xe0dd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">phonelink_setup</i> &#x2014; material icon named "phonelink setup".</p>
-  static const IconData phonelink_setup = const IconData(0xe0de);
+  static const IconData phonelink_setup = const IconData(0xe0de, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">photo</i> &#x2014; material icon named "photo".</p>
-  static const IconData photo = const IconData(0xe410);
+  static const IconData photo = const IconData(0xe410, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">photo_album</i> &#x2014; material icon named "photo album".</p>
-  static const IconData photo_album = const IconData(0xe411);
+  static const IconData photo_album = const IconData(0xe411, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">photo_camera</i> &#x2014; material icon named "photo camera".</p>
-  static const IconData photo_camera = const IconData(0xe412);
+  static const IconData photo_camera = const IconData(0xe412, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">photo_filter</i> &#x2014; material icon named "photo filter".</p>
-  static const IconData photo_filter = const IconData(0xe43b);
+  static const IconData photo_filter = const IconData(0xe43b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">photo_library</i> &#x2014; material icon named "photo library".</p>
-  static const IconData photo_library = const IconData(0xe413);
+  static const IconData photo_library = const IconData(0xe413, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">photo_size_select_actual</i> &#x2014; material icon named "photo size select actual".</p>
-  static const IconData photo_size_select_actual = const IconData(0xe432);
+  static const IconData photo_size_select_actual = const IconData(0xe432, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">photo_size_select_large</i> &#x2014; material icon named "photo size select large".</p>
-  static const IconData photo_size_select_large = const IconData(0xe433);
+  static const IconData photo_size_select_large = const IconData(0xe433, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">photo_size_select_small</i> &#x2014; material icon named "photo size select small".</p>
-  static const IconData photo_size_select_small = const IconData(0xe434);
+  static const IconData photo_size_select_small = const IconData(0xe434, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">picture_as_pdf</i> &#x2014; material icon named "picture as pdf".</p>
-  static const IconData picture_as_pdf = const IconData(0xe415);
+  static const IconData picture_as_pdf = const IconData(0xe415, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">picture_in_picture</i> &#x2014; material icon named "picture in picture".</p>
-  static const IconData picture_in_picture = const IconData(0xe8aa);
+  static const IconData picture_in_picture = const IconData(0xe8aa, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">picture_in_picture_alt</i> &#x2014; material icon named "picture in picture alt".</p>
-  static const IconData picture_in_picture_alt = const IconData(0xe911);
+  static const IconData picture_in_picture_alt = const IconData(0xe911, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pie_chart</i> &#x2014; material icon named "pie chart".</p>
-  static const IconData pie_chart = const IconData(0xe6c4);
+  static const IconData pie_chart = const IconData(0xe6c4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pie_chart_outlined</i> &#x2014; material icon named "pie chart outlined".</p>
-  static const IconData pie_chart_outlined = const IconData(0xe6c5);
+  static const IconData pie_chart_outlined = const IconData(0xe6c5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pin_drop</i> &#x2014; material icon named "pin drop".</p>
-  static const IconData pin_drop = const IconData(0xe55e);
+  static const IconData pin_drop = const IconData(0xe55e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">place</i> &#x2014; material icon named "place".</p>
-  static const IconData place = const IconData(0xe55f);
+  static const IconData place = const IconData(0xe55f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">play_arrow</i> &#x2014; material icon named "play arrow".</p>
-  static const IconData play_arrow = const IconData(0xe037);
+  static const IconData play_arrow = const IconData(0xe037, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">play_circle_filled</i> &#x2014; material icon named "play circle filled".</p>
-  static const IconData play_circle_filled = const IconData(0xe038);
+  static const IconData play_circle_filled = const IconData(0xe038, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">play_circle_outline</i> &#x2014; material icon named "play circle outline".</p>
-  static const IconData play_circle_outline = const IconData(0xe039);
+  static const IconData play_circle_outline = const IconData(0xe039, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">play_for_work</i> &#x2014; material icon named "play for work".</p>
-  static const IconData play_for_work = const IconData(0xe906);
+  static const IconData play_for_work = const IconData(0xe906, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">playlist_add</i> &#x2014; material icon named "playlist add".</p>
-  static const IconData playlist_add = const IconData(0xe03b);
+  static const IconData playlist_add = const IconData(0xe03b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">playlist_add_check</i> &#x2014; material icon named "playlist add check".</p>
-  static const IconData playlist_add_check = const IconData(0xe065);
+  static const IconData playlist_add_check = const IconData(0xe065, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">playlist_play</i> &#x2014; material icon named "playlist play".</p>
-  static const IconData playlist_play = const IconData(0xe05f);
+  static const IconData playlist_play = const IconData(0xe05f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">plus_one</i> &#x2014; material icon named "plus one".</p>
-  static const IconData plus_one = const IconData(0xe800);
+  static const IconData plus_one = const IconData(0xe800, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">poll</i> &#x2014; material icon named "poll".</p>
-  static const IconData poll = const IconData(0xe801);
+  static const IconData poll = const IconData(0xe801, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">polymer</i> &#x2014; material icon named "polymer".</p>
-  static const IconData polymer = const IconData(0xe8ab);
+  static const IconData polymer = const IconData(0xe8ab, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pool</i> &#x2014; material icon named "pool".</p>
-  static const IconData pool = const IconData(0xeb48);
+  static const IconData pool = const IconData(0xeb48, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">portable_wifi_off</i> &#x2014; material icon named "portable wifi off".</p>
-  static const IconData portable_wifi_off = const IconData(0xe0ce);
+  static const IconData portable_wifi_off = const IconData(0xe0ce, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">portrait</i> &#x2014; material icon named "portrait".</p>
-  static const IconData portrait = const IconData(0xe416);
+  static const IconData portrait = const IconData(0xe416, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">power</i> &#x2014; material icon named "power".</p>
-  static const IconData power = const IconData(0xe63c);
+  static const IconData power = const IconData(0xe63c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">power_input</i> &#x2014; material icon named "power input".</p>
-  static const IconData power_input = const IconData(0xe336);
+  static const IconData power_input = const IconData(0xe336, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">power_settings_new</i> &#x2014; material icon named "power settings new".</p>
-  static const IconData power_settings_new = const IconData(0xe8ac);
+  static const IconData power_settings_new = const IconData(0xe8ac, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">pregnant_woman</i> &#x2014; material icon named "pregnant woman".</p>
-  static const IconData pregnant_woman = const IconData(0xe91e);
+  static const IconData pregnant_woman = const IconData(0xe91e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">present_to_all</i> &#x2014; material icon named "present to all".</p>
-  static const IconData present_to_all = const IconData(0xe0df);
+  static const IconData present_to_all = const IconData(0xe0df, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">print</i> &#x2014; material icon named "print".</p>
-  static const IconData print = const IconData(0xe8ad);
+  static const IconData print = const IconData(0xe8ad, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">priority_high</i> &#x2014; material icon named "priority high".</p>
-  static const IconData priority_high = const IconData(0xe645);
+  static const IconData priority_high = const IconData(0xe645, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">public</i> &#x2014; material icon named "public".</p>
-  static const IconData public = const IconData(0xe80b);
+  static const IconData public = const IconData(0xe80b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">publish</i> &#x2014; material icon named "publish".</p>
-  static const IconData publish = const IconData(0xe255);
+  static const IconData publish = const IconData(0xe255, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">query_builder</i> &#x2014; material icon named "query builder".</p>
-  static const IconData query_builder = const IconData(0xe8ae);
+  static const IconData query_builder = const IconData(0xe8ae, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">question_answer</i> &#x2014; material icon named "question answer".</p>
-  static const IconData question_answer = const IconData(0xe8af);
+  static const IconData question_answer = const IconData(0xe8af, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">queue</i> &#x2014; material icon named "queue".</p>
-  static const IconData queue = const IconData(0xe03c);
+  static const IconData queue = const IconData(0xe03c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">queue_music</i> &#x2014; material icon named "queue music".</p>
-  static const IconData queue_music = const IconData(0xe03d);
+  static const IconData queue_music = const IconData(0xe03d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">queue_play_next</i> &#x2014; material icon named "queue play next".</p>
-  static const IconData queue_play_next = const IconData(0xe066);
+  static const IconData queue_play_next = const IconData(0xe066, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">radio</i> &#x2014; material icon named "radio".</p>
-  static const IconData radio = const IconData(0xe03e);
+  static const IconData radio = const IconData(0xe03e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">radio_button_checked</i> &#x2014; material icon named "radio button checked".</p>
-  static const IconData radio_button_checked = const IconData(0xe837);
+  static const IconData radio_button_checked = const IconData(0xe837, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">radio_button_unchecked</i> &#x2014; material icon named "radio button unchecked".</p>
-  static const IconData radio_button_unchecked = const IconData(0xe836);
+  static const IconData radio_button_unchecked = const IconData(0xe836, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">rate_review</i> &#x2014; material icon named "rate review".</p>
-  static const IconData rate_review = const IconData(0xe560);
+  static const IconData rate_review = const IconData(0xe560, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">receipt</i> &#x2014; material icon named "receipt".</p>
-  static const IconData receipt = const IconData(0xe8b0);
+  static const IconData receipt = const IconData(0xe8b0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">recent_actors</i> &#x2014; material icon named "recent actors".</p>
-  static const IconData recent_actors = const IconData(0xe03f);
+  static const IconData recent_actors = const IconData(0xe03f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">record_voice_over</i> &#x2014; material icon named "record voice over".</p>
-  static const IconData record_voice_over = const IconData(0xe91f);
+  static const IconData record_voice_over = const IconData(0xe91f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">redeem</i> &#x2014; material icon named "redeem".</p>
-  static const IconData redeem = const IconData(0xe8b1);
+  static const IconData redeem = const IconData(0xe8b1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">redo</i> &#x2014; material icon named "redo".</p>
-  static const IconData redo = const IconData(0xe15a);
+  static const IconData redo = const IconData(0xe15a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">refresh</i> &#x2014; material icon named "refresh".</p>
-  static const IconData refresh = const IconData(0xe5d5);
+  static const IconData refresh = const IconData(0xe5d5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">remove</i> &#x2014; material icon named "remove".</p>
-  static const IconData remove = const IconData(0xe15b);
+  static const IconData remove = const IconData(0xe15b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">remove_circle</i> &#x2014; material icon named "remove circle".</p>
-  static const IconData remove_circle = const IconData(0xe15c);
+  static const IconData remove_circle = const IconData(0xe15c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">remove_circle_outline</i> &#x2014; material icon named "remove circle outline".</p>
-  static const IconData remove_circle_outline = const IconData(0xe15d);
+  static const IconData remove_circle_outline = const IconData(0xe15d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">remove_from_queue</i> &#x2014; material icon named "remove from queue".</p>
-  static const IconData remove_from_queue = const IconData(0xe067);
+  static const IconData remove_from_queue = const IconData(0xe067, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">remove_red_eye</i> &#x2014; material icon named "remove red eye".</p>
-  static const IconData remove_red_eye = const IconData(0xe417);
+  static const IconData remove_red_eye = const IconData(0xe417, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">remove_shopping_cart</i> &#x2014; material icon named "remove shopping cart".</p>
-  static const IconData remove_shopping_cart = const IconData(0xe928);
+  static const IconData remove_shopping_cart = const IconData(0xe928, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">reorder</i> &#x2014; material icon named "reorder".</p>
-  static const IconData reorder = const IconData(0xe8fe);
+  static const IconData reorder = const IconData(0xe8fe, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">repeat</i> &#x2014; material icon named "repeat".</p>
-  static const IconData repeat = const IconData(0xe040);
+  static const IconData repeat = const IconData(0xe040, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">repeat_one</i> &#x2014; material icon named "repeat one".</p>
-  static const IconData repeat_one = const IconData(0xe041);
+  static const IconData repeat_one = const IconData(0xe041, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">replay</i> &#x2014; material icon named "replay".</p>
-  static const IconData replay = const IconData(0xe042);
+  static const IconData replay = const IconData(0xe042, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">replay_10</i> &#x2014; material icon named "replay 10".</p>
-  static const IconData replay_10 = const IconData(0xe059);
+  static const IconData replay_10 = const IconData(0xe059, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">replay_30</i> &#x2014; material icon named "replay 30".</p>
-  static const IconData replay_30 = const IconData(0xe05a);
+  static const IconData replay_30 = const IconData(0xe05a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">replay_5</i> &#x2014; material icon named "replay 5".</p>
-  static const IconData replay_5 = const IconData(0xe05b);
+  static const IconData replay_5 = const IconData(0xe05b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">reply</i> &#x2014; material icon named "reply".</p>
-  static const IconData reply = const IconData(0xe15e);
+  static const IconData reply = const IconData(0xe15e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">reply_all</i> &#x2014; material icon named "reply all".</p>
-  static const IconData reply_all = const IconData(0xe15f);
+  static const IconData reply_all = const IconData(0xe15f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">report</i> &#x2014; material icon named "report".</p>
-  static const IconData report = const IconData(0xe160);
+  static const IconData report = const IconData(0xe160, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">report_off</i> &#x2014; material icon named "report off".</p>
-  static const IconData report_off = const IconData(0xe170);
+  static const IconData report_off = const IconData(0xe170, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">report_problem</i> &#x2014; material icon named "report problem".</p>
-  static const IconData report_problem = const IconData(0xe8b2);
+  static const IconData report_problem = const IconData(0xe8b2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">restaurant</i> &#x2014; material icon named "restaurant".</p>
-  static const IconData restaurant = const IconData(0xe56c);
+  static const IconData restaurant = const IconData(0xe56c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">restaurant_menu</i> &#x2014; material icon named "restaurant menu".</p>
-  static const IconData restaurant_menu = const IconData(0xe561);
+  static const IconData restaurant_menu = const IconData(0xe561, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">restore</i> &#x2014; material icon named "restore".</p>
-  static const IconData restore = const IconData(0xe8b3);
+  static const IconData restore = const IconData(0xe8b3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">restore_from_trash</i> &#x2014; material icon named "restore from trash".</p>
-  static const IconData restore_from_trash = const IconData(0xe938);
+  static const IconData restore_from_trash = const IconData(0xe938, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">restore_page</i> &#x2014; material icon named "restore page".</p>
-  static const IconData restore_page = const IconData(0xe929);
+  static const IconData restore_page = const IconData(0xe929, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">ring_volume</i> &#x2014; material icon named "ring volume".</p>
-  static const IconData ring_volume = const IconData(0xe0d1);
+  static const IconData ring_volume = const IconData(0xe0d1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">room</i> &#x2014; material icon named "room".</p>
-  static const IconData room = const IconData(0xe8b4);
+  static const IconData room = const IconData(0xe8b4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">room_service</i> &#x2014; material icon named "room service".</p>
-  static const IconData room_service = const IconData(0xeb49);
+  static const IconData room_service = const IconData(0xeb49, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">rotate_90_degrees_ccw</i> &#x2014; material icon named "rotate 90 degrees ccw".</p>
-  static const IconData rotate_90_degrees_ccw = const IconData(0xe418);
+  static const IconData rotate_90_degrees_ccw = const IconData(0xe418, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">rotate_left</i> &#x2014; material icon named "rotate left".</p>
-  static const IconData rotate_left = const IconData(0xe419);
+  static const IconData rotate_left = const IconData(0xe419, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">rotate_right</i> &#x2014; material icon named "rotate right".</p>
-  static const IconData rotate_right = const IconData(0xe41a);
+  static const IconData rotate_right = const IconData(0xe41a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">rounded_corner</i> &#x2014; material icon named "rounded corner".</p>
-  static const IconData rounded_corner = const IconData(0xe920);
+  static const IconData rounded_corner = const IconData(0xe920, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">router</i> &#x2014; material icon named "router".</p>
-  static const IconData router = const IconData(0xe328);
+  static const IconData router = const IconData(0xe328, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">rowing</i> &#x2014; material icon named "rowing".</p>
-  static const IconData rowing = const IconData(0xe921);
+  static const IconData rowing = const IconData(0xe921, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">rss_feed</i> &#x2014; material icon named "rss feed".</p>
-  static const IconData rss_feed = const IconData(0xe0e5);
+  static const IconData rss_feed = const IconData(0xe0e5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">rv_hookup</i> &#x2014; material icon named "rv hookup".</p>
-  static const IconData rv_hookup = const IconData(0xe642);
+  static const IconData rv_hookup = const IconData(0xe642, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">satellite</i> &#x2014; material icon named "satellite".</p>
-  static const IconData satellite = const IconData(0xe562);
+  static const IconData satellite = const IconData(0xe562, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">save</i> &#x2014; material icon named "save".</p>
-  static const IconData save = const IconData(0xe161);
+  static const IconData save = const IconData(0xe161, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">save_alt</i> &#x2014; material icon named "save alt".</p>
-  static const IconData save_alt = const IconData(0xe171);
+  static const IconData save_alt = const IconData(0xe171, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">scanner</i> &#x2014; material icon named "scanner".</p>
-  static const IconData scanner = const IconData(0xe329);
+  static const IconData scanner = const IconData(0xe329, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">scatter_plot</i> &#x2014; material icon named "scatter plot".</p>
-  static const IconData scatter_plot = const IconData(0xe268);
+  static const IconData scatter_plot = const IconData(0xe268, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">schedule</i> &#x2014; material icon named "schedule".</p>
-  static const IconData schedule = const IconData(0xe8b5);
+  static const IconData schedule = const IconData(0xe8b5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">school</i> &#x2014; material icon named "school".</p>
-  static const IconData school = const IconData(0xe80c);
+  static const IconData school = const IconData(0xe80c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">score</i> &#x2014; material icon named "score".</p>
-  static const IconData score = const IconData(0xe269);
+  static const IconData score = const IconData(0xe269, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">screen_lock_landscape</i> &#x2014; material icon named "screen lock landscape".</p>
-  static const IconData screen_lock_landscape = const IconData(0xe1be);
+  static const IconData screen_lock_landscape = const IconData(0xe1be, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">screen_lock_portrait</i> &#x2014; material icon named "screen lock portrait".</p>
-  static const IconData screen_lock_portrait = const IconData(0xe1bf);
+  static const IconData screen_lock_portrait = const IconData(0xe1bf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">screen_lock_rotation</i> &#x2014; material icon named "screen lock rotation".</p>
-  static const IconData screen_lock_rotation = const IconData(0xe1c0);
+  static const IconData screen_lock_rotation = const IconData(0xe1c0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">screen_rotation</i> &#x2014; material icon named "screen rotation".</p>
-  static const IconData screen_rotation = const IconData(0xe1c1);
+  static const IconData screen_rotation = const IconData(0xe1c1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">screen_share</i> &#x2014; material icon named "screen share".</p>
-  static const IconData screen_share = const IconData(0xe0e2);
+  static const IconData screen_share = const IconData(0xe0e2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sd_card</i> &#x2014; material icon named "sd card".</p>
-  static const IconData sd_card = const IconData(0xe623);
+  static const IconData sd_card = const IconData(0xe623, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sd_storage</i> &#x2014; material icon named "sd storage".</p>
-  static const IconData sd_storage = const IconData(0xe1c2);
+  static const IconData sd_storage = const IconData(0xe1c2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">search</i> &#x2014; material icon named "search".</p>
-  static const IconData search = const IconData(0xe8b6);
+  static const IconData search = const IconData(0xe8b6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">security</i> &#x2014; material icon named "security".</p>
-  static const IconData security = const IconData(0xe32a);
+  static const IconData security = const IconData(0xe32a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">select_all</i> &#x2014; material icon named "select all".</p>
-  static const IconData select_all = const IconData(0xe162);
+  static const IconData select_all = const IconData(0xe162, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">send</i> &#x2014; material icon named "send".</p>
-  static const IconData send = const IconData(0xe163);
+  static const IconData send = const IconData(0xe163, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sentiment_dissatisfied</i> &#x2014; material icon named "sentiment dissatisfied".</p>
-  static const IconData sentiment_dissatisfied = const IconData(0xe811);
+  static const IconData sentiment_dissatisfied = const IconData(0xe811, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sentiment_neutral</i> &#x2014; material icon named "sentiment neutral".</p>
-  static const IconData sentiment_neutral = const IconData(0xe812);
+  static const IconData sentiment_neutral = const IconData(0xe812, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sentiment_satisfied</i> &#x2014; material icon named "sentiment satisfied".</p>
-  static const IconData sentiment_satisfied = const IconData(0xe813);
+  static const IconData sentiment_satisfied = const IconData(0xe813, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sentiment_very_dissatisfied</i> &#x2014; material icon named "sentiment very dissatisfied".</p>
-  static const IconData sentiment_very_dissatisfied = const IconData(0xe814);
+  static const IconData sentiment_very_dissatisfied = const IconData(0xe814, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sentiment_very_satisfied</i> &#x2014; material icon named "sentiment very satisfied".</p>
-  static const IconData sentiment_very_satisfied = const IconData(0xe815);
+  static const IconData sentiment_very_satisfied = const IconData(0xe815, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings</i> &#x2014; material icon named "settings".</p>
-  static const IconData settings = const IconData(0xe8b8);
+  static const IconData settings = const IconData(0xe8b8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_applications</i> &#x2014; material icon named "settings applications".</p>
-  static const IconData settings_applications = const IconData(0xe8b9);
+  static const IconData settings_applications = const IconData(0xe8b9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_backup_restore</i> &#x2014; material icon named "settings backup restore".</p>
-  static const IconData settings_backup_restore = const IconData(0xe8ba);
+  static const IconData settings_backup_restore = const IconData(0xe8ba, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_bluetooth</i> &#x2014; material icon named "settings bluetooth".</p>
-  static const IconData settings_bluetooth = const IconData(0xe8bb);
+  static const IconData settings_bluetooth = const IconData(0xe8bb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_brightness</i> &#x2014; material icon named "settings brightness".</p>
-  static const IconData settings_brightness = const IconData(0xe8bd);
+  static const IconData settings_brightness = const IconData(0xe8bd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_cell</i> &#x2014; material icon named "settings cell".</p>
-  static const IconData settings_cell = const IconData(0xe8bc);
+  static const IconData settings_cell = const IconData(0xe8bc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_ethernet</i> &#x2014; material icon named "settings ethernet".</p>
-  static const IconData settings_ethernet = const IconData(0xe8be);
+  static const IconData settings_ethernet = const IconData(0xe8be, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_input_antenna</i> &#x2014; material icon named "settings input antenna".</p>
-  static const IconData settings_input_antenna = const IconData(0xe8bf);
+  static const IconData settings_input_antenna = const IconData(0xe8bf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_input_component</i> &#x2014; material icon named "settings input component".</p>
-  static const IconData settings_input_component = const IconData(0xe8c0);
+  static const IconData settings_input_component = const IconData(0xe8c0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_input_composite</i> &#x2014; material icon named "settings input composite".</p>
-  static const IconData settings_input_composite = const IconData(0xe8c1);
+  static const IconData settings_input_composite = const IconData(0xe8c1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_input_hdmi</i> &#x2014; material icon named "settings input hdmi".</p>
-  static const IconData settings_input_hdmi = const IconData(0xe8c2);
+  static const IconData settings_input_hdmi = const IconData(0xe8c2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_input_svideo</i> &#x2014; material icon named "settings input svideo".</p>
-  static const IconData settings_input_svideo = const IconData(0xe8c3);
+  static const IconData settings_input_svideo = const IconData(0xe8c3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_overscan</i> &#x2014; material icon named "settings overscan".</p>
-  static const IconData settings_overscan = const IconData(0xe8c4);
+  static const IconData settings_overscan = const IconData(0xe8c4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_phone</i> &#x2014; material icon named "settings phone".</p>
-  static const IconData settings_phone = const IconData(0xe8c5);
+  static const IconData settings_phone = const IconData(0xe8c5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_power</i> &#x2014; material icon named "settings power".</p>
-  static const IconData settings_power = const IconData(0xe8c6);
+  static const IconData settings_power = const IconData(0xe8c6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_remote</i> &#x2014; material icon named "settings remote".</p>
-  static const IconData settings_remote = const IconData(0xe8c7);
+  static const IconData settings_remote = const IconData(0xe8c7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_system_daydream</i> &#x2014; material icon named "settings system daydream".</p>
-  static const IconData settings_system_daydream = const IconData(0xe1c3);
+  static const IconData settings_system_daydream = const IconData(0xe1c3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">settings_voice</i> &#x2014; material icon named "settings voice".</p>
-  static const IconData settings_voice = const IconData(0xe8c8);
+  static const IconData settings_voice = const IconData(0xe8c8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">share</i> &#x2014; material icon named "share".</p>
-  static const IconData share = const IconData(0xe80d);
+  static const IconData share = const IconData(0xe80d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">shop</i> &#x2014; material icon named "shop".</p>
-  static const IconData shop = const IconData(0xe8c9);
+  static const IconData shop = const IconData(0xe8c9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">shop_two</i> &#x2014; material icon named "shop two".</p>
-  static const IconData shop_two = const IconData(0xe8ca);
+  static const IconData shop_two = const IconData(0xe8ca, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">shopping_basket</i> &#x2014; material icon named "shopping basket".</p>
-  static const IconData shopping_basket = const IconData(0xe8cb);
+  static const IconData shopping_basket = const IconData(0xe8cb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">shopping_cart</i> &#x2014; material icon named "shopping cart".</p>
-  static const IconData shopping_cart = const IconData(0xe8cc);
+  static const IconData shopping_cart = const IconData(0xe8cc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">short_text</i> &#x2014; material icon named "short text".</p>
-  static const IconData short_text = const IconData(0xe261);
+  static const IconData short_text = const IconData(0xe261, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">show_chart</i> &#x2014; material icon named "show chart".</p>
-  static const IconData show_chart = const IconData(0xe6e1);
+  static const IconData show_chart = const IconData(0xe6e1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">shuffle</i> &#x2014; material icon named "shuffle".</p>
-  static const IconData shuffle = const IconData(0xe043);
+  static const IconData shuffle = const IconData(0xe043, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">shutter_speed</i> &#x2014; material icon named "shutter speed".</p>
-  static const IconData shutter_speed = const IconData(0xe43d);
+  static const IconData shutter_speed = const IconData(0xe43d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">signal_cellular_4_bar</i> &#x2014; material icon named "signal cellular 4 bar".</p>
-  static const IconData signal_cellular_4_bar = const IconData(0xe1c8);
+  static const IconData signal_cellular_4_bar = const IconData(0xe1c8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">signal_cellular_connected_no_internet_4_bar</i> &#x2014; material icon named "signal cellular connected no internet 4 bar".</p>
-  static const IconData signal_cellular_connected_no_internet_4_bar = const IconData(0xe1cd);
+  static const IconData signal_cellular_connected_no_internet_4_bar = const IconData(0xe1cd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">signal_cellular_no_sim</i> &#x2014; material icon named "signal cellular no sim".</p>
-  static const IconData signal_cellular_no_sim = const IconData(0xe1ce);
+  static const IconData signal_cellular_no_sim = const IconData(0xe1ce, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">signal_cellular_null</i> &#x2014; material icon named "signal cellular null".</p>
-  static const IconData signal_cellular_null = const IconData(0xe1cf);
+  static const IconData signal_cellular_null = const IconData(0xe1cf, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">signal_cellular_off</i> &#x2014; material icon named "signal cellular off".</p>
-  static const IconData signal_cellular_off = const IconData(0xe1d0);
+  static const IconData signal_cellular_off = const IconData(0xe1d0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">signal_wifi_4_bar</i> &#x2014; material icon named "signal wifi 4 bar".</p>
-  static const IconData signal_wifi_4_bar = const IconData(0xe1d8);
+  static const IconData signal_wifi_4_bar = const IconData(0xe1d8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">signal_wifi_4_bar_lock</i> &#x2014; material icon named "signal wifi 4 bar lock".</p>
-  static const IconData signal_wifi_4_bar_lock = const IconData(0xe1d9);
+  static const IconData signal_wifi_4_bar_lock = const IconData(0xe1d9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">signal_wifi_off</i> &#x2014; material icon named "signal wifi off".</p>
-  static const IconData signal_wifi_off = const IconData(0xe1da);
+  static const IconData signal_wifi_off = const IconData(0xe1da, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sim_card</i> &#x2014; material icon named "sim card".</p>
-  static const IconData sim_card = const IconData(0xe32b);
+  static const IconData sim_card = const IconData(0xe32b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sim_card_alert</i> &#x2014; material icon named "sim card alert".</p>
-  static const IconData sim_card_alert = const IconData(0xe624);
+  static const IconData sim_card_alert = const IconData(0xe624, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">skip_next</i> &#x2014; material icon named "skip next".</p>
-  static const IconData skip_next = const IconData(0xe044);
+  static const IconData skip_next = const IconData(0xe044, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">skip_previous</i> &#x2014; material icon named "skip previous".</p>
-  static const IconData skip_previous = const IconData(0xe045);
+  static const IconData skip_previous = const IconData(0xe045, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">slideshow</i> &#x2014; material icon named "slideshow".</p>
-  static const IconData slideshow = const IconData(0xe41b);
+  static const IconData slideshow = const IconData(0xe41b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">slow_motion_video</i> &#x2014; material icon named "slow motion video".</p>
-  static const IconData slow_motion_video = const IconData(0xe068);
+  static const IconData slow_motion_video = const IconData(0xe068, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">smartphone</i> &#x2014; material icon named "smartphone".</p>
-  static const IconData smartphone = const IconData(0xe32c);
+  static const IconData smartphone = const IconData(0xe32c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">smoke_free</i> &#x2014; material icon named "smoke free".</p>
-  static const IconData smoke_free = const IconData(0xeb4a);
+  static const IconData smoke_free = const IconData(0xeb4a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">smoking_rooms</i> &#x2014; material icon named "smoking rooms".</p>
-  static const IconData smoking_rooms = const IconData(0xeb4b);
+  static const IconData smoking_rooms = const IconData(0xeb4b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sms</i> &#x2014; material icon named "sms".</p>
-  static const IconData sms = const IconData(0xe625);
+  static const IconData sms = const IconData(0xe625, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sms_failed</i> &#x2014; material icon named "sms failed".</p>
-  static const IconData sms_failed = const IconData(0xe626);
+  static const IconData sms_failed = const IconData(0xe626, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">snooze</i> &#x2014; material icon named "snooze".</p>
-  static const IconData snooze = const IconData(0xe046);
+  static const IconData snooze = const IconData(0xe046, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sort</i> &#x2014; material icon named "sort".</p>
-  static const IconData sort = const IconData(0xe164);
+  static const IconData sort = const IconData(0xe164, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sort_by_alpha</i> &#x2014; material icon named "sort by alpha".</p>
-  static const IconData sort_by_alpha = const IconData(0xe053);
+  static const IconData sort_by_alpha = const IconData(0xe053, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">spa</i> &#x2014; material icon named "spa".</p>
-  static const IconData spa = const IconData(0xeb4c);
+  static const IconData spa = const IconData(0xeb4c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">space_bar</i> &#x2014; material icon named "space bar".</p>
-  static const IconData space_bar = const IconData(0xe256);
+  static const IconData space_bar = const IconData(0xe256, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">speaker</i> &#x2014; material icon named "speaker".</p>
-  static const IconData speaker = const IconData(0xe32d);
+  static const IconData speaker = const IconData(0xe32d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">speaker_group</i> &#x2014; material icon named "speaker group".</p>
-  static const IconData speaker_group = const IconData(0xe32e);
+  static const IconData speaker_group = const IconData(0xe32e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">speaker_notes</i> &#x2014; material icon named "speaker notes".</p>
-  static const IconData speaker_notes = const IconData(0xe8cd);
+  static const IconData speaker_notes = const IconData(0xe8cd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">speaker_notes_off</i> &#x2014; material icon named "speaker notes off".</p>
-  static const IconData speaker_notes_off = const IconData(0xe92a);
+  static const IconData speaker_notes_off = const IconData(0xe92a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">speaker_phone</i> &#x2014; material icon named "speaker phone".</p>
-  static const IconData speaker_phone = const IconData(0xe0d2);
+  static const IconData speaker_phone = const IconData(0xe0d2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">spellcheck</i> &#x2014; material icon named "spellcheck".</p>
-  static const IconData spellcheck = const IconData(0xe8ce);
+  static const IconData spellcheck = const IconData(0xe8ce, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">star</i> &#x2014; material icon named "star".</p>
-  static const IconData star = const IconData(0xe838);
+  static const IconData star = const IconData(0xe838, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">star_border</i> &#x2014; material icon named "star border".</p>
-  static const IconData star_border = const IconData(0xe83a);
+  static const IconData star_border = const IconData(0xe83a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">star_half</i> &#x2014; material icon named "star half".</p>
-  static const IconData star_half = const IconData(0xe839);
+  static const IconData star_half = const IconData(0xe839, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">stars</i> &#x2014; material icon named "stars".</p>
-  static const IconData stars = const IconData(0xe8d0);
+  static const IconData stars = const IconData(0xe8d0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">stay_current_landscape</i> &#x2014; material icon named "stay current landscape".</p>
-  static const IconData stay_current_landscape = const IconData(0xe0d3);
+  static const IconData stay_current_landscape = const IconData(0xe0d3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">stay_current_portrait</i> &#x2014; material icon named "stay current portrait".</p>
-  static const IconData stay_current_portrait = const IconData(0xe0d4);
+  static const IconData stay_current_portrait = const IconData(0xe0d4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">stay_primary_landscape</i> &#x2014; material icon named "stay primary landscape".</p>
-  static const IconData stay_primary_landscape = const IconData(0xe0d5);
+  static const IconData stay_primary_landscape = const IconData(0xe0d5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">stay_primary_portrait</i> &#x2014; material icon named "stay primary portrait".</p>
-  static const IconData stay_primary_portrait = const IconData(0xe0d6);
+  static const IconData stay_primary_portrait = const IconData(0xe0d6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">stop</i> &#x2014; material icon named "stop".</p>
-  static const IconData stop = const IconData(0xe047);
+  static const IconData stop = const IconData(0xe047, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">stop_screen_share</i> &#x2014; material icon named "stop screen share".</p>
-  static const IconData stop_screen_share = const IconData(0xe0e3);
+  static const IconData stop_screen_share = const IconData(0xe0e3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">storage</i> &#x2014; material icon named "storage".</p>
-  static const IconData storage = const IconData(0xe1db);
+  static const IconData storage = const IconData(0xe1db, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">store</i> &#x2014; material icon named "store".</p>
-  static const IconData store = const IconData(0xe8d1);
+  static const IconData store = const IconData(0xe8d1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">store_mall_directory</i> &#x2014; material icon named "store mall directory".</p>
-  static const IconData store_mall_directory = const IconData(0xe563);
+  static const IconData store_mall_directory = const IconData(0xe563, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">straighten</i> &#x2014; material icon named "straighten".</p>
-  static const IconData straighten = const IconData(0xe41c);
+  static const IconData straighten = const IconData(0xe41c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">streetview</i> &#x2014; material icon named "streetview".</p>
-  static const IconData streetview = const IconData(0xe56e);
+  static const IconData streetview = const IconData(0xe56e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">strikethrough_s</i> &#x2014; material icon named "strikethrough s".</p>
-  static const IconData strikethrough_s = const IconData(0xe257);
+  static const IconData strikethrough_s = const IconData(0xe257, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">style</i> &#x2014; material icon named "style".</p>
-  static const IconData style = const IconData(0xe41d);
+  static const IconData style = const IconData(0xe41d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">subdirectory_arrow_left</i> &#x2014; material icon named "subdirectory arrow left".</p>
-  static const IconData subdirectory_arrow_left = const IconData(0xe5d9);
+  static const IconData subdirectory_arrow_left = const IconData(0xe5d9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">subdirectory_arrow_right</i> &#x2014; material icon named "subdirectory arrow right".</p>
-  static const IconData subdirectory_arrow_right = const IconData(0xe5da);
+  static const IconData subdirectory_arrow_right = const IconData(0xe5da, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">subject</i> &#x2014; material icon named "subject".</p>
-  static const IconData subject = const IconData(0xe8d2);
+  static const IconData subject = const IconData(0xe8d2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">subscriptions</i> &#x2014; material icon named "subscriptions".</p>
-  static const IconData subscriptions = const IconData(0xe064);
+  static const IconData subscriptions = const IconData(0xe064, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">subtitles</i> &#x2014; material icon named "subtitles".</p>
-  static const IconData subtitles = const IconData(0xe048);
+  static const IconData subtitles = const IconData(0xe048, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">subway</i> &#x2014; material icon named "subway".</p>
-  static const IconData subway = const IconData(0xe56f);
+  static const IconData subway = const IconData(0xe56f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">supervised_user_circle</i> &#x2014; material icon named "supervised user circle".</p>
-  static const IconData supervised_user_circle = const IconData(0xe939);
+  static const IconData supervised_user_circle = const IconData(0xe939, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">supervisor_account</i> &#x2014; material icon named "supervisor account".</p>
-  static const IconData supervisor_account = const IconData(0xe8d3);
+  static const IconData supervisor_account = const IconData(0xe8d3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">surround_sound</i> &#x2014; material icon named "surround sound".</p>
-  static const IconData surround_sound = const IconData(0xe049);
+  static const IconData surround_sound = const IconData(0xe049, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">swap_calls</i> &#x2014; material icon named "swap calls".</p>
-  static const IconData swap_calls = const IconData(0xe0d7);
+  static const IconData swap_calls = const IconData(0xe0d7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">swap_horiz</i> &#x2014; material icon named "swap horiz".</p>
-  static const IconData swap_horiz = const IconData(0xe8d4);
+  static const IconData swap_horiz = const IconData(0xe8d4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">swap_horizontal_circle</i> &#x2014; material icon named "swap horizontal circle".</p>
-  static const IconData swap_horizontal_circle = const IconData(0xe933);
+  static const IconData swap_horizontal_circle = const IconData(0xe933, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">swap_vert</i> &#x2014; material icon named "swap vert".</p>
-  static const IconData swap_vert = const IconData(0xe8d5);
+  static const IconData swap_vert = const IconData(0xe8d5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">swap_vertical_circle</i> &#x2014; material icon named "swap vertical circle".</p>
-  static const IconData swap_vertical_circle = const IconData(0xe8d6);
+  static const IconData swap_vertical_circle = const IconData(0xe8d6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">switch_camera</i> &#x2014; material icon named "switch camera".</p>
-  static const IconData switch_camera = const IconData(0xe41e);
+  static const IconData switch_camera = const IconData(0xe41e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">switch_video</i> &#x2014; material icon named "switch video".</p>
-  static const IconData switch_video = const IconData(0xe41f);
+  static const IconData switch_video = const IconData(0xe41f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sync</i> &#x2014; material icon named "sync".</p>
-  static const IconData sync = const IconData(0xe627);
+  static const IconData sync = const IconData(0xe627, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sync_disabled</i> &#x2014; material icon named "sync disabled".</p>
-  static const IconData sync_disabled = const IconData(0xe628);
+  static const IconData sync_disabled = const IconData(0xe628, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">sync_problem</i> &#x2014; material icon named "sync problem".</p>
-  static const IconData sync_problem = const IconData(0xe629);
+  static const IconData sync_problem = const IconData(0xe629, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">system_update</i> &#x2014; material icon named "system update".</p>
-  static const IconData system_update = const IconData(0xe62a);
+  static const IconData system_update = const IconData(0xe62a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">system_update_alt</i> &#x2014; material icon named "system update alt".</p>
-  static const IconData system_update_alt = const IconData(0xe8d7);
+  static const IconData system_update_alt = const IconData(0xe8d7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tab</i> &#x2014; material icon named "tab".</p>
-  static const IconData tab = const IconData(0xe8d8);
+  static const IconData tab = const IconData(0xe8d8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tab_unselected</i> &#x2014; material icon named "tab unselected".</p>
-  static const IconData tab_unselected = const IconData(0xe8d9);
+  static const IconData tab_unselected = const IconData(0xe8d9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">table_chart</i> &#x2014; material icon named "table chart".</p>
-  static const IconData table_chart = const IconData(0xe265);
+  static const IconData table_chart = const IconData(0xe265, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tablet</i> &#x2014; material icon named "tablet".</p>
-  static const IconData tablet = const IconData(0xe32f);
+  static const IconData tablet = const IconData(0xe32f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tablet_android</i> &#x2014; material icon named "tablet android".</p>
-  static const IconData tablet_android = const IconData(0xe330);
+  static const IconData tablet_android = const IconData(0xe330, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tablet_mac</i> &#x2014; material icon named "tablet mac".</p>
-  static const IconData tablet_mac = const IconData(0xe331);
+  static const IconData tablet_mac = const IconData(0xe331, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tag_faces</i> &#x2014; material icon named "tag faces".</p>
-  static const IconData tag_faces = const IconData(0xe420);
+  static const IconData tag_faces = const IconData(0xe420, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tap_and_play</i> &#x2014; material icon named "tap and play".</p>
-  static const IconData tap_and_play = const IconData(0xe62b);
+  static const IconData tap_and_play = const IconData(0xe62b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">terrain</i> &#x2014; material icon named "terrain".</p>
-  static const IconData terrain = const IconData(0xe564);
+  static const IconData terrain = const IconData(0xe564, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">text_fields</i> &#x2014; material icon named "text fields".</p>
-  static const IconData text_fields = const IconData(0xe262);
+  static const IconData text_fields = const IconData(0xe262, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">text_format</i> &#x2014; material icon named "text format".</p>
-  static const IconData text_format = const IconData(0xe165);
+  static const IconData text_format = const IconData(0xe165, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">text_rotate_up</i> &#x2014; material icon named "text rotate up".</p>
-  static const IconData text_rotate_up = const IconData(0xe93a);
+  static const IconData text_rotate_up = const IconData(0xe93a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">text_rotate_vertical</i> &#x2014; material icon named "text rotate vertical".</p>
-  static const IconData text_rotate_vertical = const IconData(0xe93b);
+  static const IconData text_rotate_vertical = const IconData(0xe93b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">text_rotation_angledown</i> &#x2014; material icon named "text rotation angledown".</p>
-  static const IconData text_rotation_angledown = const IconData(0xe93c);
+  static const IconData text_rotation_angledown = const IconData(0xe93c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">text_rotation_angleup</i> &#x2014; material icon named "text rotation angleup".</p>
-  static const IconData text_rotation_angleup = const IconData(0xe93d);
+  static const IconData text_rotation_angleup = const IconData(0xe93d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">text_rotation_down</i> &#x2014; material icon named "text rotation down".</p>
-  static const IconData text_rotation_down = const IconData(0xe93e);
+  static const IconData text_rotation_down = const IconData(0xe93e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">text_rotation_none</i> &#x2014; material icon named "text rotation none".</p>
-  static const IconData text_rotation_none = const IconData(0xe93f);
+  static const IconData text_rotation_none = const IconData(0xe93f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">textsms</i> &#x2014; material icon named "textsms".</p>
-  static const IconData textsms = const IconData(0xe0d8);
+  static const IconData textsms = const IconData(0xe0d8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">texture</i> &#x2014; material icon named "texture".</p>
-  static const IconData texture = const IconData(0xe421);
+  static const IconData texture = const IconData(0xe421, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">theaters</i> &#x2014; material icon named "theaters".</p>
-  static const IconData theaters = const IconData(0xe8da);
+  static const IconData theaters = const IconData(0xe8da, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">thumb_down</i> &#x2014; material icon named "thumb down".</p>
-  static const IconData thumb_down = const IconData(0xe8db);
+  static const IconData thumb_down = const IconData(0xe8db, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">thumb_up</i> &#x2014; material icon named "thumb up".</p>
-  static const IconData thumb_up = const IconData(0xe8dc);
+  static const IconData thumb_up = const IconData(0xe8dc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">thumbs_up_down</i> &#x2014; material icon named "thumbs up down".</p>
-  static const IconData thumbs_up_down = const IconData(0xe8dd);
+  static const IconData thumbs_up_down = const IconData(0xe8dd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">time_to_leave</i> &#x2014; material icon named "time to leave".</p>
-  static const IconData time_to_leave = const IconData(0xe62c);
+  static const IconData time_to_leave = const IconData(0xe62c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">timelapse</i> &#x2014; material icon named "timelapse".</p>
-  static const IconData timelapse = const IconData(0xe422);
+  static const IconData timelapse = const IconData(0xe422, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">timeline</i> &#x2014; material icon named "timeline".</p>
-  static const IconData timeline = const IconData(0xe922);
+  static const IconData timeline = const IconData(0xe922, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">timer</i> &#x2014; material icon named "timer".</p>
-  static const IconData timer = const IconData(0xe425);
+  static const IconData timer = const IconData(0xe425, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">timer_10</i> &#x2014; material icon named "timer 10".</p>
-  static const IconData timer_10 = const IconData(0xe423);
+  static const IconData timer_10 = const IconData(0xe423, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">timer_3</i> &#x2014; material icon named "timer 3".</p>
-  static const IconData timer_3 = const IconData(0xe424);
+  static const IconData timer_3 = const IconData(0xe424, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">timer_off</i> &#x2014; material icon named "timer off".</p>
-  static const IconData timer_off = const IconData(0xe426);
+  static const IconData timer_off = const IconData(0xe426, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">title</i> &#x2014; material icon named "title".</p>
-  static const IconData title = const IconData(0xe264);
+  static const IconData title = const IconData(0xe264, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">toc</i> &#x2014; material icon named "toc".</p>
-  static const IconData toc = const IconData(0xe8de);
+  static const IconData toc = const IconData(0xe8de, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">today</i> &#x2014; material icon named "today".</p>
-  static const IconData today = const IconData(0xe8df);
+  static const IconData today = const IconData(0xe8df, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">toll</i> &#x2014; material icon named "toll".</p>
-  static const IconData toll = const IconData(0xe8e0);
+  static const IconData toll = const IconData(0xe8e0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tonality</i> &#x2014; material icon named "tonality".</p>
-  static const IconData tonality = const IconData(0xe427);
+  static const IconData tonality = const IconData(0xe427, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">touch_app</i> &#x2014; material icon named "touch app".</p>
-  static const IconData touch_app = const IconData(0xe913);
+  static const IconData touch_app = const IconData(0xe913, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">toys</i> &#x2014; material icon named "toys".</p>
-  static const IconData toys = const IconData(0xe332);
+  static const IconData toys = const IconData(0xe332, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">track_changes</i> &#x2014; material icon named "track changes".</p>
-  static const IconData track_changes = const IconData(0xe8e1);
+  static const IconData track_changes = const IconData(0xe8e1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">traffic</i> &#x2014; material icon named "traffic".</p>
-  static const IconData traffic = const IconData(0xe565);
+  static const IconData traffic = const IconData(0xe565, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">train</i> &#x2014; material icon named "train".</p>
-  static const IconData train = const IconData(0xe570);
+  static const IconData train = const IconData(0xe570, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tram</i> &#x2014; material icon named "tram".</p>
-  static const IconData tram = const IconData(0xe571);
+  static const IconData tram = const IconData(0xe571, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">transfer_within_a_station</i> &#x2014; material icon named "transfer within a station".</p>
-  static const IconData transfer_within_a_station = const IconData(0xe572);
+  static const IconData transfer_within_a_station = const IconData(0xe572, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">transform</i> &#x2014; material icon named "transform".</p>
-  static const IconData transform = const IconData(0xe428);
+  static const IconData transform = const IconData(0xe428, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">transit_enterexit</i> &#x2014; material icon named "transit enterexit".</p>
-  static const IconData transit_enterexit = const IconData(0xe579);
+  static const IconData transit_enterexit = const IconData(0xe579, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">translate</i> &#x2014; material icon named "translate".</p>
-  static const IconData translate = const IconData(0xe8e2);
+  static const IconData translate = const IconData(0xe8e2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">trending_down</i> &#x2014; material icon named "trending down".</p>
-  static const IconData trending_down = const IconData(0xe8e3);
+  static const IconData trending_down = const IconData(0xe8e3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">trending_flat</i> &#x2014; material icon named "trending flat".</p>
-  static const IconData trending_flat = const IconData(0xe8e4);
+  static const IconData trending_flat = const IconData(0xe8e4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">trending_up</i> &#x2014; material icon named "trending up".</p>
-  static const IconData trending_up = const IconData(0xe8e5);
+  static const IconData trending_up = const IconData(0xe8e5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">trip_origin</i> &#x2014; material icon named "trip origin".</p>
-  static const IconData trip_origin = const IconData(0xe57b);
+  static const IconData trip_origin = const IconData(0xe57b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tune</i> &#x2014; material icon named "tune".</p>
-  static const IconData tune = const IconData(0xe429);
+  static const IconData tune = const IconData(0xe429, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">turned_in</i> &#x2014; material icon named "turned in".</p>
-  static const IconData turned_in = const IconData(0xe8e6);
+  static const IconData turned_in = const IconData(0xe8e6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">turned_in_not</i> &#x2014; material icon named "turned in not".</p>
-  static const IconData turned_in_not = const IconData(0xe8e7);
+  static const IconData turned_in_not = const IconData(0xe8e7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">tv</i> &#x2014; material icon named "tv".</p>
-  static const IconData tv = const IconData(0xe333);
+  static const IconData tv = const IconData(0xe333, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">unarchive</i> &#x2014; material icon named "unarchive".</p>
-  static const IconData unarchive = const IconData(0xe169);
+  static const IconData unarchive = const IconData(0xe169, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">undo</i> &#x2014; material icon named "undo".</p>
-  static const IconData undo = const IconData(0xe166);
+  static const IconData undo = const IconData(0xe166, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">unfold_less</i> &#x2014; material icon named "unfold less".</p>
-  static const IconData unfold_less = const IconData(0xe5d6);
+  static const IconData unfold_less = const IconData(0xe5d6, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">unfold_more</i> &#x2014; material icon named "unfold more".</p>
-  static const IconData unfold_more = const IconData(0xe5d7);
+  static const IconData unfold_more = const IconData(0xe5d7, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">update</i> &#x2014; material icon named "update".</p>
-  static const IconData update = const IconData(0xe923);
+  static const IconData update = const IconData(0xe923, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">usb</i> &#x2014; material icon named "usb".</p>
-  static const IconData usb = const IconData(0xe1e0);
+  static const IconData usb = const IconData(0xe1e0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">verified_user</i> &#x2014; material icon named "verified user".</p>
-  static const IconData verified_user = const IconData(0xe8e8);
+  static const IconData verified_user = const IconData(0xe8e8, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">vertical_align_bottom</i> &#x2014; material icon named "vertical align bottom".</p>
-  static const IconData vertical_align_bottom = const IconData(0xe258);
+  static const IconData vertical_align_bottom = const IconData(0xe258, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">vertical_align_center</i> &#x2014; material icon named "vertical align center".</p>
-  static const IconData vertical_align_center = const IconData(0xe259);
+  static const IconData vertical_align_center = const IconData(0xe259, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">vertical_align_top</i> &#x2014; material icon named "vertical align top".</p>
-  static const IconData vertical_align_top = const IconData(0xe25a);
+  static const IconData vertical_align_top = const IconData(0xe25a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">vibration</i> &#x2014; material icon named "vibration".</p>
-  static const IconData vibration = const IconData(0xe62d);
+  static const IconData vibration = const IconData(0xe62d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">video_call</i> &#x2014; material icon named "video call".</p>
-  static const IconData video_call = const IconData(0xe070);
+  static const IconData video_call = const IconData(0xe070, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">video_label</i> &#x2014; material icon named "video label".</p>
-  static const IconData video_label = const IconData(0xe071);
+  static const IconData video_label = const IconData(0xe071, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">video_library</i> &#x2014; material icon named "video library".</p>
-  static const IconData video_library = const IconData(0xe04a);
+  static const IconData video_library = const IconData(0xe04a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">videocam</i> &#x2014; material icon named "videocam".</p>
-  static const IconData videocam = const IconData(0xe04b);
+  static const IconData videocam = const IconData(0xe04b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">videocam_off</i> &#x2014; material icon named "videocam off".</p>
-  static const IconData videocam_off = const IconData(0xe04c);
+  static const IconData videocam_off = const IconData(0xe04c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">videogame_asset</i> &#x2014; material icon named "videogame asset".</p>
-  static const IconData videogame_asset = const IconData(0xe338);
+  static const IconData videogame_asset = const IconData(0xe338, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_agenda</i> &#x2014; material icon named "view agenda".</p>
-  static const IconData view_agenda = const IconData(0xe8e9);
+  static const IconData view_agenda = const IconData(0xe8e9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_array</i> &#x2014; material icon named "view array".</p>
-  static const IconData view_array = const IconData(0xe8ea);
+  static const IconData view_array = const IconData(0xe8ea, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_carousel</i> &#x2014; material icon named "view carousel".</p>
-  static const IconData view_carousel = const IconData(0xe8eb);
+  static const IconData view_carousel = const IconData(0xe8eb, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_column</i> &#x2014; material icon named "view column".</p>
-  static const IconData view_column = const IconData(0xe8ec);
+  static const IconData view_column = const IconData(0xe8ec, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_comfy</i> &#x2014; material icon named "view comfy".</p>
-  static const IconData view_comfy = const IconData(0xe42a);
+  static const IconData view_comfy = const IconData(0xe42a, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_compact</i> &#x2014; material icon named "view compact".</p>
-  static const IconData view_compact = const IconData(0xe42b);
+  static const IconData view_compact = const IconData(0xe42b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_day</i> &#x2014; material icon named "view day".</p>
-  static const IconData view_day = const IconData(0xe8ed);
+  static const IconData view_day = const IconData(0xe8ed, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_headline</i> &#x2014; material icon named "view headline".</p>
-  static const IconData view_headline = const IconData(0xe8ee);
+  static const IconData view_headline = const IconData(0xe8ee, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_list</i> &#x2014; material icon named "view list".</p>
-  static const IconData view_list = const IconData(0xe8ef);
+  static const IconData view_list = const IconData(0xe8ef, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_module</i> &#x2014; material icon named "view module".</p>
-  static const IconData view_module = const IconData(0xe8f0);
+  static const IconData view_module = const IconData(0xe8f0, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_quilt</i> &#x2014; material icon named "view quilt".</p>
-  static const IconData view_quilt = const IconData(0xe8f1);
+  static const IconData view_quilt = const IconData(0xe8f1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_stream</i> &#x2014; material icon named "view stream".</p>
-  static const IconData view_stream = const IconData(0xe8f2);
+  static const IconData view_stream = const IconData(0xe8f2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">view_week</i> &#x2014; material icon named "view week".</p>
-  static const IconData view_week = const IconData(0xe8f3);
+  static const IconData view_week = const IconData(0xe8f3, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">vignette</i> &#x2014; material icon named "vignette".</p>
-  static const IconData vignette = const IconData(0xe435);
+  static const IconData vignette = const IconData(0xe435, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">visibility</i> &#x2014; material icon named "visibility".</p>
-  static const IconData visibility = const IconData(0xe8f4);
+  static const IconData visibility = const IconData(0xe8f4, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">visibility_off</i> &#x2014; material icon named "visibility off".</p>
-  static const IconData visibility_off = const IconData(0xe8f5);
+  static const IconData visibility_off = const IconData(0xe8f5, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">voice_chat</i> &#x2014; material icon named "voice chat".</p>
-  static const IconData voice_chat = const IconData(0xe62e);
+  static const IconData voice_chat = const IconData(0xe62e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">voicemail</i> &#x2014; material icon named "voicemail".</p>
-  static const IconData voicemail = const IconData(0xe0d9);
+  static const IconData voicemail = const IconData(0xe0d9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">volume_down</i> &#x2014; material icon named "volume down".</p>
-  static const IconData volume_down = const IconData(0xe04d);
+  static const IconData volume_down = const IconData(0xe04d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">volume_mute</i> &#x2014; material icon named "volume mute".</p>
-  static const IconData volume_mute = const IconData(0xe04e);
+  static const IconData volume_mute = const IconData(0xe04e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">volume_off</i> &#x2014; material icon named "volume off".</p>
-  static const IconData volume_off = const IconData(0xe04f);
+  static const IconData volume_off = const IconData(0xe04f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">volume_up</i> &#x2014; material icon named "volume up".</p>
-  static const IconData volume_up = const IconData(0xe050);
+  static const IconData volume_up = const IconData(0xe050, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">vpn_key</i> &#x2014; material icon named "vpn key".</p>
-  static const IconData vpn_key = const IconData(0xe0da);
+  static const IconData vpn_key = const IconData(0xe0da, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">vpn_lock</i> &#x2014; material icon named "vpn lock".</p>
-  static const IconData vpn_lock = const IconData(0xe62f);
+  static const IconData vpn_lock = const IconData(0xe62f, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wallpaper</i> &#x2014; material icon named "wallpaper".</p>
-  static const IconData wallpaper = const IconData(0xe1bc);
+  static const IconData wallpaper = const IconData(0xe1bc, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">warning</i> &#x2014; material icon named "warning".</p>
-  static const IconData warning = const IconData(0xe002);
+  static const IconData warning = const IconData(0xe002, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">watch</i> &#x2014; material icon named "watch".</p>
-  static const IconData watch = const IconData(0xe334);
+  static const IconData watch = const IconData(0xe334, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">watch_later</i> &#x2014; material icon named "watch later".</p>
-  static const IconData watch_later = const IconData(0xe924);
+  static const IconData watch_later = const IconData(0xe924, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wb_auto</i> &#x2014; material icon named "wb auto".</p>
-  static const IconData wb_auto = const IconData(0xe42c);
+  static const IconData wb_auto = const IconData(0xe42c, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wb_cloudy</i> &#x2014; material icon named "wb cloudy".</p>
-  static const IconData wb_cloudy = const IconData(0xe42d);
+  static const IconData wb_cloudy = const IconData(0xe42d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wb_incandescent</i> &#x2014; material icon named "wb incandescent".</p>
-  static const IconData wb_incandescent = const IconData(0xe42e);
+  static const IconData wb_incandescent = const IconData(0xe42e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wb_iridescent</i> &#x2014; material icon named "wb iridescent".</p>
-  static const IconData wb_iridescent = const IconData(0xe436);
+  static const IconData wb_iridescent = const IconData(0xe436, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wb_sunny</i> &#x2014; material icon named "wb sunny".</p>
-  static const IconData wb_sunny = const IconData(0xe430);
+  static const IconData wb_sunny = const IconData(0xe430, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wc</i> &#x2014; material icon named "wc".</p>
-  static const IconData wc = const IconData(0xe63d);
+  static const IconData wc = const IconData(0xe63d, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">web</i> &#x2014; material icon named "web".</p>
-  static const IconData web = const IconData(0xe051);
+  static const IconData web = const IconData(0xe051, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">web_asset</i> &#x2014; material icon named "web asset".</p>
-  static const IconData web_asset = const IconData(0xe069);
+  static const IconData web_asset = const IconData(0xe069, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">weekend</i> &#x2014; material icon named "weekend".</p>
-  static const IconData weekend = const IconData(0xe16b);
+  static const IconData weekend = const IconData(0xe16b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">whatshot</i> &#x2014; material icon named "whatshot".</p>
-  static const IconData whatshot = const IconData(0xe80e);
+  static const IconData whatshot = const IconData(0xe80e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">widgets</i> &#x2014; material icon named "widgets".</p>
-  static const IconData widgets = const IconData(0xe1bd);
+  static const IconData widgets = const IconData(0xe1bd, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wifi</i> &#x2014; material icon named "wifi".</p>
-  static const IconData wifi = const IconData(0xe63e);
+  static const IconData wifi = const IconData(0xe63e, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wifi_lock</i> &#x2014; material icon named "wifi lock".</p>
-  static const IconData wifi_lock = const IconData(0xe1e1);
+  static const IconData wifi_lock = const IconData(0xe1e1, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wifi_tethering</i> &#x2014; material icon named "wifi tethering".</p>
-  static const IconData wifi_tethering = const IconData(0xe1e2);
+  static const IconData wifi_tethering = const IconData(0xe1e2, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">work</i> &#x2014; material icon named "work".</p>
-  static const IconData work = const IconData(0xe8f9);
+  static const IconData work = const IconData(0xe8f9, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">wrap_text</i> &#x2014; material icon named "wrap text".</p>
-  static const IconData wrap_text = const IconData(0xe25b);
+  static const IconData wrap_text = const IconData(0xe25b, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">youtube_searched_for</i> &#x2014; material icon named "youtube searched for".</p>
-  static const IconData youtube_searched_for = const IconData(0xe8fa);
+  static const IconData youtube_searched_for = const IconData(0xe8fa, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">zoom_in</i> &#x2014; material icon named "zoom in".</p>
-  static const IconData zoom_in = const IconData(0xe8ff);
+  static const IconData zoom_in = const IconData(0xe8ff, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">zoom_out</i> &#x2014; material icon named "zoom out".</p>
-  static const IconData zoom_out = const IconData(0xe900);
+  static const IconData zoom_out = const IconData(0xe900, fontFamily: 'MaterialIcons');
 
   /// <p><i class="material-icons md-36">zoom_out_map</i> &#x2014; material icon named "zoom out map".</p>
-  static const IconData zoom_out_map = const IconData(0xe56b);
+  static const IconData zoom_out_map = const IconData(0xe56b, fontFamily: 'MaterialIcons');
   // END GENERATED
 }
diff --git a/packages/flutter/lib/src/material/input_decorator.dart b/packages/flutter/lib/src/material/input_decorator.dart
index 6b7f418..7e5ed82 100644
--- a/packages/flutter/lib/src/material/input_decorator.dart
+++ b/packages/flutter/lib/src/material/input_decorator.dart
@@ -7,9 +7,6 @@
 
 import 'colors.dart';
 import 'debug.dart';
-import 'icon.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'theme.dart';
 
 const Duration _kTransitionDuration = const Duration(milliseconds: 200);
diff --git a/packages/flutter/lib/src/material/list_tile.dart b/packages/flutter/lib/src/material/list_tile.dart
index 607b8a7..525e280 100644
--- a/packages/flutter/lib/src/material/list_tile.dart
+++ b/packages/flutter/lib/src/material/list_tile.dart
@@ -8,8 +8,6 @@
 import 'colors.dart';
 import 'constants.dart';
 import 'debug.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'ink_well.dart';
 import 'theme.dart';
 
diff --git a/packages/flutter/lib/src/material/paginated_data_table.dart b/packages/flutter/lib/src/material/paginated_data_table.dart
index e63d848..c2bee85 100644
--- a/packages/flutter/lib/src/material/paginated_data_table.dart
+++ b/packages/flutter/lib/src/material/paginated_data_table.dart
@@ -14,10 +14,7 @@
 import 'data_table.dart';
 import 'data_table_source.dart';
 import 'dropdown.dart';
-import 'icon.dart';
 import 'icon_button.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'icons.dart';
 import 'progress_indicator.dart';
 import 'theme.dart';
diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart
index e536b9d..b685878 100644
--- a/packages/flutter/lib/src/material/popup_menu.dart
+++ b/packages/flutter/lib/src/material/popup_menu.dart
@@ -9,10 +9,7 @@
 
 import 'constants.dart';
 import 'divider.dart';
-import 'icon.dart';
 import 'icon_button.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'icons.dart';
 import 'ink_well.dart';
 import 'list_tile.dart';
diff --git a/packages/flutter/lib/src/material/stepper.dart b/packages/flutter/lib/src/material/stepper.dart
index e6776b5..c2e964c 100644
--- a/packages/flutter/lib/src/material/stepper.dart
+++ b/packages/flutter/lib/src/material/stepper.dart
@@ -9,7 +9,6 @@
 import 'colors.dart';
 import 'debug.dart';
 import 'flat_button.dart';
-import 'icon.dart';
 import 'icons.dart';
 import 'ink_well.dart';
 import 'material.dart';
diff --git a/packages/flutter/lib/src/material/tabs.dart b/packages/flutter/lib/src/material/tabs.dart
index f0d01f9..c6ed44b 100644
--- a/packages/flutter/lib/src/material/tabs.dart
+++ b/packages/flutter/lib/src/material/tabs.dart
@@ -13,8 +13,6 @@
 import 'colors.dart';
 import 'constants.dart';
 import 'debug.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'ink_well.dart';
 import 'material.dart';
 import 'tab_controller.dart';
diff --git a/packages/flutter/lib/src/material/theme.dart b/packages/flutter/lib/src/material/theme.dart
index 1864fea..c6c5bb8 100644
--- a/packages/flutter/lib/src/material/theme.dart
+++ b/packages/flutter/lib/src/material/theme.dart
@@ -5,7 +5,6 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/widgets.dart';
 
-import 'icon_theme.dart';
 import 'theme_data.dart';
 
 export 'theme_data.dart' show Brightness, ThemeData;
diff --git a/packages/flutter/lib/src/material/theme_data.dart b/packages/flutter/lib/src/material/theme_data.dart
index ed08be6..cc134fb 100644
--- a/packages/flutter/lib/src/material/theme_data.dart
+++ b/packages/flutter/lib/src/material/theme_data.dart
@@ -6,9 +6,9 @@
 import 'dart:ui' show Color, hashValues;
 
 import 'package:flutter/foundation.dart';
+import 'package:flutter/widgets.dart';
 
 import 'colors.dart';
-import 'icon_theme_data.dart';
 import 'typography.dart';
 
 /// Describes the contrast needs of a color.
diff --git a/packages/flutter/lib/src/material/two_level_list.dart b/packages/flutter/lib/src/material/two_level_list.dart
index 02f5bac..9f32ef6 100644
--- a/packages/flutter/lib/src/material/two_level_list.dart
+++ b/packages/flutter/lib/src/material/two_level_list.dart
@@ -6,9 +6,6 @@
 import 'package:flutter/widgets.dart';
 
 import 'colors.dart';
-import 'icon.dart';
-import 'icon_theme.dart';
-import 'icon_theme_data.dart';
 import 'icons.dart';
 import 'list_tile.dart';
 import 'theme.dart';
diff --git a/packages/flutter/lib/src/material/icon.dart b/packages/flutter/lib/src/widgets/icon.dart
similarity index 74%
rename from packages/flutter/lib/src/material/icon.dart
rename to packages/flutter/lib/src/widgets/icon.dart
index 67722ab..7161b88 100644
--- a/packages/flutter/lib/src/material/icon.dart
+++ b/packages/flutter/lib/src/widgets/icon.dart
@@ -2,34 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:flutter/widgets.dart';
+import 'package:flutter/rendering.dart';
 
-import 'icon_button.dart';
+import 'basic.dart';
+import 'framework.dart';
+import 'icon_data.dart';
 import 'icon_theme.dart';
 import 'icon_theme_data.dart';
-import 'icons.dart';
-import 'theme.dart';
 
-/// A material design icon.
+
+/// A graphical icon widget drawn with a glyph from a font described in
+/// an [IconData] such as material's predefined [IconData]s in [Icons].
 ///
-/// Icons are not interactive. For an interactive icon, consider [IconButton].
-///
-/// Icons are identified by their name (as given on that page), with spaces
-/// converted to underscores, from the [Icons] class. For example, the "alarm
-/// add" icon is [Icons.alarm_add].
-///
-/// Available icons are shown on this page: <https://design.google.com/icons/>
-///
-/// To use this class, make sure you set `uses-material-design: true` in your
-/// project's `pubspec.yaml` file in the `flutter` section. This ensures that
-/// the MaterialIcons font is included in your application. This font is used to
-/// display the icons. For example:
-///
-/// ```yaml
-/// name: my_awesome_application
-/// flutter:
-///   uses-material-design: true
-/// ```
+/// Icons are not interactive. For an interactive icon, consider material's
+/// [IconButton].
 ///
 /// See also:
 ///
@@ -69,15 +55,19 @@
 
   /// The color to use when drawing the icon.
   ///
-  /// Defaults to the current [IconTheme] color, if any. If there is
-  /// no [IconTheme], then it defaults to white if the theme is dark
-  /// and black if the theme is light. See [Theme] to set the current
-  /// theme and [ThemeData.brightness] for setting the current theme's
-  /// brightness.
+  /// Defaults to the current [IconTheme] color, if any.
   ///
   /// The given color will be adjusted by the opacity of the current
   /// [IconTheme], if any.
   ///
+  /// If no [IconTheme]s are specified, icons will default to black.
+  ///
+  /// In material apps, if there is a [Theme] without any [IconTheme]s
+  /// specified, icon colors default to white if the theme is dark
+  /// and black if the theme is light.
+  /// See [Theme] to set the current theme and [ThemeData.brightness]
+  /// for setting the current theme's brightness.
+  ///
   /// Typically, a material design color will be used, as follows:
   ///
   /// ```dart
diff --git a/packages/flutter/lib/src/widgets/icon_data.dart b/packages/flutter/lib/src/widgets/icon_data.dart
new file mode 100644
index 0000000..2e38137
--- /dev/null
+++ b/packages/flutter/lib/src/widgets/icon_data.dart
@@ -0,0 +1,41 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter/foundation.dart';
+
+/// A description of an icon fulfilled by a font glyph.
+///
+/// See [Icons] for a number of predefined icons available for material
+/// design applications.
+@immutable
+class IconData {
+  /// Creates icon data.
+  ///
+  /// Rarely used directly. Instead, consider using one of the predefined icons
+  /// like the [Icons] collection.
+  const IconData(
+    this.codePoint, {
+    this.fontFamily,
+  });
+
+  /// The Unicode code point at which this icon is stored in the icon font.
+  final int codePoint;
+
+  /// The font family from which the glyph for the [codePoint] will be selected.
+  final String fontFamily;
+
+  @override
+  bool operator ==(dynamic other) {
+    if (runtimeType != other.runtimeType)
+      return false;
+    final IconData typedOther = other;
+    return codePoint == typedOther.codePoint;
+  }
+
+  @override
+  int get hashCode => codePoint.hashCode;
+
+  @override
+  String toString() => 'IconData(U+${codePoint.toRadixString(16).toUpperCase().padLeft(5, '0')})';
+}
\ No newline at end of file
diff --git a/packages/flutter/lib/src/material/icon_theme.dart b/packages/flutter/lib/src/widgets/icon_theme.dart
similarity index 97%
rename from packages/flutter/lib/src/material/icon_theme.dart
rename to packages/flutter/lib/src/widgets/icon_theme.dart
index f6e7ed7..e48a883 100644
--- a/packages/flutter/lib/src/material/icon_theme.dart
+++ b/packages/flutter/lib/src/widgets/icon_theme.dart
@@ -3,8 +3,9 @@
 // found in the LICENSE file.
 
 import 'package:flutter/foundation.dart';
-import 'package:flutter/widgets.dart';
 
+import 'basic.dart';
+import 'framework.dart';
 import 'icon_theme_data.dart';
 
 /// Controls the default color, opacity, and size of icons in a widget subtree.
diff --git a/packages/flutter/lib/src/material/icon_theme_data.dart b/packages/flutter/lib/src/widgets/icon_theme_data.dart
similarity index 100%
rename from packages/flutter/lib/src/material/icon_theme_data.dart
rename to packages/flutter/lib/src/widgets/icon_theme_data.dart
diff --git a/packages/flutter/lib/src/material/image_icon.dart b/packages/flutter/lib/src/widgets/image_icon.dart
similarity index 89%
rename from packages/flutter/lib/src/material/image_icon.dart
rename to packages/flutter/lib/src/widgets/image_icon.dart
index 90ade8d..e7f201c 100644
--- a/packages/flutter/lib/src/material/image_icon.dart
+++ b/packages/flutter/lib/src/widgets/image_icon.dart
@@ -2,13 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import 'package:flutter/rendering.dart';
 import 'package:flutter/services.dart';
-import 'package:flutter/widgets.dart';
 
-import 'icon_button.dart';
+import 'basic.dart';
+import 'framework.dart';
+import 'icon.dart';
 import 'icon_theme.dart';
 import 'icon_theme_data.dart';
-import 'icons.dart';
+import 'image.dart';
 
 /// An icon that comes from an [ImageProvider], e.g. an [AssetImage].
 ///
@@ -16,7 +18,8 @@
 ///
 ///  * [IconButton], for interactive icons.
 ///  * [IconTheme], which provides ambient configuration for icons.
-///  * [Icon] and [Icons], for icons from the material design library.
+///  * [Icon], for icons based on glyphs from fonts instead of images
+///  * [Icons], a predefined font based set of icons from the material design library.
 class ImageIcon extends StatelessWidget {
   /// Creates an image icon.
   ///
diff --git a/packages/flutter/lib/widgets.dart b/packages/flutter/lib/widgets.dart
index 3fd47eb..80660c5 100644
--- a/packages/flutter/lib/widgets.dart
+++ b/packages/flutter/lib/widgets.dart
@@ -34,7 +34,12 @@
 export 'src/widgets/gesture_detector.dart';
 export 'src/widgets/grid_paper.dart';
 export 'src/widgets/heroes.dart';
+export 'src/widgets/icon.dart';
+export 'src/widgets/icon_data.dart';
+export 'src/widgets/icon_theme.dart';
+export 'src/widgets/icon_theme_data.dart';
 export 'src/widgets/image.dart';
+export 'src/widgets/image_icon.dart';
 export 'src/widgets/implicit_animations.dart';
 export 'src/widgets/layout_builder.dart';
 export 'src/widgets/locale_query.dart';
diff --git a/packages/flutter/test/material/icon_test.dart b/packages/flutter/test/material/icon_test.dart
deleted file mode 100644
index 9dcd47b..0000000
--- a/packages/flutter/test/material/icon_test.dart
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/material.dart';
-import 'package:flutter/rendering.dart';
-import 'package:flutter/widgets.dart';
-import 'package:flutter_test/flutter_test.dart';
-
-void main() {
-  testWidgets('Icon sizing - no theme, default size', (WidgetTester tester) async {
-    await tester.pumpWidget(
-      const Center(
-        child: const Icon(null),
-      ),
-    );
-
-    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
-    expect(renderObject.size, equals(const Size.square(24.0)));
-  });
-
-  testWidgets('Icon sizing - no theme, explicit size', (WidgetTester tester) async {
-    await tester.pumpWidget(
-      const Center(
-        child: const Icon(
-          null,
-          size: 96.0,
-        ),
-      ),
-    );
-
-    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
-    expect(renderObject.size, equals(const Size.square(96.0)));
-  });
-
-  testWidgets('Icon sizing - sized theme', (WidgetTester tester) async {
-    await tester.pumpWidget(
-      const Center(
-        child: const IconTheme(
-          data: const IconThemeData(size: 36.0),
-          child: const Icon(null),
-        ),
-      ),
-    );
-
-    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
-    expect(renderObject.size, equals(const Size.square(36.0)));
-  });
-
-  testWidgets('Icon sizing - sized theme, explicit size', (WidgetTester tester) async {
-    await tester.pumpWidget(
-      const Center(
-        child: const IconTheme(
-          data: const IconThemeData(size: 36.0),
-          child: const Icon(
-            null,
-            size: 48.0,
-          ),
-        ),
-      )
-    );
-
-    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
-    expect(renderObject.size, equals(const Size.square(48.0)));
-  });
-
-  testWidgets('Icon sizing - sizeless theme, default size', (WidgetTester tester) async {
-    await tester.pumpWidget(
-      const Center(
-        child: const IconTheme(
-          data: const IconThemeData(),
-          child: const Icon(null),
-        ),
-      ),
-    );
-
-    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
-    expect(renderObject.size, equals(const Size.square(24.0)));
-  });
-
-
-  testWidgets('Icon with custom font', (WidgetTester tester) async {
-    await tester.pumpWidget(
-      const Center(
-        child: const Icon(const IconData(0x41, fontFamily: 'Roboto')),
-      ),
-    );
-
-    final RichText richText = tester.firstWidget(find.byType(RichText));
-    expect(richText.text.style.fontFamily, equals('Roboto'));
-  });
-}
diff --git a/packages/flutter/test/material/icon_data_test.dart b/packages/flutter/test/material/icons.dart
similarity index 74%
rename from packages/flutter/test/material/icon_data_test.dart
rename to packages/flutter/test/material/icons.dart
index 6ad3a61..ce58bd9 100644
--- a/packages/flutter/test/material/icon_data_test.dart
+++ b/packages/flutter/test/material/icons.dart
@@ -11,4 +11,9 @@
     expect(Icons.account_balance.hashCode, isNot(equals(Icons.account_box.hashCode)));
     expect(Icons.account_balance, hasOneLineDescription);
   });
+
+  testWidgets('Icons specify the material font', (WidgetTester tester) async {
+    expect(Icons.clear.fontFamily, 'MaterialIcons');
+    expect(Icons.search.fontFamily, 'MaterialIcons');
+  });
 }
diff --git a/packages/flutter/test/widgets/icon_test.dart b/packages/flutter/test/widgets/icon_test.dart
index 0a4a6ab..bfbe94e 100644
--- a/packages/flutter/test/widgets/icon_test.dart
+++ b/packages/flutter/test/widgets/icon_test.dart
@@ -3,20 +3,102 @@
 // found in the LICENSE file.
 
 import 'package:flutter_test/flutter_test.dart';
-import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
 
 void main() {
   testWidgets('Can set opacity for an Icon', (WidgetTester tester) async {
     await tester.pumpWidget(
-      new IconTheme(
-        data: new IconThemeData(
-          color: Colors.green[500],
+      const IconTheme(
+        data: const IconThemeData(
+          color: const Color(0xFF666666),
           opacity: 0.5
         ),
-        child: const Icon(Icons.add)
+        child: const Icon(const IconData(0xd0a0, fontFamily: 'Arial'))
       )
     );
     final RichText text = tester.widget(find.byType(RichText));
-    expect(text.text.style.color, equals(Colors.green[500].withOpacity(0.5)));
+    expect(text.text.style.color, const Color(0xFF666666).withOpacity(0.5));
+  });
+
+  testWidgets('Icon sizing - no theme, default size', (WidgetTester tester) async {
+    await tester.pumpWidget(
+      const Center(
+        child: const Icon(null),
+      ),
+    );
+
+    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
+    expect(renderObject.size, equals(const Size.square(24.0)));
+  });
+
+  testWidgets('Icon sizing - no theme, explicit size', (WidgetTester tester) async {
+    await tester.pumpWidget(
+      const Center(
+        child: const Icon(
+          null,
+          size: 96.0,
+        ),
+      ),
+    );
+
+    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
+    expect(renderObject.size, equals(const Size.square(96.0)));
+  });
+
+  testWidgets('Icon sizing - sized theme', (WidgetTester tester) async {
+    await tester.pumpWidget(
+      const Center(
+        child: const IconTheme(
+          data: const IconThemeData(size: 36.0),
+          child: const Icon(null),
+        ),
+      ),
+    );
+
+    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
+    expect(renderObject.size, equals(const Size.square(36.0)));
+  });
+
+  testWidgets('Icon sizing - sized theme, explicit size', (WidgetTester tester) async {
+    await tester.pumpWidget(
+      const Center(
+        child: const IconTheme(
+          data: const IconThemeData(size: 36.0),
+          child: const Icon(
+            null,
+            size: 48.0,
+          ),
+        ),
+      )
+    );
+
+    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
+    expect(renderObject.size, equals(const Size.square(48.0)));
+  });
+
+  testWidgets('Icon sizing - sizeless theme, default size', (WidgetTester tester) async {
+    await tester.pumpWidget(
+      const Center(
+        child: const IconTheme(
+          data: const IconThemeData(),
+          child: const Icon(null),
+        ),
+      ),
+    );
+
+    final RenderBox renderObject = tester.renderObject(find.byType(Icon));
+    expect(renderObject.size, equals(const Size.square(24.0)));
+  });
+
+
+  testWidgets('Icon with custom font', (WidgetTester tester) async {
+    await tester.pumpWidget(
+      const Center(
+        child: const Icon(const IconData(0x41, fontFamily: 'Roboto')),
+      ),
+    );
+
+    final RichText richText = tester.firstWidget(find.byType(RichText));
+    expect(richText.text.style.fontFamily, equals('Roboto'));
   });
 }
diff --git a/packages/flutter/test/material/icon_theme_data_test.dart b/packages/flutter/test/widgets/icon_theme_data_test.dart
similarity index 70%
rename from packages/flutter/test/material/icon_theme_data_test.dart
rename to packages/flutter/test/widgets/icon_theme_data_test.dart
index 3dd1777..cc55803 100644
--- a/packages/flutter/test/material/icon_theme_data_test.dart
+++ b/packages/flutter/test/widgets/icon_theme_data_test.dart
@@ -2,19 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
   test('IconThemeData control test', () {
-    final IconThemeData data = new IconThemeData(color: Colors.green[500], opacity: 0.5, size: 16.0);
+    final IconThemeData data = const IconThemeData(color: const Color(0xAAAAAAAA), opacity: 0.5, size: 16.0);
 
     expect(data, hasOneLineDescription);
     expect(data, equals(data.copyWith()));
     expect(data.hashCode, equals(data.copyWith().hashCode));
 
     final IconThemeData lerped = IconThemeData.lerp(data, const IconThemeData.fallback(), 0.25);
-    expect(lerped.color, equals(Color.lerp(Colors.green[500], Colors.black, 0.25)));
+    expect(lerped.color, equals(Color.lerp(const Color(0xAAAAAAAA), const Color(0xFF000000), 0.25)));
     expect(lerped.opacity, equals(0.625));
     expect(lerped.size, equals(18.0));
   });
diff --git a/packages/flutter/test/material/image_icon_test.dart b/packages/flutter/test/widgets/image_icon_test.dart
similarity index 98%
rename from packages/flutter/test/material/image_icon_test.dart
rename to packages/flutter/test/widgets/image_icon_test.dart
index 56b719d..8212083 100644
--- a/packages/flutter/test/material/image_icon_test.dart
+++ b/packages/flutter/test/widgets/image_icon_test.dart
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:flutter/material.dart';
 import 'package:flutter/rendering.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter/widgets.dart';
