[rename fixit] *Component* -> *Widget*

This patch renames StatelessComponent to StatelessWidget and
StatefulComponent to StatefulWidget.

Fixes #2308
diff --git a/dev/manual_tests/card_collection.dart b/dev/manual_tests/card_collection.dart
index 9e30d24..dd264e4 100644
--- a/dev/manual_tests/card_collection.dart
+++ b/dev/manual_tests/card_collection.dart
@@ -16,7 +16,7 @@
   Key get key => new ObjectKey(this);
 }
 
-class CardCollection extends StatefulComponent {
+class CardCollection extends StatefulWidget {
   CardCollectionState createState() => new CardCollectionState();
 }
 
diff --git a/dev/manual_tests/drag_and_drop.dart b/dev/manual_tests/drag_and_drop.dart
index 3f775e7..435ce6b 100644
--- a/dev/manual_tests/drag_and_drop.dart
+++ b/dev/manual_tests/drag_and_drop.dart
@@ -6,7 +6,7 @@
 
 import 'package:flutter/material.dart';
 
-class ExampleDragTarget extends StatefulComponent {
+class ExampleDragTarget extends StatefulWidget {
   ExampleDragTargetState createState() => new ExampleDragTargetState();
 }
 
@@ -39,7 +39,7 @@
   }
 }
 
-class Dot extends StatefulComponent {
+class Dot extends StatefulWidget {
   Dot({ Key key, this.color, this.size, this.child, this.tappable: false }) : super(key: key);
   final Color color;
   final double size;
@@ -66,7 +66,7 @@
   }
 }
 
-class ExampleDragSource extends StatelessComponent {
+class ExampleDragSource extends StatelessWidget {
   ExampleDragSource({
     Key key,
     this.color,
@@ -162,7 +162,7 @@
   bool shouldRepaint(DashOutlineCirclePainter oldPainter) => false;
 }
 
-class MovableBall extends StatelessComponent {
+class MovableBall extends StatelessWidget {
   MovableBall(this.position, this.ballPosition, this.callback);
 
   final int position;
@@ -212,7 +212,7 @@
   }
 }
 
-class DragAndDropApp extends StatefulComponent {
+class DragAndDropApp extends StatefulWidget {
   DragAndDropAppState createState() => new DragAndDropAppState();
 }
 
diff --git a/dev/manual_tests/mozart.dart b/dev/manual_tests/mozart.dart
index e01a332..4f6dd57 100644
--- a/dev/manual_tests/mozart.dart
+++ b/dev/manual_tests/mozart.dart
@@ -32,7 +32,7 @@
   bottomRight,
 }
 
-class WindowDecoration extends StatelessComponent {
+class WindowDecoration extends StatelessWidget {
   WindowDecoration({
     Key key,
     this.side,
@@ -87,7 +87,7 @@
   }
 }
 
-class Window extends StatefulComponent {
+class Window extends StatefulWidget {
   Window({ Key key, this.child, this.onClose }) : super(key: key);
 
   final ChildViewConnection child;
@@ -155,7 +155,7 @@
   }
 }
 
-class LauncherItem extends StatelessComponent {
+class LauncherItem extends StatelessWidget {
   LauncherItem({
     Key key,
     this.url,
@@ -175,7 +175,7 @@
   }
 }
 
-class Launcher extends StatelessComponent {
+class Launcher extends StatelessWidget {
   Launcher({ Key key, this.items }) : super(key: key);
 
   final List<Widget> items;
@@ -188,7 +188,7 @@
   }
 }
 
-class WindowManager extends StatefulComponent {
+class WindowManager extends StatefulWidget {
   _WindowManagerState createState() => new _WindowManagerState();
 }
 
diff --git a/dev/manual_tests/overlay_geometry.dart b/dev/manual_tests/overlay_geometry.dart
index 74526d1..aec69e5 100644
--- a/dev/manual_tests/overlay_geometry.dart
+++ b/dev/manual_tests/overlay_geometry.dart
@@ -52,7 +52,7 @@
   }
 }
 
-class Marker extends StatelessComponent {
+class Marker extends StatelessWidget {
   Marker({
     this.type: MarkerType.touch,
     this.position,
@@ -82,7 +82,7 @@
   }
 }
 
-class OverlayGeometryApp extends StatefulComponent {
+class OverlayGeometryApp extends StatefulWidget {
   OverlayGeometryAppState createState() => new OverlayGeometryAppState();
 }
 
diff --git a/dev/manual_tests/pageable_list.dart b/dev/manual_tests/pageable_list.dart
index 0884f22..5a71c54 100644
--- a/dev/manual_tests/pageable_list.dart
+++ b/dev/manual_tests/pageable_list.dart
@@ -13,7 +13,7 @@
   Key get key => new ObjectKey(this);
 }
 
-class PageableListApp extends StatefulComponent {
+class PageableListApp extends StatefulWidget {
   PageableListAppState createState() => new PageableListAppState();
 }
 
diff --git a/dev/manual_tests/raw_keyboard.dart b/dev/manual_tests/raw_keyboard.dart
index f55b142..01c2c09 100644
--- a/dev/manual_tests/raw_keyboard.dart
+++ b/dev/manual_tests/raw_keyboard.dart
@@ -30,7 +30,7 @@
   );
 }
 
-class RawKeyboardDemo extends StatefulComponent {
+class RawKeyboardDemo extends StatefulWidget {
   RawKeyboardDemo({ GlobalKey key }) : super(key: key);
 
   _HardwareKeyDemoState createState() => new _HardwareKeyDemoState();
diff --git a/examples/layers/services/media_service.dart b/examples/layers/services/media_service.dart
index d303910..1bd51ce 100644
--- a/examples/layers/services/media_service.dart
+++ b/examples/layers/services/media_service.dart
@@ -51,7 +51,7 @@
   }
 }
 
-class PianoApp extends StatelessComponent {
+class PianoApp extends StatelessWidget {
   final List<PianoKey> keys = <PianoKey>[
     new PianoKey(Colors.red[500], chimes),
     new PianoKey(Colors.orange[500], chainsaw),
diff --git a/examples/layers/widgets/autolayout.dart b/examples/layers/widgets/autolayout.dart
index b5ea376..3b4d028 100644
--- a/examples/layers/widgets/autolayout.dart
+++ b/examples/layers/widgets/autolayout.dart
@@ -46,7 +46,7 @@
   bool shouldUpdateConstraints(_MyAutoLayoutDelegate oldDelegate) => true;
 }
 
-class ColoredBoxes extends StatefulComponent {
+class ColoredBoxes extends StatefulWidget {
   _ColoredBoxesState createState() => new _ColoredBoxesState();
 }
 
diff --git a/examples/layers/widgets/gestures.dart b/examples/layers/widgets/gestures.dart
index 7a88c2c..de28095 100644
--- a/examples/layers/widgets/gestures.dart
+++ b/examples/layers/widgets/gestures.dart
@@ -54,7 +54,7 @@
   }
 }
 
-class GestureDemo extends StatefulComponent {
+class GestureDemo extends StatefulWidget {
   _GestureDemoState createState() => new _GestureDemoState();
 }
 
diff --git a/examples/layers/widgets/media_query.dart b/examples/layers/widgets/media_query.dart
index 0bd609e..b58b8a7 100644
--- a/examples/layers/widgets/media_query.dart
+++ b/examples/layers/widgets/media_query.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class AdaptedListItem extends StatelessComponent {
+class AdaptedListItem extends StatelessWidget {
   AdaptedListItem({ Key key, this.name }) : super(key: key);
 
   final String name;
@@ -26,7 +26,7 @@
   }
 }
 
-class AdaptedGridItem extends StatelessComponent {
+class AdaptedGridItem extends StatelessWidget {
   AdaptedGridItem({ Key key, this.name }) : super(key: key);
 
   final String name;
@@ -65,7 +65,7 @@
 const double _kMaxTileWidth = 150.0;
 const double _kGridViewBreakpoint = 450.0;
 
-class AdaptiveContainer extends StatelessComponent {
+class AdaptiveContainer extends StatelessWidget {
   AdaptiveContainer({ Key key, this.names }) : super(key: key);
 
   final List<String> names;
diff --git a/examples/layers/widgets/sectors.dart b/examples/layers/widgets/sectors.dart
index 258e15e..9800525 100644
--- a/examples/layers/widgets/sectors.dart
+++ b/examples/layers/widgets/sectors.dart
@@ -16,7 +16,7 @@
   );
 }
 
-class SectorApp extends StatefulComponent {
+class SectorApp extends StatefulWidget {
   SectorAppState createState() => new SectorAppState();
 }
 
diff --git a/examples/layers/widgets/spinning_mixed.dart b/examples/layers/widgets/spinning_mixed.dart
index 4927166..8a56ed8 100644
--- a/examples/layers/widgets/spinning_mixed.dart
+++ b/examples/layers/widgets/spinning_mixed.dart
@@ -16,7 +16,7 @@
 }
 
 // Solid colour, Widget version
-class Rectangle extends StatelessComponent {
+class Rectangle extends StatelessWidget {
   Rectangle(this.color, { Key key }) : super(key: key);
   final Color color;
   Widget build(BuildContext context) {
diff --git a/examples/layers/widgets/spinning_square.dart b/examples/layers/widgets/spinning_square.dart
index cd0adc1..bf754c6 100644
--- a/examples/layers/widgets/spinning_square.dart
+++ b/examples/layers/widgets/spinning_square.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/widgets.dart';
 
-class SpinningSquare extends StatefulComponent {
+class SpinningSquare extends StatefulWidget {
   _SpinningSquareState createState() => new _SpinningSquareState();
 }
 
diff --git a/examples/layers/widgets/styled_text.dart b/examples/layers/widgets/styled_text.dart
index 01e1ed1..af6ce89 100644
--- a/examples/layers/widgets/styled_text.dart
+++ b/examples/layers/widgets/styled_text.dart
@@ -57,7 +57,7 @@
 
 Widget toPlainText(String name, String text) => new Text(name + ":" + text);
 
-class SpeakerSeparator extends StatelessComponent {
+class SpeakerSeparator extends StatelessWidget {
   Widget build(BuildContext context) {
     return new Container(
       constraints: const BoxConstraints.expand(height: 0.0),
@@ -71,7 +71,7 @@
   }
 }
 
-class StyledTextDemo extends StatefulComponent {
+class StyledTextDemo extends StatefulWidget {
   _StyledTextDemoState createState() => new _StyledTextDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/buttons_demo.dart b/examples/material_gallery/lib/demo/buttons_demo.dart
index a9fd6a8..4fb92b2 100644
--- a/examples/material_gallery/lib/demo/buttons_demo.dart
+++ b/examples/material_gallery/lib/demo/buttons_demo.dart
@@ -55,7 +55,7 @@
   int get hashCode => hashValues(title.hashCode, text.hashCode);
 }
 
-class ButtonsDemo extends StatefulComponent {
+class ButtonsDemo extends StatefulWidget {
   _ButtonsDemoState createState() => new _ButtonsDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/cards_demo.dart b/examples/material_gallery/lib/demo/cards_demo.dart
index 7f2e1f7..c8e8911 100644
--- a/examples/material_gallery/lib/demo/cards_demo.dart
+++ b/examples/material_gallery/lib/demo/cards_demo.dart
@@ -36,7 +36,7 @@
   )
 ];
 
-class TravelDestinationItem extends StatelessComponent {
+class TravelDestinationItem extends StatelessWidget {
   TravelDestinationItem({ Key key, this.destination }) : super(key: key) {
     assert(destination != null && destination.isValid);
   }
@@ -114,7 +114,7 @@
   }
 }
 
-class CardsDemo extends StatelessComponent {
+class CardsDemo extends StatelessWidget {
   Widget build(BuildContext context) {
     return new Scaffold(
       toolBar: new ToolBar(
diff --git a/examples/material_gallery/lib/demo/chip_demo.dart b/examples/material_gallery/lib/demo/chip_demo.dart
index 3807123..e6cf5a4 100644
--- a/examples/material_gallery/lib/demo/chip_demo.dart
+++ b/examples/material_gallery/lib/demo/chip_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class ChipDemo extends StatefulComponent {
+class ChipDemo extends StatefulWidget {
   _ChipDemoState createState() => new _ChipDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/colors_demo.dart b/examples/material_gallery/lib/demo/colors_demo.dart
index 3f7eb9a..e34ce9d 100644
--- a/examples/material_gallery/lib/demo/colors_demo.dart
+++ b/examples/material_gallery/lib/demo/colors_demo.dart
@@ -41,7 +41,7 @@
 ];
 
 
-class ColorItem extends StatelessComponent {
+class ColorItem extends StatelessWidget {
   ColorItem({ Key key, this.index, this.color, this.prefix: '' }) : super(key: key) {
     assert(index != null);
     assert(color != null);
@@ -71,7 +71,7 @@
   }
 }
 
-class ColorSwatchTabView extends StatelessComponent {
+class ColorSwatchTabView extends StatelessWidget {
   ColorSwatchTabView({ Key key, this.swatch }) : super(key: key) {
     assert(swatch != null && swatch.isValid);
   }
@@ -106,7 +106,7 @@
   }
 }
 
-class ColorsDemo extends StatelessComponent {
+class ColorsDemo extends StatelessWidget {
   Widget build(BuildContext context) {
     return new TabBarSelection<ColorSwatch>(
       values: colorSwatches,
diff --git a/examples/material_gallery/lib/demo/date_picker_demo.dart b/examples/material_gallery/lib/demo/date_picker_demo.dart
index 7022ad2..794c833 100644
--- a/examples/material_gallery/lib/demo/date_picker_demo.dart
+++ b/examples/material_gallery/lib/demo/date_picker_demo.dart
@@ -7,7 +7,7 @@
 import 'package:flutter/material.dart';
 import 'package:intl/intl.dart';
 
-class DatePickerDemo extends StatefulComponent {
+class DatePickerDemo extends StatefulWidget {
   _DatePickerDemoState createState() => new _DatePickerDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/dialog_demo.dart b/examples/material_gallery/lib/demo/dialog_demo.dart
index b5a9685..9a2540a 100644
--- a/examples/material_gallery/lib/demo/dialog_demo.dart
+++ b/examples/material_gallery/lib/demo/dialog_demo.dart
@@ -20,7 +20,7 @@
   "Let Google help apps determine location. This means sending anyonmous location "
   "data to Google, even when no apps are running.";
 
-class DialogDemoItem extends StatelessComponent {
+class DialogDemoItem extends StatelessWidget {
   DialogDemoItem({ Key key, this.icon, this.color, this.text, this.onPressed }) : super(key: key);
 
   final IconData icon;
@@ -53,7 +53,7 @@
   }
 }
 
-class DialogDemo extends StatefulComponent {
+class DialogDemo extends StatefulWidget {
   DialogDemoState createState() => new DialogDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/drop_down_demo.dart b/examples/material_gallery/lib/demo/drop_down_demo.dart
index 3d2a3f4..55afe0d 100644
--- a/examples/material_gallery/lib/demo/drop_down_demo.dart
+++ b/examples/material_gallery/lib/demo/drop_down_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class DropDownDemo extends StatefulComponent {
+class DropDownDemo extends StatefulWidget {
   _DropDownDemoState createState() => new _DropDownDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/fitness_demo.dart b/examples/material_gallery/lib/demo/fitness_demo.dart
index df2b074..355e2a9 100644
--- a/examples/material_gallery/lib/demo/fitness_demo.dart
+++ b/examples/material_gallery/lib/demo/fitness_demo.dart
@@ -13,7 +13,7 @@
 ImageMap _images;
 SpriteSheet _sprites;
 
-class FitnessDemo extends StatelessComponent {
+class FitnessDemo extends StatelessWidget {
   FitnessDemo({ Key key }) : super(key: key);
 
   Widget build(BuildContext context) {
@@ -26,7 +26,7 @@
   }
 }
 
-class _FitnessDemoContents extends StatefulComponent {
+class _FitnessDemoContents extends StatefulWidget {
   _FitnessDemoContents({ Key key }) : super(key: key);
   _FitnessDemoContentsState createState() => new _FitnessDemoContentsState();
 }
@@ -510,7 +510,7 @@
   }
 }
 
-class _Fireworks extends StatefulComponent {
+class _Fireworks extends StatefulWidget {
   _Fireworks({ Key key }) : super(key: key);
 
   _FireworksState createState() => new _FireworksState();
diff --git a/examples/material_gallery/lib/demo/flexible_space_demo.dart b/examples/material_gallery/lib/demo/flexible_space_demo.dart
index 411af85..e17502f 100644
--- a/examples/material_gallery/lib/demo/flexible_space_demo.dart
+++ b/examples/material_gallery/lib/demo/flexible_space_demo.dart
@@ -5,7 +5,7 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
 
-class _ContactCategory extends StatelessComponent {
+class _ContactCategory extends StatelessWidget {
   _ContactCategory({ Key key, this.icon, this.children }) : super(key: key);
 
   final IconData icon;
@@ -33,7 +33,7 @@
   }
 }
 
-class _ContactItem extends StatelessComponent {
+class _ContactItem extends StatelessWidget {
   _ContactItem({ Key key, this.icon, this.lines }) : super(key: key) {
     assert(lines.length > 1);
   }
@@ -67,7 +67,7 @@
   }
 }
 
-class FlexibleSpaceDemo extends StatefulComponent {
+class FlexibleSpaceDemo extends StatefulWidget {
   FlexibleSpaceDemoState createState() => new FlexibleSpaceDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/full_screen_dialog_demo.dart b/examples/material_gallery/lib/demo/full_screen_dialog_demo.dart
index 971e686..3f7d3e6 100644
--- a/examples/material_gallery/lib/demo/full_screen_dialog_demo.dart
+++ b/examples/material_gallery/lib/demo/full_screen_dialog_demo.dart
@@ -15,7 +15,7 @@
   save,
 }
 
-class DateTimeItem extends StatelessComponent {
+class DateTimeItem extends StatelessWidget {
   DateTimeItem({ Key key, DateTime dateTime, this.onChanged })
     : date = new DateTime(dateTime.year, dateTime.month, dateTime.day),
       time = new TimeOfDay(hour: dateTime.hour, minute: dateTime.minute),
@@ -92,7 +92,7 @@
   }
 }
 
-class FullScreenDialogDemo extends StatefulComponent {
+class FullScreenDialogDemo extends StatefulWidget {
   FullScreenDialogDemoState createState() => new FullScreenDialogDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/grid_list_demo.dart b/examples/material_gallery/lib/demo/grid_list_demo.dart
index b36f11b..ff1b6e4 100644
--- a/examples/material_gallery/lib/demo/grid_list_demo.dart
+++ b/examples/material_gallery/lib/demo/grid_list_demo.dart
@@ -28,7 +28,7 @@
   return const Photo(assetName: 'packages/flutter_gallery_assets/kangaroo_valley_safari.png');
 });
 
-class GridDemoPhotoItem extends StatelessComponent {
+class GridDemoPhotoItem extends StatelessWidget {
   GridDemoPhotoItem({ Key key, this.photo, this.tileStyle }) : super(key: key) {
     assert(photo != null && photo.isValid);
     assert(tileStyle != null);
@@ -128,7 +128,7 @@
   }
 }
 
-class GridListDemo extends StatefulComponent {
+class GridListDemo extends StatefulWidget {
   GridListDemo({ Key key }) : super(key: key);
 
   GridListDemoState createState() => new GridListDemoState();
diff --git a/examples/material_gallery/lib/demo/icons_demo.dart b/examples/material_gallery/lib/demo/icons_demo.dart
index 67b5e9f..a46d671 100644
--- a/examples/material_gallery/lib/demo/icons_demo.dart
+++ b/examples/material_gallery/lib/demo/icons_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class IconsDemo extends StatefulComponent {
+class IconsDemo extends StatefulWidget {
   IconsDemoState createState() => new IconsDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/leave_behind_demo.dart b/examples/material_gallery/lib/demo/leave_behind_demo.dart
index aeda16d..a8b4554 100644
--- a/examples/material_gallery/lib/demo/leave_behind_demo.dart
+++ b/examples/material_gallery/lib/demo/leave_behind_demo.dart
@@ -25,7 +25,7 @@
   final String body;
 }
 
-class LeaveBehindDemo extends StatefulComponent {
+class LeaveBehindDemo extends StatefulWidget {
   LeaveBehindDemo({ Key key }) : super(key: key);
 
   LeaveBehindDemoState createState() => new LeaveBehindDemoState();
diff --git a/examples/material_gallery/lib/demo/list_demo.dart b/examples/material_gallery/lib/demo/list_demo.dart
index b06fd6e..429ba40 100644
--- a/examples/material_gallery/lib/demo/list_demo.dart
+++ b/examples/material_gallery/lib/demo/list_demo.dart
@@ -10,7 +10,7 @@
   threeLine
 }
 
-class ListDemo extends StatefulComponent {
+class ListDemo extends StatefulWidget {
   ListDemo({ Key key }) : super(key: key);
 
   ListDemoState createState() => new ListDemoState();
diff --git a/examples/material_gallery/lib/demo/menu_demo.dart b/examples/material_gallery/lib/demo/menu_demo.dart
index 9a3d12f..d627fb3 100644
--- a/examples/material_gallery/lib/demo/menu_demo.dart
+++ b/examples/material_gallery/lib/demo/menu_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class MenuDemo extends StatefulComponent {
+class MenuDemo extends StatefulWidget {
   MenuDemo({ Key key }) : super(key: key);
 
   MenuDemoState createState() => new MenuDemoState();
diff --git a/examples/material_gallery/lib/demo/modal_bottom_sheet_demo.dart b/examples/material_gallery/lib/demo/modal_bottom_sheet_demo.dart
index 2b5f806..6341377 100644
--- a/examples/material_gallery/lib/demo/modal_bottom_sheet_demo.dart
+++ b/examples/material_gallery/lib/demo/modal_bottom_sheet_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class ModalBottomSheetDemo extends StatelessComponent {
+class ModalBottomSheetDemo extends StatelessWidget {
   final TextStyle textStyle = new TextStyle(
     color: Colors.indigo[400],
     fontSize: 24.0,
diff --git a/examples/material_gallery/lib/demo/page_selector_demo.dart b/examples/material_gallery/lib/demo/page_selector_demo.dart
index 4e044be..4158e46 100644
--- a/examples/material_gallery/lib/demo/page_selector_demo.dart
+++ b/examples/material_gallery/lib/demo/page_selector_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class PageSelectorDemo extends StatelessComponent {
+class PageSelectorDemo extends StatelessWidget {
 
   void _handleArrowButtonPress(BuildContext context, int delta) {
     final TabBarSelectionState<IconData> selection = TabBarSelection.of/*<IconData>*/(context);
diff --git a/examples/material_gallery/lib/demo/persistent_bottom_sheet_demo.dart b/examples/material_gallery/lib/demo/persistent_bottom_sheet_demo.dart
index 6693d45..6513863 100644
--- a/examples/material_gallery/lib/demo/persistent_bottom_sheet_demo.dart
+++ b/examples/material_gallery/lib/demo/persistent_bottom_sheet_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class PersistentBottomSheetDemo extends StatelessComponent {
+class PersistentBottomSheetDemo extends StatelessWidget {
 
   final TextStyle textStyle = new TextStyle(
     color: Colors.indigo[400],
diff --git a/examples/material_gallery/lib/demo/progress_indicator_demo.dart b/examples/material_gallery/lib/demo/progress_indicator_demo.dart
index 245cec5..b6245ad 100644
--- a/examples/material_gallery/lib/demo/progress_indicator_demo.dart
+++ b/examples/material_gallery/lib/demo/progress_indicator_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class ProgressIndicatorDemo extends StatefulComponent {
+class ProgressIndicatorDemo extends StatefulWidget {
   _ProgressIndicatorDemoState createState() => new _ProgressIndicatorDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/scrolling_techniques_demo.dart b/examples/material_gallery/lib/demo/scrolling_techniques_demo.dart
index c19f0fa..d5ac4fe 100644
--- a/examples/material_gallery/lib/demo/scrolling_techniques_demo.dart
+++ b/examples/material_gallery/lib/demo/scrolling_techniques_demo.dart
@@ -6,7 +6,7 @@
 
 import 'flexible_space_demo.dart';
 
-class _BarGraphic extends StatelessComponent {
+class _BarGraphic extends StatelessWidget {
   _BarGraphic({ Key key, this.height, this.color, this.leftText, this.rightText: '' })
     : super(key: key) {
     assert(height != null);
@@ -74,7 +74,7 @@
   );
 }
 
-class _TechniqueItem extends StatelessComponent {
+class _TechniqueItem extends StatelessWidget {
   _TechniqueItem({ this.titleText, this.barGraphics, this.builder });
 
   final String titleText;
@@ -110,7 +110,7 @@
   "it appears behind the device's status bar. When a flexible space Widget is "
   "specified it is stacked on top of the ToolBar.";
 
-class ScrollingTechniquesDemo extends StatelessComponent {
+class ScrollingTechniquesDemo extends StatelessWidget {
   Widget build(BuildContext context) {
     return new Scaffold(
       toolBar: new ToolBar(center: new Text('Scrolling Techniques')),
diff --git a/examples/material_gallery/lib/demo/slider_demo.dart b/examples/material_gallery/lib/demo/slider_demo.dart
index 0ce928d..a86ed46 100644
--- a/examples/material_gallery/lib/demo/slider_demo.dart
+++ b/examples/material_gallery/lib/demo/slider_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class SliderDemo extends StatefulComponent {
+class SliderDemo extends StatefulWidget {
   _SliderDemoState createState() => new _SliderDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/snack_bar_demo.dart b/examples/material_gallery/lib/demo/snack_bar_demo.dart
index b3058fa..0b1595e 100644
--- a/examples/material_gallery/lib/demo/snack_bar_demo.dart
+++ b/examples/material_gallery/lib/demo/snack_bar_demo.dart
@@ -17,7 +17,7 @@
 const String _text3 =
   "By default snackbars automatically disappear after a few seconds ";
 
-class SnackBarDemo extends StatelessComponent {
+class SnackBarDemo extends StatelessWidget {
   SnackBarDemo({ Key key }) : super(key: key);
 
   Widget buildBody(BuildContext context) {
diff --git a/examples/material_gallery/lib/demo/tabs_demo.dart b/examples/material_gallery/lib/demo/tabs_demo.dart
index 3b237a87..48c9ba3 100644
--- a/examples/material_gallery/lib/demo/tabs_demo.dart
+++ b/examples/material_gallery/lib/demo/tabs_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class TabsDemo extends StatelessComponent {
+class TabsDemo extends StatelessWidget {
   final List<IconData> icons = <IconData>[
     Icons.event,
     Icons.home,
diff --git a/examples/material_gallery/lib/demo/tabs_fab_demo.dart b/examples/material_gallery/lib/demo/tabs_fab_demo.dart
index 2af6772..9cbe49b 100644
--- a/examples/material_gallery/lib/demo/tabs_fab_demo.dart
+++ b/examples/material_gallery/lib/demo/tabs_fab_demo.dart
@@ -25,7 +25,7 @@
   "with a FloatingActionButton that the Scaffold distinguishes from the others "
   "by its key.";
 
-class TabsFabDemo extends StatefulComponent {
+class TabsFabDemo extends StatefulWidget {
   _TabsFabDemoState createState() => new _TabsFabDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/text_field_demo.dart b/examples/material_gallery/lib/demo/text_field_demo.dart
index 1689a88..dffdc30 100644
--- a/examples/material_gallery/lib/demo/text_field_demo.dart
+++ b/examples/material_gallery/lib/demo/text_field_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class TextFieldDemo extends StatefulComponent {
+class TextFieldDemo extends StatefulWidget {
   TextFieldDemo({ Key key }) : super(key: key);
 
   TextFieldDemoState createState() => new TextFieldDemoState();
diff --git a/examples/material_gallery/lib/demo/time_picker_demo.dart b/examples/material_gallery/lib/demo/time_picker_demo.dart
index 1ab5e15..56a26f0 100644
--- a/examples/material_gallery/lib/demo/time_picker_demo.dart
+++ b/examples/material_gallery/lib/demo/time_picker_demo.dart
@@ -6,7 +6,7 @@
 
 import 'package:flutter/material.dart';
 
-class TimePickerDemo extends StatefulComponent {
+class TimePickerDemo extends StatefulWidget {
   _TimePickerDemoState createState() => new _TimePickerDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/toggle_controls_demo.dart b/examples/material_gallery/lib/demo/toggle_controls_demo.dart
index d7a6a91..eb92ee8 100644
--- a/examples/material_gallery/lib/demo/toggle_controls_demo.dart
+++ b/examples/material_gallery/lib/demo/toggle_controls_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class ToggleControlsDemo extends StatefulComponent {
+class ToggleControlsDemo extends StatefulWidget {
   _ToggleControlsDemoState createState() => new _ToggleControlsDemoState();
 }
 
diff --git a/examples/material_gallery/lib/demo/tooltip_demo.dart b/examples/material_gallery/lib/demo/tooltip_demo.dart
index 5560ecf..a4a5dca 100644
--- a/examples/material_gallery/lib/demo/tooltip_demo.dart
+++ b/examples/material_gallery/lib/demo/tooltip_demo.dart
@@ -9,7 +9,7 @@
   "a long press. Tooltip messages are also used by services that make Flutter "
   "apps accessible, like screen readers.";
 
-class TooltipDemo extends StatelessComponent {
+class TooltipDemo extends StatelessWidget {
   Widget build(BuildContext context) {
     final ThemeData theme = Theme.of(context);
     return new Scaffold(
diff --git a/examples/material_gallery/lib/demo/two_level_list_demo.dart b/examples/material_gallery/lib/demo/two_level_list_demo.dart
index cb4c0b7..506b7e5 100644
--- a/examples/material_gallery/lib/demo/two_level_list_demo.dart
+++ b/examples/material_gallery/lib/demo/two_level_list_demo.dart
@@ -4,7 +4,7 @@
 
 import 'package:flutter/material.dart';
 
-class TwoLevelListDemo extends StatelessComponent {
+class TwoLevelListDemo extends StatelessWidget {
   Widget build(BuildContext context) {
     return new Scaffold(
       toolBar: new ToolBar(center: new Text('Expand/Collapse List Control')),
diff --git a/examples/material_gallery/lib/demo/typography_demo.dart b/examples/material_gallery/lib/demo/typography_demo.dart
index 7b86179..83c0f55 100644
--- a/examples/material_gallery/lib/demo/typography_demo.dart
+++ b/examples/material_gallery/lib/demo/typography_demo.dart
@@ -5,7 +5,7 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
 
-class TextStyleItem extends StatelessComponent {
+class TextStyleItem extends StatelessWidget {
   TextStyleItem({ Key key, this.name, this.style, this.text }) : super(key: key) {
     assert(name != null);
     assert(style != null);
@@ -37,7 +37,7 @@
   }
 }
 
-class TypographyDemo extends StatelessComponent {
+class TypographyDemo extends StatelessWidget {
   Widget build(BuildContext context) {
     final TextTheme textTheme = Theme.of(context).textTheme;
     final List<Widget> styleItems = <Widget>[
diff --git a/examples/material_gallery/lib/demo/weather_demo.dart b/examples/material_gallery/lib/demo/weather_demo.dart
index c64770b..1cd56da 100644
--- a/examples/material_gallery/lib/demo/weather_demo.dart
+++ b/examples/material_gallery/lib/demo/weather_demo.dart
@@ -17,7 +17,7 @@
   snow
 }
 
-class WeatherDemo extends StatefulComponent {
+class WeatherDemo extends StatefulWidget {
   WeatherDemo({ Key key }) : super(key: key);
   _WeatherDemoState createState() => new _WeatherDemoState();
 }
@@ -125,7 +125,7 @@
 const double _kWeatherButtonSize = 56.0;
 const double _kWeatherIconSize = 36.0;
 
-class WeatherButton extends StatelessComponent {
+class WeatherButton extends StatelessWidget {
   WeatherButton({ this.icon, this.selected, this.onPressed, Key key }) : super(key: key);
 
   final String icon;
diff --git a/examples/material_gallery/lib/gallery/app.dart b/examples/material_gallery/lib/gallery/app.dart
index 1b05d4d..39fe069 100644
--- a/examples/material_gallery/lib/gallery/app.dart
+++ b/examples/material_gallery/lib/gallery/app.dart
@@ -6,7 +6,7 @@
 
 import 'home.dart';
 
-class GalleryApp extends StatefulComponent {
+class GalleryApp extends StatefulWidget {
   GalleryApp({ Key key }) : super(key: key);
 
   static GalleryAppState of(BuildContext context) => context.ancestorStateOfType(const TypeMatcher<GalleryAppState>());
diff --git a/examples/material_gallery/lib/gallery/drawer.dart b/examples/material_gallery/lib/gallery/drawer.dart
index db3cf8f..1509e85 100644
--- a/examples/material_gallery/lib/gallery/drawer.dart
+++ b/examples/material_gallery/lib/gallery/drawer.dart
@@ -8,7 +8,7 @@
 
 import 'app.dart';
 
-class GalleryDrawer extends StatelessComponent {
+class GalleryDrawer extends StatelessWidget {
   GalleryDrawer({ Key key }) : super(key: key);
 
   void _changeTheme(BuildContext context, bool value) {
diff --git a/examples/material_gallery/lib/gallery/home.dart b/examples/material_gallery/lib/gallery/home.dart
index e6670d9..9214e20 100644
--- a/examples/material_gallery/lib/gallery/home.dart
+++ b/examples/material_gallery/lib/gallery/home.dart
@@ -39,7 +39,7 @@
 import '../demo/typography_demo.dart';
 import '../demo/weather_demo.dart';
 
-class GalleryHome extends StatefulComponent {
+class GalleryHome extends StatefulWidget {
   GalleryHome({ Key key }) : super(key: key);
 
   GalleryHomeState createState() => new GalleryHomeState();
diff --git a/examples/material_gallery/lib/gallery/section.dart b/examples/material_gallery/lib/gallery/section.dart
index 5e0d3ee..82e8463 100644
--- a/examples/material_gallery/lib/gallery/section.dart
+++ b/examples/material_gallery/lib/gallery/section.dart
@@ -7,7 +7,7 @@
 
 import 'demo.dart';
 
-class GallerySection extends StatelessComponent {
+class GallerySection extends StatelessWidget {
   GallerySection({ this.title, this.image, this.colors, this.demos });
 
   final String title;
diff --git a/examples/stocks/lib/main.dart b/examples/stocks/lib/main.dart
index d29394d..d22b124 100644
--- a/examples/stocks/lib/main.dart
+++ b/examples/stocks/lib/main.dart
@@ -23,7 +23,7 @@
 import 'stock_symbol_viewer.dart';
 import 'stock_types.dart';
 
-class StocksApp extends StatefulComponent {
+class StocksApp extends StatefulWidget {
   StocksAppState createState() => new StocksAppState();
 }
 
diff --git a/examples/stocks/lib/stock_arrow.dart b/examples/stocks/lib/stock_arrow.dart
index bc71612..84ce41a 100644
--- a/examples/stocks/lib/stock_arrow.dart
+++ b/examples/stocks/lib/stock_arrow.dart
@@ -50,7 +50,7 @@
   }
 }
 
-class StockArrow extends StatelessComponent {
+class StockArrow extends StatelessWidget {
   StockArrow({ Key key, this.percentChange }) : super(key: key);
 
   final double percentChange;
diff --git a/examples/stocks/lib/stock_home.dart b/examples/stocks/lib/stock_home.dart
index 0c30b21..fd58211 100644
--- a/examples/stocks/lib/stock_home.dart
+++ b/examples/stocks/lib/stock_home.dart
@@ -18,7 +18,7 @@
 enum _StockMenuItem { autorefresh, refresh, speedUp, speedDown }
 enum StockHomeTab { market, portfolio }
 
-class _NotImplementedDialog extends StatelessComponent {
+class _NotImplementedDialog extends StatelessWidget {
   Widget build(BuildContext context) {
     return new Dialog(
       title: new Text('Not Implemented'),
@@ -50,7 +50,7 @@
   }
 }
 
-class StockHome extends StatefulComponent {
+class StockHome extends StatefulWidget {
   const StockHome(this.stocks, this.symbols, this.configuration, this.updater);
 
   final Map<String, Stock> stocks;
@@ -355,7 +355,7 @@
   }
 }
 
-class _CreateCompanySheet extends StatefulComponent {
+class _CreateCompanySheet extends StatefulWidget {
   _CreateCompanySheetState createState() => new _CreateCompanySheetState();
 }
 
diff --git a/examples/stocks/lib/stock_list.dart b/examples/stocks/lib/stock_list.dart
index e94f296..8ffadaa 100644
--- a/examples/stocks/lib/stock_list.dart
+++ b/examples/stocks/lib/stock_list.dart
@@ -7,7 +7,7 @@
 import 'stock_data.dart';
 import 'stock_row.dart';
 
-class StockList extends StatelessComponent {
+class StockList extends StatelessWidget {
   StockList({ Key key, this.keySalt, this.stocks, this.onOpen, this.onShow, this.onAction }) : super(key: key);
 
   final Object keySalt;
diff --git a/examples/stocks/lib/stock_row.dart b/examples/stocks/lib/stock_row.dart
index d1b666f..e1f2b68 100644
--- a/examples/stocks/lib/stock_row.dart
+++ b/examples/stocks/lib/stock_row.dart
@@ -30,7 +30,7 @@
 
 typedef void StockRowActionCallback(Stock stock, Key arrowKey);
 
-class StockRow extends StatelessComponent {
+class StockRow extends StatelessWidget {
   StockRow({
     Stock stock,
     Object keySalt,
diff --git a/examples/stocks/lib/stock_settings.dart b/examples/stocks/lib/stock_settings.dart
index 6e354f4..46600ab 100644
--- a/examples/stocks/lib/stock_settings.dart
+++ b/examples/stocks/lib/stock_settings.dart
@@ -6,7 +6,7 @@
 
 import 'stock_types.dart';
 
-class StockSettings extends StatefulComponent {
+class StockSettings extends StatefulWidget {
   const StockSettings(this.configuration, this.updater);
 
   final StockConfiguration configuration;
diff --git a/examples/stocks/lib/stock_symbol_viewer.dart b/examples/stocks/lib/stock_symbol_viewer.dart
index 0e79365..dee4f2a 100644
--- a/examples/stocks/lib/stock_symbol_viewer.dart
+++ b/examples/stocks/lib/stock_symbol_viewer.dart
@@ -8,7 +8,7 @@
 import 'stock_arrow.dart';
 import 'stock_row.dart';
 
-class StockSymbolView extends StatelessComponent {
+class StockSymbolView extends StatelessWidget {
   StockSymbolView({ this.stock });
 
   final Stock stock;
@@ -66,7 +66,7 @@
   }
 }
 
-class StockSymbolPage extends StatelessComponent {
+class StockSymbolPage extends StatelessWidget {
   StockSymbolPage({ this.stock });
 
   final Stock stock;
@@ -88,7 +88,7 @@
   }
 }
 
-class StockSymbolBottomSheet extends StatelessComponent {
+class StockSymbolBottomSheet extends StatelessWidget {
   StockSymbolBottomSheet({ this.stock });
 
   final Stock stock;
diff --git a/packages/flutter/lib/src/material/bottom_sheet.dart b/packages/flutter/lib/src/material/bottom_sheet.dart
index 562a9b0..21d750c 100644
--- a/packages/flutter/lib/src/material/bottom_sheet.dart
+++ b/packages/flutter/lib/src/material/bottom_sheet.dart
@@ -15,7 +15,7 @@
 const Color _kTransparent = const Color(0x00000000);
 const Color _kBarrierColor = Colors.black54;
 
-class BottomSheet extends StatefulComponent {
+class BottomSheet extends StatefulWidget {
   BottomSheet({
     Key key,
     this.animationController,
@@ -117,7 +117,7 @@
   }
 }
 
-class _ModalBottomSheet<T> extends StatefulComponent {
+class _ModalBottomSheet<T> extends StatefulWidget {
   _ModalBottomSheet({ Key key, this.route }) : super(key: key);
 
   final _ModalBottomSheetRoute<T> route;
diff --git a/packages/flutter/lib/src/material/button.dart b/packages/flutter/lib/src/material/button.dart
index 5141172..0fd126a 100644
--- a/packages/flutter/lib/src/material/button.dart
+++ b/packages/flutter/lib/src/material/button.dart
@@ -39,7 +39,7 @@
 ///
 /// MaterialButtons whose [onPressed] handler is null will be disabled. To have
 /// an enabled button, make sure to pass a non-null value for onPressed.
-abstract class MaterialButton extends StatefulComponent {
+abstract class MaterialButton extends StatefulWidget {
   MaterialButton({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/material/card.dart b/packages/flutter/lib/src/material/card.dart
index 5aa6c5d..241d553 100644
--- a/packages/flutter/lib/src/material/card.dart
+++ b/packages/flutter/lib/src/material/card.dart
@@ -11,7 +11,7 @@
 /// A material design card
 ///
 /// <https://www.google.com/design/spec/components/cards.html>
-class Card extends StatelessComponent {
+class Card extends StatelessWidget {
   const Card({ Key key, this.child, this.color }) : super(key: key);
 
   final Widget child;
diff --git a/packages/flutter/lib/src/material/checkbox.dart b/packages/flutter/lib/src/material/checkbox.dart
index 6e551e8..54b1d42 100644
--- a/packages/flutter/lib/src/material/checkbox.dart
+++ b/packages/flutter/lib/src/material/checkbox.dart
@@ -21,7 +21,7 @@
 /// the checkbox.
 ///
 /// <https://www.google.com/design/spec/components/lists-controls.html#lists-controls-types-of-list-controls>
-class Checkbox extends StatelessComponent {
+class Checkbox extends StatelessWidget {
   /// Constructs a checkbox
   ///
   /// * `value` determines whether the checkbox is checked.
diff --git a/packages/flutter/lib/src/material/chip.dart b/packages/flutter/lib/src/material/chip.dart
index 8fb30a4..32354da 100644
--- a/packages/flutter/lib/src/material/chip.dart
+++ b/packages/flutter/lib/src/material/chip.dart
@@ -21,7 +21,7 @@
   textBaseline: TextBaseline.alphabetic
 );
 
-class Chip extends StatelessComponent {
+class Chip extends StatelessWidget {
   const Chip({
     Key key,
     this.avatar,
diff --git a/packages/flutter/lib/src/material/circle_avatar.dart b/packages/flutter/lib/src/material/circle_avatar.dart
index 73e4e39..a10fbfd 100644
--- a/packages/flutter/lib/src/material/circle_avatar.dart
+++ b/packages/flutter/lib/src/material/circle_avatar.dart
@@ -7,7 +7,7 @@
 import 'constants.dart';
 import 'theme.dart';
 
-class CircleAvatar extends StatelessComponent {
+class CircleAvatar extends StatelessWidget {
   CircleAvatar({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/material/date_picker.dart b/packages/flutter/lib/src/material/date_picker.dart
index cda1eea..59c5a8e 100644
--- a/packages/flutter/lib/src/material/date_picker.dart
+++ b/packages/flutter/lib/src/material/date_picker.dart
@@ -17,7 +17,7 @@
 
 enum _DatePickerMode { day, year }
 
-class DatePicker extends StatefulComponent {
+class DatePicker extends StatefulWidget {
   DatePicker({
     this.selectedDate,
     this.onChanged,
@@ -105,7 +105,7 @@
 }
 
 // Shows the selected date in large font and toggles between year and day mode
-class _DatePickerHeader extends StatelessComponent {
+class _DatePickerHeader extends StatelessWidget {
   _DatePickerHeader({ this.selectedDate, this.mode, this.onModeChanged }) {
     assert(selectedDate != null);
     assert(mode != null);
@@ -163,7 +163,7 @@
 }
 
 // Fixed height component shows a single month and allows choosing a day
-class DayPicker extends StatelessComponent {
+class DayPicker extends StatelessWidget {
   DayPicker({
     this.selectedDate,
     this.currentDate,
@@ -269,7 +269,7 @@
   }
 }
 
-class MonthPicker extends StatefulComponent {
+class MonthPicker extends StatefulWidget {
   MonthPicker({
     Key key,
     this.selectedDate,
@@ -351,7 +351,7 @@
 }
 
 // Scrollable list of years to allow picking a year
-class YearPicker extends StatefulComponent {
+class YearPicker extends StatefulWidget {
   YearPicker({
     Key key,
     this.selectedDate,
diff --git a/packages/flutter/lib/src/material/date_picker_dialog.dart b/packages/flutter/lib/src/material/date_picker_dialog.dart
index 17046e1..2d58f0b 100644
--- a/packages/flutter/lib/src/material/date_picker_dialog.dart
+++ b/packages/flutter/lib/src/material/date_picker_dialog.dart
@@ -10,7 +10,7 @@
 import 'date_picker.dart';
 import 'flat_button.dart';
 
-class _DatePickerDialog extends StatefulComponent {
+class _DatePickerDialog extends StatefulWidget {
   _DatePickerDialog({
     Key key,
     this.initialDate,
diff --git a/packages/flutter/lib/src/material/dialog.dart b/packages/flutter/lib/src/material/dialog.dart
index 9df0ca4..3104b56 100644
--- a/packages/flutter/lib/src/material/dialog.dart
+++ b/packages/flutter/lib/src/material/dialog.dart
@@ -16,7 +16,7 @@
 /// A material design dialog
 ///
 /// <https://www.google.com/design/spec/components/dialogs.html>
-class Dialog extends StatelessComponent {
+class Dialog extends StatelessWidget {
   Dialog({
     Key key,
     this.title,
diff --git a/packages/flutter/lib/src/material/divider.dart b/packages/flutter/lib/src/material/divider.dart
index e585959..d01968a 100644
--- a/packages/flutter/lib/src/material/divider.dart
+++ b/packages/flutter/lib/src/material/divider.dart
@@ -6,7 +6,7 @@
 
 import 'theme.dart';
 
-class Divider extends StatelessComponent {
+class Divider extends StatelessWidget {
   Divider({ Key key, this.height: 16.0, this.indent: 0.0, this.color }) : super(key: key) {
     assert(height >= 1.0);
   }
diff --git a/packages/flutter/lib/src/material/drawer.dart b/packages/flutter/lib/src/material/drawer.dart
index 32d2d40..e3353e9 100644
--- a/packages/flutter/lib/src/material/drawer.dart
+++ b/packages/flutter/lib/src/material/drawer.dart
@@ -26,7 +26,7 @@
 const double _kMinFlingVelocity = 365.0;
 const Duration _kBaseSettleDuration = const Duration(milliseconds: 246);
 
-class Drawer extends StatelessComponent {
+class Drawer extends StatelessWidget {
   Drawer({
     Key key,
     this.elevation: 16,
@@ -47,7 +47,7 @@
   }
 }
 
-class DrawerController extends StatefulComponent {
+class DrawerController extends StatefulWidget {
   DrawerController({
     GlobalKey key,
     this.child
diff --git a/packages/flutter/lib/src/material/drawer_header.dart b/packages/flutter/lib/src/material/drawer_header.dart
index 60a81d6..4feb78b 100644
--- a/packages/flutter/lib/src/material/drawer_header.dart
+++ b/packages/flutter/lib/src/material/drawer_header.dart
@@ -11,7 +11,7 @@
 // TODO(jackson): This class should usually render the user's
 // preferred banner image rather than a solid background
 
-class DrawerHeader extends StatelessComponent {
+class DrawerHeader extends StatelessWidget {
   const DrawerHeader({ Key key, this.child }) : super(key: key);
 
   final Widget child;
diff --git a/packages/flutter/lib/src/material/drawer_item.dart b/packages/flutter/lib/src/material/drawer_item.dart
index 4a0de1f..05942a0 100644
--- a/packages/flutter/lib/src/material/drawer_item.dart
+++ b/packages/flutter/lib/src/material/drawer_item.dart
@@ -11,7 +11,7 @@
 import 'ink_well.dart';
 import 'theme.dart';
 
-class DrawerItem extends StatelessComponent {
+class DrawerItem extends StatelessWidget {
   const DrawerItem({
     Key key,
     this.icon,
diff --git a/packages/flutter/lib/src/material/dropdown.dart b/packages/flutter/lib/src/material/dropdown.dart
index dfe882b..bf63f95 100644
--- a/packages/flutter/lib/src/material/dropdown.dart
+++ b/packages/flutter/lib/src/material/dropdown.dart
@@ -56,7 +56,7 @@
   }
 }
 
-class _DropDownMenu<T> extends StatusTransitionComponent {
+class _DropDownMenu<T> extends StatusTransitionWidget {
   _DropDownMenu({
     Key key,
     _DropDownRoute<T> route
@@ -197,7 +197,7 @@
   }
 }
 
-class DropDownMenuItem<T> extends StatelessComponent {
+class DropDownMenuItem<T> extends StatelessWidget {
   DropDownMenuItem({
     Key key,
     this.value,
@@ -222,7 +222,7 @@
   }
 }
 
-class DropDownButton<T> extends StatefulComponent {
+class DropDownButton<T> extends StatefulWidget {
   DropDownButton({
     Key key,
     this.items,
diff --git a/packages/flutter/lib/src/material/flexible_space_bar.dart b/packages/flutter/lib/src/material/flexible_space_bar.dart
index a523cba..f61b63e 100644
--- a/packages/flutter/lib/src/material/flexible_space_bar.dart
+++ b/packages/flutter/lib/src/material/flexible_space_bar.dart
@@ -11,7 +11,7 @@
 import 'scaffold.dart';
 import 'theme.dart';
 
-class FlexibleSpaceBar extends StatefulComponent {
+class FlexibleSpaceBar extends StatefulWidget {
   FlexibleSpaceBar({ Key key, this.title, this.image }) : super(key: key);
 
   final Widget title;
diff --git a/packages/flutter/lib/src/material/floating_action_button.dart b/packages/flutter/lib/src/material/floating_action_button.dart
index 682f2b5..edc81b5 100644
--- a/packages/flutter/lib/src/material/floating_action_button.dart
+++ b/packages/flutter/lib/src/material/floating_action_button.dart
@@ -33,7 +33,7 @@
 ///
 /// See also:
 ///  * https://www.google.com/design/spec/components/buttons-floating-action-button.html
-class FloatingActionButton extends StatefulComponent {
+class FloatingActionButton extends StatefulWidget {
   const FloatingActionButton({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/material/grid_tile.dart b/packages/flutter/lib/src/material/grid_tile.dart
index 159f9e2..fefd8f8 100644
--- a/packages/flutter/lib/src/material/grid_tile.dart
+++ b/packages/flutter/lib/src/material/grid_tile.dart
@@ -6,7 +6,7 @@
 
 /// Creates a [Stack] with the header anchored across the top or a footer across the
 /// bottom. The [GridTileBar] class can be used to create grid tile headers and footers.
-class GridTile extends StatelessComponent {
+class GridTile extends StatelessWidget {
   GridTile({ Key key, this.header, this.footer, this.child }) : super(key: key) {
     assert(child != null);
   }
diff --git a/packages/flutter/lib/src/material/grid_tile_bar.dart b/packages/flutter/lib/src/material/grid_tile_bar.dart
index 4f7830e..48f9210 100644
--- a/packages/flutter/lib/src/material/grid_tile_bar.dart
+++ b/packages/flutter/lib/src/material/grid_tile_bar.dart
@@ -15,7 +15,7 @@
 /// https://www.google.com/design/spec/components/grid-lists.html#grid-lists-specs
 /// For a one-line header specify title and to add a second line specify caption.
 /// Use left or right to add an icon.
-class GridTileBar extends StatelessComponent {
+class GridTileBar extends StatelessWidget {
   GridTileBar({ Key key, this.backgroundColor, this.left, this.right, this.title, this.caption }) : super(key: key);
 
   final Color backgroundColor;
diff --git a/packages/flutter/lib/src/material/icon.dart b/packages/flutter/lib/src/material/icon.dart
index 6290b46..90a8bf4 100644
--- a/packages/flutter/lib/src/material/icon.dart
+++ b/packages/flutter/lib/src/material/icon.dart
@@ -22,7 +22,7 @@
 /// in your project's `flutter.yaml` file. This ensures that the
 /// MaterialIcons font is included in your application. This font is
 /// used to display the icons.
-class Icon extends StatelessComponent {
+class Icon extends StatelessWidget {
   Icon({
     Key key,
     this.icon,
diff --git a/packages/flutter/lib/src/material/icon_button.dart b/packages/flutter/lib/src/material/icon_button.dart
index fc4e75f..461dc75 100644
--- a/packages/flutter/lib/src/material/icon_button.dart
+++ b/packages/flutter/lib/src/material/icon_button.dart
@@ -20,7 +20,7 @@
 ///
 /// If the [onPressed] callback is not specified or null, then the button will
 /// be disabled, will not react to touch.
-class IconButton extends StatelessComponent {
+class IconButton extends StatelessWidget {
   const IconButton({
     Key key,
     this.size: 24.0,
diff --git a/packages/flutter/lib/src/material/ink_well.dart b/packages/flutter/lib/src/material/ink_well.dart
index fd72917..1eff1e7 100644
--- a/packages/flutter/lib/src/material/ink_well.dart
+++ b/packages/flutter/lib/src/material/ink_well.dart
@@ -24,7 +24,7 @@
 /// at the top of its [build] function to call [debugCheckHasMaterial]:
 ///
 ///     assert(debugCheckHasMaterial(context));
-class InkResponse extends StatefulComponent {
+class InkResponse extends StatefulWidget {
   InkResponse({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/material/input.dart b/packages/flutter/lib/src/material/input.dart
index 1348f86..cf7120a 100644
--- a/packages/flutter/lib/src/material/input.dart
+++ b/packages/flutter/lib/src/material/input.dart
@@ -14,7 +14,7 @@
 export 'package:sky_services/editing/editing.mojom.dart' show KeyboardType;
 
 /// A material design text input field.
-class Input extends StatefulComponent {
+class Input extends StatefulWidget {
   Input({
     Key key,
     this.value: InputValue.empty,
diff --git a/packages/flutter/lib/src/material/list.dart b/packages/flutter/lib/src/material/list.dart
index bad7553..507dd4a 100644
--- a/packages/flutter/lib/src/material/list.dart
+++ b/packages/flutter/lib/src/material/list.dart
@@ -21,7 +21,7 @@
   MaterialListType.threeLine: kThreeLineListItemHeight,
 };
 
-class MaterialList extends StatefulComponent {
+class MaterialList extends StatefulWidget {
   MaterialList({
     Key key,
     this.initialScrollOffset,
diff --git a/packages/flutter/lib/src/material/list_item.dart b/packages/flutter/lib/src/material/list_item.dart
index af259d6..09df91f 100644
--- a/packages/flutter/lib/src/material/list_item.dart
+++ b/packages/flutter/lib/src/material/list_item.dart
@@ -15,7 +15,7 @@
 /// isThreeLine: true is specified. If dense: true is specified then the overall
 /// height of this list item and the size of the DefaultTextStyles that wrap
 /// the [primary] and [secondary] widget are reduced.
-class ListItem extends StatelessComponent {
+class ListItem extends StatelessWidget {
   ListItem({
     Key key,
     this.left,
diff --git a/packages/flutter/lib/src/material/material.dart b/packages/flutter/lib/src/material/material.dart
index e2d246c..b2f2de7 100644
--- a/packages/flutter/lib/src/material/material.dart
+++ b/packages/flutter/lib/src/material/material.dart
@@ -73,7 +73,7 @@
 /// list on the paper, and it's been scrolled), a LayoutChangedNotification must
 /// be dispatched at the relevant subtree. (This in particular means that
 /// Transitions should not be placed inside Material.)
-class Material extends StatefulComponent {
+class Material extends StatefulWidget {
   Material({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/material/page.dart b/packages/flutter/lib/src/material/page.dart
index b5c3d3b..303b0be 100644
--- a/packages/flutter/lib/src/material/page.dart
+++ b/packages/flutter/lib/src/material/page.dart
@@ -6,7 +6,7 @@
 
 import 'package:flutter/widgets.dart';
 
-class _MaterialPageTransition extends AnimatedComponent {
+class _MaterialPageTransition extends AnimatedWidget {
   _MaterialPageTransition({
     Key key,
     Animation<double> animation,
diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart
index c69bf9e..a363854 100644
--- a/packages/flutter/lib/src/material/popup_menu.dart
+++ b/packages/flutter/lib/src/material/popup_menu.dart
@@ -28,7 +28,7 @@
 const double _kMenuWidthStep = 56.0;
 const double _kMenuScreenPadding = 8.0;
 
-abstract class PopupMenuEntry<T> extends StatefulComponent {
+abstract class PopupMenuEntry<T> extends StatefulWidget {
   PopupMenuEntry({ Key key }) : super(key: key);
 
   double get height;
@@ -159,7 +159,7 @@
   }
 }
 
-class _PopupMenu<T> extends StatelessComponent {
+class _PopupMenu<T> extends StatelessWidget {
   _PopupMenu({
     Key key,
     this.route
@@ -357,7 +357,7 @@
 /// because an item was selected. The value passed to [onSelected] is the value of
 /// the selected menu item. If child is null then a standard 'navigation/more_vert'
 /// icon is created.
-class PopupMenuButton<T> extends StatefulComponent {
+class PopupMenuButton<T> extends StatefulWidget {
   PopupMenuButton({
     Key key,
     this.items,
diff --git a/packages/flutter/lib/src/material/progress_indicator.dart b/packages/flutter/lib/src/material/progress_indicator.dart
index 5955c8b..37bce7c 100644
--- a/packages/flutter/lib/src/material/progress_indicator.dart
+++ b/packages/flutter/lib/src/material/progress_indicator.dart
@@ -14,7 +14,7 @@
 
 // TODO(hansmuller): implement the support for buffer indicator
 
-abstract class ProgressIndicator extends StatefulComponent {
+abstract class ProgressIndicator extends StatefulWidget {
   ProgressIndicator({
     Key key,
     this.value
diff --git a/packages/flutter/lib/src/material/radio.dart b/packages/flutter/lib/src/material/radio.dart
index 342648b..83b4bd3 100644
--- a/packages/flutter/lib/src/material/radio.dart
+++ b/packages/flutter/lib/src/material/radio.dart
@@ -14,7 +14,7 @@
 const double _kOuterRadius = _kDiameter / 2.0;
 const double _kInnerRadius = 5.0;
 
-class Radio<T> extends StatelessComponent {
+class Radio<T> extends StatelessWidget {
   Radio({
     Key key,
     this.value,
diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart
index e499fbf..a415863 100644
--- a/packages/flutter/lib/src/material/scaffold.dart
+++ b/packages/flutter/lib/src/material/scaffold.dart
@@ -107,7 +107,7 @@
   }
 }
 
-class _FloatingActionButtonTransition extends StatefulComponent {
+class _FloatingActionButtonTransition extends StatefulWidget {
   _FloatingActionButtonTransition({
     Key key,
     this.child
@@ -180,7 +180,7 @@
 /// This class provides APIs for showing drawers, snackbars, and bottom sheets.
 ///
 /// See: <https://www.google.com/design/spec/layout/structure.html>
-class Scaffold extends StatefulComponent {
+class Scaffold extends StatefulWidget {
   Scaffold({
     Key key,
     this.toolBar,
@@ -572,7 +572,7 @@
   final StateSetter setState;
 }
 
-class _PersistentBottomSheet extends StatefulComponent {
+class _PersistentBottomSheet extends StatefulWidget {
   _PersistentBottomSheet({
     Key key,
     this.animationController,
diff --git a/packages/flutter/lib/src/material/shadows.dart b/packages/flutter/lib/src/material/shadows.dart
index 98cf23b..a2e9fc9 100644
--- a/packages/flutter/lib/src/material/shadows.dart
+++ b/packages/flutter/lib/src/material/shadows.dart
@@ -7,7 +7,7 @@
 import 'package:flutter/painting.dart';
 
 // Based on http://www.google.com/design/spec/what-is-material/elevation-shadows.html
-// Currently, only the elevation values that are bound to one or more components are
+// Currently, only the elevation values that are bound to one or more widgets are
 // defined here.
 
 /// Map of elevation offsets used by material design to [BoxShadow] definitions.
diff --git a/packages/flutter/lib/src/material/slider.dart b/packages/flutter/lib/src/material/slider.dart
index d51a348..d503380 100644
--- a/packages/flutter/lib/src/material/slider.dart
+++ b/packages/flutter/lib/src/material/slider.dart
@@ -11,7 +11,7 @@
 import 'debug.dart';
 import 'theme.dart';
 
-class Slider extends StatelessComponent {
+class Slider extends StatelessWidget {
   Slider({
     Key key,
     this.value,
diff --git a/packages/flutter/lib/src/material/snack_bar.dart b/packages/flutter/lib/src/material/snack_bar.dart
index bc6baab..257bba7 100644
--- a/packages/flutter/lib/src/material/snack_bar.dart
+++ b/packages/flutter/lib/src/material/snack_bar.dart
@@ -37,7 +37,7 @@
 ///
 /// See also:
 ///  * https://www.google.com/design/spec/components/snackbars-toasts.html
-class SnackBarAction extends StatelessComponent {
+class SnackBarAction extends StatelessWidget {
   SnackBarAction({Key key, this.label, this.onPressed }) : super(key: key) {
     assert(label != null);
     assert(onPressed != null);
@@ -70,7 +70,7 @@
 ///  * [Scaffold.of] and [ScaffoldState.showSnackBar]
 ///  * [SnackBarAction]
 ///  * https://www.google.com/design/spec/components/snackbars-toasts.html
-class SnackBar extends StatelessComponent {
+class SnackBar extends StatelessWidget {
   SnackBar({
     Key key,
     this.content,
diff --git a/packages/flutter/lib/src/material/switch.dart b/packages/flutter/lib/src/material/switch.dart
index 4a7461e..d6d3185 100644
--- a/packages/flutter/lib/src/material/switch.dart
+++ b/packages/flutter/lib/src/material/switch.dart
@@ -13,7 +13,7 @@
 import 'theme.dart';
 import 'toggleable.dart';
 
-class Switch extends StatelessComponent {
+class Switch extends StatelessWidget {
   Switch({ Key key, this.value, this.activeColor, this.onChanged })
       : super(key: key);
 
diff --git a/packages/flutter/lib/src/material/tabs.dart b/packages/flutter/lib/src/material/tabs.dart
index 77e8beb..4ff2bc2 100644
--- a/packages/flutter/lib/src/material/tabs.dart
+++ b/packages/flutter/lib/src/material/tabs.dart
@@ -297,7 +297,7 @@
   final TabLabelIconBuilder iconBuilder;
 }
 
-class _Tab extends StatelessComponent {
+class _Tab extends StatelessWidget {
   _Tab({
     Key key,
     this.onSelected,
@@ -395,7 +395,7 @@
   void handleSelectionDeactivate();
 }
 
-class TabBarSelection<T> extends StatefulComponent {
+class TabBarSelection<T> extends StatefulWidget {
   TabBarSelection({
     Key key,
     this.value,
@@ -969,7 +969,7 @@
   }
 }
 
-class TabPageSelector<T> extends StatelessComponent {
+class TabPageSelector<T> extends StatelessWidget {
   const TabPageSelector({ Key key }) : super(key: key);
 
   Widget _buildTabIndicator(TabBarSelectionState<T> selection, T tab, Animation<double> animation, ColorTween selectedColor, ColorTween previousColor) {
diff --git a/packages/flutter/lib/src/material/time_picker.dart b/packages/flutter/lib/src/material/time_picker.dart
index 4d95b3e..6950166 100644
--- a/packages/flutter/lib/src/material/time_picker.dart
+++ b/packages/flutter/lib/src/material/time_picker.dart
@@ -89,7 +89,7 @@
 
 enum _TimePickerMode { hour, minute }
 
-class TimePicker extends StatefulComponent {
+class TimePicker extends StatefulWidget {
   TimePicker({
     this.selectedTime,
     this.onChanged
@@ -141,7 +141,7 @@
 }
 
 // TODO(ianh): Localize!
-class _TimePickerHeader extends StatelessComponent {
+class _TimePickerHeader extends StatelessWidget {
   _TimePickerHeader({
     this.selectedTime,
     this.mode,
@@ -312,7 +312,7 @@
   }
 }
 
-class _Dial extends StatefulComponent {
+class _Dial extends StatefulWidget {
   _Dial({
     this.selectedTime,
     this.mode,
diff --git a/packages/flutter/lib/src/material/time_picker_dialog.dart b/packages/flutter/lib/src/material/time_picker_dialog.dart
index 89d2c55..b026dfd 100644
--- a/packages/flutter/lib/src/material/time_picker_dialog.dart
+++ b/packages/flutter/lib/src/material/time_picker_dialog.dart
@@ -10,7 +10,7 @@
 import 'time_picker.dart';
 import 'flat_button.dart';
 
-class _TimePickerDialog extends StatefulComponent {
+class _TimePickerDialog extends StatefulWidget {
   _TimePickerDialog({
     Key key,
     this.initialTime
diff --git a/packages/flutter/lib/src/material/tool_bar.dart b/packages/flutter/lib/src/material/tool_bar.dart
index 588c26d..7182c4b 100644
--- a/packages/flutter/lib/src/material/tool_bar.dart
+++ b/packages/flutter/lib/src/material/tool_bar.dart
@@ -11,7 +11,7 @@
 import 'theme.dart';
 import 'typography.dart';
 
-class ToolBar extends StatelessComponent {
+class ToolBar extends StatelessWidget {
   ToolBar({
     Key key,
     this.left,
diff --git a/packages/flutter/lib/src/material/tooltip.dart b/packages/flutter/lib/src/material/tooltip.dart
index 4259de5..520ef67 100644
--- a/packages/flutter/lib/src/material/tooltip.dart
+++ b/packages/flutter/lib/src/material/tooltip.dart
@@ -18,7 +18,7 @@
 const Duration _kDefaultTooltipFadeDuration = const Duration(milliseconds: 200);
 const Duration _kDefaultTooltipShowDuration = const Duration(seconds: 2);
 
-class Tooltip extends StatefulComponent {
+class Tooltip extends StatefulWidget {
   Tooltip({
     Key key,
     this.message,
@@ -234,7 +234,7 @@
   }
 }
 
-class _TooltipOverlay extends StatelessComponent {
+class _TooltipOverlay extends StatelessWidget {
   _TooltipOverlay({
     Key key,
     this.message,
diff --git a/packages/flutter/lib/src/material/two_level_list.dart b/packages/flutter/lib/src/material/two_level_list.dart
index 068b0f8..bd1236c 100644
--- a/packages/flutter/lib/src/material/two_level_list.dart
+++ b/packages/flutter/lib/src/material/two_level_list.dart
@@ -14,7 +14,7 @@
 
 const Duration _kExpand = const Duration(milliseconds: 200);
 
-class TwoLevelListItem extends StatelessComponent {
+class TwoLevelListItem extends StatelessWidget {
   TwoLevelListItem({
     Key key,
     this.left,
@@ -49,7 +49,7 @@
   }
 }
 
-class TwoLevelSublist extends StatefulComponent {
+class TwoLevelSublist extends StatefulWidget {
   TwoLevelSublist({ Key key, this.left, this.center, this.children }) : super(key: key);
 
   final Widget left;
@@ -149,7 +149,7 @@
   }
 }
 
-class TwoLevelList extends StatelessComponent {
+class TwoLevelList extends StatelessWidget {
   TwoLevelList({ Key key, this.items, this.type: MaterialListType.twoLine }) : super(key: key);
 
   final List<Widget> items;
diff --git a/packages/flutter/lib/src/widgets/app.dart b/packages/flutter/lib/src/widgets/app.dart
index 73bbd0e..cfc719c 100644
--- a/packages/flutter/lib/src/widgets/app.dart
+++ b/packages/flutter/lib/src/widgets/app.dart
@@ -36,7 +36,7 @@
 
 typedef Future<LocaleQueryData> LocaleChangedCallback(Locale locale);
 
-class WidgetsApp extends StatefulComponent {
+class WidgetsApp extends StatefulWidget {
   WidgetsApp({
     Key key,
     this.title,
diff --git a/packages/flutter/lib/src/widgets/asset_vendor.dart b/packages/flutter/lib/src/widgets/asset_vendor.dart
index 9ff288f..00d6690 100644
--- a/packages/flutter/lib/src/widgets/asset_vendor.dart
+++ b/packages/flutter/lib/src/widgets/asset_vendor.dart
@@ -191,7 +191,7 @@
 /// icons/1.5x/heart.png
 /// icons/2.0x/heart.png
 /// ```
-class AssetVendor extends StatefulComponent {
+class AssetVendor extends StatefulWidget {
   AssetVendor({
     Key key,
     this.bundle,
diff --git a/packages/flutter/lib/src/widgets/basic.dart b/packages/flutter/lib/src/widgets/basic.dart
index c19f793..a1fd8ba 100644
--- a/packages/flutter/lib/src/widgets/basic.dart
+++ b/packages/flutter/lib/src/widgets/basic.dart
@@ -888,7 +888,7 @@
 // CONTAINER
 
 /// A convenience widget that combines common painting, positioning, and sizing widgets.
-class Container extends StatelessComponent {
+class Container extends StatelessWidget {
   Container({
     Key key,
     this.child,
@@ -1090,8 +1090,8 @@
 /// Controls where a child of a [Stack] is positioned.
 ///
 /// This widget must be a descendant of a [Stack], and the path from this widget
-/// to its enclosing [Stack] must contain only components (e.g., not other
-/// kinds of widgets, like [RenderObjectWidget]s).
+/// to its enclosing [Stack] must contain only [StatelessWidget]s or
+/// [StatefulWidget]s (not other kinds of widgets, like [RenderObjectWidget]s).
 class Positioned extends ParentDataWidget<StackRenderObjectWidgetBase> {
   Positioned({
     Key key,
@@ -1426,8 +1426,8 @@
 ///
 /// This widget must be a descendant of a [Flex], [Row], or [Column], and the
 /// path from this widget to its enclosing [Flex], [Row], or [Column] must
-/// contain only components (e.g., not other kinds of widgets, like
-/// [RenderObjectWidget]s).
+/// contain only [StatelessWidget]s or [StatefulWidget]s (not other kinds of
+/// widgets, like [RenderObjectWidget]s).
 class Flexible extends ParentDataWidget<Flex> {
   Flexible({ Key key, this.flex: 1, Widget child })
     : super(key: key, child: child);
@@ -1507,7 +1507,7 @@
 ///
 /// By default, the text will be styled using the closest enclosing
 /// [DefaultTextStyle].
-class Text extends StatelessComponent {
+class Text extends StatelessWidget {
   Text(this.data, { Key key, this.style }) : super(key: key) {
     assert(data != null);
   }
@@ -1666,7 +1666,7 @@
 /// This widget is rarely used directly. Instead, consider using [AssetImage] or
 /// [NetworkImage], depending on whather you wish to display an image from the
 /// assert bundle or from the network.
-class RawImageResource extends StatefulComponent {
+class RawImageResource extends StatefulWidget {
   RawImageResource({
     Key key,
     this.image,
@@ -1785,7 +1785,7 @@
 }
 
 /// Displays an image loaded from the network.
-class NetworkImage extends StatelessComponent {
+class NetworkImage extends StatelessWidget {
   NetworkImage({
     Key key,
     this.src,
@@ -1910,7 +1910,7 @@
 /// This widget lets you customize how images are loaded by supplying your own
 /// image provider. Internally, [NetworkImage] uses an [ImageProvider] that
 /// loads the image from the network.
-class AsyncImage extends StatelessComponent {
+class AsyncImage extends StatelessWidget {
   AsyncImage({
     Key key,
     this.provider,
@@ -2000,7 +2000,7 @@
 ///
 /// By default, asset image will load the image from the closest enclosing
 /// [DefaultAssetBundle].
-class AssetImage extends StatelessComponent {
+class AssetImage extends StatelessWidget {
   // Don't add asserts here unless absolutely necessary, since it will
   // require removing the const constructor, which is an API change.
   const AssetImage({
@@ -2293,7 +2293,7 @@
 
 /// Causes all the semantics of the subtree rooted at this node to be
 /// merged into one node in the semantics tree. For example, if you
-/// have a component with a Text node next to a checkbox widget, this
+/// have a widget with a Text node next to a checkbox widget, this
 /// could be used to merge the label from the Text node with the
 /// "checked" semantic state of the checkbox into a single node that
 /// had both the label and the checked state. Otherwise, the label
@@ -2353,7 +2353,7 @@
   }
 }
 
-class KeyedSubtree extends StatelessComponent {
+class KeyedSubtree extends StatelessWidget {
   KeyedSubtree({ Key key, this.child })
     : super(key: key);
 
@@ -2363,7 +2363,7 @@
 }
 
 /// A platonic widget that invokes a closure to obtain its child widget.
-class Builder extends StatelessComponent {
+class Builder extends StatelessWidget {
   Builder({ Key key, this.builder }) : super(key: key);
 
   /// Called to obtain the child widget.
@@ -2377,7 +2377,7 @@
 }
 
 typedef Widget StatefulWidgetBuilder(BuildContext context, StateSetter setState);
-class StatefulBuilder extends StatefulComponent {
+class StatefulBuilder extends StatefulWidget {
   StatefulBuilder({ Key key, this.builder }) : super(key: key);
   final StatefulWidgetBuilder builder;
   _StatefulBuilderState createState() => new _StatefulBuilderState();
diff --git a/packages/flutter/lib/src/widgets/checked_mode_banner.dart b/packages/flutter/lib/src/widgets/checked_mode_banner.dart
index 5ec239d..51a21b4 100644
--- a/packages/flutter/lib/src/widgets/checked_mode_banner.dart
+++ b/packages/flutter/lib/src/widgets/checked_mode_banner.dart
@@ -50,7 +50,7 @@
 
 /// Displays a banner saying "CHECKED" when running in checked mode.
 /// Does nothing in release mode.
-class CheckedModeBanner extends StatelessComponent {
+class CheckedModeBanner extends StatelessWidget {
   CheckedModeBanner({
     Key key,
     this.child
diff --git a/packages/flutter/lib/src/widgets/child_view.dart b/packages/flutter/lib/src/widgets/child_view.dart
index af639d5..a02b02b 100644
--- a/packages/flutter/lib/src/widgets/child_view.dart
+++ b/packages/flutter/lib/src/widgets/child_view.dart
@@ -9,7 +9,7 @@
 
 export 'package:flutter/rendering.dart' show ChildViewConnection;
 
-class ChildView extends StatelessComponent {
+class ChildView extends StatelessWidget {
   ChildView({ Key key, this.child }) : super(key: key);
 
   final ChildViewConnection child;
diff --git a/packages/flutter/lib/src/widgets/dismissable.dart b/packages/flutter/lib/src/widgets/dismissable.dart
index 217b2ca..dd28994 100644
--- a/packages/flutter/lib/src/widgets/dismissable.dart
+++ b/packages/flutter/lib/src/widgets/dismissable.dart
@@ -52,7 +52,7 @@
 /// The [onDimissed] callback runs after Dismissable's size has collapsed to zero.
 /// If the Dismissable is a list item, it must have a key that distinguishes it from
 /// the other items and its onDismissed callback must remove the item from the list.
-class Dismissable extends StatefulComponent {
+class Dismissable extends StatefulWidget {
   Dismissable({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/widgets/drag_target.dart b/packages/flutter/lib/src/widgets/drag_target.dart
index 738fe4b..c75161d 100644
--- a/packages/flutter/lib/src/widgets/drag_target.dart
+++ b/packages/flutter/lib/src/widgets/drag_target.dart
@@ -35,8 +35,8 @@
   pointer,
 }
 
-/// Subclass this component to customize the gesture used to start a drag.
-abstract class DraggableBase<T> extends StatefulComponent {
+/// Subclass this widget to customize the gesture used to start a drag.
+abstract class DraggableBase<T> extends StatefulWidget {
   DraggableBase({
     Key key,
     this.data,
@@ -261,7 +261,7 @@
 }
 
 /// Receives data when a [Draggable] widget is dropped.
-class DragTarget<T> extends StatefulComponent {
+class DragTarget<T> extends StatefulWidget {
   const DragTarget({
     Key key,
     this.builder,
diff --git a/packages/flutter/lib/src/widgets/focus.dart b/packages/flutter/lib/src/widgets/focus.dart
index b9c9aae..767676b 100644
--- a/packages/flutter/lib/src/widgets/focus.dart
+++ b/packages/flutter/lib/src/widgets/focus.dart
@@ -10,7 +10,7 @@
 import 'scrollable.dart';
 
 // _noFocusedScope is used by Focus to track the case where none of the Focus
-// component's subscopes (e.g. dialogs) are focused. This is distinct from the
+// widget's subscopes (e.g. dialogs) are focused. This is distinct from the
 // focused scope being null, which means that we haven't yet decided which scope
 // is focused and whichever is the first scope to ask for focus will get it.
 final GlobalKey _noFocusedScope = new GlobalKey();
@@ -91,7 +91,7 @@
 /// focused at each level and it hasn't focused any of its enclosed Focus
 /// widgets), then the widget this this global key actually has the focus in the
 /// entire system.
-class Focus extends StatefulComponent {
+class Focus extends StatefulWidget {
   Focus({
     GlobalKey key,
     this.child
@@ -205,7 +205,7 @@
     super.dispose();
   }
 
-  GlobalKey _focusedWidget; // when null, the first component to ask if it's focused will get the focus
+  GlobalKey _focusedWidget; // when null, the first widget to ask if it's focused will get the focus
   GlobalKey _currentlyRegisteredWidgetRemovalListenerKey;
 
   void _setFocusedWidget(GlobalKey key) {
diff --git a/packages/flutter/lib/src/widgets/framework.dart b/packages/flutter/lib/src/widgets/framework.dart
index e115d7e..2babda7 100644
--- a/packages/flutter/lib/src/widgets/framework.dart
+++ b/packages/flutter/lib/src/widgets/framework.dart
@@ -69,9 +69,9 @@
 typedef void GlobalKeyRemoveListener(GlobalKey key);
 
 /// A GlobalKey is one that must be unique across the entire application. It is
-/// used by components that need to communicate with other components across the
+/// used by widgets that need to communicate with other widgets across the
 /// application's element tree.
-abstract class GlobalKey<T extends State<StatefulComponent>> extends Key {
+abstract class GlobalKey<T extends State<StatefulWidget>> extends Key {
   /// Constructs a LabeledGlobalKey, which is a GlobalKey with a label used for debugging.
   /// The label is not used for comparing the identity of the key.
   factory GlobalKey({ String debugLabel }) => new LabeledGlobalKey<T>(debugLabel); // the label is purely for debugging purposes and is otherwise ignored
@@ -119,8 +119,8 @@
   Widget get currentWidget => _currentElement?.widget;
   T get currentState {
     Element element = _currentElement;
-    if (element is StatefulComponentElement) {
-      StatefulComponentElement statefulElement = element;
+    if (element is StatefulElement) {
+      StatefulElement statefulElement = element;
       return statefulElement.state;
     }
     return null;
@@ -179,7 +179,7 @@
 /// Each LabeledGlobalKey instance is a unique key.
 /// The optional label can be used for documentary purposes. It does not affect
 /// the key's identity.
-class LabeledGlobalKey<T extends State<StatefulComponent>> extends GlobalKey<T> {
+class LabeledGlobalKey<T extends State<StatefulWidget>> extends GlobalKey<T> {
   const LabeledGlobalKey(this._debugLabel) : super.constructor();
   final String _debugLabel;
   String toString() => '[GlobalKey ${_debugLabel != null ? _debugLabel : hashCode}]';
@@ -241,42 +241,42 @@
   }
 }
 
-/// StatelessComponents describe a way to compose other Widgets to form reusable
+/// StatelessWidgets describe a way to compose other Widgets to form reusable
 /// parts, which doesn't depend on anything other than the configuration
 /// information in the object itself. (For compositions that can change
 /// dynamically, e.g. due to having an internal clock-driven state, or depending
-/// on some system state, use [StatefulComponent].)
-abstract class StatelessComponent extends Widget {
-  const StatelessComponent({ Key key }) : super(key: key);
+/// on some system state, use [StatefulWidget].)
+abstract class StatelessWidget extends Widget {
+  const StatelessWidget({ Key key }) : super(key: key);
 
-  /// StatelessComponents always use StatelessComponentElements to represent
+  /// StatelessWidget always use [StatelessElement]s to represent
   /// themselves in the Element tree.
-  StatelessComponentElement createElement() => new StatelessComponentElement(this);
+  StatelessElement createElement() => new StatelessElement(this);
 
-  /// Returns another Widget out of which this StatelessComponent is built.
+  /// Returns another Widget out of which this StatelessWidget is built.
   /// Typically that Widget will have been configured with further children,
   /// such that really this function returns a tree of configuration.
   ///
   /// The given build context object contains information about the location in
-  /// the tree at which this component is being built. For example, the context
+  /// the tree at which this widget is being built. For example, the context
   /// provides the set of inherited widgets for this location in the tree.
   Widget build(BuildContext context);
 }
 
-/// StatefulComponents provide the configuration for
-/// [StatefulComponentElement]s, which wrap [State]s, which hold mutable state
+/// StatefulWidgets provide the configuration for
+/// [StatefulElement]s, which wrap [State]s, which hold mutable state
 /// and can dynamically and spontaneously ask to be rebuilt.
-abstract class StatefulComponent extends Widget {
-  const StatefulComponent({ Key key }) : super(key: key);
+abstract class StatefulWidget extends Widget {
+  const StatefulWidget({ Key key }) : super(key: key);
 
-  /// StatefulComponents always use StatefulComponentElements to represent
+  /// StatefulWidget always use [StatefulElement]s to represent
   /// themselves in the Element tree.
-  StatefulComponentElement createElement() => new StatefulComponentElement(this);
+  StatefulElement createElement() => new StatefulElement(this);
 
-  /// Returns an instance of the state to which this StatefulComponent is
+  /// Returns an instance of the state to which this StatefulWidget is
   /// related, using this object as the configuration. Subclasses should
   /// override this to return a new instance of the State class associated with
-  /// this StatefulComponent class, like this:
+  /// this StatefulWidget class, like this:
   ///
   ///   _MyState createState() => new _MyState();
   State createState();
@@ -292,10 +292,10 @@
 /// The signature of setState() methods.
 typedef void StateSetter(VoidCallback fn);
 
-/// The logic and internal state for a [StatefulComponent].
-abstract class State<T extends StatefulComponent> {
+/// The logic and internal state for a [StatefulWidget].
+abstract class State<T extends StatefulWidget> {
   /// The current configuration (an instance of the corresponding
-  /// StatefulComponent class).
+  /// [StatefulWidget] class).
   T get config => _config;
   T _config;
 
@@ -307,7 +307,7 @@
   bool _debugTypesAreRight(Widget widget) => widget is T;
 
   /// Pointer to the owner Element object
-  StatefulComponentElement _element;
+  StatefulElement _element;
 
   /// The context in which this object will be built
   BuildContext get context => _element;
@@ -335,7 +335,7 @@
   ///    setState(() { myState = newValue });
   ///
   /// If you just change the state directly without calling setState(), then the
-  /// component will not be scheduled for rebuilding, meaning that its rendering
+  /// widget will not be scheduled for rebuilding, meaning that its rendering
   /// will not be updated.
   void setState(VoidCallback fn) {
     assert(() {
@@ -376,12 +376,12 @@
     assert(() { _debugLifecycleState = _StateLifecycle.defunct; return true; });
   }
 
-  /// Returns another Widget out of which this StatefulComponent is built.
+  /// Returns another Widget out of which this [StatefulWidget] is built.
   /// Typically that Widget will have been configured with further children,
   /// such that really this function returns a tree of configuration.
   ///
   /// The given build context object contains information about the location in
-  /// the tree at which this component is being built. For example, the context
+  /// the tree at which this widget is being built. For example, the context
   /// provides the set of inherited widgets for this location in the tree.
   Widget build(BuildContext context);
 
@@ -410,13 +410,13 @@
   }
 }
 
-abstract class _ProxyComponent extends Widget {
-  const _ProxyComponent({ Key key, this.child }) : super(key: key);
+abstract class _ProxyWidget extends Widget {
+  const _ProxyWidget({ Key key, this.child }) : super(key: key);
 
   final Widget child;
 }
 
-abstract class ParentDataWidget<T extends RenderObjectWidget> extends _ProxyComponent {
+abstract class ParentDataWidget<T extends RenderObjectWidget> extends _ProxyWidget {
   const ParentDataWidget({ Key key, Widget child })
     : super(key: key, child: child);
 
@@ -464,7 +464,7 @@
   void applyParentData(RenderObject renderObject);
 }
 
-abstract class InheritedWidget extends _ProxyComponent {
+abstract class InheritedWidget extends _ProxyWidget {
   const InheritedWidget({ Key key, Widget child })
     : super(key: key, child: child);
 
@@ -938,11 +938,11 @@
   State ancestorStateOfType(TypeMatcher matcher) {
     Element ancestor = _parent;
     while (ancestor != null) {
-      if (ancestor is StatefulComponentElement && matcher.check(ancestor.state))
+      if (ancestor is StatefulElement && matcher.check(ancestor.state))
         break;
       ancestor = ancestor._parent;
     }
-    StatefulComponentElement statefulAncestor = ancestor;
+    StatefulElement statefulAncestor = ancestor;
     return statefulAncestor?.state;
   }
 
@@ -1047,7 +1047,7 @@
   bool get dirty => _dirty;
   bool _dirty = true;
 
-  // We let component authors call setState from initState, didUpdateConfig, and
+  // We let widget authors call setState from initState, didUpdateConfig, and
   // build even when state is locked because its convenient and a no-op anyway.
   // This flag ensures that this convenience is only allowed on the element
   // currently undergoing initState, didUpdateConfig, or build.
@@ -1065,9 +1065,9 @@
   static bool _debugBuilding = false;
   static BuildableElement _debugCurrentBuildTarget;
 
-  /// Establishes a scope in which component build functions can run.
+  /// Establishes a scope in which widget build functions can run.
   ///
-  /// Inside a build scope, component build functions are allowed to run, but
+  /// Inside a build scope, widget build functions are allowed to run, but
   /// State.setState() is forbidden. This mechanism prevents build functions
   /// from transitively requiring other build functions to run, potentially
   /// causing infinite loops.
@@ -1106,8 +1106,8 @@
   /// rebuild in the next frame.
   ///
   /// Since it is inefficient to build an element twice in one frame,
-  /// applications and components should be structured so as to only mark
-  /// components dirty during event handlers before the frame begins, not during
+  /// applications and widgets should be structured so as to only mark
+  /// widgets dirty during event handlers before the frame begins, not during
   /// the build itself.
   void markNeedsBuild() {
     assert(_debugLifecycleState != _ElementLifecycle.defunct);
@@ -1130,7 +1130,7 @@
       if (_debugStateLocked && (!_debugAllowIgnoredCallsToMarkNeedsBuild || !dirty)) {
         throw new WidgetError(
           'setState() or markNeedsBuild() called during build.\n'
-          'This component cannot be marked as needing to build because the framework '
+          'This widget cannot be marked as needing to build because the framework '
           'is already in the process of building widgets. A widget can be marked as '
           'needing to be built during the build phase only if one if its ancestors '
           'is currently building. This exception is allowed because the framework '
@@ -1149,7 +1149,7 @@
   }
 
   /// Called by the binding when scheduleBuild() has been called to mark this
-  /// element dirty, and, in Components, by update() when the Widget has
+  /// element dirty, and, in components, by update() when the widget has
   /// changed.
   void rebuild() {
     assert(_debugLifecycleState != _ElementLifecycle.initial);
@@ -1195,8 +1195,8 @@
 
 typedef Widget WidgetBuilder(BuildContext context);
 
-/// Base class for the instantiation of StatelessComponent, StatefulComponent,
-/// and ProxyComponent widgets.
+/// Base class for the instantiation of [StatelessWidget], [StatefulWidget],
+/// and [_ProxyWidget] widgets.
 abstract class ComponentElement extends BuildableElement {
   ComponentElement(Widget widget) : super(widget);
 
@@ -1215,8 +1215,8 @@
     rebuild();
   }
 
-  /// Reinvokes the build() method of the StatelessComponent object (for
-  /// stateless components) or the State object (for stateful components) and
+  /// Reinvokes the build() method of the [StatelessWidget] object (for
+  /// stateless widgets) or the [State] object (for stateful widgets) and
   /// then updates the widget tree.
   ///
   /// Called automatically during mount() to generate the first build, and by
@@ -1270,15 +1270,15 @@
   }
 }
 
-/// Instantiation of StatelessComponent widgets.
-class StatelessComponentElement extends ComponentElement {
-  StatelessComponentElement(StatelessComponent widget) : super(widget) {
+/// Instantiation of [StatelessWidget]s.
+class StatelessElement extends ComponentElement {
+  StatelessElement(StatelessWidget widget) : super(widget) {
     _builder = widget.build;
   }
 
-  StatelessComponent get widget => super.widget;
+  StatelessWidget get widget => super.widget;
 
-  void update(StatelessComponent newWidget) {
+  void update(StatelessWidget newWidget) {
     super.update(newWidget);
     assert(widget == newWidget);
     _builder = widget.build;
@@ -1287,9 +1287,9 @@
   }
 }
 
-/// Instantiation of StatefulComponent widgets.
-class StatefulComponentElement extends ComponentElement {
-  StatefulComponentElement(StatefulComponent widget)
+/// Instantiation of [StatefulWidget]s.
+class StatefulElement extends ComponentElement {
+  StatefulElement(StatefulWidget widget)
     : _state = widget.createState(), super(widget) {
     assert(_state._debugTypesAreRight(widget));
     assert(_state._element == null);
@@ -1301,8 +1301,8 @@
     assert(_state._debugLifecycleState == _StateLifecycle.created);
   }
 
-  State<StatefulComponent> get state => _state;
-  State<StatefulComponent> _state;
+  State<StatefulWidget> get state => _state;
+  State<StatefulWidget> _state;
 
   void _firstBuild() {
     assert(_state._debugLifecycleState == _StateLifecycle.created);
@@ -1325,10 +1325,10 @@
     super._firstBuild();
   }
 
-  void update(StatefulComponent newWidget) {
+  void update(StatefulWidget newWidget) {
     super.update(newWidget);
     assert(widget == newWidget);
-    StatefulComponent oldConfig = _state._config;
+    StatefulWidget oldConfig = _state._config;
     // Notice that we mark ourselves as dirty before calling didUpdateConfig to
     // let authors call setState from within didUpdateConfig without triggering
     // asserts.
@@ -1378,16 +1378,16 @@
 }
 
 abstract class _ProxyElement extends ComponentElement {
-  _ProxyElement(_ProxyComponent widget) : super(widget) {
+  _ProxyElement(_ProxyWidget widget) : super(widget) {
     _builder = _build;
   }
 
-  _ProxyComponent get widget => super.widget;
+  _ProxyWidget get widget => super.widget;
 
   Widget _build(BuildContext context) => widget.child;
 
-  void update(_ProxyComponent newWidget) {
-    _ProxyComponent oldWidget = widget;
+  void update(_ProxyWidget newWidget) {
+    _ProxyWidget oldWidget = widget;
     assert(widget != null);
     assert(widget != newWidget);
     super.update(newWidget);
@@ -1397,7 +1397,7 @@
     rebuild();
   }
 
-  void notifyDescendants(_ProxyComponent oldWidget);
+  void notifyDescendants(_ProxyWidget oldWidget);
 }
 
 class ParentDataElement<T extends RenderObjectWidget> extends _ProxyElement {
diff --git a/packages/flutter/lib/src/widgets/gesture_detector.dart b/packages/flutter/lib/src/widgets/gesture_detector.dart
index 403398d..71a4998 100644
--- a/packages/flutter/lib/src/widgets/gesture_detector.dart
+++ b/packages/flutter/lib/src/widgets/gesture_detector.dart
@@ -39,7 +39,7 @@
 /// [excludeFromSemantics] to true.
 ///
 /// See http://flutter.io/gestures/ for additional information.
-class GestureDetector extends StatelessComponent {
+class GestureDetector extends StatelessWidget {
   GestureDetector({
     Key key,
     this.child,
@@ -235,7 +235,7 @@
 /// For common gestures, use a [GestureRecognizer].
 /// RawGestureDetector is useful primarily when developing your
 /// own gesture recognizers.
-class RawGestureDetector extends StatefulComponent {
+class RawGestureDetector extends StatefulWidget {
   RawGestureDetector({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/widgets/gridpaper.dart b/packages/flutter/lib/src/widgets/gridpaper.dart
index eea8af1..39138b4 100644
--- a/packages/flutter/lib/src/widgets/gridpaper.dart
+++ b/packages/flutter/lib/src/widgets/gridpaper.dart
@@ -46,7 +46,7 @@
 
 /// Draws a rectalinear grid of 1px width lines at the specified color and interval.
 /// Useful with a Stack for visualizing your layout along a grid.
-class GridPaper extends StatelessComponent {
+class GridPaper extends StatelessWidget {
   GridPaper({
     Key key,
     this.color: const Color(0x7FC3E8F3),
diff --git a/packages/flutter/lib/src/widgets/heroes.dart b/packages/flutter/lib/src/widgets/heroes.dart
index 1f06e98..f80e087 100644
--- a/packages/flutter/lib/src/widgets/heroes.dart
+++ b/packages/flutter/lib/src/widgets/heroes.dart
@@ -14,7 +14,7 @@
 import 'transitions.dart';
 
 // Heroes are the parts of an application's screen-to-screen transitions where a
-// component from one screen shifts to a position on the other. For example,
+// widget from one screen shifts to a position on the other. For example,
 // album art from a list of albums growing to become the centerpiece of the
 // album's details view. In this context, a screen is a navigator ModalRoute.
 
@@ -76,7 +76,7 @@
   _HeroManifest _takeChild(Rect animationArea, Animation<double> currentAnimation);
 }
 
-class Hero extends StatefulComponent {
+class Hero extends StatefulWidget {
   Hero({
     Key key,
     this.tag,
@@ -104,7 +104,7 @@
     Map<Object, Map<Key, HeroState>> heroes = <Object, Map<Key, HeroState>>{};
     void visitor(Element element) {
       if (element.widget is Hero) {
-        StatefulComponentElement hero = element;
+        StatefulElement hero = element;
         Hero heroWidget = element.widget;
         Object tag = heroWidget.tag;
         assert(tag != null);
diff --git a/packages/flutter/lib/src/widgets/implicit_animations.dart b/packages/flutter/lib/src/widgets/implicit_animations.dart
index a0a65a7..7508246 100644
--- a/packages/flutter/lib/src/widgets/implicit_animations.dart
+++ b/packages/flutter/lib/src/widgets/implicit_animations.dart
@@ -50,9 +50,9 @@
   }
 }
 
-/// An abstract widget for building components that gradually change their
+/// An abstract widget for building widgets that gradually change their
 /// values over a period of time.
-abstract class AnimatedWidgetBase extends StatefulComponent {
+abstract class AnimatedWidgetBase extends StatefulWidget {
   AnimatedWidgetBase({
     Key key,
     this.curve: Curves.linear,
diff --git a/packages/flutter/lib/src/widgets/mimic.dart b/packages/flutter/lib/src/widgets/mimic.dart
index 5c00f13..7faae04 100644
--- a/packages/flutter/lib/src/widgets/mimic.dart
+++ b/packages/flutter/lib/src/widgets/mimic.dart
@@ -123,7 +123,7 @@
 }
 
 /// A widget that copies the appearance of another widget.
-class Mimic extends StatelessComponent {
+class Mimic extends StatelessWidget {
   Mimic({ Key key, this.original }) : super(key: key);
 
   /// A handle to the widget that this widget should copy.
@@ -140,7 +140,7 @@
 ///
 /// This widget's State, [MimicableState], contains an API for initiating the
 /// mimic operation.
-class Mimicable extends StatefulComponent {
+class Mimicable extends StatefulWidget {
   Mimicable({ Key key, this.child }) : super(key: key);
 
   final Widget child;
diff --git a/packages/flutter/lib/src/widgets/mixed_viewport.dart b/packages/flutter/lib/src/widgets/mixed_viewport.dart
index 1251578..8df1ba3 100644
--- a/packages/flutter/lib/src/widgets/mixed_viewport.dart
+++ b/packages/flutter/lib/src/widgets/mixed_viewport.dart
@@ -190,8 +190,8 @@
       renderObject.markNeedsLayout();
     } else {
       // We have to reinvoke our builders because they might return new data.
-      // Consider a stateful component that owns us. The builder it gives us
-      // includes some of the state from that component. The component calls
+      // Consider a stateful widget that owns us. The builder it gives us
+      // includes some of the state from that widget. The widget calls
       // setState() on itself. It rebuilds. Part of that involves rebuilding
       // us, but now what? If we don't reinvoke the builders. then they will
       // not be rebuilt, and so the new state won't be used. Therefore, we use
diff --git a/packages/flutter/lib/src/widgets/modal_barrier.dart b/packages/flutter/lib/src/widgets/modal_barrier.dart
index 942432d..38e0699 100644
--- a/packages/flutter/lib/src/widgets/modal_barrier.dart
+++ b/packages/flutter/lib/src/widgets/modal_barrier.dart
@@ -9,7 +9,7 @@
 import 'transitions.dart';
 
 /// Prevents the user from interacting with widgets behind itself.
-class ModalBarrier extends StatelessComponent {
+class ModalBarrier extends StatelessWidget {
   ModalBarrier({
     Key key,
     this.color,
@@ -45,7 +45,7 @@
 }
 
 /// Prevents the user from interacting with widgets behind itself.
-class AnimatedModalBarrier extends AnimatedComponent {
+class AnimatedModalBarrier extends AnimatedWidget {
   AnimatedModalBarrier({
     Key key,
     Animation<Color> color,
diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart
index ea06393..cf5eb51 100644
--- a/packages/flutter/lib/src/widgets/navigator.dart
+++ b/packages/flutter/lib/src/widgets/navigator.dart
@@ -135,7 +135,7 @@
 /// the navigator visually transition from one page to another by the widgets
 /// around in the overlay. Similarly, the navigator can be used to show a dialog
 /// by positioning the dialog widget above the current page.
-class Navigator extends StatefulComponent {
+class Navigator extends StatefulWidget {
   Navigator({
     Key key,
     this.initialRoute,
diff --git a/packages/flutter/lib/src/widgets/notification_listener.dart b/packages/flutter/lib/src/widgets/notification_listener.dart
index 9f2a83f..c35d0d1 100644
--- a/packages/flutter/lib/src/widgets/notification_listener.dart
+++ b/packages/flutter/lib/src/widgets/notification_listener.dart
@@ -12,7 +12,7 @@
   /// Start bubbling this notification at the given build context.
   void dispatch(BuildContext target) {
     target.visitAncestorElements((Element element) {
-      if (element is StatelessComponentElement &&
+      if (element is StatelessElement &&
           element.widget is NotificationListener<dynamic>) {
         final NotificationListener<dynamic> widget = element.widget;
         if (widget._dispatch(this)) // that function checks the type dynamically
@@ -24,7 +24,7 @@
 }
 
 /// Listens for [Notification]s bubbling up the tree.
-class NotificationListener<T extends Notification> extends StatelessComponent {
+class NotificationListener<T extends Notification> extends StatelessWidget {
   NotificationListener({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/widgets/overlay.dart b/packages/flutter/lib/src/widgets/overlay.dart
index 6b9bad2..d7bf3e8 100644
--- a/packages/flutter/lib/src/widgets/overlay.dart
+++ b/packages/flutter/lib/src/widgets/overlay.dart
@@ -49,7 +49,7 @@
   String toString() => '$runtimeType@$hashCode(opaque: $opaque)';
 }
 
-class _OverlayEntry extends StatefulComponent {
+class _OverlayEntry extends StatefulWidget {
   _OverlayEntry(OverlayEntry entry) : entry = entry, super(key: entry._key);
   final OverlayEntry entry;
   _OverlayEntryState createState() => new _OverlayEntryState();
@@ -59,7 +59,7 @@
 }
 
 /// A [Stack] of entries that can be managed independently.
-class Overlay extends StatefulComponent {
+class Overlay extends StatefulWidget {
   Overlay({
     Key key,
     this.initialEntries: const <OverlayEntry>[]
diff --git a/packages/flutter/lib/src/widgets/page_storage.dart b/packages/flutter/lib/src/widgets/page_storage.dart
index b1587f2..6a2233b 100644
--- a/packages/flutter/lib/src/widgets/page_storage.dart
+++ b/packages/flutter/lib/src/widgets/page_storage.dart
@@ -82,7 +82,7 @@
 }
 
 /// Establishes a page storage bucket for this widget subtree.
-class PageStorage extends StatelessComponent {
+class PageStorage extends StatelessWidget {
   PageStorage({
     Key key,
     this.child,
diff --git a/packages/flutter/lib/src/widgets/placeholder.dart b/packages/flutter/lib/src/widgets/placeholder.dart
index f9ca310..aaccb3b 100644
--- a/packages/flutter/lib/src/widgets/placeholder.dart
+++ b/packages/flutter/lib/src/widgets/placeholder.dart
@@ -6,7 +6,7 @@
 import 'framework.dart';
 
 /// A widget whose child can be mutated.
-class Placeholder extends StatefulComponent {
+class Placeholder extends StatefulWidget {
   Placeholder({ Key key }) : super(key: key);
 
   PlaceholderState createState() => new PlaceholderState();
diff --git a/packages/flutter/lib/src/widgets/raw_keyboard_listener.dart b/packages/flutter/lib/src/widgets/raw_keyboard_listener.dart
index 59344af..3e3088f 100644
--- a/packages/flutter/lib/src/widgets/raw_keyboard_listener.dart
+++ b/packages/flutter/lib/src/widgets/raw_keyboard_listener.dart
@@ -9,7 +9,7 @@
 import 'basic.dart';
 import 'framework.dart';
 
-class RawKeyboardListener extends StatefulComponent {
+class RawKeyboardListener extends StatefulWidget {
   RawKeyboardListener({
     Key key,
     this.focused: false,
diff --git a/packages/flutter/lib/src/widgets/routes.dart b/packages/flutter/lib/src/widgets/routes.dart
index 4e4a8ac..0da4a7a 100644
--- a/packages/flutter/lib/src/widgets/routes.dart
+++ b/packages/flutter/lib/src/widgets/routes.dart
@@ -336,7 +336,7 @@
   }
 }
 
-class _ModalScope extends StatefulComponent {
+class _ModalScope extends StatefulWidget {
   _ModalScope({
     Key key,
     this.route
diff --git a/packages/flutter/lib/src/widgets/scrollable.dart b/packages/flutter/lib/src/widgets/scrollable.dart
index d4b3575..b179225 100644
--- a/packages/flutter/lib/src/widgets/scrollable.dart
+++ b/packages/flutter/lib/src/widgets/scrollable.dart
@@ -34,7 +34,7 @@
 ///
 /// Widgets that subclass [Scrollable] typically use state objects that subclass
 /// [ScrollableState].
-abstract class Scrollable extends StatefulComponent {
+abstract class Scrollable extends StatefulWidget {
   Scrollable({
     Key key,
     this.initialScrollOffset,
@@ -604,7 +604,7 @@
   final double scrollOffset;
 }
 
-/// A simple scrollable widget that has a single child. Use this component if
+/// A simple scrollable widget that has a single child. Use this widget if
 /// you are not worried about offscreen widgets consuming resources.
 class ScrollableViewport extends Scrollable {
   ScrollableViewport({
@@ -668,7 +668,7 @@
 /// A mashup of [ScrollableViewport] and [BlockBody]. Useful when you have a small,
 /// fixed number of children that you wish to arrange in a block layout and that
 /// might exceed the height of its container (and therefore need to scroll).
-class Block extends StatelessComponent {
+class Block extends StatelessWidget {
   Block({
     Key key,
     this.children: const <Widget>[],
diff --git a/packages/flutter/lib/src/widgets/semantics_debugger.dart b/packages/flutter/lib/src/widgets/semantics_debugger.dart
index 66e1cb5..e3f86be 100644
--- a/packages/flutter/lib/src/widgets/semantics_debugger.dart
+++ b/packages/flutter/lib/src/widgets/semantics_debugger.dart
@@ -15,7 +15,7 @@
 ///
 /// This widget is useful for understand how an app presents itself to
 /// accessibility technology.
-class SemanticsDebugger extends StatefulComponent {
+class SemanticsDebugger extends StatefulWidget {
   const SemanticsDebugger({ Key key, this.child }) : super(key: key);
 
   final Widget child;
diff --git a/packages/flutter/lib/src/widgets/status_transitions.dart b/packages/flutter/lib/src/widgets/status_transitions.dart
index a3a0bc5..211474e 100644
--- a/packages/flutter/lib/src/widgets/status_transitions.dart
+++ b/packages/flutter/lib/src/widgets/status_transitions.dart
@@ -5,16 +5,16 @@
 import 'basic.dart';
 import 'framework.dart';
 
-/// A component that rebuilds when the given animation changes status.
-abstract class StatusTransitionComponent extends StatefulComponent {
-  StatusTransitionComponent({
+/// A widget that rebuilds when the given animation changes status.
+abstract class StatusTransitionWidget extends StatefulWidget {
+  StatusTransitionWidget({
     Key key,
     this.animation
   }) : super(key: key) {
     assert(animation != null);
   }
 
-  /// The animation to which this component is listening.
+  /// The animation to which this widget is listening.
   final Animation<double> animation;
 
   Widget build(BuildContext context);
@@ -22,13 +22,13 @@
   _StatusTransitionState createState() => new _StatusTransitionState();
 }
 
-class _StatusTransitionState extends State<StatusTransitionComponent> {
+class _StatusTransitionState extends State<StatusTransitionWidget> {
   void initState() {
     super.initState();
     config.animation.addStatusListener(_animationStatusChanged);
   }
 
-  void didUpdateConfig(StatusTransitionComponent oldConfig) {
+  void didUpdateConfig(StatusTransitionWidget oldConfig) {
     if (config.animation != oldConfig.animation) {
       oldConfig.animation.removeStatusListener(_animationStatusChanged);
       config.animation.addStatusListener(_animationStatusChanged);
diff --git a/packages/flutter/lib/src/widgets/title.dart b/packages/flutter/lib/src/widgets/title.dart
index 223ae26..74cda74 100644
--- a/packages/flutter/lib/src/widgets/title.dart
+++ b/packages/flutter/lib/src/widgets/title.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/widgets.dart';
 
 /// Controls the description of this app in the operating system.
-class Title extends StatelessComponent {
+class Title extends StatelessWidget {
   Title({
     Key key,
     this.title,
diff --git a/packages/flutter/lib/src/widgets/transitions.dart b/packages/flutter/lib/src/widgets/transitions.dart
index 35f8ca5..2223cda 100644
--- a/packages/flutter/lib/src/widgets/transitions.dart
+++ b/packages/flutter/lib/src/widgets/transitions.dart
@@ -12,22 +12,22 @@
 export 'package:flutter/animation.dart' show AnimationDirection;
 export 'package:flutter/rendering.dart' show RelativeRect;
 
-/// A component that rebuilds when the given animation changes value.
+/// A widget that rebuilds when the given animation changes value.
 ///
-/// AnimatedComponent is most useful for stateless animated widgets. To use
-/// AnimatedComponent, simply subclass it and implement the build function.
+/// AnimatedWidget is most useful for stateless animated widgets. To use
+/// AnimatedWidget, simply subclass it and implement the build function.
 ///
 /// For more complex case involving additional state, consider using
 /// [AnimatedBuilder].
-abstract class AnimatedComponent extends StatefulComponent {
-  AnimatedComponent({
+abstract class AnimatedWidget extends StatefulWidget {
+  AnimatedWidget({
     Key key,
     this.animation
   }) : super(key: key) {
     assert(animation != null);
   }
 
-  /// The animation to which this component is listening.
+  /// The animation to which this widget is listening.
   final Animation<Object> animation;
 
   /// Override this function to build widgets that depend on the current value
@@ -35,7 +35,7 @@
   Widget build(BuildContext context);
 
   /// Subclasses typically do not override this method.
-  _AnimatedComponentState createState() => new _AnimatedComponentState();
+  _AnimatedState createState() => new _AnimatedState();
 
   void debugFillDescription(List<String> description) {
     super.debugFillDescription(description);
@@ -43,13 +43,13 @@
   }
 }
 
-class _AnimatedComponentState extends State<AnimatedComponent> {
+class _AnimatedState extends State<AnimatedWidget> {
   void initState() {
     super.initState();
     config.animation.addListener(_handleTick);
   }
 
-  void didUpdateConfig(AnimatedComponent oldConfig) {
+  void didUpdateConfig(AnimatedWidget oldConfig) {
     if (config.animation != oldConfig.animation) {
       oldConfig.animation.removeListener(_handleTick);
       config.animation.addListener(_handleTick);
@@ -73,7 +73,7 @@
 }
 
 /// Animates the position of a widget relative to its normal position.
-class SlideTransition extends AnimatedComponent {
+class SlideTransition extends AnimatedWidget {
   SlideTransition({
     Key key,
     Animation<FractionalOffset> position,
@@ -109,7 +109,7 @@
 }
 
 /// Animates the scale of transformed widget.
-class ScaleTransition extends AnimatedComponent {
+class ScaleTransition extends AnimatedWidget {
   ScaleTransition({
     Key key,
     Animation<double> scale,
@@ -145,7 +145,7 @@
 }
 
 /// Animates the rotation of a widget.
-class RotationTransition extends AnimatedComponent {
+class RotationTransition extends AnimatedWidget {
   RotationTransition({
     Key key,
     Animation<double> turns,
@@ -172,7 +172,7 @@
 }
 
 /// Animates a widget's width or height.
-class SizeTransition extends AnimatedComponent {
+class SizeTransition extends AnimatedWidget {
   SizeTransition({
     Key key,
     this.axis: Axis.vertical,
@@ -209,7 +209,7 @@
 }
 
 /// Animates the opacity of a widget.
-class FadeTransition extends AnimatedComponent {
+class FadeTransition extends AnimatedWidget {
   FadeTransition({
     Key key,
     Animation<double> opacity,
@@ -248,7 +248,7 @@
 /// position to and end position over the lifetime of the animation.
 ///
 /// Only works if it's the child of a [Stack].
-class PositionedTransition extends AnimatedComponent {
+class PositionedTransition extends AnimatedWidget {
   PositionedTransition({
     Key key,
     Animation<RelativeRect> rect,
@@ -278,7 +278,7 @@
 
 /// A general-purpose widget for building animations.
 ///
-/// AnimatedBuilder is useful for more complex components that wish to include
+/// AnimatedBuilder is useful for more complex widgets that wish to include
 /// an animation as part of a larger build function. To use AnimatedBuilder,
 /// simply construct the widget and pass it a builder function.
 ///
@@ -294,8 +294,8 @@
 /// performance significantly in some cases and is therefore a good practice.
 ///
 /// For simple cases without additional state, consider using
-/// [AnimatedComponent].
-class AnimatedBuilder extends AnimatedComponent {
+/// [AnimatedWidget].
+class AnimatedBuilder extends AnimatedWidget {
   AnimatedBuilder({
     Key key,
     Animation<Object> animation,
diff --git a/packages/flutter/lib/src/widgets/unique_component.dart b/packages/flutter/lib/src/widgets/unique_widget.dart
similarity index 77%
rename from packages/flutter/lib/src/widgets/unique_component.dart
rename to packages/flutter/lib/src/widgets/unique_widget.dart
index 054d615..ecf546b 100644
--- a/packages/flutter/lib/src/widgets/unique_component.dart
+++ b/packages/flutter/lib/src/widgets/unique_widget.dart
@@ -5,8 +5,8 @@
 import 'framework.dart';
 
 /// A widget that has exactly one inflated instance in the tree.
-abstract class UniqueComponent<T extends State> extends StatefulComponent {
-  UniqueComponent({ GlobalKey key }) : super(key: key) {
+abstract class UniqueWidget<T extends State> extends StatefulWidget {
+  UniqueWidget({ GlobalKey key }) : super(key: key) {
     assert(key != null);
   }
 
diff --git a/packages/flutter/lib/widgets.dart b/packages/flutter/lib/widgets.dart
index fcea658..e722227 100644
--- a/packages/flutter/lib/widgets.dart
+++ b/packages/flutter/lib/widgets.dart
@@ -44,7 +44,7 @@
 export 'src/widgets/status_transitions.dart';
 export 'src/widgets/title.dart';
 export 'src/widgets/transitions.dart';
-export 'src/widgets/unique_component.dart';
+export 'src/widgets/unique_widget.dart';
 export 'src/widgets/virtual_viewport.dart';
 
 export 'package:vector_math/vector_math_64.dart' show Matrix4;
diff --git a/packages/flutter/test/widget/build_scope_test.dart b/packages/flutter/test/widget/build_scope_test.dart
index b79e30d..d95d2fb 100644
--- a/packages/flutter/test/widget/build_scope_test.dart
+++ b/packages/flutter/test/widget/build_scope_test.dart
@@ -9,7 +9,7 @@
 
 import 'test_widgets.dart';
 
-class ProbeWidget extends StatefulComponent {
+class ProbeWidget extends StatefulWidget {
   ProbeWidgetState createState() => new ProbeWidgetState();
 }
 
@@ -32,7 +32,7 @@
   }
 }
 
-class BadWidget extends StatelessComponent {
+class BadWidget extends StatelessWidget {
   BadWidget(this.parentState);
 
   final State parentState;
@@ -43,7 +43,7 @@
   }
 }
 
-class BadWidgetParent extends StatefulComponent {
+class BadWidgetParent extends StatefulWidget {
   BadWidgetParentState createState() => new BadWidgetParentState();
 }
 
@@ -53,7 +53,7 @@
   }
 }
 
-class BadDisposeWidget extends StatefulComponent {
+class BadDisposeWidget extends StatefulWidget {
   BadDisposeWidgetState createState() => new BadDisposeWidgetState();
 }
 
@@ -98,17 +98,17 @@
       expect(ProbeWidgetState.buildCount, equals(1));
       tester.pumpWidget(new ProbeWidget());
       expect(ProbeWidgetState.buildCount, equals(2));
-      tester.pumpWidget(new FlipComponent(
+      tester.pumpWidget(new FlipWidget(
         key: flipKey,
         left: new Container(),
         right: new ProbeWidget()
       ));
       expect(ProbeWidgetState.buildCount, equals(2));
-      FlipComponentState flipState1 = flipKey.currentState;
+      FlipWidgetState flipState1 = flipKey.currentState;
       flipState1.flip();
       tester.pump();
       expect(ProbeWidgetState.buildCount, equals(3));
-      FlipComponentState flipState2 = flipKey.currentState;
+      FlipWidgetState flipState2 = flipKey.currentState;
       flipState2.flip();
       tester.pump();
       expect(ProbeWidgetState.buildCount, equals(3));
diff --git a/packages/flutter/test/widget/dismissable_test.dart b/packages/flutter/test/widget/dismissable_test.dart
index 1fafbd0..b8e1634 100644
--- a/packages/flutter/test/widget/dismissable_test.dart
+++ b/packages/flutter/test/widget/dismissable_test.dart
@@ -105,8 +105,8 @@
   tester.pumpWidget(widgetBuilder()); // rebuild after the callback removes the entry
 }
 
-class Test1215DismissableComponent extends StatelessComponent {
-  Test1215DismissableComponent(this.text);
+class Test1215DismissableWidget extends StatelessWidget {
+  Test1215DismissableWidget(this.text);
   final String text;
   Widget build(BuildContext context) {
     return new Dismissable(
@@ -270,8 +270,8 @@
     });
   });
 
-  // This one is for a case where dssmissing a component above a previously
-  // dismissed component threw an exception, which was documented at the
+  // This one is for a case where dssmissing a widget above a previously
+  // dismissed widget threw an exception, which was documented at the
   // now-obsolete URL https://github.com/flutter/engine/issues/1215 (the URL
   // died in the migration to the new repo). Don't copy this test; it doesn't
   // actually remove the dismissed widget, which is a violation of the
@@ -284,8 +284,8 @@
           height: 1000.0,
           child: new Column(
             children: <Widget>[
-              new Test1215DismissableComponent('1'),
-              new Test1215DismissableComponent('2')
+              new Test1215DismissableWidget('1'),
+              new Test1215DismissableWidget('2')
             ]
           )
         )
diff --git a/packages/flutter/test/widget/duplicate_key_test.dart b/packages/flutter/test/widget/duplicate_key_test.dart
index 081e968..0f4bd80 100644
--- a/packages/flutter/test/widget/duplicate_key_test.dart
+++ b/packages/flutter/test/widget/duplicate_key_test.dart
@@ -13,7 +13,7 @@
 }
 List<Item> items = <Item>[new Item(), new Item()];
 
-class StatefulLeaf extends StatefulComponent {
+class StatefulLeaf extends StatefulWidget {
   StatefulLeaf({ GlobalKey key }) : super(key: key);
   StatefulLeafState createState() => new StatefulLeafState();
 }
@@ -23,7 +23,7 @@
   Widget build(BuildContext context) => new Text('leaf');
 }
 
-class KeyedWrapper extends StatelessComponent {
+class KeyedWrapper extends StatelessWidget {
   KeyedWrapper(this.key1, this.key2);
   Key key1, key2;
   Widget build(BuildContext context) {
diff --git a/packages/flutter/test/widget/focus_test.dart b/packages/flutter/test/widget/focus_test.dart
index f0084c6..bfe82b8 100644
--- a/packages/flutter/test/widget/focus_test.dart
+++ b/packages/flutter/test/widget/focus_test.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/widgets.dart';
 import 'package:test/test.dart';
 
-class TestFocusable extends StatelessComponent {
+class TestFocusable extends StatelessWidget {
   TestFocusable({
     GlobalKey key,
     this.no,
diff --git a/packages/flutter/test/widget/init_state_test.dart b/packages/flutter/test/widget/init_state_test.dart
index 23b9cb0..418f2ce 100644
--- a/packages/flutter/test/widget/init_state_test.dart
+++ b/packages/flutter/test/widget/init_state_test.dart
@@ -8,11 +8,11 @@
 
 List<String> ancestors = <String>[];
 
-class TestComponent extends StatefulComponent {
-  TestComponentState createState() => new TestComponentState();
+class TestWidget extends StatefulWidget {
+  TestWidgetState createState() => new TestWidgetState();
 }
 
-class TestComponentState extends State<TestComponent> {
+class TestWidgetState extends State<TestWidget> {
   void initState() {
     super.initState();
     context.visitAncestorElements((Element element) {
@@ -27,7 +27,7 @@
 void main() {
   test('initState() is called when we are in the tree', () {
     testWidgets((WidgetTester tester) {
-      tester.pumpWidget(new Container(child: new TestComponent()));
+      tester.pumpWidget(new Container(child: new TestWidget()));
       expect(ancestors, equals(<String>['Container', 'RenderObjectToWidgetAdapter<RenderBox>']));
     });
   });
diff --git a/packages/flutter/test/widget/mixed_viewport_test.dart b/packages/flutter/test/widget/mixed_viewport_test.dart
index a376ef9..10e98e9 100644
--- a/packages/flutter/test/widget/mixed_viewport_test.dart
+++ b/packages/flutter/test/widget/mixed_viewport_test.dart
@@ -17,7 +17,7 @@
       // so if our widget is 100 pixels tall, it should fit exactly 6 times.
 
       Widget builder() {
-        return new FlipComponent(
+        return new FlipWidget(
           left: new MixedViewport(
             builder: (BuildContext context, int i) {
               callbackTracker.add(i);
@@ -35,19 +35,19 @@
 
       tester.pumpWidget(builder());
 
-      StatefulComponentElement element = tester.findElement((Element element) => element.widget is FlipComponent);
-      FlipComponentState testComponent = element.state;
+      StatefulElement element = tester.findElement((Element element) => element.widget is FlipWidget);
+      FlipWidgetState testWidget = element.state;
 
       expect(callbackTracker, equals([0, 1, 2, 3, 4, 5]));
 
       callbackTracker.clear();
-      testComponent.flip();
+      testWidget.flip();
       tester.pump();
 
       expect(callbackTracker, equals([]));
 
       callbackTracker.clear();
-      testComponent.flip();
+      testWidget.flip();
       tester.pump();
 
       expect(callbackTracker, equals([0, 1, 2, 3, 4, 5]));
@@ -75,7 +75,7 @@
       };
 
       Widget builder() {
-        return new FlipComponent(
+        return new FlipWidget(
           left: new MixedViewport(
             builder: itemBuilder,
             startOffset: offset
@@ -123,7 +123,7 @@
       };
 
       Widget builder() {
-        return new FlipComponent(
+        return new FlipWidget(
           left: new MixedViewport(
             builder: itemBuilder,
             startOffset: offset,
diff --git a/packages/flutter/test/widget/modal_barrier_test.dart b/packages/flutter/test/widget/modal_barrier_test.dart
index 904f865..de87cb4 100644
--- a/packages/flutter/test/widget/modal_barrier_test.dart
+++ b/packages/flutter/test/widget/modal_barrier_test.dart
@@ -62,8 +62,8 @@
   test('ModalBarrier pops the Navigator when dismissed', () {
     testWidgets((WidgetTester tester) {
       final Map<String, RouteBuilder> routes = <String, RouteBuilder>{
-        '/': (RouteArguments args) => new FirstComponent(),
-        '/modal': (RouteArguments args) => new SecondComponent(),
+        '/': (RouteArguments args) => new FirstWidget(),
+        '/modal': (RouteArguments args) => new SecondWidget(),
       };
 
       tester.pumpWidget(new MaterialApp(routes: routes));
@@ -87,7 +87,7 @@
   });
 }
 
-class FirstComponent extends StatelessComponent {
+class FirstWidget extends StatelessWidget {
   Widget build(BuildContext context) {
     return new GestureDetector(
       onTap: () {
@@ -100,7 +100,7 @@
   }
 }
 
-class SecondComponent extends StatelessComponent {
+class SecondWidget extends StatelessWidget {
   Widget build(BuildContext context) {
     return new ModalBarrier(
       key: const ValueKey<String>('barrier'),
diff --git a/packages/flutter/test/widget/multichild_test.dart b/packages/flutter/test/widget/multichild_test.dart
index 9756c8a..ced5f20 100644
--- a/packages/flutter/test/widget/multichild_test.dart
+++ b/packages/flutter/test/widget/multichild_test.dart
@@ -113,7 +113,7 @@
     });
   });
 
-  test('MultiChildRenderObjectElement with stateless components', () {
+  test('MultiChildRenderObjectElement with stateless widgets', () {
     testWidgets((WidgetTester tester) {
 
       tester.pumpWidget(
@@ -234,7 +234,7 @@
     });
   });
 
-  test('MultiChildRenderObjectElement with stateful components', () {
+  test('MultiChildRenderObjectElement with stateful widgets', () {
     testWidgets((WidgetTester tester) {
       tester.pumpWidget(
         new Stack(
@@ -250,7 +250,7 @@
       tester.pumpWidget(
         new Stack(
           children: <Widget>[
-            new FlipComponent(
+            new FlipWidget(
               left: new DecoratedBox(decoration: kBoxDecorationA),
               right: new DecoratedBox(decoration: kBoxDecorationB)
             ),
@@ -261,7 +261,7 @@
 
       checkTree(tester, <BoxDecoration>[kBoxDecorationA, kBoxDecorationC]);
 
-      flipStatefulComponent(tester);
+      flipStatefulWidget(tester);
       tester.pump();
 
       checkTree(tester, <BoxDecoration>[kBoxDecorationB, kBoxDecorationC]);
@@ -269,7 +269,7 @@
       tester.pumpWidget(
         new Stack(
           children: <Widget>[
-            new FlipComponent(
+            new FlipWidget(
               left: new DecoratedBox(decoration: kBoxDecorationA),
               right: new DecoratedBox(decoration: kBoxDecorationB)
             ),
@@ -279,7 +279,7 @@
 
       checkTree(tester, <BoxDecoration>[kBoxDecorationB]);
 
-      flipStatefulComponent(tester);
+      flipStatefulWidget(tester);
       tester.pump();
 
       checkTree(tester, <BoxDecoration>[kBoxDecorationA]);
@@ -287,7 +287,7 @@
       tester.pumpWidget(
         new Stack(
           children: <Widget>[
-            new FlipComponent(
+            new FlipWidget(
               key: new Key('flip'),
               left: new DecoratedBox(decoration: kBoxDecorationA),
               right: new DecoratedBox(decoration: kBoxDecorationB)
@@ -300,7 +300,7 @@
         new Stack(
           children: <Widget>[
             new DecoratedBox(key: new Key('c'), decoration: kBoxDecorationC),
-            new FlipComponent(
+            new FlipWidget(
               key: new Key('flip'),
               left: new DecoratedBox(decoration: kBoxDecorationA),
               right: new DecoratedBox(decoration: kBoxDecorationB)
@@ -311,7 +311,7 @@
 
       checkTree(tester, <BoxDecoration>[kBoxDecorationC, kBoxDecorationA]);
 
-      flipStatefulComponent(tester);
+      flipStatefulWidget(tester);
       tester.pump();
 
       checkTree(tester, <BoxDecoration>[kBoxDecorationC, kBoxDecorationB]);
@@ -319,7 +319,7 @@
       tester.pumpWidget(
         new Stack(
           children: <Widget>[
-            new FlipComponent(
+            new FlipWidget(
               key: new Key('flip'),
               left: new DecoratedBox(decoration: kBoxDecorationA),
               right: new DecoratedBox(decoration: kBoxDecorationB)
diff --git a/packages/flutter/test/widget/navigator_test.dart b/packages/flutter/test/widget/navigator_test.dart
index 80c6dc1..9dce4cb 100644
--- a/packages/flutter/test/widget/navigator_test.dart
+++ b/packages/flutter/test/widget/navigator_test.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/material.dart';
 import 'package:test/test.dart';
 
-class FirstComponent extends StatelessComponent {
+class FirstWidget extends StatelessWidget {
   Widget build(BuildContext context) {
     return new GestureDetector(
       onTap: () {
@@ -22,11 +22,11 @@
   }
 }
 
-class SecondComponent extends StatefulComponent {
-  SecondComponentState createState() => new SecondComponentState();
+class SecondWidget extends StatefulWidget {
+  SecondWidgetState createState() => new SecondWidgetState();
 }
 
-class SecondComponentState extends State<SecondComponent> {
+class SecondWidgetState extends State<SecondWidget> {
   Widget build(BuildContext context) {
     return new GestureDetector(
       onTap: () => Navigator.pop(context),
@@ -42,8 +42,8 @@
 
 typedef void ExceptionCallback(dynamic exception);
 
-class ThirdComponent extends StatelessComponent {
-  ThirdComponent({ this.targetKey, this.onException });
+class ThirdWidget extends StatelessWidget {
+  ThirdWidget({ this.targetKey, this.onException });
 
   final Key targetKey;
   final ExceptionCallback onException;
@@ -64,11 +64,11 @@
 }
 
 void main() {
-  test('Can navigator navigate to and from a stateful component', () {
+  test('Can navigator navigate to and from a stateful widget', () {
     testWidgets((WidgetTester tester) {
       final Map<String, RouteBuilder> routes = <String, RouteBuilder>{
-        '/': (RouteArguments args) => new FirstComponent(),
-        '/second': (RouteArguments args) => new SecondComponent(),
+        '/': (RouteArguments args) => new FirstWidget(),
+        '/second': (RouteArguments args) => new SecondWidget(),
       };
 
       tester.pumpWidget(new MaterialApp(routes: routes));
@@ -101,7 +101,7 @@
     testWidgets((WidgetTester tester) {
       Key targetKey = new Key('foo');
       dynamic exception;
-      Widget widget = new ThirdComponent(
+      Widget widget = new ThirdWidget(
         targetKey: targetKey,
         onException: (dynamic e) {
           exception = e;
diff --git a/packages/flutter/test/widget/page_forward_transitions_test.dart b/packages/flutter/test/widget/page_forward_transitions_test.dart
index 7b3bf5d..d350d31 100644
--- a/packages/flutter/test/widget/page_forward_transitions_test.dart
+++ b/packages/flutter/test/widget/page_forward_transitions_test.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/material.dart';
 import 'package:test/test.dart' hide TypeMatcher;
 
-class TestTransition extends AnimatedComponent {
+class TestTransition extends AnimatedWidget {
   TestTransition({
     Key key,
     this.childFirstHalf,
diff --git a/packages/flutter/test/widget/parent_data_test.dart b/packages/flutter/test/widget/parent_data_test.dart
index 940d88d..491ad45 100644
--- a/packages/flutter/test/widget/parent_data_test.dart
+++ b/packages/flutter/test/widget/parent_data_test.dart
@@ -210,7 +210,7 @@
           children: <Widget>[
             new Positioned(
               right: 10.0,
-              child: new FlipComponent(left: kDecoratedBoxA, right: kDecoratedBoxB)
+              child: new FlipWidget(left: kDecoratedBoxA, right: kDecoratedBoxB)
             ),
           ]
         )
@@ -220,7 +220,7 @@
         new TestParentData(right: 10.0),
       ]);
 
-      flipStatefulComponent(tester);
+      flipStatefulWidget(tester);
       tester.pump();
 
       checkTree(tester, <TestParentData>[
@@ -232,7 +232,7 @@
           children: <Widget>[
             new Positioned(
               top: 7.0,
-              child: new FlipComponent(left: kDecoratedBoxA, right: kDecoratedBoxB)
+              child: new FlipWidget(left: kDecoratedBoxA, right: kDecoratedBoxB)
             ),
           ]
         )
@@ -242,7 +242,7 @@
         new TestParentData(top: 7.0),
       ]);
 
-      flipStatefulComponent(tester);
+      flipStatefulWidget(tester);
       tester.pump();
 
       checkTree(tester, <TestParentData>[
diff --git a/packages/flutter/test/widget/remember_scroll_position_test.dart b/packages/flutter/test/widget/remember_scroll_position_test.dart
index 4c166f3..6e6b7e3 100644
--- a/packages/flutter/test/widget/remember_scroll_position_test.dart
+++ b/packages/flutter/test/widget/remember_scroll_position_test.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/material.dart';
 import 'package:test/test.dart';
 
-class ThePositiveNumbers extends StatelessComponent {
+class ThePositiveNumbers extends StatelessWidget {
   Widget build(BuildContext context) {
     return new ScrollableLazyList(
       itemExtent: 100.0,
@@ -47,7 +47,7 @@
       expect(tester.findText('10'), isNull);
       expect(tester.findText('100'), isNull);
 
-      StatefulComponentElement target =
+      StatefulElement target =
         tester.findElement((Element element) => element.widget is ScrollableLazyList);
       ScrollableState targetState = target.state;
       targetState.scrollTo(1000.0);
diff --git a/packages/flutter/test/widget/render_object_widget_test.dart b/packages/flutter/test/widget/render_object_widget_test.dart
index 103451d..ed70615 100644
--- a/packages/flutter/test/widget/render_object_widget_test.dart
+++ b/packages/flutter/test/widget/render_object_widget_test.dart
@@ -11,8 +11,8 @@
 final BoxDecoration kBoxDecorationB = new BoxDecoration();
 final BoxDecoration kBoxDecorationC = new BoxDecoration();
 
-class TestComponent extends StatelessComponent {
-  const TestComponent({ this.child });
+class TestWidget extends StatelessWidget {
+  const TestWidget({ this.child });
   final Widget child;
   Widget build(BuildContext context) => child;
 }
@@ -80,7 +80,7 @@
 
       tester.pumpWidget(new DecoratedBox(
         decoration: kBoxDecorationA,
-        child: new TestComponent(
+        child: new TestWidget(
           child: new DecoratedBox(
             decoration: kBoxDecorationB
           )
@@ -106,8 +106,8 @@
 
       tester.pumpWidget(new DecoratedBox(
         decoration: kBoxDecorationA,
-        child: new TestComponent(
-          child: new TestComponent(
+        child: new TestWidget(
+          child: new TestWidget(
             child: new DecoratedBox(
               decoration: kBoxDecorationB
             )
diff --git a/packages/flutter/test/widget/reparent_state_test.dart b/packages/flutter/test/widget/reparent_state_test.dart
index 99a84e0..5bc5871 100644
--- a/packages/flutter/test/widget/reparent_state_test.dart
+++ b/packages/flutter/test/widget/reparent_state_test.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/widgets.dart';
 import 'package:test/test.dart';
 
-class StateMarker extends StatefulComponent {
+class StateMarker extends StatefulWidget {
   StateMarker({ Key key, this.child }) : super(key: key);
 
   final Widget child;
diff --git a/packages/flutter/test/widget/scrollable_lazy_list_test.dart b/packages/flutter/test/widget/scrollable_lazy_list_test.dart
index 077b23a..8655777 100644
--- a/packages/flutter/test/widget/scrollable_lazy_list_test.dart
+++ b/packages/flutter/test/widget/scrollable_lazy_list_test.dart
@@ -17,7 +17,7 @@
       // so if our widget is 100 pixels tall, it should fit exactly 6 times.
 
       Widget builder() {
-        return new FlipComponent(
+        return new FlipWidget(
           left: new ScrollableLazyList(
             itemBuilder: (BuildContext context, int start, int count) {
               List<Widget> result = <Widget>[];
@@ -39,19 +39,19 @@
 
       tester.pumpWidget(builder());
 
-      StatefulComponentElement element = tester.findElement((Element element) => element.widget is FlipComponent);
-      FlipComponentState testComponent = element.state;
+      StatefulElement element = tester.findElement((Element element) => element.widget is FlipWidget);
+      FlipWidgetState testWidget = element.state;
 
       expect(callbackTracker, equals([0, 1, 2, 3, 4, 5]));
 
       callbackTracker.clear();
-      testComponent.flip();
+      testWidget.flip();
       tester.pump();
 
       expect(callbackTracker, equals([]));
 
       callbackTracker.clear();
-      testComponent.flip();
+      testWidget.flip();
       tester.pump();
 
       expect(callbackTracker, equals([0, 1, 2, 3, 4, 5]));
@@ -81,7 +81,7 @@
       };
 
       GlobalKey<ScrollableState<ScrollableLazyList>> scrollableKey = new GlobalKey<ScrollableState<ScrollableLazyList>>();
-      FlipComponent testComponent = new FlipComponent(
+      FlipWidget testWidget = new FlipWidget(
         left: new ScrollableLazyList(
           key: scrollableKey,
           itemBuilder: itemBuilder,
@@ -91,7 +91,7 @@
         right: new Text('Not Today')
       );
 
-      tester.pumpWidget(testComponent);
+      tester.pumpWidget(testWidget);
 
       expect(callbackTracker, equals([1, 2, 3, 4]));
 
@@ -100,7 +100,7 @@
       scrollableKey.currentState.scrollTo(400.0);
       // now only 3 should fit, numbered 2-4.
 
-      tester.pumpWidget(testComponent);
+      tester.pumpWidget(testWidget);
 
       expect(callbackTracker, equals([2, 3, 4]));
 
@@ -131,7 +131,7 @@
       };
 
       GlobalKey<ScrollableState<ScrollableLazyList>> scrollableKey = new GlobalKey<ScrollableState<ScrollableLazyList>>();
-      FlipComponent testComponent = new FlipComponent(
+      FlipWidget testWidget = new FlipWidget(
         left: new ScrollableLazyList(
           key: scrollableKey,
           itemBuilder: itemBuilder,
@@ -142,7 +142,7 @@
         right: new Text('Not Today')
       );
 
-      tester.pumpWidget(testComponent);
+      tester.pumpWidget(testWidget);
 
       expect(callbackTracker, equals([1, 2, 3, 4, 5]));
 
@@ -151,7 +151,7 @@
       scrollableKey.currentState.scrollTo(400.0);
       // now only 4 should fit, numbered 2-5.
 
-      tester.pumpWidget(testComponent);
+      tester.pumpWidget(testWidget);
 
       expect(callbackTracker, equals([2, 3, 4, 5]));
 
diff --git a/packages/flutter/test/widget/set_state_3_test.dart b/packages/flutter/test/widget/set_state_3_test.dart
index 9b7bacf..0d8b221 100644
--- a/packages/flutter/test/widget/set_state_3_test.dart
+++ b/packages/flutter/test/widget/set_state_3_test.dart
@@ -8,7 +8,7 @@
 
 ChangerState changer;
 
-class Changer extends StatefulComponent {
+class Changer extends StatefulWidget {
   Changer(this.child);
 
   final Widget child;
@@ -29,7 +29,7 @@
   Widget build(BuildContext context) => _state ? new Wrapper(config.child) : config.child;
 }
 
-class Wrapper extends StatelessComponent {
+class Wrapper extends StatelessWidget {
   Wrapper(this.child);
 
   final Widget child;
@@ -37,7 +37,7 @@
   Widget build(BuildContext context) => child;
 }
 
-class Leaf extends StatefulComponent {
+class Leaf extends StatefulWidget {
   LeafState createState() => new LeafState();
 }
 
diff --git a/packages/flutter/test/widget/set_state_test.dart b/packages/flutter/test/widget/set_state_test.dart
index 16f45a0..c046ce8 100644
--- a/packages/flutter/test/widget/set_state_test.dart
+++ b/packages/flutter/test/widget/set_state_test.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/widgets.dart';
 import 'package:test/test.dart';
 
-class Inside extends StatefulComponent {
+class Inside extends StatefulWidget {
   InsideState createState() => new InsideState();
 }
 
@@ -23,7 +23,7 @@
   }
 }
 
-class Middle extends StatefulComponent {
+class Middle extends StatefulWidget {
   Middle({ this.child });
 
   final Inside child;
@@ -44,7 +44,7 @@
   }
 }
 
-class Outside extends StatefulComponent {
+class Outside extends StatefulWidget {
   OutsideState createState() => new OutsideState();
 }
 
diff --git a/packages/flutter/test/widget/stateful_component_test.dart b/packages/flutter/test/widget/stateful_component_test.dart
index 8e6e7e2..5dcee45 100644
--- a/packages/flutter/test/widget/stateful_component_test.dart
+++ b/packages/flutter/test/widget/stateful_component_test.dart
@@ -10,7 +10,7 @@
 import 'test_widgets.dart';
 
 void main() {
-  test('Stateful component smoke test', () {
+  test('Stateful widget smoke test', () {
     testWidgets((WidgetTester tester) {
 
       void checkTree(BoxDecoration expectedDecoration) {
@@ -23,7 +23,7 @@
       }
 
       tester.pumpWidget(
-        new FlipComponent(
+        new FlipWidget(
           left: new DecoratedBox(decoration: kBoxDecorationA),
           right: new DecoratedBox(decoration: kBoxDecorationB)
         )
@@ -32,7 +32,7 @@
       checkTree(kBoxDecorationA);
 
       tester.pumpWidget(
-        new FlipComponent(
+        new FlipWidget(
           left: new DecoratedBox(decoration: kBoxDecorationB),
           right: new DecoratedBox(decoration: kBoxDecorationA)
         )
@@ -40,14 +40,14 @@
 
       checkTree(kBoxDecorationB);
 
-      flipStatefulComponent(tester);
+      flipStatefulWidget(tester);
 
       tester.pump();
 
       checkTree(kBoxDecorationA);
 
       tester.pumpWidget(
-        new FlipComponent(
+        new FlipWidget(
           left: new DecoratedBox(decoration: kBoxDecorationA),
           right: new DecoratedBox(decoration: kBoxDecorationB)
         )
@@ -57,11 +57,11 @@
     });
   });
 
-  test('Don\'t rebuild subcomponents', () {
+  test('Don\'t rebuild subwidgets', () {
     testWidgets((WidgetTester tester) {
       tester.pumpWidget(
-        new FlipComponent(
-          key: new Key('rebuild test'), // this is so we don't get the state from the TestComponentConfig in the last test, but instead instantiate a new element with a new state.
+        new FlipWidget(
+          key: new Key('rebuild test'),
           left: new TestBuildCounter(),
           right: new DecoratedBox(decoration: kBoxDecorationB)
         )
@@ -69,7 +69,7 @@
 
       expect(TestBuildCounter.buildCount, equals(1));
 
-      flipStatefulComponent(tester);
+      flipStatefulWidget(tester);
 
       tester.pump();
 
diff --git a/packages/flutter/test/widget/stateful_components_test.dart b/packages/flutter/test/widget/stateful_components_test.dart
index 1e4716c..179e7e4 100644
--- a/packages/flutter/test/widget/stateful_components_test.dart
+++ b/packages/flutter/test/widget/stateful_components_test.dart
@@ -6,12 +6,12 @@
 import 'package:flutter/widgets.dart';
 import 'package:test/test.dart';
 
-class InnerComponent extends StatefulComponent {
-  InnerComponent({ Key key }) : super(key: key);
-  InnerComponentState createState() => new InnerComponentState();
+class InnerWidget extends StatefulWidget {
+  InnerWidget({ Key key }) : super(key: key);
+  InnerWidgetState createState() => new InnerWidgetState();
 }
 
-class InnerComponentState extends State<InnerComponent> {
+class InnerWidgetState extends State<InnerWidget> {
   bool _didInitState = false;
 
   void initState() {
@@ -24,10 +24,10 @@
   }
 }
 
-class OuterContainer extends StatefulComponent {
+class OuterContainer extends StatefulWidget {
   OuterContainer({ Key key, this.child }) : super(key: key);
 
-  final InnerComponent child;
+  final InnerWidget child;
 
   OuterContainerState createState() => new OuterContainerState();
 }
@@ -44,20 +44,20 @@
       Key innerKey = new Key('inner');
       Key outerKey = new Key('outer');
 
-      InnerComponent inner1 = new InnerComponent(key: innerKey);
-      InnerComponent inner2;
+      InnerWidget inner1 = new InnerWidget(key: innerKey);
+      InnerWidget inner2;
       OuterContainer outer1 = new OuterContainer(key: outerKey, child: inner1);
       OuterContainer outer2;
 
       tester.pumpWidget(outer1);
 
-      StatefulComponentElement innerElement = tester.findElementByKey(innerKey);
-      InnerComponentState innerElementState = innerElement.state;
+      StatefulElement innerElement = tester.findElementByKey(innerKey);
+      InnerWidgetState innerElementState = innerElement.state;
       expect(innerElementState.config, equals(inner1));
       expect(innerElementState._didInitState, isTrue);
       expect(innerElement.renderObject.attached, isTrue);
 
-      inner2 = new InnerComponent(key: innerKey);
+      inner2 = new InnerWidget(key: innerKey);
       outer2 = new OuterContainer(key: outerKey, child: inner2);
 
       tester.pumpWidget(outer2);
@@ -69,7 +69,7 @@
       expect(innerElementState._didInitState, isTrue);
       expect(innerElement.renderObject.attached, isTrue);
 
-      StatefulComponentElement outerElement = tester.findElementByKey(outerKey);
+      StatefulElement outerElement = tester.findElementByKey(outerKey);
       expect(outerElement.state.config, equals(outer2));
       outerElement.state.setState(() {});
       tester.pump();
diff --git a/packages/flutter/test/widget/syncing_test.dart b/packages/flutter/test/widget/syncing_test.dart
index dd03c96..b6fedcb 100644
--- a/packages/flutter/test/widget/syncing_test.dart
+++ b/packages/flutter/test/widget/syncing_test.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/widgets.dart';
 import 'package:test/test.dart';
 
-class TestWidget extends StatefulComponent {
+class TestWidget extends StatefulWidget {
   TestWidget({ this.child, this.persistentState, this.syncedState });
 
   final Widget child;
diff --git a/packages/flutter/test/widget/test_widgets.dart b/packages/flutter/test/widget/test_widgets.dart
index 9eaaaf4..4b6fa29 100644
--- a/packages/flutter/test/widget/test_widgets.dart
+++ b/packages/flutter/test/widget/test_widgets.dart
@@ -18,7 +18,7 @@
   backgroundColor: const Color(0xFF0000FF)
 );
 
-class TestBuildCounter extends StatelessComponent {
+class TestBuildCounter extends StatelessWidget {
   static int buildCount = 0;
 
   Widget build(BuildContext context) {
@@ -28,16 +28,16 @@
 }
 
 
-class FlipComponent extends StatefulComponent {
-  FlipComponent({ Key key, this.left, this.right }) : super(key: key);
+class FlipWidget extends StatefulWidget {
+  FlipWidget({ Key key, this.left, this.right }) : super(key: key);
 
   final Widget left;
   final Widget right;
 
-  FlipComponentState createState() => new FlipComponentState();
+  FlipWidgetState createState() => new FlipWidgetState();
 }
 
-class FlipComponentState extends State<FlipComponent> {
+class FlipWidgetState extends State<FlipWidget> {
   bool _showLeft = true;
 
   void flip() {
@@ -51,11 +51,11 @@
   }
 }
 
-void flipStatefulComponent(WidgetTester tester) {
-  StatefulComponentElement stateElement =
-      tester.findElement((Element element) => element is StatefulComponentElement);
+void flipStatefulWidget(WidgetTester tester) {
+  StatefulElement stateElement =
+      tester.findElement((Element element) => element is StatefulElement);
   expect(stateElement, isNotNull);
-  expect(stateElement.state is FlipComponentState, isTrue);
-  FlipComponentState state = stateElement.state;
+  expect(stateElement.state is FlipWidgetState, isTrue);
+  FlipWidgetState state = stateElement.state;
   state.flip();
 }
diff --git a/packages/flutter_markdown/lib/src/markdown_raw.dart b/packages/flutter_markdown/lib/src/markdown_raw.dart
index 5a3c1e1..c7554ac 100644
--- a/packages/flutter_markdown/lib/src/markdown_raw.dart
+++ b/packages/flutter_markdown/lib/src/markdown_raw.dart
@@ -15,7 +15,7 @@
 /// https://daringfireball.net/projects/markdown/ The rendered markdown is
 /// placed in a padded scrolling view port. If you do not want the scrolling
 /// behaviour, use the [MarkdownBodyRaw] class instead.
-class MarkdownRaw extends StatelessComponent {
+class MarkdownRaw extends StatelessWidget {
 
   /// Creates a new Markdown [Widget] that renders the markdown formatted string
   /// passed in as [data]. By default the markdown will be rendered using the
@@ -82,7 +82,7 @@
 /// https://daringfireball.net/projects/markdown/ This class doesn't implement
 /// any scrolling behavior, if you want scrolling either wrap the widget in
 /// a [ScrollableViewport] or use the [MarkdownRaw] widget.
-class MarkdownBodyRaw extends StatefulComponent {
+class MarkdownBodyRaw extends StatefulWidget {
 
   /// Creates a new Markdown [Widget] that renders the markdown formatted string
   /// passed in as [data]. You need to pass in a [markdownStyle] that defines
diff --git a/packages/flutter_test/lib/src/instrumentation.dart b/packages/flutter_test/lib/src/instrumentation.dart
index f415545..b926465 100644
--- a/packages/flutter_test/lib/src/instrumentation.dart
+++ b/packages/flutter_test/lib/src/instrumentation.dart
@@ -92,8 +92,8 @@
   /// the given [runtimeType], if any. Returns null if there is no
   /// matching element.
   State findStateOfType(Type type) {
-    StatefulComponentElement element = findElement((Element element) {
-      return element is StatefulComponentElement && element.state.runtimeType == type;
+    StatefulElement element = findElement((Element element) {
+      return element is StatefulElement && element.state.runtimeType == type;
     });
     return element?.state;
   }
@@ -103,8 +103,8 @@
   /// given configuration is not that of a stateful widget or if there
   /// is no matching element.
   State findStateByConfig(Widget config) {
-    StatefulComponentElement element = findElement((Element element) {
-      return element is StatefulComponentElement && element.state.config == config;
+    StatefulElement element = findElement((Element element) {
+      return element is StatefulElement && element.state.config == config;
     });
     return element?.state;
   }
diff --git a/packages/flutter_tools/lib/src/commands/analyze.dart b/packages/flutter_tools/lib/src/commands/analyze.dart
index 2060246..fb6e667 100644
--- a/packages/flutter_tools/lib/src/commands/analyze.dart
+++ b/packages/flutter_tools/lib/src/commands/analyze.dart
@@ -336,7 +336,7 @@
 
     RegExp generalPattern = new RegExp(r'^\[(error|warning|hint|lint)\] (.+) \(([^(),]+), line ([0-9]+), col ([0-9]+)\)$');
     RegExp allowedIdentifiersPattern = new RegExp(r'_?([A-Z]|_+)\b');
-    RegExp classesWithOptionalTypeArgumentsPattern = new RegExp(r'\b(GlobalKey|State|ScrollableState|Element|StatelessComponentElement|TypeMatcher)\b');
+    RegExp classesWithOptionalTypeArgumentsPattern = new RegExp(r'\b(GlobalKey|State|ScrollableState|Element|StatelessElement|TypeMatcher)\b');
     RegExp constructorTearOffsPattern = new RegExp('.+#.+// analyzer doesn\'t like constructor tear-offs');
     RegExp conflictingNamesPattern = new RegExp('^The imported libraries \'([^\']+)\' and \'([^\']+)\' cannot have the same name \'([^\']+)\'\$');
     RegExp missingFilePattern = new RegExp('^Target of URI does not exist: \'([^\')]+)\'\$');
diff --git a/packages/flutter_tools/templates/create/lib/main.dart.tmpl b/packages/flutter_tools/templates/create/lib/main.dart.tmpl
index f441a1f..c996477 100644
--- a/packages/flutter_tools/templates/create/lib/main.dart.tmpl
+++ b/packages/flutter_tools/templates/create/lib/main.dart.tmpl
@@ -19,7 +19,7 @@
   );
 }
 
-class FlutterDemo extends StatefulComponent {
+class FlutterDemo extends StatefulWidget {
   _FlutterDemoState createState() => new _FlutterDemoState();
 }
 
diff --git a/packages/playfair/lib/src/base.dart b/packages/playfair/lib/src/base.dart
index 0dcfb9b..8c03408 100644
--- a/packages/playfair/lib/src/base.dart
+++ b/packages/playfair/lib/src/base.dart
@@ -41,7 +41,7 @@
 const Color kIndicatorColor = const Color(0xFFFF4081);
 const double kIndicatorMargin = 2.0;
 
-class Chart extends StatelessComponent {
+class Chart extends StatelessWidget {
   Chart({ Key key, this.data }) : super(key: key);
 
   final ChartData data;