Unverified Commit 1aabe314 authored by Rami's avatar Rami Committed by GitHub

[Material 3] Update TextTheme to have M3 names for styles (#93725)

parent bb906b6b
...@@ -17,17 +17,20 @@ import 'typography.dart'; ...@@ -17,17 +17,20 @@ import 'typography.dart';
/// [BuildContext] and read the [ThemeData.textTheme] property. /// [BuildContext] and read the [ThemeData.textTheme] property.
/// ///
/// The names of the TextTheme properties match this table from the /// The names of the TextTheme properties match this table from the
/// [Material Design spec](https://m3.material.io/styles/typography/tokens).
///
/// ![](https://lh3.googleusercontent.com/Yvngs5mQSjXa_9T4X3JDucO62c5hdZHPDa7qeRH6DsJQvGr_q7EBrTkhkPiQd9OeR1v_Uk38Cjd9nUpP3nevDyHpKWuXSfQ1Gq78bOnBN7sr=s0)
///
/// The Material Design typography scheme was significantly changed in the
/// current (2021) version of the specification
/// ([https://m3.material.io/styles/typography/tokens](https://m3.material.io/styles/typography/tokens)).
///
/// The names of the 2018 TextTheme properties match this table from the
/// [Material Design spec](https://material.io/design/typography/the-type-system.html#type-scale) /// [Material Design spec](https://material.io/design/typography/the-type-system.html#type-scale)
/// with two exceptions: the styles called H1-H6 in the spec are /// with two exceptions: the styles called H1-H6 in the spec are
/// headline1-headline6 in the API, and body1,body2 are called /// headline1-headline6 in the API, and body1,body2 are called
/// bodyText1 and bodyText2. /// bodyText1 and bodyText2.
/// ///
/// ![](https://storage.googleapis.com/spec-host-backup/mio-design%2Fassets%2F1W8kyGVruuG_O8psvyiOaCf1lLFIMzB-N%2Ftypesystem-typescale.png)
///
/// The Material Design typography scheme was significantly changed in the
/// current (2018) version of the specification
/// ([https://material.io/design/typography](https://material.io/design/typography)).
///
/// The 2018 spec has thirteen text styles: /// The 2018 spec has thirteen text styles:
/// ``` /// ```
/// NAME SIZE WEIGHT SPACING /// NAME SIZE WEIGHT SPACING
...@@ -78,66 +81,200 @@ class TextTheme with Diagnosticable { ...@@ -78,66 +81,200 @@ class TextTheme with Diagnosticable {
/// ///
/// If you do decide to create your own text theme, consider using one of /// If you do decide to create your own text theme, consider using one of
/// those predefined themes as a starting point for [copyWith] or [apply]. /// those predefined themes as a starting point for [copyWith] or [apply].
///
/// Please note that you can not mix and match the 2018 styles with the 2021
/// styles. Only one or the other is allowed in this constructor. The 2018
/// styles will be deprecated and removed eventually.
const TextTheme({ const TextTheme({
this.headline1, TextStyle? displayLarge,
this.headline2, TextStyle? displayMedium,
this.headline3, TextStyle? displaySmall,
this.headline4, this.headlineLarge,
this.headline5, TextStyle? headlineMedium,
this.headline6, TextStyle? headlineSmall,
this.subtitle1, TextStyle? titleLarge,
this.subtitle2, TextStyle? titleMedium,
this.bodyText1, TextStyle? titleSmall,
this.bodyText2, TextStyle? bodyLarge,
this.caption, TextStyle? bodyMedium,
this.button, TextStyle? bodySmall,
this.overline, TextStyle? labelLarge,
}); this.labelMedium,
TextStyle? labelSmall,
TextStyle? headline1,
TextStyle? headline2,
TextStyle? headline3,
TextStyle? headline4,
TextStyle? headline5,
TextStyle? headline6,
TextStyle? subtitle1,
TextStyle? subtitle2,
TextStyle? bodyText1,
TextStyle? bodyText2,
TextStyle? caption,
TextStyle? button,
TextStyle? overline,
}) : assert(
(displayLarge == null && displayMedium == null && displaySmall == null && headlineMedium == null &&
headlineSmall == null && titleLarge == null && titleMedium == null && titleSmall == null &&
bodyLarge == null && bodyMedium == null && bodySmall == null && labelLarge == null && labelSmall == null) ||
(headline1 == null && headline2 == null && headline3 == null && headline4 == null &&
headline5 == null && headline6 == null && subtitle1 == null && subtitle2 == null &&
bodyText1 == null && bodyText2 == null && caption == null && button == null && overline == null),
'Cannot mix 2018 and 2021 terms in call to TextTheme() constructor.'
),
displayLarge = displayLarge ?? headline1,
displayMedium = displayMedium ?? headline2,
displaySmall = displaySmall ?? headline3,
headlineMedium = headlineMedium ?? headline4,
headlineSmall = headlineSmall ?? headline5,
titleLarge = titleLarge ?? headline6,
titleMedium = titleMedium ?? subtitle1,
titleSmall = titleSmall ?? subtitle2,
bodyLarge = bodyLarge ?? bodyText1,
bodyMedium = bodyMedium ?? bodyText2,
bodySmall = bodySmall ?? caption,
labelLarge = labelLarge ?? button,
labelSmall = labelSmall ?? overline;
/// Largest of the display styles.
///
/// As the largest text on the screen, display styles are reserved for short,
/// important text or numerals. They work best on large screens.
final TextStyle? displayLarge;
/// Middle size of the display styles.
///
/// As the largest text on the screen, display styles are reserved for short,
/// important text or numerals. They work best on large screens.
final TextStyle? displayMedium;
/// Smallest of the display styles.
///
/// As the largest text on the screen, display styles are reserved for short,
/// important text or numerals. They work best on large screens.
final TextStyle? displaySmall;
/// Largest of the headline styles.
///
/// Headline styles are smaller than display styles. They're best-suited for
/// short, high-emphasis text on smaller screens.
final TextStyle? headlineLarge;
/// Middle size of the headline styles.
///
/// Headline styles are smaller than display styles. They're best-suited for
/// short, high-emphasis text on smaller screens.
final TextStyle? headlineMedium;
/// Smallest of the headline styles.
///
/// Headline styles are smaller than display styles. They're best-suited for
/// short, high-emphasis text on smaller screens.
final TextStyle? headlineSmall;
/// Largest of the title styles.
///
/// Titles are smaller than headline styles and should be used for shorter,
/// medium-emphasis text.
final TextStyle? titleLarge;
/// Middle size of the title styles.
///
/// Titles are smaller than headline styles and should be used for shorter,
/// medium-emphasis text.
final TextStyle? titleMedium;
/// Smallest of the title styles.
///
/// Titles are smaller than headline styles and should be used for shorter,
/// medium-emphasis text.
final TextStyle? titleSmall;
/// Largest of the body styles.
///
/// Body styles are used for longer passages of text.
final TextStyle? bodyLarge;
/// Middle size of the body styles.
///
/// Body styles are used for longer passages of text.
///
/// The default text style for [Material].
final TextStyle? bodyMedium;
/// Smallest of the body styles.
///
/// Body styles are used for longer passages of text.
final TextStyle? bodySmall;
/// Largest of the label styles.
///
/// Label styles are smaller, utilitarian styles, used for areas of the UI
/// such as text inside of components or very small supporting text in the
/// content body, like captions.
///
/// Used for text on [ElevatedButton], [TextButton] and [OutlinedButton].
final TextStyle? labelLarge;
/// Middle size of the label styles.
///
/// Label styles are smaller, utilitarian styles, used for areas of the UI
/// such as text inside of components or very small supporting text in the
/// content body, like captions.
final TextStyle? labelMedium;
/// Smallest of the label styles.
///
/// Label styles are smaller, utilitarian styles, used for areas of the UI
/// such as text inside of components or very small supporting text in the
/// content body, like captions.
final TextStyle? labelSmall;
/// Extremely large text. /// Extremely large text.
final TextStyle? headline1; TextStyle? get headline1 => displayLarge;
/// Very, very large text. /// Very, very large text.
/// ///
/// Used for the date in the dialog shown by [showDatePicker]. /// Used for the date in the dialog shown by [showDatePicker].
final TextStyle? headline2; TextStyle? get headline2 => displayMedium;
/// Very large text. /// Very large text.
final TextStyle? headline3; TextStyle? get headline3 => displaySmall;
/// Large text. /// Large text.
final TextStyle? headline4; TextStyle? get headline4 => headlineMedium;
/// Used for large text in dialogs (e.g., the month and year in the dialog /// Used for large text in dialogs (e.g., the month and year in the dialog
/// shown by [showDatePicker]). /// shown by [showDatePicker]).
final TextStyle? headline5; TextStyle? get headline5 => headlineSmall;
/// Used for the primary text in app bars and dialogs (e.g., [AppBar.title] /// Used for the primary text in app bars and dialogs (e.g., [AppBar.title]
/// and [AlertDialog.title]). /// and [AlertDialog.title]).
final TextStyle? headline6; TextStyle? get headline6 => titleLarge;
/// Used for the primary text in lists (e.g., [ListTile.title]). /// Used for the primary text in lists (e.g., [ListTile.title]).
final TextStyle? subtitle1; TextStyle? get subtitle1 => titleMedium;
/// For medium emphasis text that's a little smaller than [subtitle1]. /// For medium emphasis text that's a little smaller than [subtitle1].
final TextStyle? subtitle2; TextStyle? get subtitle2 => titleSmall;
/// Used for emphasizing text that would otherwise be [bodyText2]. /// Used for emphasizing text that would otherwise be [bodyText2].
final TextStyle? bodyText1; TextStyle? get bodyText1 => bodyLarge;
/// The default text style for [Material]. /// The default text style for [Material].
final TextStyle? bodyText2; TextStyle? get bodyText2 => bodyMedium;
/// Used for auxiliary text associated with images. /// Used for auxiliary text associated with images.
final TextStyle? caption; TextStyle? get caption => bodySmall;
/// Used for text on [ElevatedButton], [TextButton] and [OutlinedButton]. /// Used for text on [ElevatedButton], [TextButton] and [OutlinedButton].
final TextStyle? button; TextStyle? get button => labelLarge;
/// The smallest style. /// The smallest style.
/// ///
/// Typically used for captions or to introduce a (larger) headline. /// Typically used for captions or to introduce a (larger) headline.
final TextStyle? overline; TextStyle? get overline => labelSmall;
/// Creates a copy of this text theme but with the given fields replaced with /// Creates a copy of this text theme but with the given fields replaced with
/// the new values. /// the new values.
...@@ -163,7 +300,7 @@ class TextTheme with Diagnosticable { ...@@ -163,7 +300,7 @@ class TextTheme with Diagnosticable {
/// return Theme( /// return Theme(
/// data: theme.copyWith( /// data: theme.copyWith(
/// textTheme: theme.textTheme.copyWith( /// textTheme: theme.textTheme.copyWith(
/// headline6: theme.textTheme.headline6!.copyWith( /// titleLarge: theme.textTheme.titleLarge!.copyWith(
/// color: titleColor, /// color: titleColor,
/// ), /// ),
/// ), /// ),
...@@ -180,6 +317,21 @@ class TextTheme with Diagnosticable { ...@@ -180,6 +317,21 @@ class TextTheme with Diagnosticable {
/// * [merge] is used instead of [copyWith] when you want to merge all /// * [merge] is used instead of [copyWith] when you want to merge all
/// of the fields of a TextTheme instead of individual fields. /// of the fields of a TextTheme instead of individual fields.
TextTheme copyWith({ TextTheme copyWith({
TextStyle? displayLarge,
TextStyle? displayMedium,
TextStyle? displaySmall,
TextStyle? headlineLarge,
TextStyle? headlineMedium,
TextStyle? headlineSmall,
TextStyle? titleLarge,
TextStyle? titleMedium,
TextStyle? titleSmall,
TextStyle? bodyLarge,
TextStyle? bodyMedium,
TextStyle? bodySmall,
TextStyle? labelLarge,
TextStyle? labelMedium,
TextStyle? labelSmall,
TextStyle? headline1, TextStyle? headline1,
TextStyle? headline2, TextStyle? headline2,
TextStyle? headline3, TextStyle? headline3,
...@@ -194,20 +346,31 @@ class TextTheme with Diagnosticable { ...@@ -194,20 +346,31 @@ class TextTheme with Diagnosticable {
TextStyle? button, TextStyle? button,
TextStyle? overline, TextStyle? overline,
}) { }) {
assert(
(displayLarge == null && displayMedium == null && displaySmall == null && headlineMedium == null &&
headlineSmall == null && titleLarge == null && titleMedium == null && titleSmall == null &&
bodyLarge == null && bodyMedium == null && bodySmall == null && labelLarge == null && labelSmall == null) ||
(headline1 == null && headline2 == null && headline3 == null && headline4 == null &&
headline5 == null && headline6 == null && subtitle1 == null && subtitle2 == null &&
bodyText1 == null && bodyText2 == null && caption == null && button == null && overline == null),
'Cannot mix 2018 and 2021 terms in call to TextTheme() constructor.'
);
return TextTheme( return TextTheme(
headline1: headline1 ?? this.headline1, displayLarge: displayLarge ?? headline1 ?? this.displayLarge,
headline2: headline2 ?? this.headline2, displayMedium: displayMedium ?? headline2 ?? this.displayMedium,
headline3: headline3 ?? this.headline3, displaySmall: displaySmall ?? headline3 ?? this.displaySmall,
headline4: headline4 ?? this.headline4, headlineLarge: headlineLarge ?? this.headlineLarge,
headline5: headline5 ?? this.headline5, headlineMedium: headlineMedium ?? headline4 ?? this.headlineMedium,
headline6: headline6 ?? this.headline6, headlineSmall: headlineSmall ?? headline5 ?? this.headlineSmall,
subtitle1: subtitle1 ?? this.subtitle1, titleLarge: titleLarge ?? headline6 ?? this.titleLarge,
subtitle2: subtitle2 ?? this.subtitle2, titleMedium: titleMedium ?? subtitle1 ?? this.titleMedium,
bodyText1: bodyText1 ?? this.bodyText1, titleSmall: titleSmall ?? subtitle2 ?? this.titleSmall,
bodyText2: bodyText2 ?? this.bodyText2, bodyLarge: bodyLarge ?? bodyText1 ?? this.bodyLarge,
caption: caption ?? this.caption, bodyMedium: bodyMedium ?? bodyText2 ?? this.bodyMedium,
button: button ?? this.button, bodySmall: bodySmall ?? caption ?? this.bodySmall,
overline: overline ?? this.overline, labelLarge: labelLarge ?? button ?? this.labelLarge,
labelMedium: labelMedium ?? this.labelMedium,
labelSmall: labelSmall ?? overline ?? this.labelSmall,
); );
} }
...@@ -249,7 +412,7 @@ class TextTheme with Diagnosticable { ...@@ -249,7 +412,7 @@ class TextTheme with Diagnosticable {
/// // set the title, but everything else would be null. This isn't very /// // set the title, but everything else would be null. This isn't very
/// // useful, so merge it with the existing theme to keep all of the /// // useful, so merge it with the existing theme to keep all of the
/// // preexisting definitions for the other styles. /// // preexisting definitions for the other styles.
/// final TextTheme partialTheme = TextTheme(headline6: TextStyle(color: titleColor)); /// final TextTheme partialTheme = TextTheme(titleLarge: TextStyle(color: titleColor));
/// theme = theme.copyWith(textTheme: theme.textTheme.merge(partialTheme)); /// theme = theme.copyWith(textTheme: theme.textTheme.merge(partialTheme));
/// return Theme(data: theme, child: child); /// return Theme(data: theme, child: child);
/// } /// }
...@@ -266,28 +429,30 @@ class TextTheme with Diagnosticable { ...@@ -266,28 +429,30 @@ class TextTheme with Diagnosticable {
if (other == null) if (other == null)
return this; return this;
return copyWith( return copyWith(
headline1: headline1?.merge(other.headline1) ?? other.headline1, displayLarge: displayLarge?.merge(other.displayLarge) ?? other.displayLarge,
headline2: headline2?.merge(other.headline2) ?? other.headline2, displayMedium: displayMedium?.merge(other.displayMedium) ?? other.displayMedium,
headline3: headline3?.merge(other.headline3) ?? other.headline3, displaySmall: displaySmall?.merge(other.displaySmall) ?? other.displaySmall,
headline4: headline4?.merge(other.headline4) ?? other.headline4, headlineLarge: headlineLarge?.merge(other.headlineLarge) ?? other.headlineLarge,
headline5: headline5?.merge(other.headline5) ?? other.headline5, headlineMedium: headlineMedium?.merge(other.headlineMedium) ?? other.headlineMedium,
headline6: headline6?.merge(other.headline6) ?? other.headline6, headlineSmall: headlineSmall?.merge(other.headlineSmall) ?? other.headlineSmall,
subtitle1: subtitle1?.merge(other.subtitle1) ?? other.subtitle1, titleLarge: titleLarge?.merge(other.titleLarge) ?? other.titleLarge,
subtitle2: subtitle2?.merge(other.subtitle2) ?? other.subtitle2, titleMedium: titleMedium?.merge(other.titleMedium) ?? other.titleMedium,
bodyText1: bodyText1?.merge(other.bodyText1) ?? other.bodyText1, titleSmall: titleSmall?.merge(other.titleSmall) ?? other.titleSmall,
bodyText2: bodyText2?.merge(other.bodyText2) ?? other.bodyText2, bodyLarge: bodyLarge?.merge(other.bodyLarge) ?? other.bodyLarge,
caption: caption?.merge(other.caption) ?? other.caption, bodyMedium: bodyMedium?.merge(other.bodyMedium) ?? other.bodyMedium,
button: button?.merge(other.button) ?? other.button, bodySmall: bodySmall?.merge(other.bodySmall) ?? other.bodySmall,
overline: overline?.merge(other.overline) ?? other.overline, labelLarge: labelLarge?.merge(other.labelLarge) ?? other.labelLarge,
labelMedium: labelMedium?.merge(other.labelMedium) ?? other.labelMedium,
labelSmall: labelSmall?.merge(other.labelSmall) ?? other.labelSmall,
); );
} }
/// Creates a copy of this text theme but with the given field replaced in /// Creates a copy of this text theme but with the given field replaced in
/// each of the individual text styles. /// each of the individual text styles.
/// ///
/// The `displayColor` is applied to [headline4], [headline3], [headline2], /// The `displayColor` is applied to [displayLarge], [displayMedium],
/// [headline1], and [caption]. The `bodyColor` is applied to the remaining /// [displaySmall], [headlineLarge], [headlineMedium], and [bodySmall]. The
/// text styles. /// `bodyColor` is applied to the remaining text styles.
/// ///
/// Consider using [Typography.black] or [Typography.white], which implement /// Consider using [Typography.black] or [Typography.white], which implement
/// the typography styles in the material design specification, as a starting /// the typography styles in the material design specification, as a starting
...@@ -303,7 +468,16 @@ class TextTheme with Diagnosticable { ...@@ -303,7 +468,16 @@ class TextTheme with Diagnosticable {
TextDecorationStyle? decorationStyle, TextDecorationStyle? decorationStyle,
}) { }) {
return TextTheme( return TextTheme(
headline1: headline1?.apply( displayLarge: displayLarge?.apply(
color: displayColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
fontFamily: fontFamily,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
),
displayMedium: displayMedium?.apply(
color: displayColor, color: displayColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -312,7 +486,7 @@ class TextTheme with Diagnosticable { ...@@ -312,7 +486,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
headline2: headline2?.apply( displaySmall: displaySmall?.apply(
color: displayColor, color: displayColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -321,7 +495,7 @@ class TextTheme with Diagnosticable { ...@@ -321,7 +495,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
headline3: headline3?.apply( headlineLarge: headlineLarge?.apply(
color: displayColor, color: displayColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -330,7 +504,7 @@ class TextTheme with Diagnosticable { ...@@ -330,7 +504,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
headline4: headline4?.apply( headlineMedium: headlineMedium?.apply(
color: displayColor, color: displayColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -339,7 +513,7 @@ class TextTheme with Diagnosticable { ...@@ -339,7 +513,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
headline5: headline5?.apply( headlineSmall: headlineSmall?.apply(
color: bodyColor, color: bodyColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -348,7 +522,7 @@ class TextTheme with Diagnosticable { ...@@ -348,7 +522,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
headline6: headline6?.apply( titleLarge: titleLarge?.apply(
color: bodyColor, color: bodyColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -357,7 +531,7 @@ class TextTheme with Diagnosticable { ...@@ -357,7 +531,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
subtitle1: subtitle1?.apply( titleMedium: titleMedium?.apply(
color: bodyColor, color: bodyColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -366,7 +540,7 @@ class TextTheme with Diagnosticable { ...@@ -366,7 +540,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
subtitle2: subtitle2?.apply( titleSmall: titleSmall?.apply(
color: bodyColor, color: bodyColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -375,7 +549,7 @@ class TextTheme with Diagnosticable { ...@@ -375,7 +549,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
bodyText1: bodyText1?.apply( bodyLarge: bodyLarge?.apply(
color: bodyColor, color: bodyColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -384,7 +558,7 @@ class TextTheme with Diagnosticable { ...@@ -384,7 +558,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
bodyText2: bodyText2?.apply( bodyMedium: bodyMedium?.apply(
color: bodyColor, color: bodyColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -393,7 +567,7 @@ class TextTheme with Diagnosticable { ...@@ -393,7 +567,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
caption: caption?.apply( bodySmall: bodySmall?.apply(
color: displayColor, color: displayColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -402,7 +576,16 @@ class TextTheme with Diagnosticable { ...@@ -402,7 +576,16 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
button: button?.apply( labelLarge: labelLarge?.apply(
color: bodyColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
fontFamily: fontFamily,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
),
labelMedium: labelMedium?.apply(
color: bodyColor, color: bodyColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -411,7 +594,7 @@ class TextTheme with Diagnosticable { ...@@ -411,7 +594,7 @@ class TextTheme with Diagnosticable {
fontSizeFactor: fontSizeFactor, fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta, fontSizeDelta: fontSizeDelta,
), ),
overline: overline?.apply( labelSmall: labelSmall?.apply(
color: bodyColor, color: bodyColor,
decoration: decoration, decoration: decoration,
decorationColor: decorationColor, decorationColor: decorationColor,
...@@ -429,19 +612,21 @@ class TextTheme with Diagnosticable { ...@@ -429,19 +612,21 @@ class TextTheme with Diagnosticable {
static TextTheme lerp(TextTheme? a, TextTheme? b, double t) { static TextTheme lerp(TextTheme? a, TextTheme? b, double t) {
assert(t != null); assert(t != null);
return TextTheme( return TextTheme(
headline1: TextStyle.lerp(a?.headline1, b?.headline1, t), displayLarge: TextStyle.lerp(a?.displayLarge, b?.displayLarge, t),
headline2: TextStyle.lerp(a?.headline2, b?.headline2, t), displayMedium: TextStyle.lerp(a?.displayMedium, b?.displayMedium, t),
headline3: TextStyle.lerp(a?.headline3, b?.headline3, t), displaySmall: TextStyle.lerp(a?.displaySmall, b?.displaySmall, t),
headline4: TextStyle.lerp(a?.headline4, b?.headline4, t), headlineLarge: TextStyle.lerp(a?.headlineLarge, b?.headlineLarge, t),
headline5: TextStyle.lerp(a?.headline5, b?.headline5, t), headlineMedium: TextStyle.lerp(a?.headlineMedium, b?.headlineMedium, t),
headline6: TextStyle.lerp(a?.headline6, b?.headline6, t), headlineSmall: TextStyle.lerp(a?.headlineSmall, b?.headlineSmall, t),
subtitle1: TextStyle.lerp(a?.subtitle1, b?.subtitle1, t), titleLarge: TextStyle.lerp(a?.titleLarge, b?.titleLarge, t),
subtitle2: TextStyle.lerp(a?.subtitle2, b?.subtitle2, t), titleMedium: TextStyle.lerp(a?.titleMedium, b?.titleMedium, t),
bodyText1: TextStyle.lerp(a?.bodyText1, b?.bodyText1, t), titleSmall: TextStyle.lerp(a?.titleSmall, b?.titleSmall, t),
bodyText2: TextStyle.lerp(a?.bodyText2, b?.bodyText2, t), bodyLarge: TextStyle.lerp(a?.bodyLarge, b?.bodyLarge, t),
caption: TextStyle.lerp(a?.caption, b?.caption, t), bodyMedium: TextStyle.lerp(a?.bodyMedium, b?.bodyMedium, t),
button: TextStyle.lerp(a?.button, b?.button, t), bodySmall: TextStyle.lerp(a?.bodySmall, b?.bodySmall, t),
overline: TextStyle.lerp(a?.overline, b?.overline, t), labelLarge: TextStyle.lerp(a?.labelLarge, b?.labelLarge, t),
labelMedium: TextStyle.lerp(a?.labelMedium, b?.labelMedium, t),
labelSmall: TextStyle.lerp(a?.labelSmall, b?.labelSmall, t),
); );
} }
...@@ -452,38 +637,42 @@ class TextTheme with Diagnosticable { ...@@ -452,38 +637,42 @@ class TextTheme with Diagnosticable {
if (other.runtimeType != runtimeType) if (other.runtimeType != runtimeType)
return false; return false;
return other is TextTheme return other is TextTheme
&& headline1 == other.headline1 && displayLarge == other.displayLarge
&& headline2 == other.headline2 && displayMedium == other.displayMedium
&& headline3 == other.headline3 && displaySmall == other.displaySmall
&& headline4 == other.headline4 && headlineLarge == other.headlineLarge
&& headline5 == other.headline5 && headlineMedium == other.headlineMedium
&& headline6 == other.headline6 && headlineSmall == other.headlineSmall
&& subtitle1 == other.subtitle1 && titleLarge == other.titleLarge
&& subtitle2 == other.subtitle2 && titleMedium == other.titleMedium
&& bodyText1 == other.bodyText1 && titleSmall == other.titleSmall
&& bodyText2 == other.bodyText2 && bodyLarge == other.bodyLarge
&& caption == other.caption && bodyMedium == other.bodyMedium
&& button == other.button && bodySmall == other.bodySmall
&& overline == other.overline; && labelLarge == other.labelLarge
&& labelMedium == other.labelMedium
&& labelSmall == other.labelSmall;
} }
@override @override
int get hashCode { int get hashCode {
// The hashValues() function supports up to 20 arguments. // The hashValues() function supports up to 20 arguments.
return hashValues( return hashValues(
headline1, displayLarge,
headline2, displayMedium,
headline3, displaySmall,
headline4, headlineLarge,
headline5, headlineMedium,
headline6, headlineSmall,
subtitle1, titleLarge,
subtitle2, titleMedium,
bodyText1, titleSmall,
bodyText2, bodyLarge,
caption, bodyMedium,
button, bodySmall,
overline, labelLarge,
labelMedium,
labelSmall,
); );
} }
...@@ -491,18 +680,20 @@ class TextTheme with Diagnosticable { ...@@ -491,18 +680,20 @@ class TextTheme with Diagnosticable {
void debugFillProperties(DiagnosticPropertiesBuilder properties) { void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties); super.debugFillProperties(properties);
final TextTheme defaultTheme = Typography.material2018(platform: defaultTargetPlatform).black; final TextTheme defaultTheme = Typography.material2018(platform: defaultTargetPlatform).black;
properties.add(DiagnosticsProperty<TextStyle>('headline1', headline1, defaultValue: defaultTheme.headline1)); properties.add(DiagnosticsProperty<TextStyle>('displayLarge', displayLarge, defaultValue: defaultTheme.displayLarge));
properties.add(DiagnosticsProperty<TextStyle>('headline2', headline2, defaultValue: defaultTheme.headline2)); properties.add(DiagnosticsProperty<TextStyle>('displayMedium', displayMedium, defaultValue: defaultTheme.displayMedium));
properties.add(DiagnosticsProperty<TextStyle>('headline3', headline3, defaultValue: defaultTheme.headline3)); properties.add(DiagnosticsProperty<TextStyle>('displaySmall', displaySmall, defaultValue: defaultTheme.displaySmall));
properties.add(DiagnosticsProperty<TextStyle>('headline4', headline4, defaultValue: defaultTheme.headline4)); properties.add(DiagnosticsProperty<TextStyle>('headlineLarge', headlineLarge, defaultValue: defaultTheme.headlineLarge));
properties.add(DiagnosticsProperty<TextStyle>('headline5', headline5, defaultValue: defaultTheme.headline5)); properties.add(DiagnosticsProperty<TextStyle>('headlineMedium', headlineMedium, defaultValue: defaultTheme.headlineMedium));
properties.add(DiagnosticsProperty<TextStyle>('headline6', headline6, defaultValue: defaultTheme.headline6)); properties.add(DiagnosticsProperty<TextStyle>('headlineSmall', headlineSmall, defaultValue: defaultTheme.headlineSmall));
properties.add(DiagnosticsProperty<TextStyle>('subtitle1', subtitle1, defaultValue: defaultTheme.subtitle1)); properties.add(DiagnosticsProperty<TextStyle>('titleLarge', titleLarge, defaultValue: defaultTheme.titleLarge));
properties.add(DiagnosticsProperty<TextStyle>('subtitle2', subtitle2, defaultValue: defaultTheme.subtitle2)); properties.add(DiagnosticsProperty<TextStyle>('titleMedium', titleMedium, defaultValue: defaultTheme.titleMedium));
properties.add(DiagnosticsProperty<TextStyle>('bodyText1', bodyText1, defaultValue: defaultTheme.bodyText1)); properties.add(DiagnosticsProperty<TextStyle>('titleSmall', titleSmall, defaultValue: defaultTheme.titleSmall));
properties.add(DiagnosticsProperty<TextStyle>('bodyText2', bodyText2, defaultValue: defaultTheme.bodyText2)); properties.add(DiagnosticsProperty<TextStyle>('bodyLarge', bodyLarge, defaultValue: defaultTheme.bodyLarge));
properties.add(DiagnosticsProperty<TextStyle>('caption', caption, defaultValue: defaultTheme.caption)); properties.add(DiagnosticsProperty<TextStyle>('bodyMedium', bodyMedium, defaultValue: defaultTheme.bodyMedium));
properties.add(DiagnosticsProperty<TextStyle>('button', button, defaultValue: defaultTheme.button)); properties.add(DiagnosticsProperty<TextStyle>('bodySmall', bodySmall, defaultValue: defaultTheme.bodySmall));
properties.add(DiagnosticsProperty<TextStyle>('overline', overline, defaultValue: defaultTheme.overline)); properties.add(DiagnosticsProperty<TextStyle>('labelLarge', labelLarge, defaultValue: defaultTheme.labelLarge));
properties.add(DiagnosticsProperty<TextStyle>('labelMedium', labelMedium, defaultValue: defaultTheme.labelMedium));
properties.add(DiagnosticsProperty<TextStyle>('labelSmall', labelSmall, defaultValue: defaultTheme.labelSmall));
} }
} }
...@@ -332,76 +332,84 @@ class Typography with Diagnosticable { ...@@ -332,76 +332,84 @@ class Typography with Diagnosticable {
/// ///
/// This [TextTheme] provides color but not geometry (font size, weight, etc). /// This [TextTheme] provides color but not geometry (font size, weight, etc).
static const TextTheme blackMountainView = TextTheme( static const TextTheme blackMountainView = TextTheme(
headline1 : TextStyle(debugLabel: 'blackMountainView headline1', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'blackMountainView displayLarge', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'blackMountainView headline2', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'blackMountainView displayMedium', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'blackMountainView headline3', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'blackMountainView displaySmall', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'blackMountainView headline4', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'blackMountainView headlineLarge', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'blackMountainView headline5', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'blackMountainView headlineMedium', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'blackMountainView headline6', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'blackMountainView headlineSmall', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'blackMountainView bodyText1', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'blackMountainView titleLarge', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'blackMountainView bodyText2', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'blackMountainView titleMedium', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'blackMountainView subtitle1', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'blackMountainView titleSmall', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'blackMountainView subtitle2', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'blackMountainView bodyLarge', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'blackMountainView caption', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'blackMountainView bodyMedium', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'blackMountainView button', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'blackMountainView bodySmall', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'blackMountainView overline', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'blackMountainView labelLarge', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'blackMountainView labelMedium', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'blackMountainView labelSmall', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none),
); );
/// A material design text theme with light glyphs based on Roboto. /// A material design text theme with light glyphs based on Roboto.
/// ///
/// This [TextTheme] provides color but not geometry (font size, weight, etc). /// This [TextTheme] provides color but not geometry (font size, weight, etc).
static const TextTheme whiteMountainView = TextTheme( static const TextTheme whiteMountainView = TextTheme(
headline1 : TextStyle(debugLabel: 'whiteMountainView headline1', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'whiteMountainView displayLarge', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'whiteMountainView headline2', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'whiteMountainView displayMedium', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'whiteMountainView headline3', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'whiteMountainView displaySmall', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'whiteMountainView headline4', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'whiteMountainView headlineLarge', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'whiteMountainView headline5', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'whiteMountainView headlineMedium', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'whiteMountainView headline6', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'whiteMountainView headlineSmall', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'whiteMountainView bodyText1', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'whiteMountainView titleLarge', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'whiteMountainView bodyText2', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'whiteMountainView titleMedium', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'whiteMountainView subtitle1', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'whiteMountainView titleSmall', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'whiteMountainView subtitle2', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'whiteMountainView bodyLarge', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'whiteMountainView caption', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'whiteMountainView bodyMedium', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'whiteMountainView button', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'whiteMountainView bodySmall', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'whiteMountainView overline', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'whiteMountainView labelLarge', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'whiteMountainView labelMedium', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'whiteMountainView labelSmall', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none),
); );
/// A material design text theme with dark glyphs based on Segoe UI. /// A material design text theme with dark glyphs based on Segoe UI.
/// ///
/// This [TextTheme] provides color but not geometry (font size, weight, etc). /// This [TextTheme] provides color but not geometry (font size, weight, etc).
static const TextTheme blackRedmond = TextTheme( static const TextTheme blackRedmond = TextTheme(
headline1 : TextStyle(debugLabel: 'blackRedmond headline1', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'blackRedmond displayLarge', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'blackRedmond headline2', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'blackRedmond displayMedium', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'blackRedmond headline3', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'blackRedmond displaySmall', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'blackRedmond headline4', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'blackRedmond headlineLarge', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'blackRedmond headline5', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'blackRedmond headlineMedium', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'blackRedmond headline6', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'blackRedmond headlineSmall', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'blackRedmond bodyText1', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'blackRedmond titleLarge', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'blackRedmond bodyText2', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'blackRedmond titleMedium', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'blackRedmond subtitle1', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'blackRedmond titleSmall', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'blackRedmond subtitle2', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'blackRedmond bodyLarge', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'blackRedmond caption', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'blackRedmond bodyMedium', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'blackRedmond button', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'blackRedmond bodySmall', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'blackRedmond overline', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'blackRedmond labelLarge', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'blackRedmond labelMedium', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'blackRedmond labelSmall', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none),
); );
/// A material design text theme with light glyphs based on Segoe UI. /// A material design text theme with light glyphs based on Segoe UI.
/// ///
/// This [TextTheme] provides color but not geometry (font size, weight, etc). /// This [TextTheme] provides color but not geometry (font size, weight, etc).
static const TextTheme whiteRedmond = TextTheme( static const TextTheme whiteRedmond = TextTheme(
headline1 : TextStyle(debugLabel: 'whiteRedmond headline1', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'whiteRedmond displayLarge', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'whiteRedmond headline2', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'whiteRedmond displayMedium', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'whiteRedmond headline3', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'whiteRedmond displaySmall', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'whiteRedmond headline4', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'whiteRedmond headlineLarge', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'whiteRedmond headline5', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'whiteRedmond headlineMedium', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'whiteRedmond headline6', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'whiteRedmond headlineSmall', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'whiteRedmond bodyText1', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'whiteRedmond titleLarge', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'whiteRedmond bodyText2', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'whiteRedmond titleMedium', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'whiteRedmond subtitle1', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'whiteRedmond titleSmall', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'whiteRedmond subtitle2', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'whiteRedmond bodyLarge', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'whiteRedmond caption', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'whiteRedmond bodyMedium', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'whiteRedmond button', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'whiteRedmond bodySmall', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'whiteRedmond overline', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'whiteRedmond labelLarge', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'whiteRedmond labelMedium', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'whiteRedmond labelSmall', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none),
); );
static const List<String> _helsinkiFontFallbacks = <String>['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']; static const List<String> _helsinkiFontFallbacks = <String>['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial'];
...@@ -411,38 +419,42 @@ class Typography with Diagnosticable { ...@@ -411,38 +419,42 @@ class Typography with Diagnosticable {
/// ///
/// This [TextTheme] provides color but not geometry (font size, weight, etc). /// This [TextTheme] provides color but not geometry (font size, weight, etc).
static const TextTheme blackHelsinki = TextTheme( static const TextTheme blackHelsinki = TextTheme(
headline1 : TextStyle(debugLabel: 'blackHelsinki headline1', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'blackHelsinki displayLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'blackHelsinki headline2', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'blackHelsinki displayMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'blackHelsinki headline3', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'blackHelsinki displaySmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'blackHelsinki headline4', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'blackHelsinki headlineLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'blackHelsinki headline5', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'blackHelsinki headlineMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'blackHelsinki headline6', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'blackHelsinki headlineSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'blackHelsinki bodyText1', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'blackHelsinki titleLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'blackHelsinki bodyText2', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'blackHelsinki titleMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'blackHelsinki subtitle1', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'blackHelsinki titleSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'blackHelsinki subtitle2', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'blackHelsinki bodyLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'blackHelsinki caption', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'blackHelsinki bodyMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'blackHelsinki button', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'blackHelsinki bodySmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'blackHelsinki overline', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'blackHelsinki labelLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'blackHelsinki labelMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'blackHelsinki labelSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none),
); );
/// A material design text theme with light glyphs based on Roboto, with fallbacks of DejaVu Sans, Liberation Sans and Arial. /// A material design text theme with light glyphs based on Roboto, with fallbacks of DejaVu Sans, Liberation Sans and Arial.
/// ///
/// This [TextTheme] provides color but not geometry (font size, weight, etc). /// This [TextTheme] provides color but not geometry (font size, weight, etc).
static const TextTheme whiteHelsinki = TextTheme( static const TextTheme whiteHelsinki = TextTheme(
headline1 : TextStyle(debugLabel: 'whiteHelsinki headline1', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'whiteHelsinki displayLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'whiteHelsinki headline2', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'whiteHelsinki displayMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'whiteHelsinki headline3', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'whiteHelsinki displaySmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'whiteHelsinki headline4', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'whiteHelsinki headlineLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'whiteHelsinki headline5', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'whiteHelsinki headlineMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'whiteHelsinki headline6', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'whiteHelsinki headlineSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'whiteHelsinki bodyText1', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'whiteHelsinki titleLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'whiteHelsinki bodyText2', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'whiteHelsinki titleMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'whiteHelsinki subtitle1', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'whiteHelsinki titleSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'whiteHelsinki subtitle2', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'whiteHelsinki bodyLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'whiteHelsinki caption', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'whiteHelsinki bodyMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'whiteHelsinki button', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'whiteHelsinki bodySmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'whiteHelsinki overline', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'whiteHelsinki labelLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'whiteHelsinki labelMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'whiteHelsinki labelSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none),
); );
/// A material design text theme with dark glyphs based on San Francisco. /// A material design text theme with dark glyphs based on San Francisco.
...@@ -451,19 +463,21 @@ class Typography with Diagnosticable { ...@@ -451,19 +463,21 @@ class Typography with Diagnosticable {
/// ///
/// This theme uses the iOS version of the font names. /// This theme uses the iOS version of the font names.
static const TextTheme blackCupertino = TextTheme( static const TextTheme blackCupertino = TextTheme(
headline1 : TextStyle(debugLabel: 'blackCupertino headline1', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'blackCupertino displayLarge', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'blackCupertino headline2', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'blackCupertino displayMedium', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'blackCupertino headline3', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'blackCupertino displaySmall', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'blackCupertino headline4', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'blackCupertino headlineLarge', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'blackCupertino headline5', fontFamily: '.SF UI Display', color: Colors.black87, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'blackCupertino headlineMedium', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'blackCupertino headline6', fontFamily: '.SF UI Display', color: Colors.black87, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'blackCupertino headlineSmall', fontFamily: '.SF UI Display', color: Colors.black87, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'blackCupertino bodyText1', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'blackCupertino titleLarge', fontFamily: '.SF UI Display', color: Colors.black87, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'blackCupertino bodyText2', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'blackCupertino titleMedium', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'blackCupertino subtitle1', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'blackCupertino titleSmall', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'blackCupertino subtitle2', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'blackCupertino bodyLarge', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'blackCupertino caption', fontFamily: '.SF UI Text', color: Colors.black54, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'blackCupertino bodyMedium', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'blackCupertino button', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'blackCupertino bodySmall', fontFamily: '.SF UI Text', color: Colors.black54, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'blackCupertino overline', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'blackCupertino labelLarge', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'blackCupertino labelMedium', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'blackCupertino labelSmall', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none),
); );
/// A material design text theme with light glyphs based on San Francisco. /// A material design text theme with light glyphs based on San Francisco.
...@@ -472,19 +486,21 @@ class Typography with Diagnosticable { ...@@ -472,19 +486,21 @@ class Typography with Diagnosticable {
/// ///
/// This theme uses the iOS version of the font names. /// This theme uses the iOS version of the font names.
static const TextTheme whiteCupertino = TextTheme( static const TextTheme whiteCupertino = TextTheme(
headline1 : TextStyle(debugLabel: 'whiteCupertino headline1', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'whiteCupertino displayLarge', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'whiteCupertino headline2', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'whiteCupertino displayMedium', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'whiteCupertino headline3', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'whiteCupertino displaySmall', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'whiteCupertino headline4', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'whiteCupertino headlineLarge', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'whiteCupertino headline5', fontFamily: '.SF UI Display', color: Colors.white, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'whiteCupertino headlineMedium', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'whiteCupertino headline6', fontFamily: '.SF UI Display', color: Colors.white, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'whiteCupertino headlineSmall', fontFamily: '.SF UI Display', color: Colors.white, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'whiteCupertino subtitle1', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'whiteCupertino titleLarge', fontFamily: '.SF UI Display', color: Colors.white, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'whiteCupertino bodyText1', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'whiteCupertino titleMedium', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'whiteCupertino bodyText2', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'whiteCupertino titleSmall', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'whiteCupertino caption', fontFamily: '.SF UI Text', color: Colors.white70, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'whiteCupertino bodyLarge', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'whiteCupertino button', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'whiteCupertino bodyMedium', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'whiteCupertino subtitle2', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'whiteCupertino bodySmall', fontFamily: '.SF UI Text', color: Colors.white70, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'whiteCupertino overline', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'whiteCupertino labelLarge', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'whiteCupertino labelMedium', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'whiteCupertino labelSmall', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none),
); );
/// A material design text theme with dark glyphs based on San Francisco. /// A material design text theme with dark glyphs based on San Francisco.
...@@ -493,19 +509,21 @@ class Typography with Diagnosticable { ...@@ -493,19 +509,21 @@ class Typography with Diagnosticable {
/// ///
/// This theme uses the macOS version of the font names. /// This theme uses the macOS version of the font names.
static const TextTheme blackRedwoodCity = TextTheme( static const TextTheme blackRedwoodCity = TextTheme(
headline1 : TextStyle(debugLabel: 'blackRedwoodCity headline1', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'blackRedwoodCity displayLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'blackRedwoodCity headline2', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'blackRedwoodCity displayMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'blackRedwoodCity headline3', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'blackRedwoodCity displaySmall', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'blackRedwoodCity headline4', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'blackRedwoodCity headlineLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'blackRedwoodCity headline5', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'blackRedwoodCity headlineMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'blackRedwoodCity headline6', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'blackRedwoodCity headlineSmall', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'blackRedwoodCity bodyText1', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'blackRedwoodCity titleLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'blackRedwoodCity bodyText2', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'blackRedwoodCity titleMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'blackRedwoodCity subtitle1', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'blackRedwoodCity titleSmall', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'blackRedwoodCity subtitle2', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'blackRedwoodCity bodyLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'blackRedwoodCity caption', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'blackRedwoodCity bodyMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'blackRedwoodCity button', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'blackRedwoodCity bodySmall', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'blackRedwoodCity overline', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'blackRedwoodCity labelLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'blackRedwoodCity labelMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'blackRedwoodCity labelSmall', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none),
); );
/// A material design text theme with light glyphs based on San Francisco. /// A material design text theme with light glyphs based on San Francisco.
...@@ -514,133 +532,147 @@ class Typography with Diagnosticable { ...@@ -514,133 +532,147 @@ class Typography with Diagnosticable {
/// ///
/// This theme uses the macOS version of the font names. /// This theme uses the macOS version of the font names.
static const TextTheme whiteRedwoodCity = TextTheme( static const TextTheme whiteRedwoodCity = TextTheme(
headline1 : TextStyle(debugLabel: 'whiteRedwoodCity headline1', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), displayLarge : TextStyle(debugLabel: 'whiteRedwoodCity displayLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none),
headline2 : TextStyle(debugLabel: 'whiteRedwoodCity headline2', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), displayMedium : TextStyle(debugLabel: 'whiteRedwoodCity displayMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none),
headline3 : TextStyle(debugLabel: 'whiteRedwoodCity headline3', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), displaySmall : TextStyle(debugLabel: 'whiteRedwoodCity displaySmall', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none),
headline4 : TextStyle(debugLabel: 'whiteRedwoodCity headline4', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), headlineLarge : TextStyle(debugLabel: 'whiteRedwoodCity headlineLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none),
headline5 : TextStyle(debugLabel: 'whiteRedwoodCity headline5', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), headlineMedium : TextStyle(debugLabel: 'whiteRedwoodCity headlineMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none),
headline6 : TextStyle(debugLabel: 'whiteRedwoodCity headline6', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), headlineSmall : TextStyle(debugLabel: 'whiteRedwoodCity headlineSmall', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
subtitle1 : TextStyle(debugLabel: 'whiteRedwoodCity subtitle1', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), titleLarge : TextStyle(debugLabel: 'whiteRedwoodCity titleLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
bodyText1 : TextStyle(debugLabel: 'whiteRedwoodCity bodyText1', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), titleMedium : TextStyle(debugLabel: 'whiteRedwoodCity titleMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
bodyText2 : TextStyle(debugLabel: 'whiteRedwoodCity bodyText2', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), titleSmall : TextStyle(debugLabel: 'whiteRedwoodCity titleSmall', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
caption : TextStyle(debugLabel: 'whiteRedwoodCity caption', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), bodyLarge : TextStyle(debugLabel: 'whiteRedwoodCity bodyLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
button : TextStyle(debugLabel: 'whiteRedwoodCity button', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), bodyMedium : TextStyle(debugLabel: 'whiteRedwoodCity bodyMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
subtitle2 : TextStyle(debugLabel: 'whiteRedwoodCity subtitle2', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), bodySmall : TextStyle(debugLabel: 'whiteRedwoodCity bodySmall', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none),
overline : TextStyle(debugLabel: 'whiteRedwoodCity overline', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), labelLarge : TextStyle(debugLabel: 'whiteRedwoodCity labelLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
labelMedium : TextStyle(debugLabel: 'whiteRedwoodCity labelMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
labelSmall : TextStyle(debugLabel: 'whiteRedwoodCity labelSmall', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none),
); );
/// Defines text geometry for [ScriptCategory.englishLike] scripts, such as /// Defines text geometry for [ScriptCategory.englishLike] scripts, such as
/// English, French, Russian, etc. /// English, French, Russian, etc.
static const TextTheme englishLike2014 = TextTheme( static const TextTheme englishLike2014 = TextTheme(
headline1 : TextStyle(debugLabel: 'englishLike display4 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.alphabetic), displayLarge : TextStyle(debugLabel: 'englishLike displayLarge 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.alphabetic),
headline2 : TextStyle(debugLabel: 'englishLike display3 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), displayMedium : TextStyle(debugLabel: 'englishLike displayMedium 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline3 : TextStyle(debugLabel: 'englishLike display2 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), displaySmall : TextStyle(debugLabel: 'englishLike displaySmall 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline4 : TextStyle(debugLabel: 'englishLike display1 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), headlineLarge : TextStyle(debugLabel: 'englishLike headlineLarge 2014', inherit: false, fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline5 : TextStyle(debugLabel: 'englishLike headline 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), headlineMedium : TextStyle(debugLabel: 'englishLike headlineMedium 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline6 : TextStyle(debugLabel: 'englishLike title 2014', inherit: false, fontSize: 20.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), headlineSmall : TextStyle(debugLabel: 'englishLike headlineSmall 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
bodyText1 : TextStyle(debugLabel: 'englishLike body2 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), titleLarge : TextStyle(debugLabel: 'englishLike titleLarge 2014', inherit: false, fontSize: 20.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic),
bodyText2 : TextStyle(debugLabel: 'englishLike body1 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), titleMedium : TextStyle(debugLabel: 'englishLike titleMedium 2014', inherit: false, fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
subtitle1 : TextStyle(debugLabel: 'englishLike subhead 2014', inherit: false, fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), titleSmall : TextStyle(debugLabel: 'englishLike titleSmall 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.1),
subtitle2 : TextStyle(debugLabel: 'englishLike subtitle 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.1), bodyLarge : TextStyle(debugLabel: 'englishLike bodyLarge 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic),
caption : TextStyle(debugLabel: 'englishLike caption 2014', inherit: false, fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), bodyMedium : TextStyle(debugLabel: 'englishLike bodyMedium 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
button : TextStyle(debugLabel: 'englishLike button 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), bodySmall : TextStyle(debugLabel: 'englishLike bodySmall 2014', inherit: false, fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
overline : TextStyle(debugLabel: 'englishLike overline 2014', inherit: false, fontSize: 10.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.5), labelLarge : TextStyle(debugLabel: 'englishLike labelLarge 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic),
labelMedium : TextStyle(debugLabel: 'englishLike labelMedium 2014', inherit: false, fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
labelSmall : TextStyle(debugLabel: 'englishLike labelSmall 2014', inherit: false, fontSize: 10.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.5),
); );
/// Defines text geometry for [ScriptCategory.englishLike] scripts, such as /// Defines text geometry for [ScriptCategory.englishLike] scripts, such as
/// English, French, Russian, etc. /// English, French, Russian, etc.
/// ///
/// The font sizes, weights, and letter spacings in this version match the /// The font sizes, weights, and letter spacings in this version match the
/// [latest Material Design specification](https://material.io/go/design-typography#typography-styles). /// [2018 Material Design specification](https://material.io/go/design-typography#typography-styles).
static const TextTheme englishLike2018 = TextTheme( static const TextTheme englishLike2018 = TextTheme(
headline1 : TextStyle(debugLabel: 'englishLike headline1 2018', fontSize: 96.0, fontWeight: FontWeight.w300, textBaseline: TextBaseline.alphabetic, letterSpacing: -1.5), displayLarge : TextStyle(debugLabel: 'englishLike displayLarge 2018', fontSize: 96.0, fontWeight: FontWeight.w300, textBaseline: TextBaseline.alphabetic, letterSpacing: -1.5),
headline2 : TextStyle(debugLabel: 'englishLike headline2 2018', fontSize: 60.0, fontWeight: FontWeight.w300, textBaseline: TextBaseline.alphabetic, letterSpacing: -0.5), displayMedium : TextStyle(debugLabel: 'englishLike displayMedium 2018', fontSize: 60.0, fontWeight: FontWeight.w300, textBaseline: TextBaseline.alphabetic, letterSpacing: -0.5),
headline3 : TextStyle(debugLabel: 'englishLike headline3 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.0), displaySmall : TextStyle(debugLabel: 'englishLike displaySmall 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.0),
headline4 : TextStyle(debugLabel: 'englishLike headline4 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25), headlineLarge : TextStyle(debugLabel: 'englishLike headlineLarge 2018', fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25),
headline5 : TextStyle(debugLabel: 'englishLike headline5 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.0), headlineMedium : TextStyle(debugLabel: 'englishLike headlineMedium 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25),
headline6 : TextStyle(debugLabel: 'englishLike headline6 2018', fontSize: 20.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.15), headlineSmall : TextStyle(debugLabel: 'englishLike headlineSmall 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.0),
bodyText1 : TextStyle(debugLabel: 'englishLike bodyText1 2018', fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.5), titleLarge : TextStyle(debugLabel: 'englishLike titleLarge 2018', fontSize: 20.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.15),
bodyText2 : TextStyle(debugLabel: 'englishLike bodyText2 2018', fontSize: 14.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25), titleMedium : TextStyle(debugLabel: 'englishLike titleMedium 2018', fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.15),
subtitle1 : TextStyle(debugLabel: 'englishLike subtitle1 2018', fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.15), titleSmall : TextStyle(debugLabel: 'englishLike titleSmall 2018', fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.1),
subtitle2 : TextStyle(debugLabel: 'englishLike subtitle2 2018', fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.1), bodyLarge : TextStyle(debugLabel: 'englishLike bodyLarge 2018', fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.5),
button : TextStyle(debugLabel: 'englishLike button 2018', fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.25), bodyMedium : TextStyle(debugLabel: 'englishLike bodyMedium 2018', fontSize: 14.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25),
caption : TextStyle(debugLabel: 'englishLike caption 2018', fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.4), bodySmall : TextStyle(debugLabel: 'englishLike bodySmall 2018', fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.4),
overline : TextStyle(debugLabel: 'englishLike overline 2018', fontSize: 10.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.5), labelLarge : TextStyle(debugLabel: 'englishLike labelLarge 2018', fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.25),
labelMedium : TextStyle(debugLabel: 'englishLike labelMedium 2018', fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.5),
labelSmall : TextStyle(debugLabel: 'englishLike labelSmall 2018', fontSize: 10.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.5),
); );
/// Defines text geometry for dense scripts, such as Chinese, Japanese /// Defines text geometry for dense scripts, such as Chinese, Japanese
/// and Korean. /// and Korean.
static const TextTheme dense2014 = TextTheme( static const TextTheme dense2014 = TextTheme(
headline1 : TextStyle(debugLabel: 'dense display4 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic), displayLarge : TextStyle(debugLabel: 'dense displayLarge 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic),
headline2 : TextStyle(debugLabel: 'dense display3 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), displayMedium : TextStyle(debugLabel: 'dense displayMedium 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
headline3 : TextStyle(debugLabel: 'dense display2 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), displaySmall : TextStyle(debugLabel: 'dense displaySmall 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
headline4 : TextStyle(debugLabel: 'dense display1 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), headlineLarge : TextStyle(debugLabel: 'dense headlineLarge 2014', inherit: false, fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
headline5 : TextStyle(debugLabel: 'dense headline 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), headlineMedium : TextStyle(debugLabel: 'dense headlineMedium 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
headline6 : TextStyle(debugLabel: 'dense title 2014', inherit: false, fontSize: 21.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), headlineSmall : TextStyle(debugLabel: 'dense headlineSmall 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
bodyText1 : TextStyle(debugLabel: 'dense body2 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), titleLarge : TextStyle(debugLabel: 'dense titleLarge 2014', inherit: false, fontSize: 21.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic),
bodyText2 : TextStyle(debugLabel: 'dense body1 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), titleMedium : TextStyle(debugLabel: 'dense titleMedium 2014', inherit: false, fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
subtitle1 : TextStyle(debugLabel: 'dense subhead 2014', inherit: false, fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), titleSmall : TextStyle(debugLabel: 'dense titleSmall 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic),
subtitle2 : TextStyle(debugLabel: 'dense subtitle 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), bodyLarge : TextStyle(debugLabel: 'dense bodyLarge 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic),
caption : TextStyle(debugLabel: 'dense caption 2014', inherit: false, fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), bodyMedium : TextStyle(debugLabel: 'dense bodyMedium 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
button : TextStyle(debugLabel: 'dense button 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), bodySmall : TextStyle(debugLabel: 'dense bodySmall 2014', inherit: false, fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
overline : TextStyle(debugLabel: 'dense overline 2014', inherit: false, fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), labelLarge : TextStyle(debugLabel: 'dense labelLarge 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic),
labelMedium : TextStyle(debugLabel: 'dense labelMedium 2014', inherit: false, fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
labelSmall : TextStyle(debugLabel: 'dense labelSmall 2014', inherit: false, fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
); );
/// Defines text geometry for dense scripts, such as Chinese, Japanese /// Defines text geometry for dense scripts, such as Chinese, Japanese
/// and Korean. /// and Korean.
/// ///
/// The font sizes, weights, and letter spacings in this version match the /// The font sizes, weights, and letter spacings in this version match the
/// latest [Material Design specification](https://material.io/go/design-typography#typography-styles). /// 2018 [Material Design specification](https://material.io/go/design-typography#typography-styles).
static const TextTheme dense2018 = TextTheme( static const TextTheme dense2018 = TextTheme(
headline1 : TextStyle(debugLabel: 'dense headline1 2018', fontSize: 96.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic), displayLarge : TextStyle(debugLabel: 'dense displayLarge 2018', fontSize: 96.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic),
headline2 : TextStyle(debugLabel: 'dense headline2 2018', fontSize: 60.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic), displayMedium : TextStyle(debugLabel: 'dense displayMedium 2018', fontSize: 60.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic),
headline3 : TextStyle(debugLabel: 'dense headline3 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), displaySmall : TextStyle(debugLabel: 'dense displaySmall 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
headline4 : TextStyle(debugLabel: 'dense headline4 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), headlineLarge : TextStyle(debugLabel: 'dense headlineLarge 2018', fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
headline5 : TextStyle(debugLabel: 'dense headline5 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), headlineMedium : TextStyle(debugLabel: 'dense headlineMedium 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
headline6 : TextStyle(debugLabel: 'dense headline6 2018', fontSize: 21.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), headlineSmall : TextStyle(debugLabel: 'dense headlineSmall 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
bodyText1 : TextStyle(debugLabel: 'dense bodyText1 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), titleLarge : TextStyle(debugLabel: 'dense titleLarge 2018', fontSize: 21.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic),
bodyText2 : TextStyle(debugLabel: 'dense bodyText2 2018', fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), titleMedium : TextStyle(debugLabel: 'dense titleMedium 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
subtitle1 : TextStyle(debugLabel: 'dense subtitle1 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), titleSmall : TextStyle(debugLabel: 'dense titleSmall 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic),
subtitle2 : TextStyle(debugLabel: 'dense subtitle2 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), bodyLarge : TextStyle(debugLabel: 'dense bodyLarge 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
button : TextStyle(debugLabel: 'dense button 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), bodyMedium : TextStyle(debugLabel: 'dense bodyMedium 2018', fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
caption : TextStyle(debugLabel: 'dense caption 2018', fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), bodySmall : TextStyle(debugLabel: 'dense bodySmall 2018', fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
overline : TextStyle(debugLabel: 'dense overline 2018', fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), labelLarge : TextStyle(debugLabel: 'dense labelLarge 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic),
labelMedium : TextStyle(debugLabel: 'dense labelMedium 2018', fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
labelSmall : TextStyle(debugLabel: 'dense labelSmall 2018', fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic),
); );
/// Defines text geometry for tall scripts, such as Farsi, Hindi, and Thai. /// Defines text geometry for tall scripts, such as Farsi, Hindi, and Thai.
static const TextTheme tall2014 = TextTheme( static const TextTheme tall2014 = TextTheme(
headline1 : TextStyle(debugLabel: 'tall display4 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), displayLarge : TextStyle(debugLabel: 'tall displayLarge 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline2 : TextStyle(debugLabel: 'tall display3 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), displayMedium : TextStyle(debugLabel: 'tall displayMedium 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline3 : TextStyle(debugLabel: 'tall display2 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), displaySmall : TextStyle(debugLabel: 'tall displaySmall 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline4 : TextStyle(debugLabel: 'tall display1 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), headlineLarge : TextStyle(debugLabel: 'tall headlineLarge 2014', inherit: false, fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline5 : TextStyle(debugLabel: 'tall headline 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), headlineMedium : TextStyle(debugLabel: 'tall headlineMedium 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline6 : TextStyle(debugLabel: 'tall title 2014', inherit: false, fontSize: 21.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), headlineSmall : TextStyle(debugLabel: 'tall headlineSmall 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
bodyText1 : TextStyle(debugLabel: 'tall body2 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), titleLarge : TextStyle(debugLabel: 'tall titleLarge 2014', inherit: false, fontSize: 21.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic),
bodyText2 : TextStyle(debugLabel: 'tall body1 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), titleMedium : TextStyle(debugLabel: 'tall titleMedium 2014', inherit: false, fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
subtitle1 : TextStyle(debugLabel: 'tall subhead 2014', inherit: false, fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), titleSmall : TextStyle(debugLabel: 'tall titleSmall 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic),
subtitle2 : TextStyle(debugLabel: 'tall subtitle 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), bodyLarge : TextStyle(debugLabel: 'tall bodyLarge 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic),
caption : TextStyle(debugLabel: 'tall caption 2014', inherit: false, fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), bodyMedium : TextStyle(debugLabel: 'tall bodyMedium 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
button : TextStyle(debugLabel: 'tall button 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), bodySmall : TextStyle(debugLabel: 'tall bodySmall 2014', inherit: false, fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
overline : TextStyle(debugLabel: 'tall overline 2014', inherit: false, fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), labelLarge : TextStyle(debugLabel: 'tall labelLarge 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic),
labelMedium : TextStyle(debugLabel: 'tall labelMedium 2014', inherit: false, fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
labelSmall : TextStyle(debugLabel: 'tall labelSmall 2014', inherit: false, fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
); );
/// Defines text geometry for tall scripts, such as Farsi, Hindi, and Thai. /// Defines text geometry for tall scripts, such as Farsi, Hindi, and Thai.
/// ///
/// The font sizes, weights, and letter spacings in this version match the /// The font sizes, weights, and letter spacings in this version match the
/// latest [Material Design specification](https://material.io/go/design-typography#typography-styles). /// 2018 [Material Design specification](https://material.io/go/design-typography#typography-styles).
static const TextTheme tall2018 = TextTheme( static const TextTheme tall2018 = TextTheme(
headline1 : TextStyle(debugLabel: 'tall headline1 2018', fontSize: 96.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), displayLarge : TextStyle(debugLabel: 'tall displayLarge 2018', fontSize: 96.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline2 : TextStyle(debugLabel: 'tall headline2 2018', fontSize: 60.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), displayMedium : TextStyle(debugLabel: 'tall displayMedium 2018', fontSize: 60.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline3 : TextStyle(debugLabel: 'tall headline3 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), displaySmall : TextStyle(debugLabel: 'tall displaySmall 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline4 : TextStyle(debugLabel: 'tall headline4 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), headlineLarge : TextStyle(debugLabel: 'tall headlineLarge 2018', fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline5 : TextStyle(debugLabel: 'tall headline5 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), headlineMedium : TextStyle(debugLabel: 'tall headlineMedium 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
headline6 : TextStyle(debugLabel: 'tall headline6 2018', fontSize: 21.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), headlineSmall : TextStyle(debugLabel: 'tall headlineSmall 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
bodyText1 : TextStyle(debugLabel: 'tall bodyText1 2018', fontSize: 17.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), titleLarge : TextStyle(debugLabel: 'tall titleLarge 2018', fontSize: 21.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic),
bodyText2 : TextStyle(debugLabel: 'tall bodyText2 2018', fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), titleMedium : TextStyle(debugLabel: 'tall titleMedium 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
subtitle1 : TextStyle(debugLabel: 'tall subtitle1 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), titleSmall : TextStyle(debugLabel: 'tall titleSmall 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic),
subtitle2 : TextStyle(debugLabel: 'tall subtitle2 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), bodyLarge : TextStyle(debugLabel: 'tall bodyLarge 2018', fontSize: 17.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic),
button : TextStyle(debugLabel: 'tall button 2018', fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), bodyMedium : TextStyle(debugLabel: 'tall bodyMedium 2018', fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
caption : TextStyle(debugLabel: 'tall caption 2018', fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), bodySmall : TextStyle(debugLabel: 'tall bodySmall 2018', fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
overline : TextStyle(debugLabel: 'tall overline 2018', fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), labelLarge : TextStyle(debugLabel: 'tall labelLarge 2018', fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic),
labelMedium : TextStyle(debugLabel: 'tall labelMedium 2018', fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
labelSmall : TextStyle(debugLabel: 'tall labelSmall 2018', fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic),
); );
} }
...@@ -29,19 +29,21 @@ void main() { ...@@ -29,19 +29,21 @@ void main() {
test('TextTheme copyWith', () { test('TextTheme copyWith', () {
final Typography typography = Typography.material2018(); final Typography typography = Typography.material2018();
final TextTheme whiteCopy = typography.black.copyWith( final TextTheme whiteCopy = typography.black.copyWith(
headline1: typography.white.headline1, displayLarge: typography.white.displayLarge,
headline2: typography.white.headline2, displayMedium: typography.white.displayMedium,
headline3: typography.white.headline3, displaySmall: typography.white.displaySmall,
headline4: typography.white.headline4, headlineLarge: typography.white.headlineLarge,
headline5: typography.white.headline5, headlineMedium: typography.white.headlineMedium,
headline6: typography.white.headline6, headlineSmall: typography.white.headlineSmall,
subtitle1: typography.white.subtitle1, titleLarge: typography.white.titleLarge,
bodyText1: typography.white.bodyText1, titleMedium: typography.white.titleMedium,
bodyText2: typography.white.bodyText2, titleSmall: typography.white.titleSmall,
caption: typography.white.caption, bodyLarge: typography.white.bodyLarge,
button: typography.white.button, bodyMedium: typography.white.bodyMedium,
subtitle2: typography.white.subtitle2, bodySmall: typography.white.bodySmall,
overline: typography.white.overline, labelLarge: typography.white.labelLarge,
labelMedium: typography.white.labelMedium,
labelSmall: typography.white.labelSmall,
); );
expect(typography.white, equals(whiteCopy)); expect(typography.white, equals(whiteCopy));
}); });
...@@ -52,28 +54,28 @@ void main() { ...@@ -52,28 +54,28 @@ void main() {
final TextTheme fullTheme = ThemeData.fallback().textTheme.merge(partialTheme); final TextTheme fullTheme = ThemeData.fallback().textTheme.merge(partialTheme);
expect(fullTheme.headline6!.color, equals(partialTheme.headline6!.color)); expect(fullTheme.headline6!.color, equals(partialTheme.headline6!.color));
const TextTheme onlyHeadlineAndTitle = TextTheme( const TextTheme onlyHeadlineSmallAndTitleLarge = TextTheme(
headline5: TextStyle(color: Color(0xcafefeed)), headlineSmall: TextStyle(color: Color(0xcafefeed)),
headline6: TextStyle(color: Color(0xbeefcafe)), titleLarge: TextStyle(color: Color(0xbeefcafe)),
); );
const TextTheme onlyBody1AndTitle = TextTheme( const TextTheme onlyBodyMediumAndTitleLarge = TextTheme(
bodyText2: TextStyle(color: Color(0xfeedfeed)), bodyMedium: TextStyle(color: Color(0xfeedfeed)),
headline6: TextStyle(color: Color(0xdeadcafe)), titleLarge: TextStyle(color: Color(0xdeadcafe)),
); );
TextTheme merged = onlyHeadlineAndTitle.merge(onlyBody1AndTitle); TextTheme merged = onlyHeadlineSmallAndTitleLarge.merge(onlyBodyMediumAndTitleLarge);
expect(merged.bodyText1, isNull); expect(merged.bodyLarge, isNull);
expect(merged.bodyText2!.color, equals(onlyBody1AndTitle.bodyText2!.color)); expect(merged.bodyMedium!.color, equals(onlyBodyMediumAndTitleLarge.bodyMedium!.color));
expect(merged.headline5!.color, equals(onlyHeadlineAndTitle.headline5!.color)); expect(merged.headlineSmall!.color, equals(onlyHeadlineSmallAndTitleLarge.headlineSmall!.color));
expect(merged.headline6!.color, equals(onlyBody1AndTitle.headline6!.color)); expect(merged.titleLarge!.color, equals(onlyBodyMediumAndTitleLarge.titleLarge!.color));
merged = onlyHeadlineAndTitle.merge(null); merged = onlyHeadlineSmallAndTitleLarge.merge(null);
expect(merged, equals(onlyHeadlineAndTitle)); expect(merged, equals(onlyHeadlineSmallAndTitleLarge));
}); });
test('TextTheme apply', () { test('TextTheme apply', () {
// The `displayColor` is applied to [headline1], [headline2], [headline3], // The `displayColor` is applied to [displayLarge], [displayMedium],
// [headline4], and [caption]. The `bodyColor` is applied to the remaining // [displaySmall], [headlineLarge], [headlineMedium], and [bodySmall]. The
// text styles. // `bodyColor` is applied to the remaining text styles.
const Color displayColor = Color(0x00000001); const Color displayColor = Color(0x00000001);
const Color bodyColor = Color(0x00000002); const Color bodyColor = Color(0x00000002);
const String fontFamily = 'fontFamily'; const String fontFamily = 'fontFamily';
...@@ -94,34 +96,38 @@ void main() { ...@@ -94,34 +96,38 @@ void main() {
decorationStyle: decorationStyle, decorationStyle: decorationStyle,
); );
expect(theme.headline1!.color, displayColor); expect(theme.displayLarge!.color, displayColor);
expect(theme.headline2!.color, displayColor); expect(theme.displayMedium!.color, displayColor);
expect(theme.headline3!.color, displayColor); expect(theme.displaySmall!.color, displayColor);
expect(theme.headline4!.color, displayColor); expect(theme.headlineLarge!.color, displayColor);
expect(theme.caption!.color, displayColor); expect(theme.headlineMedium!.color, displayColor);
expect(theme.headline5!.color, bodyColor); expect(theme.headlineSmall!.color, bodyColor);
expect(theme.headline6!.color, bodyColor); expect(theme.titleLarge!.color, bodyColor);
expect(theme.subtitle1!.color, bodyColor); expect(theme.titleMedium!.color, bodyColor);
expect(theme.bodyText1!.color, bodyColor); expect(theme.titleSmall!.color, bodyColor);
expect(theme.bodyText2!.color, bodyColor); expect(theme.bodyLarge!.color, bodyColor);
expect(theme.button!.color, bodyColor); expect(theme.bodyMedium!.color, bodyColor);
expect(theme.subtitle2!.color, bodyColor); expect(theme.bodySmall!.color, displayColor);
expect(theme.overline!.color, bodyColor); expect(theme.labelLarge!.color, bodyColor);
expect(theme.labelMedium!.color, bodyColor);
expect(theme.labelSmall!.color, bodyColor);
final List<TextStyle> themeStyles = <TextStyle>[ final List<TextStyle> themeStyles = <TextStyle>[
theme.headline1!, theme.displayLarge!,
theme.headline2!, theme.displayMedium!,
theme.headline3!, theme.displaySmall!,
theme.headline4!, theme.headlineLarge!,
theme.caption!, theme.headlineMedium!,
theme.headline5!, theme.headlineSmall!,
theme.headline6!, theme.titleLarge!,
theme.subtitle1!, theme.titleMedium!,
theme.bodyText1!, theme.titleSmall!,
theme.bodyText2!, theme.bodyLarge!,
theme.button!, theme.bodyMedium!,
theme.subtitle2!, theme.bodySmall!,
theme.overline!, theme.labelLarge!,
theme.labelMedium!,
theme.labelSmall!,
]; ];
expect(themeStyles.every((TextStyle style) => style.fontFamily == fontFamily), true); expect(themeStyles.every((TextStyle style) => style.fontFamily == fontFamily), true);
expect(themeStyles.every((TextStyle style) => style.decorationColor == decorationColor), true); expect(themeStyles.every((TextStyle style) => style.decorationColor == decorationColor), true);
...@@ -137,73 +143,81 @@ void main() { ...@@ -137,73 +143,81 @@ void main() {
fontSizeDelta: 5.0, fontSizeDelta: 5.0,
); );
expect(sizeTheme.headline1!.fontSize, baseTheme.headline1!.fontSize! * 2.0 + 5.0); expect(sizeTheme.displayLarge!.fontSize, baseTheme.displayLarge!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.headline2!.fontSize, baseTheme.headline2!.fontSize! * 2.0 + 5.0); expect(sizeTheme.displayMedium!.fontSize, baseTheme.displayMedium!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.headline3!.fontSize, baseTheme.headline3!.fontSize! * 2.0 + 5.0); expect(sizeTheme.displaySmall!.fontSize, baseTheme.displaySmall!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.headline4!.fontSize, baseTheme.headline4!.fontSize! * 2.0 + 5.0); expect(sizeTheme.headlineLarge!.fontSize, baseTheme.headlineLarge!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.caption!.fontSize, baseTheme.caption!.fontSize! * 2.0 + 5.0); expect(sizeTheme.headlineMedium!.fontSize, baseTheme.headlineMedium!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.headline5!.fontSize, baseTheme.headline5!.fontSize! * 2.0 + 5.0); expect(sizeTheme.headlineSmall!.fontSize, baseTheme.headlineSmall!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.headline6!.fontSize, baseTheme.headline6!.fontSize! * 2.0 + 5.0); expect(sizeTheme.titleLarge!.fontSize, baseTheme.titleLarge!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.subtitle1!.fontSize, baseTheme.subtitle1!.fontSize! * 2.0 + 5.0); expect(sizeTheme.titleMedium!.fontSize, baseTheme.titleMedium!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.bodyText1!.fontSize, baseTheme.bodyText1!.fontSize! * 2.0 + 5.0); expect(sizeTheme.titleSmall!.fontSize, baseTheme.titleSmall!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.bodyText2!.fontSize, baseTheme.bodyText2!.fontSize! * 2.0 + 5.0); expect(sizeTheme.bodyLarge!.fontSize, baseTheme.bodyLarge!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.button!.fontSize, baseTheme.button!.fontSize! * 2.0 + 5.0); expect(sizeTheme.bodyMedium!.fontSize, baseTheme.bodyMedium!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.subtitle2!.fontSize, baseTheme.subtitle2!.fontSize! * 2.0 + 5.0); expect(sizeTheme.bodySmall!.fontSize, baseTheme.bodySmall!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.overline!.fontSize, baseTheme.overline!.fontSize! * 2.0 + 5.0); expect(sizeTheme.labelLarge!.fontSize, baseTheme.labelLarge!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.labelMedium!.fontSize, baseTheme.labelMedium!.fontSize! * 2.0 + 5.0);
expect(sizeTheme.labelSmall!.fontSize, baseTheme.labelSmall!.fontSize! * 2.0 + 5.0);
}); });
test('TextTheme lerp with second parameter null', () { test('TextTheme lerp with second parameter null', () {
final TextTheme theme = Typography.material2018().black; final TextTheme theme = Typography.material2018().black;
final TextTheme lerped = TextTheme.lerp(theme, null, 0.25); final TextTheme lerped = TextTheme.lerp(theme, null, 0.25);
expect(lerped.headline1, TextStyle.lerp(theme.headline1, null, 0.25)); expect(lerped.displayLarge, TextStyle.lerp(theme.displayLarge, null, 0.25));
expect(lerped.headline2, TextStyle.lerp(theme.headline2, null, 0.25)); expect(lerped.displayMedium, TextStyle.lerp(theme.displayMedium, null, 0.25));
expect(lerped.headline3, TextStyle.lerp(theme.headline3, null, 0.25)); expect(lerped.displaySmall, TextStyle.lerp(theme.displaySmall, null, 0.25));
expect(lerped.headline4, TextStyle.lerp(theme.headline4, null, 0.25)); expect(lerped.headlineLarge, TextStyle.lerp(theme.headlineLarge, null, 0.25));
expect(lerped.caption, TextStyle.lerp(theme.caption, null, 0.25)); expect(lerped.headlineMedium, TextStyle.lerp(theme.headlineMedium, null, 0.25));
expect(lerped.headline5, TextStyle.lerp(theme.headline5, null, 0.25)); expect(lerped.headlineSmall, TextStyle.lerp(theme.headlineSmall, null, 0.25));
expect(lerped.headline6, TextStyle.lerp(theme.headline6, null, 0.25)); expect(lerped.titleLarge, TextStyle.lerp(theme.titleLarge, null, 0.25));
expect(lerped.subtitle1, TextStyle.lerp(theme.subtitle1, null, 0.25)); expect(lerped.titleMedium, TextStyle.lerp(theme.titleMedium, null, 0.25));
expect(lerped.bodyText1, TextStyle.lerp(theme.bodyText1, null, 0.25)); expect(lerped.titleSmall, TextStyle.lerp(theme.titleSmall, null, 0.25));
expect(lerped.bodyText2, TextStyle.lerp(theme.bodyText2, null, 0.25)); expect(lerped.bodyLarge, TextStyle.lerp(theme.bodyLarge, null, 0.25));
expect(lerped.button, TextStyle.lerp(theme.button, null, 0.25)); expect(lerped.bodyMedium, TextStyle.lerp(theme.bodyMedium, null, 0.25));
expect(lerped.subtitle2, TextStyle.lerp(theme.subtitle2, null, 0.25)); expect(lerped.bodySmall, TextStyle.lerp(theme.bodySmall, null, 0.25));
expect(lerped.overline, TextStyle.lerp(theme.overline, null, 0.25)); expect(lerped.labelLarge, TextStyle.lerp(theme.labelLarge, null, 0.25));
expect(lerped.labelMedium, TextStyle.lerp(theme.labelMedium, null, 0.25));
expect(lerped.labelSmall, TextStyle.lerp(theme.labelSmall, null, 0.25));
}); });
test('TextTheme lerp with first parameter null', () { test('TextTheme lerp with first parameter null', () {
final TextTheme theme = Typography.material2018().black; final TextTheme theme = Typography.material2018().black;
final TextTheme lerped = TextTheme.lerp(null, theme, 0.25); final TextTheme lerped = TextTheme.lerp(null, theme, 0.25);
expect(lerped.headline1, TextStyle.lerp(null, theme.headline1, 0.25)); expect(lerped.displayLarge, TextStyle.lerp(null, theme.displayLarge, 0.25));
expect(lerped.headline2, TextStyle.lerp(null, theme.headline2, 0.25)); expect(lerped.displayMedium, TextStyle.lerp(null, theme.displayMedium, 0.25));
expect(lerped.headline3, TextStyle.lerp(null, theme.headline3, 0.25)); expect(lerped.displaySmall, TextStyle.lerp(null, theme.displaySmall, 0.25));
expect(lerped.headline4, TextStyle.lerp(null, theme.headline4, 0.25)); expect(lerped.headlineLarge, TextStyle.lerp(null, theme.headlineLarge, 0.25));
expect(lerped.caption, TextStyle.lerp(null, theme.caption, 0.25)); expect(lerped.headlineMedium, TextStyle.lerp(null, theme.headlineMedium, 0.25));
expect(lerped.headline5, TextStyle.lerp(null, theme.headline5, 0.25)); expect(lerped.headlineSmall, TextStyle.lerp(null, theme.headlineSmall, 0.25));
expect(lerped.headline6, TextStyle.lerp(null, theme.headline6, 0.25)); expect(lerped.titleLarge, TextStyle.lerp(null, theme.titleLarge, 0.25));
expect(lerped.subtitle1, TextStyle.lerp(null, theme.subtitle1, 0.25)); expect(lerped.titleMedium, TextStyle.lerp(null, theme.titleMedium, 0.25));
expect(lerped.bodyText1, TextStyle.lerp(null, theme.bodyText1, 0.25)); expect(lerped.titleSmall, TextStyle.lerp(null, theme.titleSmall, 0.25));
expect(lerped.bodyText2, TextStyle.lerp(null, theme.bodyText2, 0.25)); expect(lerped.bodyLarge, TextStyle.lerp(null, theme.bodyLarge, 0.25));
expect(lerped.button, TextStyle.lerp(null, theme.button, 0.25)); expect(lerped.bodyMedium, TextStyle.lerp(null, theme.bodyMedium, 0.25));
expect(lerped.subtitle2, TextStyle.lerp(null, theme.subtitle2, 0.25)); expect(lerped.bodySmall, TextStyle.lerp(null, theme.bodySmall, 0.25));
expect(lerped.overline, TextStyle.lerp(null, theme.overline, 0.25)); expect(lerped.labelLarge, TextStyle.lerp(null, theme.labelLarge, 0.25));
expect(lerped.labelMedium, TextStyle.lerp(null, theme.labelMedium, 0.25));
expect(lerped.labelSmall, TextStyle.lerp(null, theme.labelSmall, 0.25));
}); });
test('TextTheme lerp with null parameters', () { test('TextTheme lerp with null parameters', () {
final TextTheme lerped = TextTheme.lerp(null, null, 0.25); final TextTheme lerped = TextTheme.lerp(null, null, 0.25);
expect(lerped.headline1, null); expect(lerped.displayLarge, null);
expect(lerped.headline2, null); expect(lerped.displayMedium, null);
expect(lerped.headline3, null); expect(lerped.displaySmall, null);
expect(lerped.headline4, null); expect(lerped.headlineLarge, null);
expect(lerped.caption, null); expect(lerped.headlineMedium, null);
expect(lerped.headline5, null); expect(lerped.headlineSmall, null);
expect(lerped.headline6, null); expect(lerped.titleLarge, null);
expect(lerped.subtitle1, null); expect(lerped.titleMedium, null);
expect(lerped.bodyText1, null); expect(lerped.titleSmall, null);
expect(lerped.bodyText2, null); expect(lerped.bodyLarge, null);
expect(lerped.button, null); expect(lerped.bodyMedium, null);
expect(lerped.subtitle2, null); expect(lerped.bodySmall, null);
expect(lerped.overline, null); expect(lerped.labelLarge, null);
expect(lerped.labelMedium, null);
expect(lerped.labelSmall, null);
}); });
} }
...@@ -373,17 +373,19 @@ void main() { ...@@ -373,17 +373,19 @@ void main() {
List<TextStyle> extractStyles(TextTheme textTheme) { List<TextStyle> extractStyles(TextTheme textTheme) {
return <TextStyle>[ return <TextStyle>[
textTheme.headline1!, textTheme.displayLarge!,
textTheme.headline2!, textTheme.displayMedium!,
textTheme.headline3!, textTheme.displaySmall!,
textTheme.headline4!, textTheme.headlineLarge!,
textTheme.headline5!, textTheme.headlineMedium!,
textTheme.headline6!, textTheme.headlineSmall!,
textTheme.subtitle1!, textTheme.titleLarge!,
textTheme.bodyText1!, textTheme.titleMedium!,
textTheme.bodyText2!, textTheme.bodyLarge!,
textTheme.caption!, textTheme.bodyMedium!,
textTheme.button!, textTheme.bodySmall!,
textTheme.labelLarge!,
textTheme.labelMedium!,
]; ];
} }
...@@ -408,7 +410,7 @@ void main() { ...@@ -408,7 +410,7 @@ void main() {
} }
} }
expect(theme.textTheme.headline1!.debugLabel, '(englishLike display4 2014).merge(blackMountainView headline1)'); expect(theme.textTheme.displayLarge!.debugLabel, '(englishLike displayLarge 2014).merge(blackMountainView displayLarge)');
}); });
group('Cupertino theme', () { group('Cupertino theme', () {
......
...@@ -584,7 +584,7 @@ void main() { ...@@ -584,7 +584,7 @@ void main() {
expect(textStyle.color, Colors.white); expect(textStyle.color, Colors.white);
expect(textStyle.fontFamily, 'Roboto'); expect(textStyle.fontFamily, 'Roboto');
expect(textStyle.decoration, TextDecoration.none); expect(textStyle.decoration, TextDecoration.none);
expect(textStyle.debugLabel, '((englishLike body1 2014).merge(blackMountainView bodyText2)).copyWith'); expect(textStyle.debugLabel, '((englishLike bodyMedium 2014).merge(blackMountainView bodyMedium)).copyWith');
}); });
testWidgets('Default tooltip message textStyle - dark', (WidgetTester tester) async { testWidgets('Default tooltip message textStyle - dark', (WidgetTester tester) async {
...@@ -610,7 +610,7 @@ void main() { ...@@ -610,7 +610,7 @@ void main() {
expect(textStyle.color, Colors.black); expect(textStyle.color, Colors.black);
expect(textStyle.fontFamily, 'Roboto'); expect(textStyle.fontFamily, 'Roboto');
expect(textStyle.decoration, TextDecoration.none); expect(textStyle.decoration, TextDecoration.none);
expect(textStyle.debugLabel, '((englishLike body1 2014).merge(whiteMountainView bodyText2)).copyWith'); expect(textStyle.debugLabel, '((englishLike bodyMedium 2014).merge(whiteMountainView bodyMedium)).copyWith');
}); });
testWidgets('Custom tooltip message textStyle', (WidgetTester tester) async { testWidgets('Custom tooltip message textStyle', (WidgetTester tester) async {
......
...@@ -17,16 +17,16 @@ void main() { ...@@ -17,16 +17,16 @@ void main() {
}); });
test('Typography on non-Apple platforms defaults to the correct font', () { test('Typography on non-Apple platforms defaults to the correct font', () {
expect(Typography.material2018().black.headline6!.fontFamily, 'Roboto'); expect(Typography.material2018().black.titleLarge!.fontFamily, 'Roboto');
expect(Typography.material2018(platform: TargetPlatform.fuchsia).black.headline6!.fontFamily, 'Roboto'); expect(Typography.material2018(platform: TargetPlatform.fuchsia).black.titleLarge!.fontFamily, 'Roboto');
expect(Typography.material2018(platform: TargetPlatform.linux).black.headline6!.fontFamily, 'Roboto'); expect(Typography.material2018(platform: TargetPlatform.linux).black.titleLarge!.fontFamily, 'Roboto');
expect(Typography.material2018(platform: TargetPlatform.linux).black.headline6!.fontFamilyFallback, <String>['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']); expect(Typography.material2018(platform: TargetPlatform.linux).black.titleLarge!.fontFamilyFallback, <String>['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']);
expect(Typography.material2018(platform: TargetPlatform.windows).black.headline6!.fontFamily, 'Segoe UI'); expect(Typography.material2018(platform: TargetPlatform.windows).black.titleLarge!.fontFamily, 'Segoe UI');
expect(Typography.material2018().white.headline6!.fontFamily, 'Roboto'); expect(Typography.material2018().white.titleLarge!.fontFamily, 'Roboto');
expect(Typography.material2018(platform: TargetPlatform.fuchsia).white.headline6!.fontFamily, 'Roboto'); expect(Typography.material2018(platform: TargetPlatform.fuchsia).white.titleLarge!.fontFamily, 'Roboto');
expect(Typography.material2018(platform: TargetPlatform.linux).white.headline6!.fontFamily, 'Roboto'); expect(Typography.material2018(platform: TargetPlatform.linux).white.titleLarge!.fontFamily, 'Roboto');
expect(Typography.material2018(platform: TargetPlatform.linux).white.headline6!.fontFamilyFallback, <String>['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']); expect(Typography.material2018(platform: TargetPlatform.linux).white.titleLarge!.fontFamilyFallback, <String>['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']);
expect(Typography.material2018(platform: TargetPlatform.windows).white.headline6!.fontFamily, 'Segoe UI'); expect(Typography.material2018(platform: TargetPlatform.windows).white.titleLarge!.fontFamily, 'Segoe UI');
}); });
// Ref: https://developer.apple.com/ios/human-interface-guidelines/visual-design/typography/ // Ref: https://developer.apple.com/ios/human-interface-guidelines/visual-design/typography/
...@@ -45,38 +45,42 @@ void main() { ...@@ -45,38 +45,42 @@ void main() {
test('Typography on iOS defaults to the correct SF font family based on size', () { test('Typography on iOS defaults to the correct SF font family based on size', () {
final Typography typography = Typography.material2018(platform: TargetPlatform.iOS); final Typography typography = Typography.material2018(platform: TargetPlatform.iOS);
for (final TextTheme textTheme in <TextTheme>[typography.black, typography.white]) { for (final TextTheme textTheme in <TextTheme>[typography.black, typography.white]) {
expect(textTheme.headline1, isSanFranciscoDisplayFont); expect(textTheme.displayLarge, isSanFranciscoDisplayFont);
expect(textTheme.headline2, isSanFranciscoDisplayFont); expect(textTheme.displayMedium, isSanFranciscoDisplayFont);
expect(textTheme.headline3, isSanFranciscoDisplayFont); expect(textTheme.displaySmall, isSanFranciscoDisplayFont);
expect(textTheme.headline4, isSanFranciscoDisplayFont); expect(textTheme.headlineLarge, isSanFranciscoDisplayFont);
expect(textTheme.headline5, isSanFranciscoDisplayFont); expect(textTheme.headlineMedium, isSanFranciscoDisplayFont);
expect(textTheme.headline6, isSanFranciscoDisplayFont); expect(textTheme.headlineSmall, isSanFranciscoDisplayFont);
expect(textTheme.subtitle1, isSanFranciscoTextFont); expect(textTheme.titleLarge, isSanFranciscoDisplayFont);
expect(textTheme.bodyText1, isSanFranciscoTextFont); expect(textTheme.titleMedium, isSanFranciscoTextFont);
expect(textTheme.bodyText2, isSanFranciscoTextFont); expect(textTheme.titleSmall, isSanFranciscoTextFont);
expect(textTheme.caption, isSanFranciscoTextFont); expect(textTheme.bodyLarge, isSanFranciscoTextFont);
expect(textTheme.button, isSanFranciscoTextFont); expect(textTheme.bodyMedium, isSanFranciscoTextFont);
expect(textTheme.subtitle2, isSanFranciscoTextFont); expect(textTheme.bodySmall, isSanFranciscoTextFont);
expect(textTheme.overline, isSanFranciscoTextFont); expect(textTheme.labelLarge, isSanFranciscoTextFont);
expect(textTheme.labelMedium, isSanFranciscoTextFont);
expect(textTheme.labelSmall, isSanFranciscoTextFont);
} }
}); });
test('Typography on macOS defaults to the system UI meta-font', () { test('Typography on macOS defaults to the system UI meta-font', () {
final Typography typography = Typography.material2018(platform: TargetPlatform.macOS); final Typography typography = Typography.material2018(platform: TargetPlatform.macOS);
for (final TextTheme textTheme in <TextTheme>[typography.black, typography.white]) { for (final TextTheme textTheme in <TextTheme>[typography.black, typography.white]) {
expect(textTheme.headline1, isMacOSSanFranciscoMetaFont); expect(textTheme.displayLarge, isMacOSSanFranciscoMetaFont);
expect(textTheme.headline2, isMacOSSanFranciscoMetaFont); expect(textTheme.displayMedium, isMacOSSanFranciscoMetaFont);
expect(textTheme.headline3, isMacOSSanFranciscoMetaFont); expect(textTheme.displaySmall, isMacOSSanFranciscoMetaFont);
expect(textTheme.headline4, isMacOSSanFranciscoMetaFont); expect(textTheme.headlineLarge, isMacOSSanFranciscoMetaFont);
expect(textTheme.headline5, isMacOSSanFranciscoMetaFont); expect(textTheme.headlineMedium, isMacOSSanFranciscoMetaFont);
expect(textTheme.headline6, isMacOSSanFranciscoMetaFont); expect(textTheme.headlineSmall, isMacOSSanFranciscoMetaFont);
expect(textTheme.subtitle1, isMacOSSanFranciscoMetaFont); expect(textTheme.titleLarge, isMacOSSanFranciscoMetaFont);
expect(textTheme.bodyText1, isMacOSSanFranciscoMetaFont); expect(textTheme.titleMedium, isMacOSSanFranciscoMetaFont);
expect(textTheme.bodyText2, isMacOSSanFranciscoMetaFont); expect(textTheme.titleSmall, isMacOSSanFranciscoMetaFont);
expect(textTheme.caption, isMacOSSanFranciscoMetaFont); expect(textTheme.bodyLarge, isMacOSSanFranciscoMetaFont);
expect(textTheme.button, isMacOSSanFranciscoMetaFont); expect(textTheme.bodyMedium, isMacOSSanFranciscoMetaFont);
expect(textTheme.subtitle2, isMacOSSanFranciscoMetaFont); expect(textTheme.bodySmall, isMacOSSanFranciscoMetaFont);
expect(textTheme.overline, isMacOSSanFranciscoMetaFont); expect(textTheme.labelLarge, isMacOSSanFranciscoMetaFont);
expect(textTheme.labelMedium, isMacOSSanFranciscoMetaFont);
expect(textTheme.labelSmall, isMacOSSanFranciscoMetaFont);
} }
}); });
...@@ -107,81 +111,93 @@ void main() { ...@@ -107,81 +111,93 @@ void main() {
const FontWeight medium = FontWeight.w500; const FontWeight medium = FontWeight.w500;
// H1 Roboto light 96 -1.5 // H1 Roboto light 96 -1.5
expect(theme.headline1!.fontFamily, 'Roboto'); expect(theme.displayLarge!.fontFamily, 'Roboto');
expect(theme.headline1!.fontWeight, light); expect(theme.displayLarge!.fontWeight, light);
expect(theme.headline1!.fontSize, 96); expect(theme.displayLarge!.fontSize, 96);
expect(theme.headline1!.letterSpacing, -1.5); expect(theme.displayLarge!.letterSpacing, -1.5);
// H2 Roboto light 60 -0.5 // H2 Roboto light 60 -0.5
expect(theme.headline2!.fontFamily, 'Roboto'); expect(theme.displayMedium!.fontFamily, 'Roboto');
expect(theme.headline2!.fontWeight, light); expect(theme.displayMedium!.fontWeight, light);
expect(theme.headline2!.fontSize, 60); expect(theme.displayMedium!.fontSize, 60);
expect(theme.headline2!.letterSpacing, -0.5); expect(theme.displayMedium!.letterSpacing, -0.5);
// H3 Roboto regular 48 0 // H3 Roboto regular 48 0
expect(theme.headline3!.fontFamily, 'Roboto'); expect(theme.displaySmall!.fontFamily, 'Roboto');
expect(theme.headline3!.fontWeight, regular); expect(theme.displaySmall!.fontWeight, regular);
expect(theme.headline3!.fontSize, 48); expect(theme.displaySmall!.fontSize, 48);
expect(theme.headline3!.letterSpacing, 0); expect(theme.displaySmall!.letterSpacing, 0);
// Headline Large (from Material 3 for backwards compatibility) Roboto regular 40 0.25
expect(theme.headlineLarge!.fontFamily, 'Roboto');
expect(theme.headlineLarge!.fontWeight, regular);
expect(theme.headlineLarge!.fontSize, 40);
expect(theme.headlineLarge!.letterSpacing, 0.25);
// H4 Roboto regular 34 0.25 // H4 Roboto regular 34 0.25
expect(theme.headline4!.fontFamily, 'Roboto'); expect(theme.headlineMedium!.fontFamily, 'Roboto');
expect(theme.headline4!.fontWeight, regular); expect(theme.headlineMedium!.fontWeight, regular);
expect(theme.headline4!.fontSize, 34); expect(theme.headlineMedium!.fontSize, 34);
expect(theme.headline4!.letterSpacing, 0.25); expect(theme.headlineMedium!.letterSpacing, 0.25);
// H5 Roboto regular 24 0 // H5 Roboto regular 24 0
expect(theme.headline5!.fontFamily, 'Roboto'); expect(theme.headlineSmall!.fontFamily, 'Roboto');
expect(theme.headline5!.fontWeight, regular); expect(theme.headlineSmall!.fontWeight, regular);
expect(theme.headline5!.fontSize, 24); expect(theme.headlineSmall!.fontSize, 24);
expect(theme.headline5!.letterSpacing, 0); expect(theme.headlineSmall!.letterSpacing, 0);
// H6 Roboto medium 20 0.15 // H6 Roboto medium 20 0.15
expect(theme.headline6!.fontFamily, 'Roboto'); expect(theme.titleLarge!.fontFamily, 'Roboto');
expect(theme.headline6!.fontWeight, medium); expect(theme.titleLarge!.fontWeight, medium);
expect(theme.headline6!.fontSize, 20); expect(theme.titleLarge!.fontSize, 20);
expect(theme.headline6!.letterSpacing, 0.15); expect(theme.titleLarge!.letterSpacing, 0.15);
// Subtitle1 Roboto regular 16 0.15 // Subtitle1 Roboto regular 16 0.15
expect(theme.subtitle1!.fontFamily, 'Roboto'); expect(theme.titleMedium!.fontFamily, 'Roboto');
expect(theme.subtitle1!.fontWeight, regular); expect(theme.titleMedium!.fontWeight, regular);
expect(theme.subtitle1!.fontSize, 16); expect(theme.titleMedium!.fontSize, 16);
expect(theme.subtitle1!.letterSpacing, 0.15); expect(theme.titleMedium!.letterSpacing, 0.15);
// Subtitle2 Roboto medium 14 0.1 // Subtitle2 Roboto medium 14 0.1
expect(theme.subtitle2!.fontFamily, 'Roboto'); expect(theme.titleSmall!.fontFamily, 'Roboto');
expect(theme.subtitle2!.fontWeight, medium); expect(theme.titleSmall!.fontWeight, medium);
expect(theme.subtitle2!.fontSize, 14); expect(theme.titleSmall!.fontSize, 14);
expect(theme.subtitle2!.letterSpacing, 0.1); expect(theme.titleSmall!.letterSpacing, 0.1);
// Body1 Roboto regular 16 0.5 // Body1 Roboto regular 16 0.5
expect(theme.bodyText1!.fontFamily, 'Roboto'); expect(theme.bodyLarge!.fontFamily, 'Roboto');
expect(theme.bodyText1!.fontWeight, regular); expect(theme.bodyLarge!.fontWeight, regular);
expect(theme.bodyText1!.fontSize, 16); expect(theme.bodyLarge!.fontSize, 16);
expect(theme.bodyText1!.letterSpacing, 0.5); expect(theme.bodyLarge!.letterSpacing, 0.5);
// Body2 Roboto regular 14 0.25 // Body2 Roboto regular 14 0.25
expect(theme.bodyText2!.fontFamily, 'Roboto'); expect(theme.bodyMedium!.fontFamily, 'Roboto');
expect(theme.bodyText2!.fontWeight, regular); expect(theme.bodyMedium!.fontWeight, regular);
expect(theme.bodyText2!.fontSize, 14); expect(theme.bodyMedium!.fontSize, 14);
expect(theme.bodyText2!.letterSpacing, 0.25); expect(theme.bodyMedium!.letterSpacing, 0.25);
// Caption Roboto regular 12 0.4
expect(theme.bodySmall!.fontFamily, 'Roboto');
expect(theme.bodySmall!.fontWeight, regular);
expect(theme.bodySmall!.fontSize, 12);
expect(theme.bodySmall!.letterSpacing, 0.4);
// BUTTON Roboto medium 14 1.25 // BUTTON Roboto medium 14 1.25
expect(theme.button!.fontFamily, 'Roboto'); expect(theme.labelLarge!.fontFamily, 'Roboto');
expect(theme.button!.fontWeight, medium); expect(theme.labelLarge!.fontWeight, medium);
expect(theme.button!.fontSize, 14); expect(theme.labelLarge!.fontSize, 14);
expect(theme.button!.letterSpacing, 1.25); expect(theme.labelLarge!.letterSpacing, 1.25);
// Caption Roboto regular 12 0.4 // Label Medium (from Material 3 for backwards compatibility) Roboto regular 11 1.5
expect(theme.caption!.fontFamily, 'Roboto'); expect(theme.labelMedium!.fontFamily, 'Roboto');
expect(theme.caption!.fontWeight, regular); expect(theme.labelMedium!.fontWeight, regular);
expect(theme.caption!.fontSize, 12); expect(theme.labelMedium!.fontSize, 11);
expect(theme.caption!.letterSpacing, 0.4); expect(theme.labelMedium!.letterSpacing, 1.5);
// OVERLINE Roboto regular 10 1.5 // OVERLINE Roboto regular 10 1.5
expect(theme.overline!.fontFamily, 'Roboto'); expect(theme.labelSmall!.fontFamily, 'Roboto');
expect(theme.overline!.fontWeight, regular); expect(theme.labelSmall!.fontWeight, regular);
expect(theme.overline!.fontSize, 10); expect(theme.labelSmall!.fontSize, 10);
expect(theme.overline!.letterSpacing, 1.5); expect(theme.labelSmall!.letterSpacing, 1.5);
}); });
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment