[Material 3] Update TextTheme to have M3 names for styles (#93725)
This commit is contained in:
parent
bb906b6b4f
commit
1aabe314a9
@ -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).
|
||||
///
|
||||
/// 
|
||||
///
|
||||
/// 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.
|
||||
///
|
||||
/// 
|
||||
///
|
||||
/// 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<TextStyle>('headline1', headline1, defaultValue: defaultTheme.headline1));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('headline2', headline2, defaultValue: defaultTheme.headline2));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('headline3', headline3, defaultValue: defaultTheme.headline3));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('headline4', headline4, defaultValue: defaultTheme.headline4));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('headline5', headline5, defaultValue: defaultTheme.headline5));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('headline6', headline6, defaultValue: defaultTheme.headline6));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('subtitle1', subtitle1, defaultValue: defaultTheme.subtitle1));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('subtitle2', subtitle2, defaultValue: defaultTheme.subtitle2));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('bodyText1', bodyText1, defaultValue: defaultTheme.bodyText1));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('bodyText2', bodyText2, defaultValue: defaultTheme.bodyText2));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('caption', caption, defaultValue: defaultTheme.caption));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('button', button, defaultValue: defaultTheme.button));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('overline', overline, defaultValue: defaultTheme.overline));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('displayLarge', displayLarge, defaultValue: defaultTheme.displayLarge));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('displayMedium', displayMedium, defaultValue: defaultTheme.displayMedium));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('displaySmall', displaySmall, defaultValue: defaultTheme.displaySmall));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('headlineLarge', headlineLarge, defaultValue: defaultTheme.headlineLarge));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('headlineMedium', headlineMedium, defaultValue: defaultTheme.headlineMedium));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('headlineSmall', headlineSmall, defaultValue: defaultTheme.headlineSmall));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('titleLarge', titleLarge, defaultValue: defaultTheme.titleLarge));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('titleMedium', titleMedium, defaultValue: defaultTheme.titleMedium));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('titleSmall', titleSmall, defaultValue: defaultTheme.titleSmall));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('bodyLarge', bodyLarge, defaultValue: defaultTheme.bodyLarge));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('bodyMedium', bodyMedium, defaultValue: defaultTheme.bodyMedium));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('bodySmall', bodySmall, defaultValue: defaultTheme.bodySmall));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('labelLarge', labelLarge, defaultValue: defaultTheme.labelLarge));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('labelMedium', labelMedium, defaultValue: defaultTheme.labelMedium));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('labelSmall', labelSmall, defaultValue: defaultTheme.labelSmall));
|
||||
}
|
||||
}
|
||||
|
@ -332,76 +332,84 @@ class Typography with Diagnosticable {
|
||||
///
|
||||
/// 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<String> _helsinkiFontFallbacks = <String>['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),
|
||||
);
|
||||
}
|
||||
|
@ -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<TextStyle> themeStyles = <TextStyle>[
|
||||
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);
|
||||
});
|
||||
}
|
||||
|
@ -373,17 +373,19 @@ void main() {
|
||||
|
||||
List<TextStyle> extractStyles(TextTheme textTheme) {
|
||||
return <TextStyle>[
|
||||
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', () {
|
||||
|
@ -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 {
|
||||
|
@ -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, <String>['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, <String>['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, <String>['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, <String>['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 <TextTheme>[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 <TextTheme>[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);
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user