Revert "Better docs for text (#38922)" (#39447)

This reverts commit ddd31bcee74c2da986f9764f1af31ae50b3c3557.
diff --git a/packages/flutter/lib/src/painting/basic_types.dart b/packages/flutter/lib/src/painting/basic_types.dart
index 65bdc53..7815f34 100644
--- a/packages/flutter/lib/src/painting/basic_types.dart
+++ b/packages/flutter/lib/src/painting/basic_types.dart
@@ -12,7 +12,6 @@
   Color,
   ColorFilter,
   FilterQuality,
-  FontFeature,
   FontStyle,
   FontWeight,
   ImageShader,
diff --git a/packages/flutter/lib/src/painting/inline_span.dart b/packages/flutter/lib/src/painting/inline_span.dart
index 95b7246..ccbca2e 100644
--- a/packages/flutter/lib/src/painting/inline_span.dart
+++ b/packages/flutter/lib/src/painting/inline_span.dart
@@ -137,7 +137,8 @@
 ///
 /// See also:
 ///
-///  * [Text], a widget for showing text.
+///  * [Text], a widget for showing uniformly-styled text.
+///  * [RichText], a widget for finer control of text rendering.
 ///  * [TextPainter], a class for painting [InlineSpan] objects on a [Canvas].
 @immutable
 abstract class InlineSpan extends DiagnosticableTree {
diff --git a/packages/flutter/lib/src/painting/placeholder_span.dart b/packages/flutter/lib/src/painting/placeholder_span.dart
index 3b7d201..417ed7a 100644
--- a/packages/flutter/lib/src/painting/placeholder_span.dart
+++ b/packages/flutter/lib/src/painting/placeholder_span.dart
@@ -26,7 +26,8 @@
 ///
 ///  * [WidgetSpan], a leaf node that represents an embedded inline widget.
 ///  * [TextSpan], a node that represents text in a [TextSpan] tree.
-///  * [Text], a widget for showing text.
+///  * [Text], a widget for showing uniformly-styled text.
+///  * [RichText], a widget for finer control of text rendering.
 ///  * [TextPainter], a class for painting [TextSpan] objects on a [Canvas].
 abstract class PlaceholderSpan extends InlineSpan {
   /// Creates a [PlaceholderSpan] with the given values.
diff --git a/packages/flutter/lib/src/painting/text_painter.dart b/packages/flutter/lib/src/painting/text_painter.dart
index 3b51717..227cd76 100644
--- a/packages/flutter/lib/src/painting/text_painter.dart
+++ b/packages/flutter/lib/src/painting/text_painter.dart
@@ -30,7 +30,7 @@
 ///  * [WidgetSpan], a subclass of [InlineSpan] and [PlaceholderSpan] that
 ///    represents an inline widget embedded within text. The space this
 ///    widget takes is indicated by a placeholder.
-///  * [Text], a text widget that supports text inline widgets.
+///  * [RichText], a text widget that supports text inline widgets.
 @immutable
 class PlaceholderDimensions {
   /// Constructs a [PlaceholderDimensions] with the specified parameters.
diff --git a/packages/flutter/lib/src/painting/text_span.dart b/packages/flutter/lib/src/painting/text_span.dart
index 5f2def3d..c71ba17 100644
--- a/packages/flutter/lib/src/painting/text_span.dart
+++ b/packages/flutter/lib/src/painting/text_span.dart
@@ -28,7 +28,8 @@
 /// tree with a list of children.
 ///
 /// To paint a [TextSpan] on a [Canvas], use a [TextPainter]. To display a text
-/// span in a widget, use a [Text] widget.
+/// span in a widget, use a [RichText]. For text with a single style, consider
+/// using the [Text] widget.
 ///
 /// {@tool sample}
 ///
@@ -56,7 +57,8 @@
 ///    in an [InlineSpan] tree. Specify a widget within the [children]
 ///    list by wrapping the widget with a [WidgetSpan]. The widget will be
 ///    laid out inline within the paragraph.
-///  * [Text], a widget for showing text.
+///  * [Text], a widget for showing uniformly-styled text.
+///  * [RichText], a widget for finer control of text rendering.
 ///  * [TextPainter], a class for painting [TextSpan] objects on a [Canvas].
 @immutable
 class TextSpan extends InlineSpan {
@@ -100,10 +102,9 @@
   /// object that manages the [InlineSpan] painting is also responsible for
   /// dispatching events. In the rendering library, that is the
   /// [RenderParagraph] object, which corresponds to the [RichText] widget in
-  /// the widgets layer (generally used via the [Text] widget); these objects do
-  /// not bubble events in [InlineSpan]s, so a [recognizer] is only effective
-  /// for events that directly hit the [text] of that [InlineSpan], not any of
-  /// its [children].
+  /// the widgets layer; these objects do not bubble events in [InlineSpan]s, so a
+  /// [recognizer] is only effective for events that directly hit the [text] of
+  /// that [InlineSpan], not any of its [children].
   ///
   /// [InlineSpan] also does not manage the lifetime of the gesture recognizer.
   /// The code that owns the [GestureRecognizer] object must call
@@ -112,11 +113,10 @@
   /// {@tool sample}
   ///
   /// This example shows how to manage the lifetime of a gesture recognizer
-  /// provided to an [InlineSpan] object. It defines a `BuzzingText` widget
-  /// which uses the [HapticFeedback] class to vibrate the device when the user
+  /// provided to an [InlineSpan] object. It defines a `BuzzingText` widget which
+  /// uses the [HapticFeedback] class to vibrate the device when the user
   /// long-presses the "find the" span, which is underlined in wavy green. The
-  /// hit-testing is handled by the [RichText] widget which underpins the [Text]
-  /// widget's implementation.
+  /// hit-testing is handled by the [RichText] widget.
   ///
   /// ```dart
   /// class BuzzingText extends StatefulWidget {
diff --git a/packages/flutter/lib/src/painting/text_style.dart b/packages/flutter/lib/src/painting/text_style.dart
index c0723a7..4ab4545 100644
--- a/packages/flutter/lib/src/painting/text_style.dart
+++ b/packages/flutter/lib/src/painting/text_style.dart
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'dart:ui' as ui show ParagraphStyle, TextStyle, StrutStyle, lerpDouble, Shadow;
+import 'dart:ui' as ui show ParagraphStyle, TextStyle, StrutStyle, lerpDouble, Shadow, FontFeature;
 
 import 'package:flutter/foundation.dart';
 
@@ -23,7 +23,7 @@
 
 /// An immutable style in which paint text.
 ///
-/// ## Bold
+/// ### Bold
 ///
 /// {@tool sample}
 /// Here, a single line of text in a [Text] widget is given a specific style
@@ -40,10 +40,11 @@
 /// ```
 /// {@end-tool}
 ///
-/// ## Italics
+/// ### Italics
 ///
 /// {@tool sample}
-/// In this example, the font style is adjusted to select italics.
+/// As in the previous example, the [Text] widget is given a specific style
+/// override which is implicitly mixed with the ambient [DefaultTextStyle].
 ///
 /// ![An example using TextStyle to create italic text](https://flutter.github.io/assets-for-api-docs/assets/painting/text_style_italics.png)
 ///
@@ -55,23 +56,28 @@
 /// ```
 /// {@end-tool}
 ///
-/// ## Opacity and Color
+/// ### Opacity and Color
 ///
-/// If [color] is specified, [foreground] must be null and vice versa. The
-/// [color] property is treated as a shorthand for `Paint()..color = color`.
+/// Each line here is progressively more opaque. The base color is
+/// [material.Colors.black], and [Color.withOpacity] is used to create a
+/// derivative color with the desired opacity. The root [TextSpan] for this
+/// [RichText] widget is explicitly given the ambient [DefaultTextStyle], since
+/// [RichText] does not do that automatically. The inner [TextStyle] objects are
+/// implicitly mixed with the parent [TextSpan]'s [TextSpan.style].
+///
+/// If [color] is specified, [foreground] must be null and vice versa. [color] is
+/// treated as a shorthand for `Paint()..color = color`.
 ///
 /// If [backgroundColor] is specified, [background] must be null and vice versa.
 /// The [backgroundColor] is treated as a shorthand for
 /// `background: Paint()..color = backgroundColor`.
 ///
-/// {@tool sample}
-/// Each line in this example is progressively more opaque. The base color is
-/// [material.Colors.black], and [Color.withOpacity] is used to create a
-/// derivative color with the desired opacity.
+/// ![An example using TextStyle to change the text opacity and color](https://flutter.github.io/assets-for-api-docs/assets/painting/text_style_opacity_and_color.png)
 ///
 /// ```dart
-/// Text.rich(
-///   TextSpan(
+/// RichText(
+///   text: TextSpan(
+///     style: DefaultTextStyle.of(context).style,
 ///     children: <TextSpan>[
 ///       TextSpan(
 ///         text: 'You don\'t have the votes.\n',
@@ -90,10 +96,7 @@
 /// )
 /// ```
 ///
-/// ![](https://flutter.github.io/assets-for-api-docs/assets/painting/text_style_opacity_and_color.png)
-/// {@end-tool}
-///
-/// ## Size
+/// ### Size
 ///
 /// {@tool sample}
 /// In this example, the ambient [DefaultTextStyle] is explicitly manipulated to
@@ -109,7 +112,7 @@
 /// ```
 /// {@end-tool}
 ///
-/// ## Line height
+/// ### Line height
 ///
 /// By default, text will layout with line height as defined by the font.
 /// Font-metrics defined line height may be taller or shorter than the font size.
@@ -137,21 +140,24 @@
 ///
 /// Examples of the resulting heights from different values of `TextStyle.height`:
 ///
-/// ![For Roboto, with a fontSize of 50 pixels, if the height is set to null, the line ends up 59 pixels high. Setting the height to 1.0, on the other hand, changes the line's actual height to 50 pixels. Setting the height to 2.0 changes the line's actual height to 100 pixels.](https://flutter.github.io/assets-for-api-docs/assets/painting/text_height_comparison_diagram.png)
+/// ![Text height comparison diagram](https://flutter.github.io/assets-for-api-docs/assets/painting/text_height_comparison_diagram.png)
 ///
 /// See [StrutStyle] for further control of line height at the paragraph level.
 ///
-/// ## Wavy red underline with black text
+/// ### Wavy red underline with black text
 ///
 /// {@tool sample}
 /// Styles can be combined. In this example, the misspelt word is drawn in black
-/// text and underlined with a wavy red line to indicate a spelling error.
+/// text and underlined with a wavy red line to indicate a spelling error. (The
+/// remainder is styled according to the Flutter default text styles, not the
+/// ambient [DefaultTextStyle], since no explicit style is given and [RichText]
+/// does not automatically use the ambient [DefaultTextStyle].)
 ///
 /// ![An example using TextStyle to highlight a word with a red wavy underline](https://flutter.github.io/assets-for-api-docs/assets/painting/text_style_wavy_red_underline.png)
 ///
 /// ```dart
-/// Text.rich(
-///   TextSpan(
+/// RichText(
+///   text: TextSpan(
 ///     text: 'Don\'t tax the South ',
 ///     children: <TextSpan>[
 ///       TextSpan(
@@ -172,7 +178,7 @@
 /// ```
 /// {@end-tool}
 ///
-/// ## Borders and stroke (Foreground)
+/// ### Borders and stroke (Foreground)
 ///
 /// {@tool sample}
 /// To create bordered text, a [Paint] with [Paint.style] set to [PaintingStyle.stroke]
@@ -208,7 +214,7 @@
 /// ```
 /// {@end-tool}
 ///
-/// ## Gradients (Foreground)
+/// ### Gradients (Foreground)
 ///
 /// {@tool sample}
 /// The [foreground] property also allows effects such as gradients to be
@@ -236,31 +242,7 @@
 /// ```
 /// {@end-tool}
 ///
-/// ## Font features
-///
-/// Some fonts can be configured in quite fine detail. To provide access to
-/// these configuration options, [FontFeature] tags can be specified using the
-/// [fontFeatures] property.
-///
-/// {@tool sample}
-/// In this example, the fictional font "JeffersonCombined" is known to contain
-/// both roman and italics characters, and the italics characters are selected
-/// using the `ital` font feature.
-///
-/// ```dart
-/// Text.rich(
-///   TextSpan(
-///     text: 'In Virginia, we plant seeds in the ground',
-///     style: TextStyle(
-///       fontFamily: 'JeffersonCombined',
-///       fontFeatures: [const FontFeature.enable('ital')],
-///     ),
-///   ),
-/// )
-/// ```
-/// {@end-tool}
-///
-/// ## Custom Fonts
+/// ### Custom Fonts
 ///
 /// Custom fonts can be declared in the `pubspec.yaml` file as shown below:
 ///
@@ -306,11 +288,9 @@
 /// `pubspec.yaml` of a package named `my_package` which the app depends on.
 /// Then creating the TextStyle is done as follows:
 ///
-/// {@tool sample}
 /// ```dart
 /// const TextStyle(fontFamily: 'Raleway', package: 'my_package')
 /// ```
-/// {@end-tool}
 ///
 /// If the package internally uses the font it defines, it should still specify
 /// the `package` argument when creating the text style as in the example above.
@@ -401,12 +381,14 @@
 ///
 /// See also:
 ///
-///  * [Text], the widget for showing text.
+///  * [Text], the widget for showing text in a single style.
 ///  * [DefaultTextStyle], the widget that specifies the default text styles for
 ///    [Text] widgets, configured using a [TextStyle].
+///  * [RichText], the widget for showing a paragraph of mix-style text.
 ///  * [TextSpan], the class that wraps a [TextStyle] for the purposes of
-///    passing it to the [Text.rich] constructor.
-///  * [ui.TextStyle], the class in the [dart:ui] library.
+///    passing it to a [RichText].
+///  * [TextStyle](https://api.flutter.dev/flutter/dart-ui/TextStyle-class.html), the class in the [dart:ui] library.
+///
 @immutable
 class TextStyle extends Diagnosticable {
   /// Creates a text style.
@@ -700,12 +682,7 @@
   /// tabular numbers, or it might offer versions of the zero digit with
   /// and without slashes.  [FontFeature]s can be used to select which of
   /// these variants will be used for rendering.
-  ///
-  /// See also:
-  ///
-  ///  * <https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist>,
-  ///    which lists the standard font features.
-  final List<FontFeature> fontFeatures;
+  final List<ui.FontFeature> fontFeatures;
 
   /// Creates a copy of this text style but with the given fields replaced with
   /// the new values.
@@ -733,7 +710,7 @@
     Paint foreground,
     Paint background,
     List<ui.Shadow> shadows,
-    List<FontFeature> fontFeatures,
+    List<ui.FontFeature> fontFeatures,
     TextDecoration decoration,
     Color decorationColor,
     TextDecorationStyle decorationStyle,
diff --git a/packages/flutter/test/material/theme_test.dart b/packages/flutter/test/material/theme_test.dart
index a4acbd8..f3d90e4 100644
--- a/packages/flutter/test/material/theme_test.dart
+++ b/packages/flutter/test/material/theme_test.dart
@@ -720,7 +720,7 @@
   @override
   List<Shadow> get shadows => _delegate.shadows;
   @override
-  List<FontFeature> get fontFeatures => _delegate.fontFeatures;
+  List<ui.FontFeature> get fontFeatures => _delegate.fontFeatures;
 
   @override
   String toString({ DiagnosticLevel minLevel = DiagnosticLevel.debug }) =>
@@ -783,7 +783,7 @@
     ui.Paint foreground,
     ui.Paint background,
     List<Shadow> shadows,
-    List<FontFeature> fontFeatures,
+    List<ui.FontFeature> fontFeatures,
     TextDecoration decoration,
     Color decorationColor,
     TextDecorationStyle decorationStyle,