diff --git a/sky/sdk/lib/theme/theme_data.dart b/sky/sdk/lib/theme/theme_data.dart index 46a1a6b59c0d9fde8348a7cb5ee5e0199a08cac0..1a3f3e78495bc5192d62e933e8c4c4264a04379f 100644 --- a/sky/sdk/lib/theme/theme_data.dart +++ b/sky/sdk/lib/theme/theme_data.dart @@ -16,8 +16,8 @@ class ThemeData { Map primarySwatch, Color accentColor, this.accentColorBrightness: ThemeBrightness.dark, - typography.TextTheme text }) - : this.brightness = brightness, + typography.TextTheme text + }): this.brightness = brightness, this.primarySwatch = primarySwatch, primaryColorBrightness = primarySwatch == null ? brightness : ThemeBrightness.dark, canvasColor = brightness == ThemeBrightness.dark ? colors.Grey[850] : colors.Grey[50], diff --git a/sky/sdk/lib/theme/typography.dart b/sky/sdk/lib/theme/typography.dart index b1c04ae2ac0b08b42343492ebd66e41ff2bfe420..d540795514ba923ee679a48781be8c15640bd23c 100644 --- a/sky/sdk/lib/theme/typography.dart +++ b/sky/sdk/lib/theme/typography.dart @@ -12,18 +12,34 @@ import 'package:sky/painting/text_style.dart'; // TODO(jackson): Baseline should be language relative! // These values are for English-like text. class TextTheme { - TextTheme._(Color color54, Color color87) - : display4 = new TextStyle(fontSize: 112.0, fontWeight: FontWeight.w100, color: color54, textBaseline: TextBaseline.alphabetic), - display3 = new TextStyle(fontSize: 56.0, fontWeight: FontWeight.w400, color: color54, textBaseline: TextBaseline.alphabetic), - display2 = new TextStyle(fontSize: 45.0, fontWeight: FontWeight.w400, color: color54, height: 48.0 / 45.0, textBaseline: TextBaseline.alphabetic), - display1 = new TextStyle(fontSize: 34.0, fontWeight: FontWeight.w400, color: color54, height: 40.0 / 34.0, textBaseline: TextBaseline.alphabetic), - headline = new TextStyle(fontSize: 24.0, fontWeight: FontWeight.w400, color: color87, height: 32.0 / 24.0, textBaseline: TextBaseline.alphabetic), - title = new TextStyle(fontSize: 20.0, fontWeight: FontWeight.w500, color: color87, height: 28.0 / 20.0, textBaseline: TextBaseline.alphabetic), - subhead = new TextStyle(fontSize: 16.0, fontWeight: FontWeight.w400, color: color87, height: 24.0 / 16.0, textBaseline: TextBaseline.alphabetic), - body2 = new TextStyle(fontSize: 14.0, fontWeight: FontWeight.w500, color: color87, height: 24.0 / 14.0, textBaseline: TextBaseline.alphabetic), - body1 = new TextStyle(fontSize: 14.0, fontWeight: FontWeight.w400, color: color87, height: 20.0 / 14.0, textBaseline: TextBaseline.alphabetic), - caption = new TextStyle(fontSize: 12.0, fontWeight: FontWeight.w400, color: color54, textBaseline: TextBaseline.alphabetic), - button = new TextStyle(fontSize: 14.0, fontWeight: FontWeight.w500, color: color87, textBaseline: TextBaseline.alphabetic); + + // The two colours used here are 54% and 87%, respectively, of the base color (black or white) + + const TextTheme._black() + : display4 = const TextStyle(fontSize: 112.0, fontWeight: FontWeight.w100, color: const Color(0xFF757575), textBaseline: TextBaseline.alphabetic), + display3 = const TextStyle(fontSize: 56.0, fontWeight: FontWeight.w400, color: const Color(0xFF757575), textBaseline: TextBaseline.alphabetic), + display2 = const TextStyle(fontSize: 45.0, fontWeight: FontWeight.w400, color: const Color(0xFF757575), height: 48.0 / 45.0, textBaseline: TextBaseline.alphabetic), + display1 = const TextStyle(fontSize: 34.0, fontWeight: FontWeight.w400, color: const Color(0xFF757575), height: 40.0 / 34.0, textBaseline: TextBaseline.alphabetic), + headline = const TextStyle(fontSize: 24.0, fontWeight: FontWeight.w400, color: const Color(0xFF212121), height: 32.0 / 24.0, textBaseline: TextBaseline.alphabetic), + title = const TextStyle(fontSize: 20.0, fontWeight: FontWeight.w500, color: const Color(0xFF212121), height: 28.0 / 20.0, textBaseline: TextBaseline.alphabetic), + subhead = const TextStyle(fontSize: 16.0, fontWeight: FontWeight.w400, color: const Color(0xFF212121), height: 24.0 / 16.0, textBaseline: TextBaseline.alphabetic), + body2 = const TextStyle(fontSize: 14.0, fontWeight: FontWeight.w500, color: const Color(0xFF212121), height: 24.0 / 14.0, textBaseline: TextBaseline.alphabetic), + body1 = const TextStyle(fontSize: 14.0, fontWeight: FontWeight.w400, color: const Color(0xFF212121), height: 20.0 / 14.0, textBaseline: TextBaseline.alphabetic), + caption = const TextStyle(fontSize: 12.0, fontWeight: FontWeight.w400, color: const Color(0xFF757575), textBaseline: TextBaseline.alphabetic), + button = const TextStyle(fontSize: 14.0, fontWeight: FontWeight.w500, color: const Color(0xFF212121), textBaseline: TextBaseline.alphabetic); + + const TextTheme._white() + : display4 = const TextStyle(fontSize: 112.0, fontWeight: FontWeight.w100, color: const Color(0xFF8A8A8A), textBaseline: TextBaseline.alphabetic), + display3 = const TextStyle(fontSize: 56.0, fontWeight: FontWeight.w400, color: const Color(0xFF8A8A8A), textBaseline: TextBaseline.alphabetic), + display2 = const TextStyle(fontSize: 45.0, fontWeight: FontWeight.w400, color: const Color(0xFF8A8A8A), height: 48.0 / 45.0, textBaseline: TextBaseline.alphabetic), + display1 = const TextStyle(fontSize: 34.0, fontWeight: FontWeight.w400, color: const Color(0xFF8A8A8A), height: 40.0 / 34.0, textBaseline: TextBaseline.alphabetic), + headline = const TextStyle(fontSize: 24.0, fontWeight: FontWeight.w400, color: const Color(0xFFDEDEDE), height: 32.0 / 24.0, textBaseline: TextBaseline.alphabetic), + title = const TextStyle(fontSize: 20.0, fontWeight: FontWeight.w500, color: const Color(0xFFDEDEDE), height: 28.0 / 20.0, textBaseline: TextBaseline.alphabetic), + subhead = const TextStyle(fontSize: 16.0, fontWeight: FontWeight.w400, color: const Color(0xFFDEDEDE), height: 24.0 / 16.0, textBaseline: TextBaseline.alphabetic), + body2 = const TextStyle(fontSize: 14.0, fontWeight: FontWeight.w500, color: const Color(0xFFDEDEDE), height: 24.0 / 14.0, textBaseline: TextBaseline.alphabetic), + body1 = const TextStyle(fontSize: 14.0, fontWeight: FontWeight.w400, color: const Color(0xFFDEDEDE), height: 20.0 / 14.0, textBaseline: TextBaseline.alphabetic), + caption = const TextStyle(fontSize: 12.0, fontWeight: FontWeight.w400, color: const Color(0xFF8A8A8A), textBaseline: TextBaseline.alphabetic), + button = const TextStyle(fontSize: 14.0, fontWeight: FontWeight.w500, color: const Color(0xFFDEDEDE), textBaseline: TextBaseline.alphabetic); final TextStyle display4; final TextStyle display3; @@ -36,19 +52,12 @@ class TextTheme { final TextStyle body1; final TextStyle caption; final TextStyle button; -} - -final TextTheme black = new TextTheme._( - const Color(0xFF757575), - const Color(0xFF212121) -); +} -final TextTheme white = new TextTheme._( - const Color(0xFF8A8A8A), - const Color(0xFFDEDEDE) -); +const TextTheme black = const TextTheme._black(); +const TextTheme white = const TextTheme._white(); // TODO(abarth): Maybe this should be hard-coded in Scaffold? const String typeface = 'font-family: sans-serif';