From 8fddce60a877dd84a5c37ed7b2a8309c9d75e777 Mon Sep 17 00:00:00 2001 From: jonathandaniels-vgv <102978796+jonathandaniels-vgv@users.noreply.github.com> Date: Sat, 30 Apr 2022 13:53:40 -0700 Subject: [PATCH] chore: reference the app text styles from theme context (#264) --- lib/app/view/app.dart | 8 +- lib/footer/footer.dart | 5 +- lib/game/view/widgets/game_hud.dart | 4 +- .../view/widgets/round_count_display.dart | 10 +- lib/game/view/widgets/score_view.dart | 13 +-- .../widgets/how_to_play_dialog.dart | 31 +++--- lib/theme/theme.dart | 2 - .../pinball_ui/fonts/PixeloidMono-1G8ae.ttf | Bin 0 -> 83936 bytes .../pinball_ui/fonts/PixeloidSans-nR3g1.ttf | Bin 0 -> 86896 bytes .../fonts/PixeloidSansBold-RpeJo.ttf | Bin 0 -> 80356 bytes packages/pinball_ui/lib/gen/fonts.gen.dart | 16 +++ packages/pinball_ui/lib/pinball_ui.dart | 1 + .../lib/src/theme/pinball_colors.dart | 8 +- .../lib/src/theme/pinball_text_style.dart | 30 ++---- .../lib/src/theme/pinball_theme.dart | 23 ++++ packages/pinball_ui/lib/src/theme/theme.dart | 3 + packages/pinball_ui/pubspec.yaml | 9 ++ .../test/src/theme/pinball_colors_test.dart | 31 ++++++ .../src/theme/pinball_text_style_test.dart | 41 ++++++++ .../test/src/theme/pinball_theme_test.dart | 98 ++++++++++++++++++ test/game/view/widgets/game_hud_test.dart | 2 + .../widgets/round_count_display_test.dart | 6 +- test/helpers/pump_app.dart | 2 + 23 files changed, 269 insertions(+), 74 deletions(-) delete mode 100644 lib/theme/theme.dart create mode 100644 packages/pinball_ui/fonts/PixeloidMono-1G8ae.ttf create mode 100644 packages/pinball_ui/fonts/PixeloidSans-nR3g1.ttf create mode 100644 packages/pinball_ui/fonts/PixeloidSansBold-RpeJo.ttf create mode 100644 packages/pinball_ui/lib/gen/fonts.gen.dart rename lib/theme/app_colors.dart => packages/pinball_ui/lib/src/theme/pinball_colors.dart (92%) rename lib/theme/app_text_style.dart => packages/pinball_ui/lib/src/theme/pinball_text_style.dart (64%) create mode 100644 packages/pinball_ui/lib/src/theme/pinball_theme.dart create mode 100644 packages/pinball_ui/lib/src/theme/theme.dart create mode 100644 packages/pinball_ui/test/src/theme/pinball_colors_test.dart create mode 100644 packages/pinball_ui/test/src/theme/pinball_text_style_test.dart create mode 100644 packages/pinball_ui/test/src/theme/pinball_theme_test.dart diff --git a/lib/app/view/app.dart b/lib/app/view/app.dart index 97cfec9b..b6b4c897 100644 --- a/lib/app/view/app.dart +++ b/lib/app/view/app.dart @@ -15,6 +15,7 @@ import 'package:pinball/game/game.dart'; import 'package:pinball/l10n/l10n.dart'; import 'package:pinball/select_character/select_character.dart'; import 'package:pinball_audio/pinball_audio.dart'; +import 'package:pinball_ui/pinball_ui.dart'; class App extends StatelessWidget { const App({ @@ -37,14 +38,15 @@ class App extends StatelessWidget { ], child: BlocProvider( create: (context) => CharacterThemeCubit(), - child: const MaterialApp( + child: MaterialApp( title: 'I/O Pinball', - localizationsDelegates: [ + theme: PinballTheme.standard, + localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, ], supportedLocales: AppLocalizations.supportedLocales, - home: PinballGamePage(), + home: const PinballGamePage(), ), ), ); diff --git a/lib/footer/footer.dart b/lib/footer/footer.dart index 711d1ba8..df3dbd2f 100644 --- a/lib/footer/footer.dart +++ b/lib/footer/footer.dart @@ -1,7 +1,6 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:pinball/l10n/l10n.dart'; -import 'package:pinball/theme/theme.dart'; import 'package:pinball_ui/pinball_ui.dart'; /// {@template footer} @@ -35,7 +34,7 @@ class _GoogleIO extends StatelessWidget { final theme = Theme.of(context); return Text( l10n.footerGoogleIOText, - style: theme.textTheme.bodyText1!.copyWith(color: AppColors.white), + style: theme.textTheme.bodyText1!.copyWith(color: PinballColors.white), ); } } @@ -51,7 +50,7 @@ class _MadeWithFlutterAndFirebase extends StatelessWidget { textAlign: TextAlign.center, text: TextSpan( text: l10n.footerMadeWithText, - style: theme.textTheme.bodyText1!.copyWith(color: AppColors.white), + style: theme.textTheme.bodyText1!.copyWith(color: PinballColors.white), children: [ TextSpan( text: l10n.footerFlutterLinkText, diff --git a/lib/game/view/widgets/game_hud.dart b/lib/game/view/widgets/game_hud.dart index e3c44877..605bceb4 100644 --- a/lib/game/view/widgets/game_hud.dart +++ b/lib/game/view/widgets/game_hud.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/gen/gen.dart'; -import 'package:pinball/theme/app_colors.dart'; +import 'package:pinball_ui/pinball_ui.dart'; /// {@template game_hud} /// Overlay on the [PinballGame]. @@ -72,7 +72,7 @@ class _ScoreViewDecoration extends StatelessWidget { decoration: BoxDecoration( borderRadius: radius, border: Border.all( - color: AppColors.white, + color: PinballColors.white, width: borderWidth, ), image: DecorationImage( diff --git a/lib/game/view/widgets/round_count_display.dart b/lib/game/view/widgets/round_count_display.dart index b8f67c26..63e1fa43 100644 --- a/lib/game/view/widgets/round_count_display.dart +++ b/lib/game/view/widgets/round_count_display.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/l10n/l10n.dart'; -import 'package:pinball/theme/theme.dart'; +import 'package:pinball_ui/pinball_ui.dart'; /// {@template round_count_display} /// Colored square indicating if a round is available. @@ -20,9 +20,7 @@ class RoundCountDisplay extends StatelessWidget { children: [ Text( l10n.rounds, - style: AppTextStyle.subtitle1.copyWith( - color: AppColors.yellow, - ), + style: Theme.of(context).textTheme.subtitle1, ), const SizedBox(width: 8), Row( @@ -53,9 +51,9 @@ class RoundIndicator extends StatelessWidget { @override Widget build(BuildContext context) { - final color = isActive ? AppColors.yellow : AppColors.yellow.withAlpha(128); + final color = + isActive ? PinballColors.yellow : PinballColors.yellow.withAlpha(128); const size = 8.0; - return Padding( padding: const EdgeInsets.symmetric(horizontal: 8), child: Container( diff --git a/lib/game/view/widgets/score_view.dart b/lib/game/view/widgets/score_view.dart index 40b33c35..1fe57eb1 100644 --- a/lib/game/view/widgets/score_view.dart +++ b/lib/game/view/widgets/score_view.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/l10n/l10n.dart'; -import 'package:pinball/theme/theme.dart'; import 'package:pinball_components/pinball_components.dart'; /// {@template score_view} @@ -38,9 +37,7 @@ class _GameOver extends StatelessWidget { return Text( l10n.gameOver, - style: AppTextStyle.headline1.copyWith( - color: AppColors.white, - ), + style: Theme.of(context).textTheme.headline1, ); } } @@ -58,9 +55,7 @@ class _ScoreDisplay extends StatelessWidget { children: [ Text( l10n.score.toLowerCase(), - style: AppTextStyle.subtitle1.copyWith( - color: AppColors.yellow, - ), + style: Theme.of(context).textTheme.subtitle1, ), const _ScoreText(), const RoundCountDisplay(), @@ -78,9 +73,7 @@ class _ScoreText extends StatelessWidget { return Text( score.formatScore(), - style: AppTextStyle.headline1.copyWith( - color: AppColors.white, - ), + style: Theme.of(context).textTheme.headline1, ); } } diff --git a/lib/start_game/widgets/how_to_play_dialog.dart b/lib/start_game/widgets/how_to_play_dialog.dart index 1665d35d..500a4288 100644 --- a/lib/start_game/widgets/how_to_play_dialog.dart +++ b/lib/start_game/widgets/how_to_play_dialog.dart @@ -5,7 +5,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:pinball/gen/gen.dart'; import 'package:pinball/l10n/l10n.dart'; -import 'package:pinball/theme/theme.dart'; import 'package:pinball_ui/pinball_ui.dart'; import 'package:platform_helper/platform_helper.dart'; @@ -122,7 +121,7 @@ class _MobileLaunchControls extends StatelessWidget { @override Widget build(BuildContext context) { final l10n = context.l10n; - const textStyle = AppTextStyle.subtitle3; + final textStyle = Theme.of(context).textTheme.headline3; return Column( children: [ Text( @@ -138,9 +137,7 @@ class _MobileLaunchControls extends StatelessWidget { ), TextSpan( text: l10n.launch, - style: textStyle.copyWith( - color: AppColors.blue, - ), + style: textStyle?.copyWith(color: PinballColors.blue), ), ], ), @@ -156,7 +153,7 @@ class _MobileFlipperControls extends StatelessWidget { @override Widget build(BuildContext context) { final l10n = context.l10n; - const textStyle = AppTextStyle.subtitle3; + final textStyle = Theme.of(context).textTheme.headline3; return Column( children: [ Text( @@ -172,9 +169,7 @@ class _MobileFlipperControls extends StatelessWidget { ), TextSpan( text: l10n.flip, - style: textStyle.copyWith( - color: AppColors.orange, - ), + style: textStyle?.copyWith(color: PinballColors.orange), ), ], ), @@ -207,21 +202,22 @@ class _HowToPlayHeader extends StatelessWidget { @override Widget build(BuildContext context) { final l10n = context.l10n; - const headerTextStyle = AppTextStyle.title; - + final textStyle = Theme.of(context).textTheme.headline3?.copyWith( + color: PinballColors.darkBlue, + ); return FittedBox( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( l10n.howToPlay, - style: headerTextStyle.copyWith( + style: textStyle?.copyWith( fontWeight: FontWeight.bold, ), ), Text( l10n.tipsForFlips, - style: headerTextStyle, + style: textStyle, ), ], ), @@ -241,7 +237,7 @@ class _DesktopLaunchControls extends StatelessWidget { children: [ Text( l10n.launchControls, - style: AppTextStyle.headline4, + style: Theme.of(context).textTheme.headline4, ), const SizedBox(height: 10), Wrap( @@ -270,7 +266,7 @@ class _DesktopFlipperControls extends StatelessWidget { children: [ Text( l10n.flipperControls, - style: AppTextStyle.subtitle2, + style: Theme.of(context).textTheme.subtitle2, ), const SizedBox(height: 10), Column( @@ -311,8 +307,9 @@ class KeyButton extends StatelessWidget { @override Widget build(BuildContext context) { + final textTheme = Theme.of(context).textTheme; final textStyle = - _control.isArrow ? AppTextStyle.headline1 : AppTextStyle.headline3; + _control.isArrow ? textTheme.headline1 : textTheme.headline3; const height = 60.0; final width = _control.isSpace ? height * 2.83 : height; return DecoratedBox( @@ -334,7 +331,7 @@ class KeyButton extends StatelessWidget { quarterTurns: _control.isDown ? 1 : 0, child: Text( _control.getCharacter(context), - style: textStyle.copyWith(color: AppColors.white), + style: textStyle?.copyWith(color: PinballColors.white), ), ), ), diff --git a/lib/theme/theme.dart b/lib/theme/theme.dart deleted file mode 100644 index c9e2f9e1..00000000 --- a/lib/theme/theme.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'app_colors.dart'; -export 'app_text_style.dart'; diff --git a/packages/pinball_ui/fonts/PixeloidMono-1G8ae.ttf b/packages/pinball_ui/fonts/PixeloidMono-1G8ae.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a797c1e1e66429e3c6c1bc369d9027372dd8e54c GIT binary patch literal 83936 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 Di13kI literal 0 HcmV?d00001 diff --git a/packages/pinball_ui/fonts/PixeloidSans-nR3g1.ttf b/packages/pinball_ui/fonts/PixeloidSans-nR3g1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2f9a03b4bced65d908e5e292508f721f1c1cbdab GIT binary patch literal 86896 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 literal 0 HcmV?d00001 diff --git a/packages/pinball_ui/fonts/PixeloidSansBold-RpeJo.ttf b/packages/pinball_ui/fonts/PixeloidSansBold-RpeJo.ttf new file mode 100644 index 0000000000000000000000000000000000000000..81194f5d468d362228a718bfc3eba1240a76051d GIT binary patch literal 80356 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 Qx^#LJ`&$74HpANZ2krd|-v9sr literal 0 HcmV?d00001 diff --git a/packages/pinball_ui/lib/gen/fonts.gen.dart b/packages/pinball_ui/lib/gen/fonts.gen.dart new file mode 100644 index 00000000..5f77da16 --- /dev/null +++ b/packages/pinball_ui/lib/gen/fonts.gen.dart @@ -0,0 +1,16 @@ +/// GENERATED CODE - DO NOT MODIFY BY HAND +/// ***************************************************** +/// FlutterGen +/// ***************************************************** + +// ignore_for_file: directives_ordering,unnecessary_import + +class FontFamily { + FontFamily._(); + + /// Font family: PixeloidMono + static const String pixeloidMono = 'PixeloidMono'; + + /// Font family: PixeloidSans + static const String pixeloidSans = 'PixeloidSans'; +} diff --git a/packages/pinball_ui/lib/pinball_ui.dart b/packages/pinball_ui/lib/pinball_ui.dart index 6e139280..332286ed 100644 --- a/packages/pinball_ui/lib/pinball_ui.dart +++ b/packages/pinball_ui/lib/pinball_ui.dart @@ -5,3 +5,4 @@ export 'package:url_launcher_platform_interface/url_launcher_platform_interface. export 'src/dialog/dialog.dart'; export 'src/external_links/external_links.dart'; +export 'src/theme/theme.dart'; diff --git a/lib/theme/app_colors.dart b/packages/pinball_ui/lib/src/theme/pinball_colors.dart similarity index 92% rename from lib/theme/app_colors.dart rename to packages/pinball_ui/lib/src/theme/pinball_colors.dart index a12d3edc..5db27229 100644 --- a/lib/theme/app_colors.dart +++ b/packages/pinball_ui/lib/src/theme/pinball_colors.dart @@ -1,17 +1,11 @@ // ignore_for_file: public_member_api_docs - import 'package:flutter/material.dart'; -abstract class AppColors { +abstract class PinballColors { static const Color white = Color(0xFFFFFFFF); - static const Color darkBlue = Color(0xFF0C32A4); - static const Color yellow = Color(0xFFFFEE02); - static const Color orange = Color(0xFFE5AB05); - static const Color blue = Color(0xFF4B94F6); - static const Color transparent = Color(0x00000000); } diff --git a/lib/theme/app_text_style.dart b/packages/pinball_ui/lib/src/theme/pinball_text_style.dart similarity index 64% rename from lib/theme/app_text_style.dart rename to packages/pinball_ui/lib/src/theme/pinball_text_style.dart index 084936e9..378078fa 100644 --- a/lib/theme/app_text_style.dart +++ b/packages/pinball_ui/lib/src/theme/pinball_text_style.dart @@ -1,17 +1,18 @@ // ignore_for_file: public_member_api_docs import 'package:flutter/widgets.dart'; -import 'package:pinball/theme/theme.dart'; -import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_ui/gen/fonts.gen.dart'; +import 'package:pinball_ui/pinball_ui.dart'; const _fontPackage = 'pinball_components'; const _primaryFontFamily = FontFamily.pixeloidSans; -abstract class AppTextStyle { +abstract class PinballTextStyle { static const headline1 = TextStyle( fontSize: 28, package: _fontPackage, fontFamily: _primaryFontFamily, + color: PinballColors.white, ); static const headline2 = TextStyle( @@ -21,36 +22,22 @@ abstract class AppTextStyle { ); static const headline3 = TextStyle( - color: AppColors.white, + color: PinballColors.white, fontSize: 20, package: _fontPackage, fontFamily: _primaryFontFamily, + fontWeight: FontWeight.bold, ); static const headline4 = TextStyle( - color: AppColors.white, + color: PinballColors.white, fontSize: 16, package: _fontPackage, fontFamily: _primaryFontFamily, ); - static const title = TextStyle( - color: AppColors.darkBlue, - fontSize: 20, - package: _fontPackage, - fontFamily: _primaryFontFamily, - ); - - static const subtitle3 = TextStyle( - color: AppColors.white, - fontSize: 20, - fontWeight: FontWeight.bold, - package: _fontPackage, - fontFamily: _primaryFontFamily, - ); - static const subtitle2 = TextStyle( - color: AppColors.white, + color: PinballColors.white, fontSize: 16, package: _fontPackage, fontFamily: _primaryFontFamily, @@ -60,5 +47,6 @@ abstract class AppTextStyle { fontSize: 10, fontFamily: _primaryFontFamily, package: _fontPackage, + color: PinballColors.yellow, ); } diff --git a/packages/pinball_ui/lib/src/theme/pinball_theme.dart b/packages/pinball_ui/lib/src/theme/pinball_theme.dart new file mode 100644 index 00000000..cf62b2ef --- /dev/null +++ b/packages/pinball_ui/lib/src/theme/pinball_theme.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +/// Pinball theme +class PinballTheme { + /// Standard [ThemeData] for Pinball UI + static ThemeData get standard { + return ThemeData( + textTheme: _textTheme, + ); + } + + static TextTheme get _textTheme { + return const TextTheme( + headline1: PinballTextStyle.headline1, + headline2: PinballTextStyle.headline2, + headline3: PinballTextStyle.headline3, + headline4: PinballTextStyle.headline4, + subtitle1: PinballTextStyle.subtitle1, + subtitle2: PinballTextStyle.subtitle2, + ); + } +} diff --git a/packages/pinball_ui/lib/src/theme/theme.dart b/packages/pinball_ui/lib/src/theme/theme.dart new file mode 100644 index 00000000..71c78942 --- /dev/null +++ b/packages/pinball_ui/lib/src/theme/theme.dart @@ -0,0 +1,3 @@ +export 'pinball_colors.dart'; +export 'pinball_text_style.dart'; +export 'pinball_theme.dart'; diff --git a/packages/pinball_ui/pubspec.yaml b/packages/pinball_ui/pubspec.yaml index 60f32207..a89f7a67 100644 --- a/packages/pinball_ui/pubspec.yaml +++ b/packages/pinball_ui/pubspec.yaml @@ -23,6 +23,15 @@ flutter: generate: true assets: - assets/images/dialog/ + fonts: + - family: PixeloidSans + fonts: + - asset: fonts/PixeloidSans-nR3g1.ttf + - asset: fonts/PixeloidSansBold-RpeJo.ttf + weight: 700 + - family: PixeloidMono + fonts: + - asset: fonts/PixeloidMono-1G8ae.ttf flutter_gen: line_length: 80 diff --git a/packages/pinball_ui/test/src/theme/pinball_colors_test.dart b/packages/pinball_ui/test/src/theme/pinball_colors_test.dart new file mode 100644 index 00000000..36e45c0d --- /dev/null +++ b/packages/pinball_ui/test/src/theme/pinball_colors_test.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +void main() { + group('PinballColors', () { + test('white is 0xFFFFFFFF', () { + expect(PinballColors.white, const Color(0xFFFFFFFF)); + }); + + test('darkBlue is 0xFF0C32A4', () { + expect(PinballColors.darkBlue, const Color(0xFF0C32A4)); + }); + + test('yellow is 0xFFFFEE02', () { + expect(PinballColors.yellow, const Color(0xFFFFEE02)); + }); + + test('orange is 0xFFE5AB05', () { + expect(PinballColors.orange, const Color(0xFFE5AB05)); + }); + + test('blue is 0xFF4B94F6', () { + expect(PinballColors.blue, const Color(0xFF4B94F6)); + }); + + test('transparent is 0x00000000', () { + expect(PinballColors.transparent, const Color(0x00000000)); + }); + }); +} diff --git a/packages/pinball_ui/test/src/theme/pinball_text_style_test.dart b/packages/pinball_ui/test/src/theme/pinball_text_style_test.dart new file mode 100644 index 00000000..60b382f3 --- /dev/null +++ b/packages/pinball_ui/test/src/theme/pinball_text_style_test.dart @@ -0,0 +1,41 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +void main() { + group('PinballTextStyle', () { + test('headline1 has fontSize 28 and white color', () { + const style = PinballTextStyle.headline1; + expect(style.fontSize, 28); + expect(style.color, PinballColors.white); + }); + + test('headline2 has fontSize 24', () { + const style = PinballTextStyle.headline2; + expect(style.fontSize, 24); + }); + + test('headline3 has fontSize 20 and white color', () { + const style = PinballTextStyle.headline3; + expect(style.fontSize, 20); + expect(style.color, PinballColors.white); + }); + + test('headline4 has fontSize 16 and white color', () { + const style = PinballTextStyle.headline4; + expect(style.fontSize, 16); + expect(style.color, PinballColors.white); + }); + + test('subtitle1 has fontSize 10 and yellow color', () { + const style = PinballTextStyle.subtitle1; + expect(style.fontSize, 10); + expect(style.color, PinballColors.yellow); + }); + + test('subtitle2 has fontSize 16 and white color', () { + const style = PinballTextStyle.subtitle2; + expect(style.fontSize, 16); + expect(style.color, PinballColors.white); + }); + }); +} diff --git a/packages/pinball_ui/test/src/theme/pinball_theme_test.dart b/packages/pinball_ui/test/src/theme/pinball_theme_test.dart new file mode 100644 index 00000000..915927f8 --- /dev/null +++ b/packages/pinball_ui/test/src/theme/pinball_theme_test.dart @@ -0,0 +1,98 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:pinball_ui/pinball_ui.dart'; + +void main() { + group('PinballTheme', () { + group('standard', () { + test('headline1 matches PinballTextStyle#headline1', () { + expect( + PinballTheme.standard.textTheme.headline1!.fontSize, + PinballTextStyle.headline1.fontSize, + ); + expect( + PinballTheme.standard.textTheme.headline1!.color, + PinballTextStyle.headline1.color, + ); + expect( + PinballTheme.standard.textTheme.headline1!.fontFamily, + PinballTextStyle.headline1.fontFamily, + ); + }); + + test('headline2 matches PinballTextStyle#headline2', () { + expect( + PinballTheme.standard.textTheme.headline2!.fontSize, + PinballTextStyle.headline2.fontSize, + ); + expect( + PinballTheme.standard.textTheme.headline2!.fontFamily, + PinballTextStyle.headline2.fontFamily, + ); + expect( + PinballTheme.standard.textTheme.headline2!.fontWeight, + PinballTextStyle.headline2.fontWeight, + ); + }); + + test('headline3 matches PinballTextStyle#headline3', () { + expect( + PinballTheme.standard.textTheme.headline3!.fontSize, + PinballTextStyle.headline3.fontSize, + ); + expect( + PinballTheme.standard.textTheme.headline3!.color, + PinballTextStyle.headline3.color, + ); + expect( + PinballTheme.standard.textTheme.headline3!.fontFamily, + PinballTextStyle.headline3.fontFamily, + ); + }); + + test('headline4 matches PinballTextStyle#headline4', () { + expect( + PinballTheme.standard.textTheme.headline4!.fontSize, + PinballTextStyle.headline4.fontSize, + ); + expect( + PinballTheme.standard.textTheme.headline4!.color, + PinballTextStyle.headline4.color, + ); + expect( + PinballTheme.standard.textTheme.headline4!.fontFamily, + PinballTextStyle.headline4.fontFamily, + ); + }); + + test('subtitle1 matches PinballTextStyle#subtitle1', () { + expect( + PinballTheme.standard.textTheme.subtitle1!.fontSize, + PinballTextStyle.subtitle1.fontSize, + ); + expect( + PinballTheme.standard.textTheme.subtitle1!.color, + PinballTextStyle.subtitle1.color, + ); + expect( + PinballTheme.standard.textTheme.subtitle1!.fontFamily, + PinballTextStyle.subtitle1.fontFamily, + ); + }); + + test('subtitle2 matches PinballTextStyle#subtitle2', () { + expect( + PinballTheme.standard.textTheme.subtitle2!.fontSize, + PinballTextStyle.subtitle2.fontSize, + ); + expect( + PinballTheme.standard.textTheme.subtitle2!.color, + PinballTextStyle.subtitle2.color, + ); + expect( + PinballTheme.standard.textTheme.subtitle2!.fontFamily, + PinballTextStyle.subtitle2.fontFamily, + ); + }); + }); + }); +} diff --git a/test/game/view/widgets/game_hud_test.dart b/test/game/view/widgets/game_hud_test.dart index d101d06e..79cc4f33 100644 --- a/test/game/view/widgets/game_hud_test.dart +++ b/test/game/view/widgets/game_hud_test.dart @@ -15,6 +15,7 @@ import 'package:mocktail/mocktail.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/l10n/l10n.dart'; import 'package:pinball_components/pinball_components.dart' hide Assets; +import 'package:pinball_ui/pinball_ui.dart'; import '../../../helpers/helpers.dart'; @@ -56,6 +57,7 @@ void main() { Future _pumpAppWithWidget(WidgetTester tester) async { await tester.pumpWidget( MaterialApp( + theme: PinballTheme.standard, localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, diff --git a/test/game/view/widgets/round_count_display_test.dart b/test/game/view/widgets/round_count_display_test.dart index 8f5f7f13..335a1c32 100644 --- a/test/game/view/widgets/round_count_display_test.dart +++ b/test/game/view/widgets/round_count_display_test.dart @@ -2,7 +2,7 @@ import 'package:bloc_test/bloc_test.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pinball/game/game.dart'; -import 'package:pinball/theme/app_colors.dart'; +import 'package:pinball_ui/pinball_ui.dart'; import '../../../helpers/helpers.dart'; @@ -108,7 +108,7 @@ void main() { expect( find.byWidgetPredicate( - (widget) => widget is Container && widget.color == AppColors.yellow, + (widget) => widget is Container && widget.color == PinballColors.yellow, ), findsOneWidget, ); @@ -125,7 +125,7 @@ void main() { find.byWidgetPredicate( (widget) => widget is Container && - widget.color == AppColors.yellow.withAlpha(128), + widget.color == PinballColors.yellow.withAlpha(128), ), findsOneWidget, ); diff --git a/test/helpers/pump_app.dart b/test/helpers/pump_app.dart index 2c112426..be67d4d0 100644 --- a/test/helpers/pump_app.dart +++ b/test/helpers/pump_app.dart @@ -17,6 +17,7 @@ import 'package:pinball/l10n/l10n.dart'; import 'package:pinball/select_character/select_character.dart'; import 'package:pinball/start_game/start_game.dart'; import 'package:pinball_audio/pinball_audio.dart'; +import 'package:pinball_ui/pinball_ui.dart'; import 'helpers.dart'; @@ -85,6 +86,7 @@ extension PumpApp on WidgetTester { ), ], child: MaterialApp( + theme: PinballTheme.standard, localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate,