From 1aabe314a99a0437cf9dcddb171fc85eb4cd2730 Mon Sep 17 00:00:00 2001 From: Rami <2364772+rami-a@users.noreply.github.com> Date: Mon, 6 Dec 2021 11:04:04 -0500 Subject: [PATCH] [Material 3] Update TextTheme to have M3 names for styles (#93725) --- .../flutter/lib/src/material/text_theme.dart | 545 ++++++++++++------ .../flutter/lib/src/material/typography.dart | 454 ++++++++------- .../test/material/text_theme_test.dart | 228 ++++---- .../flutter/test/material/theme_test.dart | 26 +- .../flutter/test/material/tooltip_test.dart | 4 +- .../test/material/typography_test.dart | 196 ++++--- 6 files changed, 854 insertions(+), 599 deletions(-) diff --git a/packages/flutter/lib/src/material/text_theme.dart b/packages/flutter/lib/src/material/text_theme.dart index f351b6fd80..de0a958e0a 100644 --- a/packages/flutter/lib/src/material/text_theme.dart +++ b/packages/flutter/lib/src/material/text_theme.dart @@ -17,17 +17,20 @@ import 'typography.dart'; /// [BuildContext] and read the [ThemeData.textTheme] property. /// /// 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) /// with two exceptions: the styles called H1-H6 in the spec are /// headline1-headline6 in the API, and body1,body2 are called /// 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: /// ``` /// NAME SIZE WEIGHT SPACING @@ -78,66 +81,200 @@ class TextTheme with Diagnosticable { /// /// 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]. + /// + /// 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({ - this.headline1, - this.headline2, - this.headline3, - this.headline4, - this.headline5, - this.headline6, - this.subtitle1, - this.subtitle2, - this.bodyText1, - this.bodyText2, - this.caption, - this.button, - this.overline, - }); + TextStyle? displayLarge, + TextStyle? displayMedium, + TextStyle? displaySmall, + this.headlineLarge, + TextStyle? headlineMedium, + TextStyle? headlineSmall, + TextStyle? titleLarge, + TextStyle? titleMedium, + TextStyle? titleSmall, + TextStyle? bodyLarge, + TextStyle? bodyMedium, + TextStyle? bodySmall, + 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. - final TextStyle? headline1; + TextStyle? get headline1 => displayLarge; /// Very, very large text. /// /// Used for the date in the dialog shown by [showDatePicker]. - final TextStyle? headline2; + TextStyle? get headline2 => displayMedium; /// Very large text. - final TextStyle? headline3; + TextStyle? get headline3 => displaySmall; /// Large text. - final TextStyle? headline4; + TextStyle? get headline4 => headlineMedium; /// Used for large text in dialogs (e.g., the month and year in the dialog /// shown by [showDatePicker]). - final TextStyle? headline5; + TextStyle? get headline5 => headlineSmall; /// Used for the primary text in app bars and dialogs (e.g., [AppBar.title] /// and [AlertDialog.title]). - final TextStyle? headline6; + TextStyle? get headline6 => titleLarge; /// 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]. - final TextStyle? subtitle2; + TextStyle? get subtitle2 => titleSmall; /// Used for emphasizing text that would otherwise be [bodyText2]. - final TextStyle? bodyText1; + TextStyle? get bodyText1 => bodyLarge; /// The default text style for [Material]. - final TextStyle? bodyText2; + TextStyle? get bodyText2 => bodyMedium; /// Used for auxiliary text associated with images. - final TextStyle? caption; + TextStyle? get caption => bodySmall; /// Used for text on [ElevatedButton], [TextButton] and [OutlinedButton]. - final TextStyle? button; + TextStyle? get button => labelLarge; /// The smallest style. /// /// 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 /// the new values. @@ -163,7 +300,7 @@ class TextTheme with Diagnosticable { /// return Theme( /// data: theme.copyWith( /// textTheme: theme.textTheme.copyWith( - /// headline6: theme.textTheme.headline6!.copyWith( + /// titleLarge: theme.textTheme.titleLarge!.copyWith( /// color: titleColor, /// ), /// ), @@ -180,6 +317,21 @@ class TextTheme with Diagnosticable { /// * [merge] is used instead of [copyWith] when you want to merge all /// of the fields of a TextTheme instead of individual fields. 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? headline2, TextStyle? headline3, @@ -194,20 +346,31 @@ class TextTheme with Diagnosticable { 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.' + ); return TextTheme( - headline1: headline1 ?? this.headline1, - headline2: headline2 ?? this.headline2, - headline3: headline3 ?? this.headline3, - headline4: headline4 ?? this.headline4, - headline5: headline5 ?? this.headline5, - headline6: headline6 ?? this.headline6, - subtitle1: subtitle1 ?? this.subtitle1, - subtitle2: subtitle2 ?? this.subtitle2, - bodyText1: bodyText1 ?? this.bodyText1, - bodyText2: bodyText2 ?? this.bodyText2, - caption: caption ?? this.caption, - button: button ?? this.button, - overline: overline ?? this.overline, + displayLarge: displayLarge ?? headline1 ?? this.displayLarge, + displayMedium: displayMedium ?? headline2 ?? this.displayMedium, + displaySmall: displaySmall ?? headline3 ?? this.displaySmall, + headlineLarge: headlineLarge ?? this.headlineLarge, + headlineMedium: headlineMedium ?? headline4 ?? this.headlineMedium, + headlineSmall: headlineSmall ?? headline5 ?? this.headlineSmall, + titleLarge: titleLarge ?? headline6 ?? this.titleLarge, + titleMedium: titleMedium ?? subtitle1 ?? this.titleMedium, + titleSmall: titleSmall ?? subtitle2 ?? this.titleSmall, + bodyLarge: bodyLarge ?? bodyText1 ?? this.bodyLarge, + bodyMedium: bodyMedium ?? bodyText2 ?? this.bodyMedium, + bodySmall: bodySmall ?? caption ?? this.bodySmall, + labelLarge: labelLarge ?? button ?? this.labelLarge, + labelMedium: labelMedium ?? this.labelMedium, + labelSmall: labelSmall ?? overline ?? this.labelSmall, ); } @@ -249,7 +412,7 @@ class TextTheme with Diagnosticable { /// // 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 /// // 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)); /// return Theme(data: theme, child: child); /// } @@ -266,28 +429,30 @@ class TextTheme with Diagnosticable { if (other == null) return this; return copyWith( - headline1: headline1?.merge(other.headline1) ?? other.headline1, - headline2: headline2?.merge(other.headline2) ?? other.headline2, - headline3: headline3?.merge(other.headline3) ?? other.headline3, - headline4: headline4?.merge(other.headline4) ?? other.headline4, - headline5: headline5?.merge(other.headline5) ?? other.headline5, - headline6: headline6?.merge(other.headline6) ?? other.headline6, - subtitle1: subtitle1?.merge(other.subtitle1) ?? other.subtitle1, - subtitle2: subtitle2?.merge(other.subtitle2) ?? other.subtitle2, - bodyText1: bodyText1?.merge(other.bodyText1) ?? other.bodyText1, - bodyText2: bodyText2?.merge(other.bodyText2) ?? other.bodyText2, - caption: caption?.merge(other.caption) ?? other.caption, - button: button?.merge(other.button) ?? other.button, - overline: overline?.merge(other.overline) ?? other.overline, + displayLarge: displayLarge?.merge(other.displayLarge) ?? other.displayLarge, + displayMedium: displayMedium?.merge(other.displayMedium) ?? other.displayMedium, + displaySmall: displaySmall?.merge(other.displaySmall) ?? other.displaySmall, + headlineLarge: headlineLarge?.merge(other.headlineLarge) ?? other.headlineLarge, + headlineMedium: headlineMedium?.merge(other.headlineMedium) ?? other.headlineMedium, + headlineSmall: headlineSmall?.merge(other.headlineSmall) ?? other.headlineSmall, + titleLarge: titleLarge?.merge(other.titleLarge) ?? other.titleLarge, + titleMedium: titleMedium?.merge(other.titleMedium) ?? other.titleMedium, + titleSmall: titleSmall?.merge(other.titleSmall) ?? other.titleSmall, + bodyLarge: bodyLarge?.merge(other.bodyLarge) ?? other.bodyLarge, + bodyMedium: bodyMedium?.merge(other.bodyMedium) ?? other.bodyMedium, + bodySmall: bodySmall?.merge(other.bodySmall) ?? other.bodySmall, + 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 /// each of the individual text styles. /// - /// The `displayColor` is applied to [headline4], [headline3], [headline2], - /// [headline1], and [caption]. The `bodyColor` is applied to the remaining - /// text styles. + /// The `displayColor` is applied to [displayLarge], [displayMedium], + /// [displaySmall], [headlineLarge], [headlineMedium], and [bodySmall]. The + /// `bodyColor` is applied to the remaining text styles. /// /// Consider using [Typography.black] or [Typography.white], which implement /// the typography styles in the material design specification, as a starting @@ -303,7 +468,7 @@ class TextTheme with Diagnosticable { TextDecorationStyle? decorationStyle, }) { return TextTheme( - headline1: headline1?.apply( + displayLarge: displayLarge?.apply( color: displayColor, decoration: decoration, decorationColor: decorationColor, @@ -312,7 +477,7 @@ class TextTheme with Diagnosticable { fontSizeFactor: fontSizeFactor, fontSizeDelta: fontSizeDelta, ), - headline2: headline2?.apply( + displayMedium: displayMedium?.apply( color: displayColor, decoration: decoration, decorationColor: decorationColor, @@ -321,7 +486,7 @@ class TextTheme with Diagnosticable { fontSizeFactor: fontSizeFactor, fontSizeDelta: fontSizeDelta, ), - headline3: headline3?.apply( + displaySmall: displaySmall?.apply( color: displayColor, decoration: decoration, decorationColor: decorationColor, @@ -330,7 +495,7 @@ class TextTheme with Diagnosticable { fontSizeFactor: fontSizeFactor, fontSizeDelta: fontSizeDelta, ), - headline4: headline4?.apply( + headlineLarge: headlineLarge?.apply( color: displayColor, decoration: decoration, decorationColor: decorationColor, @@ -339,61 +504,7 @@ class TextTheme with Diagnosticable { fontSizeFactor: fontSizeFactor, fontSizeDelta: fontSizeDelta, ), - headline5: headline5?.apply( - color: bodyColor, - decoration: decoration, - decorationColor: decorationColor, - decorationStyle: decorationStyle, - fontFamily: fontFamily, - fontSizeFactor: fontSizeFactor, - fontSizeDelta: fontSizeDelta, - ), - headline6: headline6?.apply( - color: bodyColor, - decoration: decoration, - decorationColor: decorationColor, - decorationStyle: decorationStyle, - fontFamily: fontFamily, - fontSizeFactor: fontSizeFactor, - fontSizeDelta: fontSizeDelta, - ), - subtitle1: subtitle1?.apply( - color: bodyColor, - decoration: decoration, - decorationColor: decorationColor, - decorationStyle: decorationStyle, - fontFamily: fontFamily, - fontSizeFactor: fontSizeFactor, - fontSizeDelta: fontSizeDelta, - ), - subtitle2: subtitle2?.apply( - color: bodyColor, - decoration: decoration, - decorationColor: decorationColor, - decorationStyle: decorationStyle, - fontFamily: fontFamily, - fontSizeFactor: fontSizeFactor, - fontSizeDelta: fontSizeDelta, - ), - bodyText1: bodyText1?.apply( - color: bodyColor, - decoration: decoration, - decorationColor: decorationColor, - decorationStyle: decorationStyle, - fontFamily: fontFamily, - fontSizeFactor: fontSizeFactor, - fontSizeDelta: fontSizeDelta, - ), - bodyText2: bodyText2?.apply( - color: bodyColor, - decoration: decoration, - decorationColor: decorationColor, - decorationStyle: decorationStyle, - fontFamily: fontFamily, - fontSizeFactor: fontSizeFactor, - fontSizeDelta: fontSizeDelta, - ), - caption: caption?.apply( + headlineMedium: headlineMedium?.apply( color: displayColor, decoration: decoration, decorationColor: decorationColor, @@ -402,7 +513,7 @@ class TextTheme with Diagnosticable { fontSizeFactor: fontSizeFactor, fontSizeDelta: fontSizeDelta, ), - button: button?.apply( + headlineSmall: headlineSmall?.apply( color: bodyColor, decoration: decoration, decorationColor: decorationColor, @@ -411,7 +522,79 @@ class TextTheme with Diagnosticable { fontSizeFactor: fontSizeFactor, fontSizeDelta: fontSizeDelta, ), - overline: overline?.apply( + titleLarge: titleLarge?.apply( + color: bodyColor, + decoration: decoration, + decorationColor: decorationColor, + decorationStyle: decorationStyle, + fontFamily: fontFamily, + fontSizeFactor: fontSizeFactor, + fontSizeDelta: fontSizeDelta, + ), + titleMedium: titleMedium?.apply( + color: bodyColor, + decoration: decoration, + decorationColor: decorationColor, + decorationStyle: decorationStyle, + fontFamily: fontFamily, + fontSizeFactor: fontSizeFactor, + fontSizeDelta: fontSizeDelta, + ), + titleSmall: titleSmall?.apply( + color: bodyColor, + decoration: decoration, + decorationColor: decorationColor, + decorationStyle: decorationStyle, + fontFamily: fontFamily, + fontSizeFactor: fontSizeFactor, + fontSizeDelta: fontSizeDelta, + ), + bodyLarge: bodyLarge?.apply( + color: bodyColor, + decoration: decoration, + decorationColor: decorationColor, + decorationStyle: decorationStyle, + fontFamily: fontFamily, + fontSizeFactor: fontSizeFactor, + fontSizeDelta: fontSizeDelta, + ), + bodyMedium: bodyMedium?.apply( + color: bodyColor, + decoration: decoration, + decorationColor: decorationColor, + decorationStyle: decorationStyle, + fontFamily: fontFamily, + fontSizeFactor: fontSizeFactor, + fontSizeDelta: fontSizeDelta, + ), + bodySmall: bodySmall?.apply( + color: displayColor, + decoration: decoration, + decorationColor: decorationColor, + decorationStyle: decorationStyle, + fontFamily: fontFamily, + fontSizeFactor: fontSizeFactor, + fontSizeDelta: fontSizeDelta, + ), + labelLarge: labelLarge?.apply( + color: bodyColor, + decoration: decoration, + decorationColor: decorationColor, + decorationStyle: decorationStyle, + fontFamily: fontFamily, + fontSizeFactor: fontSizeFactor, + fontSizeDelta: fontSizeDelta, + ), + labelMedium: labelMedium?.apply( + color: bodyColor, + decoration: decoration, + decorationColor: decorationColor, + decorationStyle: decorationStyle, + fontFamily: fontFamily, + fontSizeFactor: fontSizeFactor, + fontSizeDelta: fontSizeDelta, + ), + labelSmall: labelSmall?.apply( color: bodyColor, decoration: decoration, decorationColor: decorationColor, @@ -429,19 +612,21 @@ class TextTheme with Diagnosticable { static TextTheme lerp(TextTheme? a, TextTheme? b, double t) { assert(t != null); return TextTheme( - headline1: TextStyle.lerp(a?.headline1, b?.headline1, t), - headline2: TextStyle.lerp(a?.headline2, b?.headline2, t), - headline3: TextStyle.lerp(a?.headline3, b?.headline3, t), - headline4: TextStyle.lerp(a?.headline4, b?.headline4, t), - headline5: TextStyle.lerp(a?.headline5, b?.headline5, t), - headline6: TextStyle.lerp(a?.headline6, b?.headline6, t), - subtitle1: TextStyle.lerp(a?.subtitle1, b?.subtitle1, t), - subtitle2: TextStyle.lerp(a?.subtitle2, b?.subtitle2, t), - bodyText1: TextStyle.lerp(a?.bodyText1, b?.bodyText1, t), - bodyText2: TextStyle.lerp(a?.bodyText2, b?.bodyText2, t), - caption: TextStyle.lerp(a?.caption, b?.caption, t), - button: TextStyle.lerp(a?.button, b?.button, t), - overline: TextStyle.lerp(a?.overline, b?.overline, t), + displayLarge: TextStyle.lerp(a?.displayLarge, b?.displayLarge, t), + displayMedium: TextStyle.lerp(a?.displayMedium, b?.displayMedium, t), + displaySmall: TextStyle.lerp(a?.displaySmall, b?.displaySmall, t), + headlineLarge: TextStyle.lerp(a?.headlineLarge, b?.headlineLarge, t), + headlineMedium: TextStyle.lerp(a?.headlineMedium, b?.headlineMedium, t), + headlineSmall: TextStyle.lerp(a?.headlineSmall, b?.headlineSmall, t), + titleLarge: TextStyle.lerp(a?.titleLarge, b?.titleLarge, t), + titleMedium: TextStyle.lerp(a?.titleMedium, b?.titleMedium, t), + titleSmall: TextStyle.lerp(a?.titleSmall, b?.titleSmall, t), + bodyLarge: TextStyle.lerp(a?.bodyLarge, b?.bodyLarge, t), + bodyMedium: TextStyle.lerp(a?.bodyMedium, b?.bodyMedium, t), + bodySmall: TextStyle.lerp(a?.bodySmall, b?.bodySmall, 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 { if (other.runtimeType != runtimeType) return false; return other is TextTheme - && headline1 == other.headline1 - && headline2 == other.headline2 - && headline3 == other.headline3 - && headline4 == other.headline4 - && headline5 == other.headline5 - && headline6 == other.headline6 - && subtitle1 == other.subtitle1 - && subtitle2 == other.subtitle2 - && bodyText1 == other.bodyText1 - && bodyText2 == other.bodyText2 - && caption == other.caption - && button == other.button - && overline == other.overline; + && displayLarge == other.displayLarge + && displayMedium == other.displayMedium + && displaySmall == other.displaySmall + && headlineLarge == other.headlineLarge + && headlineMedium == other.headlineMedium + && headlineSmall == other.headlineSmall + && titleLarge == other.titleLarge + && titleMedium == other.titleMedium + && titleSmall == other.titleSmall + && bodyLarge == other.bodyLarge + && bodyMedium == other.bodyMedium + && bodySmall == other.bodySmall + && labelLarge == other.labelLarge + && labelMedium == other.labelMedium + && labelSmall == other.labelSmall; } @override int get hashCode { // The hashValues() function supports up to 20 arguments. return hashValues( - headline1, - headline2, - headline3, - headline4, - headline5, - headline6, - subtitle1, - subtitle2, - bodyText1, - bodyText2, - caption, - button, - overline, + displayLarge, + displayMedium, + displaySmall, + headlineLarge, + headlineMedium, + headlineSmall, + titleLarge, + titleMedium, + titleSmall, + bodyLarge, + bodyMedium, + bodySmall, + labelLarge, + labelMedium, + labelSmall, ); } @@ -491,18 +680,20 @@ class TextTheme with Diagnosticable { void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); final TextTheme defaultTheme = Typography.material2018(platform: defaultTargetPlatform).black; - properties.add(DiagnosticsProperty('headline1', headline1, defaultValue: defaultTheme.headline1)); - properties.add(DiagnosticsProperty('headline2', headline2, defaultValue: defaultTheme.headline2)); - properties.add(DiagnosticsProperty('headline3', headline3, defaultValue: defaultTheme.headline3)); - properties.add(DiagnosticsProperty('headline4', headline4, defaultValue: defaultTheme.headline4)); - properties.add(DiagnosticsProperty('headline5', headline5, defaultValue: defaultTheme.headline5)); - properties.add(DiagnosticsProperty('headline6', headline6, defaultValue: defaultTheme.headline6)); - properties.add(DiagnosticsProperty('subtitle1', subtitle1, defaultValue: defaultTheme.subtitle1)); - properties.add(DiagnosticsProperty('subtitle2', subtitle2, defaultValue: defaultTheme.subtitle2)); - properties.add(DiagnosticsProperty('bodyText1', bodyText1, defaultValue: defaultTheme.bodyText1)); - properties.add(DiagnosticsProperty('bodyText2', bodyText2, defaultValue: defaultTheme.bodyText2)); - properties.add(DiagnosticsProperty('caption', caption, defaultValue: defaultTheme.caption)); - properties.add(DiagnosticsProperty('button', button, defaultValue: defaultTheme.button)); - properties.add(DiagnosticsProperty('overline', overline, defaultValue: defaultTheme.overline)); + properties.add(DiagnosticsProperty('displayLarge', displayLarge, defaultValue: defaultTheme.displayLarge)); + properties.add(DiagnosticsProperty('displayMedium', displayMedium, defaultValue: defaultTheme.displayMedium)); + properties.add(DiagnosticsProperty('displaySmall', displaySmall, defaultValue: defaultTheme.displaySmall)); + properties.add(DiagnosticsProperty('headlineLarge', headlineLarge, defaultValue: defaultTheme.headlineLarge)); + properties.add(DiagnosticsProperty('headlineMedium', headlineMedium, defaultValue: defaultTheme.headlineMedium)); + properties.add(DiagnosticsProperty('headlineSmall', headlineSmall, defaultValue: defaultTheme.headlineSmall)); + properties.add(DiagnosticsProperty('titleLarge', titleLarge, defaultValue: defaultTheme.titleLarge)); + properties.add(DiagnosticsProperty('titleMedium', titleMedium, defaultValue: defaultTheme.titleMedium)); + properties.add(DiagnosticsProperty('titleSmall', titleSmall, defaultValue: defaultTheme.titleSmall)); + properties.add(DiagnosticsProperty('bodyLarge', bodyLarge, defaultValue: defaultTheme.bodyLarge)); + properties.add(DiagnosticsProperty('bodyMedium', bodyMedium, defaultValue: defaultTheme.bodyMedium)); + properties.add(DiagnosticsProperty('bodySmall', bodySmall, defaultValue: defaultTheme.bodySmall)); + properties.add(DiagnosticsProperty('labelLarge', labelLarge, defaultValue: defaultTheme.labelLarge)); + properties.add(DiagnosticsProperty('labelMedium', labelMedium, defaultValue: defaultTheme.labelMedium)); + properties.add(DiagnosticsProperty('labelSmall', labelSmall, defaultValue: defaultTheme.labelSmall)); } } diff --git a/packages/flutter/lib/src/material/typography.dart b/packages/flutter/lib/src/material/typography.dart index cf44598e70..35cc0dc259 100644 --- a/packages/flutter/lib/src/material/typography.dart +++ b/packages/flutter/lib/src/material/typography.dart @@ -332,76 +332,84 @@ class Typography with Diagnosticable { /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme blackMountainView = TextTheme( - headline1 : TextStyle(debugLabel: 'blackMountainView headline1', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), - headline2 : TextStyle(debugLabel: 'blackMountainView headline2', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), - headline3 : TextStyle(debugLabel: 'blackMountainView headline3', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), - headline4 : TextStyle(debugLabel: 'blackMountainView headline4', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), - headline5 : TextStyle(debugLabel: 'blackMountainView headline5', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'blackMountainView headline6', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), - bodyText1 : TextStyle(debugLabel: 'blackMountainView bodyText1', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), - bodyText2 : TextStyle(debugLabel: 'blackMountainView bodyText2', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), - subtitle1 : TextStyle(debugLabel: 'blackMountainView subtitle1', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), - subtitle2 : TextStyle(debugLabel: 'blackMountainView subtitle2', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none), - caption : TextStyle(debugLabel: 'blackMountainView caption', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'blackMountainView button', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'blackMountainView overline', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'blackMountainView displayLarge', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), + displayMedium : TextStyle(debugLabel: 'blackMountainView displayMedium', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), + displaySmall : TextStyle(debugLabel: 'blackMountainView displaySmall', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), + headlineLarge : TextStyle(debugLabel: 'blackMountainView headlineLarge', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), + headlineMedium : TextStyle(debugLabel: 'blackMountainView headlineMedium', fontFamily: 'Roboto', color: Colors.black54, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'blackMountainView headlineSmall', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), + titleLarge : TextStyle(debugLabel: 'blackMountainView titleLarge', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), + titleMedium : TextStyle(debugLabel: 'blackMountainView titleMedium', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), + titleSmall : TextStyle(debugLabel: 'blackMountainView titleSmall', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none), + bodyLarge : TextStyle(debugLabel: 'blackMountainView bodyLarge', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'blackMountainView bodyMedium', fontFamily: 'Roboto', color: Colors.black87, decoration: TextDecoration.none), + bodySmall : TextStyle(debugLabel: 'blackMountainView bodySmall', fontFamily: 'Roboto', color: Colors.black54, 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. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteMountainView = TextTheme( - headline1 : TextStyle(debugLabel: 'whiteMountainView headline1', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), - headline2 : TextStyle(debugLabel: 'whiteMountainView headline2', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), - headline3 : TextStyle(debugLabel: 'whiteMountainView headline3', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), - headline4 : TextStyle(debugLabel: 'whiteMountainView headline4', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), - headline5 : TextStyle(debugLabel: 'whiteMountainView headline5', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'whiteMountainView headline6', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), - bodyText1 : TextStyle(debugLabel: 'whiteMountainView bodyText1', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), - bodyText2 : TextStyle(debugLabel: 'whiteMountainView bodyText2', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), - subtitle1 : TextStyle(debugLabel: 'whiteMountainView subtitle1', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), - subtitle2 : TextStyle(debugLabel: 'whiteMountainView subtitle2', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), - caption : TextStyle(debugLabel: 'whiteMountainView caption', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'whiteMountainView button', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'whiteMountainView overline', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'whiteMountainView displayLarge', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), + displayMedium : TextStyle(debugLabel: 'whiteMountainView displayMedium', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), + displaySmall : TextStyle(debugLabel: 'whiteMountainView displaySmall', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), + headlineLarge : TextStyle(debugLabel: 'whiteMountainView headlineLarge', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), + headlineMedium : TextStyle(debugLabel: 'whiteMountainView headlineMedium', fontFamily: 'Roboto', color: Colors.white70, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'whiteMountainView headlineSmall', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), + titleLarge : TextStyle(debugLabel: 'whiteMountainView titleLarge', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), + titleMedium : TextStyle(debugLabel: 'whiteMountainView titleMedium', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), + titleSmall : TextStyle(debugLabel: 'whiteMountainView titleSmall', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), + bodyLarge : TextStyle(debugLabel: 'whiteMountainView bodyLarge', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'whiteMountainView bodyMedium', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), + bodySmall : TextStyle(debugLabel: 'whiteMountainView bodySmall', fontFamily: 'Roboto', color: Colors.white70, 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. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme blackRedmond = TextTheme( - headline1 : TextStyle(debugLabel: 'blackRedmond headline1', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), - headline2 : TextStyle(debugLabel: 'blackRedmond headline2', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), - headline3 : TextStyle(debugLabel: 'blackRedmond headline3', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), - headline4 : TextStyle(debugLabel: 'blackRedmond headline4', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), - headline5 : TextStyle(debugLabel: 'blackRedmond headline5', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'blackRedmond headline6', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), - bodyText1 : TextStyle(debugLabel: 'blackRedmond bodyText1', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), - bodyText2 : TextStyle(debugLabel: 'blackRedmond bodyText2', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), - subtitle1 : TextStyle(debugLabel: 'blackRedmond subtitle1', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), - subtitle2 : TextStyle(debugLabel: 'blackRedmond subtitle2', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none), - caption : TextStyle(debugLabel: 'blackRedmond caption', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'blackRedmond button', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'blackRedmond overline', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'blackRedmond displayLarge', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), + displayMedium : TextStyle(debugLabel: 'blackRedmond displayMedium', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), + displaySmall : TextStyle(debugLabel: 'blackRedmond displaySmall', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), + headlineLarge : TextStyle(debugLabel: 'blackRedmond headlineLarge', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), + headlineMedium : TextStyle(debugLabel: 'blackRedmond headlineMedium', fontFamily: 'Segoe UI', color: Colors.black54, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'blackRedmond headlineSmall', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), + titleLarge : TextStyle(debugLabel: 'blackRedmond titleLarge', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), + titleMedium : TextStyle(debugLabel: 'blackRedmond titleMedium', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), + titleSmall : TextStyle(debugLabel: 'blackRedmond titleSmall', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none), + bodyLarge : TextStyle(debugLabel: 'blackRedmond bodyLarge', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'blackRedmond bodyMedium', fontFamily: 'Segoe UI', color: Colors.black87, decoration: TextDecoration.none), + bodySmall : TextStyle(debugLabel: 'blackRedmond bodySmall', fontFamily: 'Segoe UI', color: Colors.black54, 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. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteRedmond = TextTheme( - headline1 : TextStyle(debugLabel: 'whiteRedmond headline1', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), - headline2 : TextStyle(debugLabel: 'whiteRedmond headline2', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), - headline3 : TextStyle(debugLabel: 'whiteRedmond headline3', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), - headline4 : TextStyle(debugLabel: 'whiteRedmond headline4', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), - headline5 : TextStyle(debugLabel: 'whiteRedmond headline5', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'whiteRedmond headline6', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), - bodyText1 : TextStyle(debugLabel: 'whiteRedmond bodyText1', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), - bodyText2 : TextStyle(debugLabel: 'whiteRedmond bodyText2', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), - subtitle1 : TextStyle(debugLabel: 'whiteRedmond subtitle1', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), - subtitle2 : TextStyle(debugLabel: 'whiteRedmond subtitle2', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), - caption : TextStyle(debugLabel: 'whiteRedmond caption', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'whiteRedmond button', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'whiteRedmond overline', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'whiteRedmond displayLarge', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), + displayMedium : TextStyle(debugLabel: 'whiteRedmond displayMedium', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), + displaySmall : TextStyle(debugLabel: 'whiteRedmond displaySmall', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), + headlineLarge : TextStyle(debugLabel: 'whiteRedmond headlineLarge', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), + headlineMedium : TextStyle(debugLabel: 'whiteRedmond headlineMedium', fontFamily: 'Segoe UI', color: Colors.white70, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'whiteRedmond headlineSmall', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), + titleLarge : TextStyle(debugLabel: 'whiteRedmond titleLarge', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), + titleMedium : TextStyle(debugLabel: 'whiteRedmond titleMedium', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), + titleSmall : TextStyle(debugLabel: 'whiteRedmond titleSmall', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), + bodyLarge : TextStyle(debugLabel: 'whiteRedmond bodyLarge', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'whiteRedmond bodyMedium', fontFamily: 'Segoe UI', color: Colors.white, decoration: TextDecoration.none), + bodySmall : TextStyle(debugLabel: 'whiteRedmond bodySmall', fontFamily: 'Segoe UI', color: Colors.white70, 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 _helsinkiFontFallbacks = ['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']; @@ -411,38 +419,42 @@ class Typography with Diagnosticable { /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme blackHelsinki = TextTheme( - headline1 : TextStyle(debugLabel: 'blackHelsinki headline1', 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), - headline3 : TextStyle(debugLabel: 'blackHelsinki headline3', 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), - headline5 : TextStyle(debugLabel: 'blackHelsinki headline5', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'blackHelsinki headline6', 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), - bodyText2 : TextStyle(debugLabel: 'blackHelsinki bodyText2', 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), - subtitle2 : TextStyle(debugLabel: 'blackHelsinki subtitle2', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none), - caption : TextStyle(debugLabel: 'blackHelsinki caption', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'blackHelsinki button', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'blackHelsinki overline', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'blackHelsinki displayLarge', 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), + displaySmall : TextStyle(debugLabel: 'blackHelsinki displaySmall', 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), + headlineMedium : TextStyle(debugLabel: 'blackHelsinki headlineMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black54, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'blackHelsinki headlineSmall', 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), + titleMedium : TextStyle(debugLabel: 'blackHelsinki titleMedium', 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), + bodyLarge : TextStyle(debugLabel: 'blackHelsinki bodyLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black87, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'blackHelsinki bodyMedium', 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), + 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. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteHelsinki = TextTheme( - headline1 : TextStyle(debugLabel: 'whiteHelsinki headline1', 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), - headline3 : TextStyle(debugLabel: 'whiteHelsinki headline3', 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), - headline5 : TextStyle(debugLabel: 'whiteHelsinki headline5', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'whiteHelsinki headline6', 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), - bodyText2 : TextStyle(debugLabel: 'whiteHelsinki bodyText2', 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), - subtitle2 : TextStyle(debugLabel: 'whiteHelsinki subtitle2', 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), - button : TextStyle(debugLabel: 'whiteHelsinki button', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'whiteHelsinki overline', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'whiteHelsinki displayLarge', 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), + displaySmall : TextStyle(debugLabel: 'whiteHelsinki displaySmall', 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), + headlineMedium : TextStyle(debugLabel: 'whiteHelsinki headlineMedium', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white70, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'whiteHelsinki headlineSmall', 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), + titleMedium : TextStyle(debugLabel: 'whiteHelsinki titleMedium', 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), + bodyLarge : TextStyle(debugLabel: 'whiteHelsinki bodyLarge', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'whiteHelsinki bodyMedium', 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), + 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. @@ -451,19 +463,21 @@ class Typography with Diagnosticable { /// /// This theme uses the iOS version of the font names. static const TextTheme blackCupertino = TextTheme( - headline1 : TextStyle(debugLabel: 'blackCupertino headline1', 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), - headline3 : TextStyle(debugLabel: 'blackCupertino headline3', 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), - headline5 : TextStyle(debugLabel: 'blackCupertino headline5', fontFamily: '.SF UI Display', color: Colors.black87, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'blackCupertino headline6', 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), - bodyText2 : TextStyle(debugLabel: 'blackCupertino bodyText2', 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), - subtitle2 : TextStyle(debugLabel: 'blackCupertino subtitle2', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none), - caption : TextStyle(debugLabel: 'blackCupertino caption', fontFamily: '.SF UI Text', color: Colors.black54, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'blackCupertino button', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'blackCupertino overline', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'blackCupertino displayLarge', 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), + displaySmall : TextStyle(debugLabel: 'blackCupertino displaySmall', 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), + headlineMedium : TextStyle(debugLabel: 'blackCupertino headlineMedium', fontFamily: '.SF UI Display', color: Colors.black54, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'blackCupertino headlineSmall', fontFamily: '.SF UI Display', color: Colors.black87, decoration: TextDecoration.none), + titleLarge : TextStyle(debugLabel: 'blackCupertino titleLarge', fontFamily: '.SF UI Display', color: Colors.black87, decoration: TextDecoration.none), + titleMedium : TextStyle(debugLabel: 'blackCupertino titleMedium', 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), + bodyLarge : TextStyle(debugLabel: 'blackCupertino bodyLarge', fontFamily: '.SF UI Text', color: Colors.black87, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'blackCupertino bodyMedium', 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), + 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. @@ -472,19 +486,21 @@ class Typography with Diagnosticable { /// /// This theme uses the iOS version of the font names. static const TextTheme whiteCupertino = TextTheme( - headline1 : TextStyle(debugLabel: 'whiteCupertino headline1', 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), - headline3 : TextStyle(debugLabel: 'whiteCupertino headline3', 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), - headline5 : TextStyle(debugLabel: 'whiteCupertino headline5', fontFamily: '.SF UI Display', color: Colors.white, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'whiteCupertino headline6', 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), - bodyText1 : TextStyle(debugLabel: 'whiteCupertino bodyText1', 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), - caption : TextStyle(debugLabel: 'whiteCupertino caption', fontFamily: '.SF UI Text', color: Colors.white70, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'whiteCupertino button', 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), - overline : TextStyle(debugLabel: 'whiteCupertino overline', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'whiteCupertino displayLarge', 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), + displaySmall : TextStyle(debugLabel: 'whiteCupertino displaySmall', 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), + headlineMedium : TextStyle(debugLabel: 'whiteCupertino headlineMedium', fontFamily: '.SF UI Display', color: Colors.white70, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'whiteCupertino headlineSmall', fontFamily: '.SF UI Display', color: Colors.white, decoration: TextDecoration.none), + titleLarge : TextStyle(debugLabel: 'whiteCupertino titleLarge', fontFamily: '.SF UI Display', color: Colors.white, decoration: TextDecoration.none), + titleMedium : TextStyle(debugLabel: 'whiteCupertino titleMedium', 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), + bodyLarge : TextStyle(debugLabel: 'whiteCupertino bodyLarge', 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), + bodySmall : TextStyle(debugLabel: 'whiteCupertino bodySmall', fontFamily: '.SF UI Text', color: Colors.white70, 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. @@ -493,19 +509,21 @@ class Typography with Diagnosticable { /// /// This theme uses the macOS version of the font names. static const TextTheme blackRedwoodCity = TextTheme( - headline1 : TextStyle(debugLabel: 'blackRedwoodCity headline1', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), - headline2 : TextStyle(debugLabel: 'blackRedwoodCity headline2', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), - headline3 : TextStyle(debugLabel: 'blackRedwoodCity headline3', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), - headline4 : TextStyle(debugLabel: 'blackRedwoodCity headline4', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), - headline5 : TextStyle(debugLabel: 'blackRedwoodCity headline5', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'blackRedwoodCity headline6', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), - bodyText1 : TextStyle(debugLabel: 'blackRedwoodCity bodyText1', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), - bodyText2 : TextStyle(debugLabel: 'blackRedwoodCity bodyText2', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), - subtitle1 : TextStyle(debugLabel: 'blackRedwoodCity subtitle1', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), - subtitle2 : TextStyle(debugLabel: 'blackRedwoodCity subtitle2', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none), - caption : TextStyle(debugLabel: 'blackRedwoodCity caption', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'blackRedwoodCity button', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'blackRedwoodCity overline', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'blackRedwoodCity displayLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), + displayMedium : TextStyle(debugLabel: 'blackRedwoodCity displayMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), + displaySmall : TextStyle(debugLabel: 'blackRedwoodCity displaySmall', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), + headlineLarge : TextStyle(debugLabel: 'blackRedwoodCity headlineLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), + headlineMedium : TextStyle(debugLabel: 'blackRedwoodCity headlineMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black54, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'blackRedwoodCity headlineSmall', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), + titleLarge : TextStyle(debugLabel: 'blackRedwoodCity titleLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), + titleMedium : TextStyle(debugLabel: 'blackRedwoodCity titleMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), + titleSmall : TextStyle(debugLabel: 'blackRedwoodCity titleSmall', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none), + bodyLarge : TextStyle(debugLabel: 'blackRedwoodCity bodyLarge', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'blackRedwoodCity bodyMedium', fontFamily: '.AppleSystemUIFont', color: Colors.black87, decoration: TextDecoration.none), + bodySmall : TextStyle(debugLabel: 'blackRedwoodCity bodySmall', fontFamily: '.AppleSystemUIFont', color: Colors.black54, 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. @@ -514,133 +532,147 @@ class Typography with Diagnosticable { /// /// This theme uses the macOS version of the font names. static const TextTheme whiteRedwoodCity = TextTheme( - headline1 : TextStyle(debugLabel: 'whiteRedwoodCity headline1', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), - headline2 : TextStyle(debugLabel: 'whiteRedwoodCity headline2', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), - headline3 : TextStyle(debugLabel: 'whiteRedwoodCity headline3', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), - headline4 : TextStyle(debugLabel: 'whiteRedwoodCity headline4', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), - headline5 : TextStyle(debugLabel: 'whiteRedwoodCity headline5', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), - headline6 : TextStyle(debugLabel: 'whiteRedwoodCity headline6', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), - subtitle1 : TextStyle(debugLabel: 'whiteRedwoodCity subtitle1', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), - bodyText1 : TextStyle(debugLabel: 'whiteRedwoodCity bodyText1', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), - bodyText2 : TextStyle(debugLabel: 'whiteRedwoodCity bodyText2', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), - caption : TextStyle(debugLabel: 'whiteRedwoodCity caption', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), - button : TextStyle(debugLabel: 'whiteRedwoodCity button', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), - subtitle2 : TextStyle(debugLabel: 'whiteRedwoodCity subtitle2', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), - overline : TextStyle(debugLabel: 'whiteRedwoodCity overline', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), + displayLarge : TextStyle(debugLabel: 'whiteRedwoodCity displayLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), + displayMedium : TextStyle(debugLabel: 'whiteRedwoodCity displayMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), + displaySmall : TextStyle(debugLabel: 'whiteRedwoodCity displaySmall', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), + headlineLarge : TextStyle(debugLabel: 'whiteRedwoodCity headlineLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), + headlineMedium : TextStyle(debugLabel: 'whiteRedwoodCity headlineMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white70, decoration: TextDecoration.none), + headlineSmall : TextStyle(debugLabel: 'whiteRedwoodCity headlineSmall', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), + titleLarge : TextStyle(debugLabel: 'whiteRedwoodCity titleLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), + titleMedium : TextStyle(debugLabel: 'whiteRedwoodCity titleMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), + titleSmall : TextStyle(debugLabel: 'whiteRedwoodCity titleSmall', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), + bodyLarge : TextStyle(debugLabel: 'whiteRedwoodCity bodyLarge', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), + bodyMedium : TextStyle(debugLabel: 'whiteRedwoodCity bodyMedium', fontFamily: '.AppleSystemUIFont', color: Colors.white, decoration: TextDecoration.none), + bodySmall : TextStyle(debugLabel: 'whiteRedwoodCity bodySmall', fontFamily: '.AppleSystemUIFont', color: Colors.white70, 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 /// English, French, Russian, etc. static const TextTheme englishLike2014 = TextTheme( - headline1 : TextStyle(debugLabel: 'englishLike display4 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), - headline3 : TextStyle(debugLabel: 'englishLike display2 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), - headline5 : TextStyle(debugLabel: 'englishLike headline 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - headline6 : TextStyle(debugLabel: 'englishLike title 2014', inherit: false, fontSize: 20.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), - bodyText1 : TextStyle(debugLabel: 'englishLike body2 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), - bodyText2 : TextStyle(debugLabel: 'englishLike body1 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - subtitle1 : TextStyle(debugLabel: 'englishLike subhead 2014', inherit: false, fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - subtitle2 : TextStyle(debugLabel: 'englishLike subtitle 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.1), - caption : TextStyle(debugLabel: 'englishLike caption 2014', inherit: false, fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - button : TextStyle(debugLabel: 'englishLike button 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), - overline : TextStyle(debugLabel: 'englishLike overline 2014', inherit: false, fontSize: 10.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.5), + displayLarge : TextStyle(debugLabel: 'englishLike displayLarge 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.alphabetic), + displayMedium : TextStyle(debugLabel: 'englishLike displayMedium 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + displaySmall : TextStyle(debugLabel: 'englishLike displaySmall 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineLarge : TextStyle(debugLabel: 'englishLike headlineLarge 2014', inherit: false, fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineMedium : TextStyle(debugLabel: 'englishLike headlineMedium 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineSmall : TextStyle(debugLabel: 'englishLike headlineSmall 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + titleLarge : TextStyle(debugLabel: 'englishLike titleLarge 2014', inherit: false, fontSize: 20.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), + titleMedium : TextStyle(debugLabel: 'englishLike titleMedium 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), + bodyLarge : TextStyle(debugLabel: 'englishLike bodyLarge 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), + bodyMedium : TextStyle(debugLabel: 'englishLike bodyMedium 2014', inherit: false, fontSize: 14.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + bodySmall : TextStyle(debugLabel: 'englishLike bodySmall 2014', inherit: false, fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + 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 /// English, French, Russian, etc. /// /// 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( - headline1 : TextStyle(debugLabel: 'englishLike headline1 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), - headline3 : TextStyle(debugLabel: 'englishLike headline3 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), - headline5 : TextStyle(debugLabel: 'englishLike headline5 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.0), - headline6 : TextStyle(debugLabel: 'englishLike headline6 2018', fontSize: 20.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.15), - bodyText1 : TextStyle(debugLabel: 'englishLike bodyText1 2018', fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.5), - bodyText2 : TextStyle(debugLabel: 'englishLike bodyText2 2018', fontSize: 14.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25), - subtitle1 : TextStyle(debugLabel: 'englishLike subtitle1 2018', fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.15), - subtitle2 : TextStyle(debugLabel: 'englishLike subtitle2 2018', fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.1), - button : TextStyle(debugLabel: 'englishLike button 2018', fontSize: 14.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 1.25), - caption : TextStyle(debugLabel: 'englishLike caption 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), + displayLarge : TextStyle(debugLabel: 'englishLike displayLarge 2018', fontSize: 96.0, fontWeight: FontWeight.w300, textBaseline: TextBaseline.alphabetic, letterSpacing: -1.5), + displayMedium : TextStyle(debugLabel: 'englishLike displayMedium 2018', fontSize: 60.0, fontWeight: FontWeight.w300, textBaseline: TextBaseline.alphabetic, letterSpacing: -0.5), + displaySmall : TextStyle(debugLabel: 'englishLike displaySmall 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.0), + headlineLarge : TextStyle(debugLabel: 'englishLike headlineLarge 2018', fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25), + headlineMedium : TextStyle(debugLabel: 'englishLike headlineMedium 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25), + headlineSmall : TextStyle(debugLabel: 'englishLike headlineSmall 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.0), + titleLarge : TextStyle(debugLabel: 'englishLike titleLarge 2018', fontSize: 20.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.15), + titleMedium : TextStyle(debugLabel: 'englishLike titleMedium 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), + bodyLarge : TextStyle(debugLabel: 'englishLike bodyLarge 2018', fontSize: 16.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.5), + bodyMedium : TextStyle(debugLabel: 'englishLike bodyMedium 2018', fontSize: 14.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.25), + bodySmall : TextStyle(debugLabel: 'englishLike bodySmall 2018', fontSize: 12.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic, letterSpacing: 0.4), + 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 /// and Korean. static const TextTheme dense2014 = TextTheme( - headline1 : TextStyle(debugLabel: 'dense display4 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), - headline3 : TextStyle(debugLabel: 'dense display2 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), - headline5 : TextStyle(debugLabel: 'dense headline 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), - headline6 : TextStyle(debugLabel: 'dense title 2014', inherit: false, fontSize: 21.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), - bodyText1 : TextStyle(debugLabel: 'dense body2 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), - bodyText2 : TextStyle(debugLabel: 'dense body1 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), - subtitle1 : TextStyle(debugLabel: 'dense subhead 2014', inherit: false, fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), - subtitle2 : TextStyle(debugLabel: 'dense subtitle 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), - button : TextStyle(debugLabel: 'dense button 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), - overline : TextStyle(debugLabel: 'dense overline 2014', inherit: false, fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + displayLarge : TextStyle(debugLabel: 'dense displayLarge 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic), + displayMedium : TextStyle(debugLabel: 'dense displayMedium 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + displaySmall : TextStyle(debugLabel: 'dense displaySmall 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + headlineLarge : TextStyle(debugLabel: 'dense headlineLarge 2014', inherit: false, fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + headlineMedium : TextStyle(debugLabel: 'dense headlineMedium 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + headlineSmall : TextStyle(debugLabel: 'dense headlineSmall 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + titleLarge : TextStyle(debugLabel: 'dense titleLarge 2014', inherit: false, fontSize: 21.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), + titleMedium : TextStyle(debugLabel: 'dense titleMedium 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), + bodyLarge : TextStyle(debugLabel: 'dense bodyLarge 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), + bodyMedium : TextStyle(debugLabel: 'dense bodyMedium 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + bodySmall : TextStyle(debugLabel: 'dense bodySmall 2014', inherit: false, fontSize: 13.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 /// and Korean. /// /// 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( - headline1 : TextStyle(debugLabel: 'dense headline1 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), - headline3 : TextStyle(debugLabel: 'dense headline3 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), - headline5 : TextStyle(debugLabel: 'dense headline5 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), - headline6 : TextStyle(debugLabel: 'dense headline6 2018', fontSize: 21.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), - bodyText1 : TextStyle(debugLabel: 'dense bodyText1 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), - bodyText2 : TextStyle(debugLabel: 'dense bodyText2 2018', fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), - subtitle1 : TextStyle(debugLabel: 'dense subtitle1 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), - subtitle2 : TextStyle(debugLabel: 'dense subtitle2 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), - button : TextStyle(debugLabel: 'dense button 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), - caption : TextStyle(debugLabel: 'dense caption 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), + displayLarge : TextStyle(debugLabel: 'dense displayLarge 2018', fontSize: 96.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic), + displayMedium : TextStyle(debugLabel: 'dense displayMedium 2018', fontSize: 60.0, fontWeight: FontWeight.w100, textBaseline: TextBaseline.ideographic), + displaySmall : TextStyle(debugLabel: 'dense displaySmall 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + headlineLarge : TextStyle(debugLabel: 'dense headlineLarge 2018', fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + headlineMedium : TextStyle(debugLabel: 'dense headlineMedium 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + headlineSmall : TextStyle(debugLabel: 'dense headlineSmall 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + titleLarge : TextStyle(debugLabel: 'dense titleLarge 2018', fontSize: 21.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.ideographic), + titleMedium : TextStyle(debugLabel: 'dense titleMedium 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), + bodyLarge : TextStyle(debugLabel: 'dense bodyLarge 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + bodyMedium : TextStyle(debugLabel: 'dense bodyMedium 2018', fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.ideographic), + bodySmall : TextStyle(debugLabel: 'dense bodySmall 2018', fontSize: 13.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. static const TextTheme tall2014 = TextTheme( - headline1 : TextStyle(debugLabel: 'tall display4 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), - headline3 : TextStyle(debugLabel: 'tall display2 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), - headline5 : TextStyle(debugLabel: 'tall headline 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - headline6 : TextStyle(debugLabel: 'tall title 2014', inherit: false, fontSize: 21.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), - bodyText1 : TextStyle(debugLabel: 'tall body2 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), - bodyText2 : TextStyle(debugLabel: 'tall body1 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - subtitle1 : TextStyle(debugLabel: 'tall subhead 2014', inherit: false, fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - subtitle2 : TextStyle(debugLabel: 'tall subtitle 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), - caption : TextStyle(debugLabel: 'tall caption 2014', inherit: false, fontSize: 13.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - button : TextStyle(debugLabel: 'tall button 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), - overline : TextStyle(debugLabel: 'tall overline 2014', inherit: false, fontSize: 11.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + displayLarge : TextStyle(debugLabel: 'tall displayLarge 2014', inherit: false, fontSize: 112.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + displayMedium : TextStyle(debugLabel: 'tall displayMedium 2014', inherit: false, fontSize: 56.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + displaySmall : TextStyle(debugLabel: 'tall displaySmall 2014', inherit: false, fontSize: 45.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineLarge : TextStyle(debugLabel: 'tall headlineLarge 2014', inherit: false, fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineMedium : TextStyle(debugLabel: 'tall headlineMedium 2014', inherit: false, fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineSmall : TextStyle(debugLabel: 'tall headlineSmall 2014', inherit: false, fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + titleLarge : TextStyle(debugLabel: 'tall titleLarge 2014', inherit: false, fontSize: 21.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), + titleMedium : TextStyle(debugLabel: 'tall titleMedium 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), + bodyLarge : TextStyle(debugLabel: 'tall bodyLarge 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), + bodyMedium : TextStyle(debugLabel: 'tall bodyMedium 2014', inherit: false, fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + bodySmall : TextStyle(debugLabel: 'tall bodySmall 2014', inherit: false, fontSize: 13.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. /// /// 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( - headline1 : TextStyle(debugLabel: 'tall headline1 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), - headline3 : TextStyle(debugLabel: 'tall headline3 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), - headline5 : TextStyle(debugLabel: 'tall headline5 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - headline6 : TextStyle(debugLabel: 'tall headline6 2018', fontSize: 21.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), - bodyText1 : TextStyle(debugLabel: 'tall bodyText1 2018', fontSize: 17.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), - bodyText2 : TextStyle(debugLabel: 'tall bodyText2 2018', fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - subtitle1 : TextStyle(debugLabel: 'tall subtitle1 2018', fontSize: 17.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), - subtitle2 : TextStyle(debugLabel: 'tall subtitle2 2018', fontSize: 15.0, fontWeight: FontWeight.w500, textBaseline: TextBaseline.alphabetic), - button : TextStyle(debugLabel: 'tall button 2018', fontSize: 15.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), - caption : TextStyle(debugLabel: 'tall caption 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), + displayLarge : TextStyle(debugLabel: 'tall displayLarge 2018', fontSize: 96.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + displayMedium : TextStyle(debugLabel: 'tall displayMedium 2018', fontSize: 60.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + displaySmall : TextStyle(debugLabel: 'tall displaySmall 2018', fontSize: 48.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineLarge : TextStyle(debugLabel: 'tall headlineLarge 2018', fontSize: 40.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineMedium : TextStyle(debugLabel: 'tall headlineMedium 2018', fontSize: 34.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + headlineSmall : TextStyle(debugLabel: 'tall headlineSmall 2018', fontSize: 24.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + titleLarge : TextStyle(debugLabel: 'tall titleLarge 2018', fontSize: 21.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), + titleMedium : TextStyle(debugLabel: 'tall titleMedium 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), + bodyLarge : TextStyle(debugLabel: 'tall bodyLarge 2018', fontSize: 17.0, fontWeight: FontWeight.w700, textBaseline: TextBaseline.alphabetic), + bodyMedium : TextStyle(debugLabel: 'tall bodyMedium 2018', fontSize: 15.0, fontWeight: FontWeight.w400, textBaseline: TextBaseline.alphabetic), + bodySmall : TextStyle(debugLabel: 'tall bodySmall 2018', fontSize: 13.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), ); } diff --git a/packages/flutter/test/material/text_theme_test.dart b/packages/flutter/test/material/text_theme_test.dart index 9a89a6b972..e6e82185aa 100644 --- a/packages/flutter/test/material/text_theme_test.dart +++ b/packages/flutter/test/material/text_theme_test.dart @@ -29,19 +29,21 @@ void main() { test('TextTheme copyWith', () { final Typography typography = Typography.material2018(); final TextTheme whiteCopy = typography.black.copyWith( - headline1: typography.white.headline1, - headline2: typography.white.headline2, - headline3: typography.white.headline3, - headline4: typography.white.headline4, - headline5: typography.white.headline5, - headline6: typography.white.headline6, - subtitle1: typography.white.subtitle1, - bodyText1: typography.white.bodyText1, - bodyText2: typography.white.bodyText2, - caption: typography.white.caption, - button: typography.white.button, - subtitle2: typography.white.subtitle2, - overline: typography.white.overline, + displayLarge: typography.white.displayLarge, + displayMedium: typography.white.displayMedium, + displaySmall: typography.white.displaySmall, + headlineLarge: typography.white.headlineLarge, + headlineMedium: typography.white.headlineMedium, + headlineSmall: typography.white.headlineSmall, + titleLarge: typography.white.titleLarge, + titleMedium: typography.white.titleMedium, + titleSmall: typography.white.titleSmall, + bodyLarge: typography.white.bodyLarge, + bodyMedium: typography.white.bodyMedium, + bodySmall: typography.white.bodySmall, + labelLarge: typography.white.labelLarge, + labelMedium: typography.white.labelMedium, + labelSmall: typography.white.labelSmall, ); expect(typography.white, equals(whiteCopy)); }); @@ -52,28 +54,28 @@ void main() { final TextTheme fullTheme = ThemeData.fallback().textTheme.merge(partialTheme); expect(fullTheme.headline6!.color, equals(partialTheme.headline6!.color)); - const TextTheme onlyHeadlineAndTitle = TextTheme( - headline5: TextStyle(color: Color(0xcafefeed)), - headline6: TextStyle(color: Color(0xbeefcafe)), + const TextTheme onlyHeadlineSmallAndTitleLarge = TextTheme( + headlineSmall: TextStyle(color: Color(0xcafefeed)), + titleLarge: TextStyle(color: Color(0xbeefcafe)), ); - const TextTheme onlyBody1AndTitle = TextTheme( - bodyText2: TextStyle(color: Color(0xfeedfeed)), - headline6: TextStyle(color: Color(0xdeadcafe)), + const TextTheme onlyBodyMediumAndTitleLarge = TextTheme( + bodyMedium: TextStyle(color: Color(0xfeedfeed)), + titleLarge: TextStyle(color: Color(0xdeadcafe)), ); - TextTheme merged = onlyHeadlineAndTitle.merge(onlyBody1AndTitle); - expect(merged.bodyText1, isNull); - expect(merged.bodyText2!.color, equals(onlyBody1AndTitle.bodyText2!.color)); - expect(merged.headline5!.color, equals(onlyHeadlineAndTitle.headline5!.color)); - expect(merged.headline6!.color, equals(onlyBody1AndTitle.headline6!.color)); + TextTheme merged = onlyHeadlineSmallAndTitleLarge.merge(onlyBodyMediumAndTitleLarge); + expect(merged.bodyLarge, isNull); + expect(merged.bodyMedium!.color, equals(onlyBodyMediumAndTitleLarge.bodyMedium!.color)); + expect(merged.headlineSmall!.color, equals(onlyHeadlineSmallAndTitleLarge.headlineSmall!.color)); + expect(merged.titleLarge!.color, equals(onlyBodyMediumAndTitleLarge.titleLarge!.color)); - merged = onlyHeadlineAndTitle.merge(null); - expect(merged, equals(onlyHeadlineAndTitle)); + merged = onlyHeadlineSmallAndTitleLarge.merge(null); + expect(merged, equals(onlyHeadlineSmallAndTitleLarge)); }); test('TextTheme apply', () { - // The `displayColor` is applied to [headline1], [headline2], [headline3], - // [headline4], and [caption]. The `bodyColor` is applied to the remaining - // text styles. + // The `displayColor` is applied to [displayLarge], [displayMedium], + // [displaySmall], [headlineLarge], [headlineMedium], and [bodySmall]. The + // `bodyColor` is applied to the remaining text styles. const Color displayColor = Color(0x00000001); const Color bodyColor = Color(0x00000002); const String fontFamily = 'fontFamily'; @@ -94,34 +96,38 @@ void main() { decorationStyle: decorationStyle, ); - expect(theme.headline1!.color, displayColor); - expect(theme.headline2!.color, displayColor); - expect(theme.headline3!.color, displayColor); - expect(theme.headline4!.color, displayColor); - expect(theme.caption!.color, displayColor); - expect(theme.headline5!.color, bodyColor); - expect(theme.headline6!.color, bodyColor); - expect(theme.subtitle1!.color, bodyColor); - expect(theme.bodyText1!.color, bodyColor); - expect(theme.bodyText2!.color, bodyColor); - expect(theme.button!.color, bodyColor); - expect(theme.subtitle2!.color, bodyColor); - expect(theme.overline!.color, bodyColor); + expect(theme.displayLarge!.color, displayColor); + expect(theme.displayMedium!.color, displayColor); + expect(theme.displaySmall!.color, displayColor); + expect(theme.headlineLarge!.color, displayColor); + expect(theme.headlineMedium!.color, displayColor); + expect(theme.headlineSmall!.color, bodyColor); + expect(theme.titleLarge!.color, bodyColor); + expect(theme.titleMedium!.color, bodyColor); + expect(theme.titleSmall!.color, bodyColor); + expect(theme.bodyLarge!.color, bodyColor); + expect(theme.bodyMedium!.color, bodyColor); + expect(theme.bodySmall!.color, displayColor); + expect(theme.labelLarge!.color, bodyColor); + expect(theme.labelMedium!.color, bodyColor); + expect(theme.labelSmall!.color, bodyColor); final List themeStyles = [ - theme.headline1!, - theme.headline2!, - theme.headline3!, - theme.headline4!, - theme.caption!, - theme.headline5!, - theme.headline6!, - theme.subtitle1!, - theme.bodyText1!, - theme.bodyText2!, - theme.button!, - theme.subtitle2!, - theme.overline!, + theme.displayLarge!, + theme.displayMedium!, + theme.displaySmall!, + theme.headlineLarge!, + theme.headlineMedium!, + theme.headlineSmall!, + theme.titleLarge!, + theme.titleMedium!, + theme.titleSmall!, + theme.bodyLarge!, + theme.bodyMedium!, + theme.bodySmall!, + theme.labelLarge!, + theme.labelMedium!, + theme.labelSmall!, ]; expect(themeStyles.every((TextStyle style) => style.fontFamily == fontFamily), true); expect(themeStyles.every((TextStyle style) => style.decorationColor == decorationColor), true); @@ -137,73 +143,81 @@ void main() { fontSizeDelta: 5.0, ); - expect(sizeTheme.headline1!.fontSize, baseTheme.headline1!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.headline2!.fontSize, baseTheme.headline2!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.headline3!.fontSize, baseTheme.headline3!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.headline4!.fontSize, baseTheme.headline4!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.caption!.fontSize, baseTheme.caption!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.headline5!.fontSize, baseTheme.headline5!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.headline6!.fontSize, baseTheme.headline6!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.subtitle1!.fontSize, baseTheme.subtitle1!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.bodyText1!.fontSize, baseTheme.bodyText1!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.bodyText2!.fontSize, baseTheme.bodyText2!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.button!.fontSize, baseTheme.button!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.subtitle2!.fontSize, baseTheme.subtitle2!.fontSize! * 2.0 + 5.0); - expect(sizeTheme.overline!.fontSize, baseTheme.overline!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.displayLarge!.fontSize, baseTheme.displayLarge!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.displayMedium!.fontSize, baseTheme.displayMedium!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.displaySmall!.fontSize, baseTheme.displaySmall!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.headlineLarge!.fontSize, baseTheme.headlineLarge!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.headlineMedium!.fontSize, baseTheme.headlineMedium!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.headlineSmall!.fontSize, baseTheme.headlineSmall!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.titleLarge!.fontSize, baseTheme.titleLarge!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.titleMedium!.fontSize, baseTheme.titleMedium!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.titleSmall!.fontSize, baseTheme.titleSmall!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.bodyLarge!.fontSize, baseTheme.bodyLarge!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.bodyMedium!.fontSize, baseTheme.bodyMedium!.fontSize! * 2.0 + 5.0); + expect(sizeTheme.bodySmall!.fontSize, baseTheme.bodySmall!.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', () { final TextTheme theme = Typography.material2018().black; final TextTheme lerped = TextTheme.lerp(theme, null, 0.25); - expect(lerped.headline1, TextStyle.lerp(theme.headline1, null, 0.25)); - expect(lerped.headline2, TextStyle.lerp(theme.headline2, null, 0.25)); - expect(lerped.headline3, TextStyle.lerp(theme.headline3, null, 0.25)); - expect(lerped.headline4, TextStyle.lerp(theme.headline4, null, 0.25)); - expect(lerped.caption, TextStyle.lerp(theme.caption, null, 0.25)); - expect(lerped.headline5, TextStyle.lerp(theme.headline5, null, 0.25)); - expect(lerped.headline6, TextStyle.lerp(theme.headline6, null, 0.25)); - expect(lerped.subtitle1, TextStyle.lerp(theme.subtitle1, null, 0.25)); - expect(lerped.bodyText1, TextStyle.lerp(theme.bodyText1, null, 0.25)); - expect(lerped.bodyText2, TextStyle.lerp(theme.bodyText2, null, 0.25)); - expect(lerped.button, TextStyle.lerp(theme.button, null, 0.25)); - expect(lerped.subtitle2, TextStyle.lerp(theme.subtitle2, null, 0.25)); - expect(lerped.overline, TextStyle.lerp(theme.overline, null, 0.25)); + expect(lerped.displayLarge, TextStyle.lerp(theme.displayLarge, null, 0.25)); + expect(lerped.displayMedium, TextStyle.lerp(theme.displayMedium, null, 0.25)); + expect(lerped.displaySmall, TextStyle.lerp(theme.displaySmall, null, 0.25)); + expect(lerped.headlineLarge, TextStyle.lerp(theme.headlineLarge, null, 0.25)); + expect(lerped.headlineMedium, TextStyle.lerp(theme.headlineMedium, null, 0.25)); + expect(lerped.headlineSmall, TextStyle.lerp(theme.headlineSmall, null, 0.25)); + expect(lerped.titleLarge, TextStyle.lerp(theme.titleLarge, null, 0.25)); + expect(lerped.titleMedium, TextStyle.lerp(theme.titleMedium, null, 0.25)); + expect(lerped.titleSmall, TextStyle.lerp(theme.titleSmall, null, 0.25)); + expect(lerped.bodyLarge, TextStyle.lerp(theme.bodyLarge, null, 0.25)); + expect(lerped.bodyMedium, TextStyle.lerp(theme.bodyMedium, null, 0.25)); + expect(lerped.bodySmall, TextStyle.lerp(theme.bodySmall, 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', () { final TextTheme theme = Typography.material2018().black; final TextTheme lerped = TextTheme.lerp(null, theme, 0.25); - expect(lerped.headline1, TextStyle.lerp(null, theme.headline1, 0.25)); - expect(lerped.headline2, TextStyle.lerp(null, theme.headline2, 0.25)); - expect(lerped.headline3, TextStyle.lerp(null, theme.headline3, 0.25)); - expect(lerped.headline4, TextStyle.lerp(null, theme.headline4, 0.25)); - expect(lerped.caption, TextStyle.lerp(null, theme.caption, 0.25)); - expect(lerped.headline5, TextStyle.lerp(null, theme.headline5, 0.25)); - expect(lerped.headline6, TextStyle.lerp(null, theme.headline6, 0.25)); - expect(lerped.subtitle1, TextStyle.lerp(null, theme.subtitle1, 0.25)); - expect(lerped.bodyText1, TextStyle.lerp(null, theme.bodyText1, 0.25)); - expect(lerped.bodyText2, TextStyle.lerp(null, theme.bodyText2, 0.25)); - expect(lerped.button, TextStyle.lerp(null, theme.button, 0.25)); - expect(lerped.subtitle2, TextStyle.lerp(null, theme.subtitle2, 0.25)); - expect(lerped.overline, TextStyle.lerp(null, theme.overline, 0.25)); + expect(lerped.displayLarge, TextStyle.lerp(null, theme.displayLarge, 0.25)); + expect(lerped.displayMedium, TextStyle.lerp(null, theme.displayMedium, 0.25)); + expect(lerped.displaySmall, TextStyle.lerp(null, theme.displaySmall, 0.25)); + expect(lerped.headlineLarge, TextStyle.lerp(null, theme.headlineLarge, 0.25)); + expect(lerped.headlineMedium, TextStyle.lerp(null, theme.headlineMedium, 0.25)); + expect(lerped.headlineSmall, TextStyle.lerp(null, theme.headlineSmall, 0.25)); + expect(lerped.titleLarge, TextStyle.lerp(null, theme.titleLarge, 0.25)); + expect(lerped.titleMedium, TextStyle.lerp(null, theme.titleMedium, 0.25)); + expect(lerped.titleSmall, TextStyle.lerp(null, theme.titleSmall, 0.25)); + expect(lerped.bodyLarge, TextStyle.lerp(null, theme.bodyLarge, 0.25)); + expect(lerped.bodyMedium, TextStyle.lerp(null, theme.bodyMedium, 0.25)); + expect(lerped.bodySmall, TextStyle.lerp(null, theme.bodySmall, 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', () { final TextTheme lerped = TextTheme.lerp(null, null, 0.25); - expect(lerped.headline1, null); - expect(lerped.headline2, null); - expect(lerped.headline3, null); - expect(lerped.headline4, null); - expect(lerped.caption, null); - expect(lerped.headline5, null); - expect(lerped.headline6, null); - expect(lerped.subtitle1, null); - expect(lerped.bodyText1, null); - expect(lerped.bodyText2, null); - expect(lerped.button, null); - expect(lerped.subtitle2, null); - expect(lerped.overline, null); + expect(lerped.displayLarge, null); + expect(lerped.displayMedium, null); + expect(lerped.displaySmall, null); + expect(lerped.headlineLarge, null); + expect(lerped.headlineMedium, null); + expect(lerped.headlineSmall, null); + expect(lerped.titleLarge, null); + expect(lerped.titleMedium, null); + expect(lerped.titleSmall, null); + expect(lerped.bodyLarge, null); + expect(lerped.bodyMedium, null); + expect(lerped.bodySmall, null); + expect(lerped.labelLarge, null); + expect(lerped.labelMedium, null); + expect(lerped.labelSmall, null); }); } diff --git a/packages/flutter/test/material/theme_test.dart b/packages/flutter/test/material/theme_test.dart index f477b9dabc..03aa0e4bfb 100644 --- a/packages/flutter/test/material/theme_test.dart +++ b/packages/flutter/test/material/theme_test.dart @@ -373,17 +373,19 @@ void main() { List extractStyles(TextTheme textTheme) { return [ - textTheme.headline1!, - textTheme.headline2!, - textTheme.headline3!, - textTheme.headline4!, - textTheme.headline5!, - textTheme.headline6!, - textTheme.subtitle1!, - textTheme.bodyText1!, - textTheme.bodyText2!, - textTheme.caption!, - textTheme.button!, + textTheme.displayLarge!, + textTheme.displayMedium!, + textTheme.displaySmall!, + textTheme.headlineLarge!, + textTheme.headlineMedium!, + textTheme.headlineSmall!, + textTheme.titleLarge!, + textTheme.titleMedium!, + textTheme.bodyLarge!, + textTheme.bodyMedium!, + textTheme.bodySmall!, + textTheme.labelLarge!, + textTheme.labelMedium!, ]; } @@ -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', () { diff --git a/packages/flutter/test/material/tooltip_test.dart b/packages/flutter/test/material/tooltip_test.dart index 4e8560b37c..3af33ce496 100644 --- a/packages/flutter/test/material/tooltip_test.dart +++ b/packages/flutter/test/material/tooltip_test.dart @@ -584,7 +584,7 @@ void main() { expect(textStyle.color, Colors.white); expect(textStyle.fontFamily, 'Roboto'); 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 { @@ -610,7 +610,7 @@ void main() { expect(textStyle.color, Colors.black); expect(textStyle.fontFamily, 'Roboto'); 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 { diff --git a/packages/flutter/test/material/typography_test.dart b/packages/flutter/test/material/typography_test.dart index cdee39affe..703e67bf95 100644 --- a/packages/flutter/test/material/typography_test.dart +++ b/packages/flutter/test/material/typography_test.dart @@ -17,16 +17,16 @@ void main() { }); test('Typography on non-Apple platforms defaults to the correct font', () { - expect(Typography.material2018().black.headline6!.fontFamily, 'Roboto'); - expect(Typography.material2018(platform: TargetPlatform.fuchsia).black.headline6!.fontFamily, 'Roboto'); - expect(Typography.material2018(platform: TargetPlatform.linux).black.headline6!.fontFamily, 'Roboto'); - expect(Typography.material2018(platform: TargetPlatform.linux).black.headline6!.fontFamilyFallback, ['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']); - expect(Typography.material2018(platform: TargetPlatform.windows).black.headline6!.fontFamily, 'Segoe UI'); - expect(Typography.material2018().white.headline6!.fontFamily, 'Roboto'); - expect(Typography.material2018(platform: TargetPlatform.fuchsia).white.headline6!.fontFamily, 'Roboto'); - expect(Typography.material2018(platform: TargetPlatform.linux).white.headline6!.fontFamily, 'Roboto'); - expect(Typography.material2018(platform: TargetPlatform.linux).white.headline6!.fontFamilyFallback, ['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']); - expect(Typography.material2018(platform: TargetPlatform.windows).white.headline6!.fontFamily, 'Segoe UI'); + expect(Typography.material2018().black.titleLarge!.fontFamily, 'Roboto'); + expect(Typography.material2018(platform: TargetPlatform.fuchsia).black.titleLarge!.fontFamily, 'Roboto'); + expect(Typography.material2018(platform: TargetPlatform.linux).black.titleLarge!.fontFamily, 'Roboto'); + expect(Typography.material2018(platform: TargetPlatform.linux).black.titleLarge!.fontFamilyFallback, ['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']); + expect(Typography.material2018(platform: TargetPlatform.windows).black.titleLarge!.fontFamily, 'Segoe UI'); + expect(Typography.material2018().white.titleLarge!.fontFamily, 'Roboto'); + expect(Typography.material2018(platform: TargetPlatform.fuchsia).white.titleLarge!.fontFamily, 'Roboto'); + expect(Typography.material2018(platform: TargetPlatform.linux).white.titleLarge!.fontFamily, 'Roboto'); + expect(Typography.material2018(platform: TargetPlatform.linux).white.titleLarge!.fontFamilyFallback, ['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']); + expect(Typography.material2018(platform: TargetPlatform.windows).white.titleLarge!.fontFamily, 'Segoe UI'); }); // Ref: https://developer.apple.com/ios/human-interface-guidelines/visual-design/typography/ @@ -45,38 +45,42 @@ void main() { test('Typography on iOS defaults to the correct SF font family based on size', () { final Typography typography = Typography.material2018(platform: TargetPlatform.iOS); for (final TextTheme textTheme in [typography.black, typography.white]) { - expect(textTheme.headline1, isSanFranciscoDisplayFont); - expect(textTheme.headline2, isSanFranciscoDisplayFont); - expect(textTheme.headline3, isSanFranciscoDisplayFont); - expect(textTheme.headline4, isSanFranciscoDisplayFont); - expect(textTheme.headline5, isSanFranciscoDisplayFont); - expect(textTheme.headline6, isSanFranciscoDisplayFont); - expect(textTheme.subtitle1, isSanFranciscoTextFont); - expect(textTheme.bodyText1, isSanFranciscoTextFont); - expect(textTheme.bodyText2, isSanFranciscoTextFont); - expect(textTheme.caption, isSanFranciscoTextFont); - expect(textTheme.button, isSanFranciscoTextFont); - expect(textTheme.subtitle2, isSanFranciscoTextFont); - expect(textTheme.overline, isSanFranciscoTextFont); + expect(textTheme.displayLarge, isSanFranciscoDisplayFont); + expect(textTheme.displayMedium, isSanFranciscoDisplayFont); + expect(textTheme.displaySmall, isSanFranciscoDisplayFont); + expect(textTheme.headlineLarge, isSanFranciscoDisplayFont); + expect(textTheme.headlineMedium, isSanFranciscoDisplayFont); + expect(textTheme.headlineSmall, isSanFranciscoDisplayFont); + expect(textTheme.titleLarge, isSanFranciscoDisplayFont); + expect(textTheme.titleMedium, isSanFranciscoTextFont); + expect(textTheme.titleSmall, isSanFranciscoTextFont); + expect(textTheme.bodyLarge, isSanFranciscoTextFont); + expect(textTheme.bodyMedium, isSanFranciscoTextFont); + expect(textTheme.bodySmall, isSanFranciscoTextFont); + expect(textTheme.labelLarge, isSanFranciscoTextFont); + expect(textTheme.labelMedium, isSanFranciscoTextFont); + expect(textTheme.labelSmall, isSanFranciscoTextFont); } }); test('Typography on macOS defaults to the system UI meta-font', () { final Typography typography = Typography.material2018(platform: TargetPlatform.macOS); for (final TextTheme textTheme in [typography.black, typography.white]) { - expect(textTheme.headline1, isMacOSSanFranciscoMetaFont); - expect(textTheme.headline2, isMacOSSanFranciscoMetaFont); - expect(textTheme.headline3, isMacOSSanFranciscoMetaFont); - expect(textTheme.headline4, isMacOSSanFranciscoMetaFont); - expect(textTheme.headline5, isMacOSSanFranciscoMetaFont); - expect(textTheme.headline6, isMacOSSanFranciscoMetaFont); - expect(textTheme.subtitle1, isMacOSSanFranciscoMetaFont); - expect(textTheme.bodyText1, isMacOSSanFranciscoMetaFont); - expect(textTheme.bodyText2, isMacOSSanFranciscoMetaFont); - expect(textTheme.caption, isMacOSSanFranciscoMetaFont); - expect(textTheme.button, isMacOSSanFranciscoMetaFont); - expect(textTheme.subtitle2, isMacOSSanFranciscoMetaFont); - expect(textTheme.overline, isMacOSSanFranciscoMetaFont); + expect(textTheme.displayLarge, isMacOSSanFranciscoMetaFont); + expect(textTheme.displayMedium, isMacOSSanFranciscoMetaFont); + expect(textTheme.displaySmall, isMacOSSanFranciscoMetaFont); + expect(textTheme.headlineLarge, isMacOSSanFranciscoMetaFont); + expect(textTheme.headlineMedium, isMacOSSanFranciscoMetaFont); + expect(textTheme.headlineSmall, isMacOSSanFranciscoMetaFont); + expect(textTheme.titleLarge, isMacOSSanFranciscoMetaFont); + expect(textTheme.titleMedium, isMacOSSanFranciscoMetaFont); + expect(textTheme.titleSmall, isMacOSSanFranciscoMetaFont); + expect(textTheme.bodyLarge, isMacOSSanFranciscoMetaFont); + expect(textTheme.bodyMedium, isMacOSSanFranciscoMetaFont); + expect(textTheme.bodySmall, isMacOSSanFranciscoMetaFont); + expect(textTheme.labelLarge, isMacOSSanFranciscoMetaFont); + expect(textTheme.labelMedium, isMacOSSanFranciscoMetaFont); + expect(textTheme.labelSmall, isMacOSSanFranciscoMetaFont); } }); @@ -107,81 +111,93 @@ void main() { const FontWeight medium = FontWeight.w500; // H1 Roboto light 96 -1.5 - expect(theme.headline1!.fontFamily, 'Roboto'); - expect(theme.headline1!.fontWeight, light); - expect(theme.headline1!.fontSize, 96); - expect(theme.headline1!.letterSpacing, -1.5); + expect(theme.displayLarge!.fontFamily, 'Roboto'); + expect(theme.displayLarge!.fontWeight, light); + expect(theme.displayLarge!.fontSize, 96); + expect(theme.displayLarge!.letterSpacing, -1.5); // H2 Roboto light 60 -0.5 - expect(theme.headline2!.fontFamily, 'Roboto'); - expect(theme.headline2!.fontWeight, light); - expect(theme.headline2!.fontSize, 60); - expect(theme.headline2!.letterSpacing, -0.5); + expect(theme.displayMedium!.fontFamily, 'Roboto'); + expect(theme.displayMedium!.fontWeight, light); + expect(theme.displayMedium!.fontSize, 60); + expect(theme.displayMedium!.letterSpacing, -0.5); // H3 Roboto regular 48 0 - expect(theme.headline3!.fontFamily, 'Roboto'); - expect(theme.headline3!.fontWeight, regular); - expect(theme.headline3!.fontSize, 48); - expect(theme.headline3!.letterSpacing, 0); + expect(theme.displaySmall!.fontFamily, 'Roboto'); + expect(theme.displaySmall!.fontWeight, regular); + expect(theme.displaySmall!.fontSize, 48); + 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 - expect(theme.headline4!.fontFamily, 'Roboto'); - expect(theme.headline4!.fontWeight, regular); - expect(theme.headline4!.fontSize, 34); - expect(theme.headline4!.letterSpacing, 0.25); + expect(theme.headlineMedium!.fontFamily, 'Roboto'); + expect(theme.headlineMedium!.fontWeight, regular); + expect(theme.headlineMedium!.fontSize, 34); + expect(theme.headlineMedium!.letterSpacing, 0.25); // H5 Roboto regular 24 0 - expect(theme.headline5!.fontFamily, 'Roboto'); - expect(theme.headline5!.fontWeight, regular); - expect(theme.headline5!.fontSize, 24); - expect(theme.headline5!.letterSpacing, 0); + expect(theme.headlineSmall!.fontFamily, 'Roboto'); + expect(theme.headlineSmall!.fontWeight, regular); + expect(theme.headlineSmall!.fontSize, 24); + expect(theme.headlineSmall!.letterSpacing, 0); // H6 Roboto medium 20 0.15 - expect(theme.headline6!.fontFamily, 'Roboto'); - expect(theme.headline6!.fontWeight, medium); - expect(theme.headline6!.fontSize, 20); - expect(theme.headline6!.letterSpacing, 0.15); + expect(theme.titleLarge!.fontFamily, 'Roboto'); + expect(theme.titleLarge!.fontWeight, medium); + expect(theme.titleLarge!.fontSize, 20); + expect(theme.titleLarge!.letterSpacing, 0.15); // Subtitle1 Roboto regular 16 0.15 - expect(theme.subtitle1!.fontFamily, 'Roboto'); - expect(theme.subtitle1!.fontWeight, regular); - expect(theme.subtitle1!.fontSize, 16); - expect(theme.subtitle1!.letterSpacing, 0.15); + expect(theme.titleMedium!.fontFamily, 'Roboto'); + expect(theme.titleMedium!.fontWeight, regular); + expect(theme.titleMedium!.fontSize, 16); + expect(theme.titleMedium!.letterSpacing, 0.15); // Subtitle2 Roboto medium 14 0.1 - expect(theme.subtitle2!.fontFamily, 'Roboto'); - expect(theme.subtitle2!.fontWeight, medium); - expect(theme.subtitle2!.fontSize, 14); - expect(theme.subtitle2!.letterSpacing, 0.1); + expect(theme.titleSmall!.fontFamily, 'Roboto'); + expect(theme.titleSmall!.fontWeight, medium); + expect(theme.titleSmall!.fontSize, 14); + expect(theme.titleSmall!.letterSpacing, 0.1); // Body1 Roboto regular 16 0.5 - expect(theme.bodyText1!.fontFamily, 'Roboto'); - expect(theme.bodyText1!.fontWeight, regular); - expect(theme.bodyText1!.fontSize, 16); - expect(theme.bodyText1!.letterSpacing, 0.5); + expect(theme.bodyLarge!.fontFamily, 'Roboto'); + expect(theme.bodyLarge!.fontWeight, regular); + expect(theme.bodyLarge!.fontSize, 16); + expect(theme.bodyLarge!.letterSpacing, 0.5); // Body2 Roboto regular 14 0.25 - expect(theme.bodyText2!.fontFamily, 'Roboto'); - expect(theme.bodyText2!.fontWeight, regular); - expect(theme.bodyText2!.fontSize, 14); - expect(theme.bodyText2!.letterSpacing, 0.25); - - // BUTTON Roboto medium 14 1.25 - expect(theme.button!.fontFamily, 'Roboto'); - expect(theme.button!.fontWeight, medium); - expect(theme.button!.fontSize, 14); - expect(theme.button!.letterSpacing, 1.25); + expect(theme.bodyMedium!.fontFamily, 'Roboto'); + expect(theme.bodyMedium!.fontWeight, regular); + expect(theme.bodyMedium!.fontSize, 14); + expect(theme.bodyMedium!.letterSpacing, 0.25); // Caption Roboto regular 12 0.4 - expect(theme.caption!.fontFamily, 'Roboto'); - expect(theme.caption!.fontWeight, regular); - expect(theme.caption!.fontSize, 12); - expect(theme.caption!.letterSpacing, 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 + expect(theme.labelLarge!.fontFamily, 'Roboto'); + expect(theme.labelLarge!.fontWeight, medium); + expect(theme.labelLarge!.fontSize, 14); + expect(theme.labelLarge!.letterSpacing, 1.25); + + // Label Medium (from Material 3 for backwards compatibility) Roboto regular 11 1.5 + expect(theme.labelMedium!.fontFamily, 'Roboto'); + expect(theme.labelMedium!.fontWeight, regular); + expect(theme.labelMedium!.fontSize, 11); + expect(theme.labelMedium!.letterSpacing, 1.5); // OVERLINE Roboto regular 10 1.5 - expect(theme.overline!.fontFamily, 'Roboto'); - expect(theme.overline!.fontWeight, regular); - expect(theme.overline!.fontSize, 10); - expect(theme.overline!.letterSpacing, 1.5); + expect(theme.labelSmall!.fontFamily, 'Roboto'); + expect(theme.labelSmall!.fontWeight, regular); + expect(theme.labelSmall!.fontSize, 10); + expect(theme.labelSmall!.letterSpacing, 1.5); }); }