Add dartdoc to typography.dart (#3576)
diff --git a/packages/flutter/lib/src/material/typography.dart b/packages/flutter/lib/src/material/typography.dart
index 32ab707..d41658b 100644
--- a/packages/flutter/lib/src/material/typography.dart
+++ b/packages/flutter/lib/src/material/typography.dart
@@ -2,16 +2,31 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// See http://www.google.com/design/spec/style/typography.html
import 'package:flutter/painting.dart';
import 'colors.dart';
-// TODO(eseidel): Font weights are supposed to be language relative!
-// TODO(jackson): Baseline should be language relative!
+// TODO(eseidel): Font weights are supposed to be language relative.
+// TODO(jackson): Baseline should be language relative.
// These values are for English-like text.
// TODO(ianh): There's no font-family specified here.
+
+/// Material design text theme.
+///
+/// Definitions for the various typographical styles found in material design
+/// (e.g., headline, caption). Rather than creating a [TextTheme] directly,
+/// you can obtain an instance as [Typography.black] or [Typography.white].
+///
+/// To obtain the current text theme, call [Theme.of] with the current
+/// [BuildContext] and read the [ThemeData.textTheme] property.
+///
+/// See also:
+///
+/// * [Typography]
+/// * [Theme]
+/// * [ThemeData]
+/// * <http://www.google.com/design/spec/style/typography.html>
class TextTheme {
const TextTheme._(this.display4, this.display3, this.display2, this.display1, this.headline, this.title, this.subhead, this.body2, this.body1, this.caption, this.button);
@@ -42,18 +57,44 @@
caption = const TextStyle(inherit: false, fontSize: 12.0, fontWeight: FontWeight.w400, color: Colors.white70, textBaseline: TextBaseline.alphabetic),
button = const TextStyle(inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, color: Colors.white, textBaseline: TextBaseline.alphabetic);
+ /// Extremely large text.
+ ///
+ /// The font size is 112 pixels.
final TextStyle display4;
+
+ /// Very, very large text.
+ ///
+ /// Used for the date in [DatePicker].
final TextStyle display3;
+
+ /// Very large text.
final TextStyle display2;
+
+ /// Large text.
final TextStyle display1;
+
+ /// Used for large text in dialogs (e.g., the month and year in [DatePicker]).
final TextStyle headline;
+
+ /// Used for the primary text in app bars and dialogs (e.g., [AppBar.title] and [Dialog.title]).
final TextStyle title;
+
+ /// Used for the primary text in lists (e.g., [ListItem.title]).
final TextStyle subhead;
+
+ /// Used for emphasizing text that would otherwise be [body1].
final TextStyle body2;
+
+ /// Used for the default text style for [Material].
final TextStyle body1;
+
+ /// Used for auxillary text associted with images.
final TextStyle caption;
+
+ /// Used for text on [RaisedButton] and [FlatButton].
final TextStyle button;
+ /// Linearly interpolate between two text themes.
static TextTheme lerp(TextTheme begin, TextTheme end, double t) {
return new TextTheme._(
TextStyle.lerp(begin.display4, end.display4, t),
@@ -69,11 +110,30 @@
TextStyle.lerp(begin.button, end.button, t)
);
}
-
}
+/// The two material design text themes.
+///
+/// [Typography.black] and [Typography.white] define the two text themes used in
+/// material design. The black text theme, which uses darkly colored glyphs, is
+/// used on lightly colored backgrounds in light themes. The white text theme,
+/// which uses lightly colored glyphs, is used on darkly colored backgrounds in
+/// in light themes and in dark themes.
+///
+/// To obtain the current text theme, call [Theme.of] with the current
+/// [BuildContext] and read the [ThemeData.textTheme] property.
+///
+/// See also:
+///
+/// * [Theme]
+/// * [ThemeData]
+/// * <http://www.google.com/design/spec/style/typography.html>
class Typography {
Typography._();
+
+ /// A material design text theme with darkly colored glyphs.
static const TextTheme black = const TextTheme._black();
+
+ /// A material design text theme with lightly colored glyphs.
static const TextTheme white = const TextTheme._white();
}