diff --git a/fonts/ConcourseC3-Regular.ttf b/fonts/ConcourseC3-Regular.ttf new file mode 100644 index 000000000..5f0223a34 Binary files /dev/null and b/fonts/ConcourseC3-Regular.ttf differ diff --git a/fonts/ConcourseT3-Regular.ttf b/fonts/ConcourseT3-Regular.ttf new file mode 100644 index 000000000..b09bf70af Binary files /dev/null and b/fonts/ConcourseT3-Regular.ttf differ diff --git a/lib/main.dart b/lib/main.dart index d85b4ea8c..1c7057fa4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -24,6 +24,15 @@ class AvesApp extends StatelessWidget { brightness: Brightness.dark, accentColor: Colors.indigoAccent, scaffoldBackgroundColor: Colors.grey[900], + appBarTheme: AppBarTheme( + textTheme: TextTheme( + title: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + fontFamily: 'Concourse Caps', + ), + ), + ), ), home: HomePage(), ); diff --git a/lib/widgets/album/all_collection_drawer.dart b/lib/widgets/album/all_collection_drawer.dart index 46737ac34..cf9b33991 100644 --- a/lib/widgets/album/all_collection_drawer.dart +++ b/lib/widgets/album/all_collection_drawer.dart @@ -38,7 +38,10 @@ class AllCollectionDrawer extends StatelessWidget { SizedBox(width: 16), Text( 'Aves', - style: TextStyle(fontSize: 44), + style: TextStyle( + fontSize: 44, + fontFamily: 'Concourse Caps', + ), ), ], ), diff --git a/lib/widgets/album/sections.dart b/lib/widgets/album/sections.dart index 27537d8e0..ee8a22073 100644 --- a/lib/widgets/album/sections.dart +++ b/lib/widgets/album/sections.dart @@ -61,6 +61,7 @@ class SectionHeader extends StatelessWidget { style: TextStyle( color: Colors.grey[200], fontSize: 20, + fontFamily: 'Concourse Caps', shadows: [ Shadow( offset: Offset(0, 2), diff --git a/lib/widgets/fullscreen/info/info_page.dart b/lib/widgets/fullscreen/info/info_page.dart index f34833267..70c9e7f15 100644 --- a/lib/widgets/fullscreen/info/info_page.dart +++ b/lib/widgets/fullscreen/info/info_page.dart @@ -37,6 +37,7 @@ class InfoPageState extends State { final date = entry.bestDate; final dateText = '${DateFormat.yMMMd().format(date)} – ${DateFormat.Hm().format(date)}'; final resolutionText = '${entry.width} × ${entry.height}${entry.isVideo ? '' : ' (${entry.megaPixels} MP)'}'; + final bottomInsets = MediaQuery.of(context).viewInsets.bottom; return Scaffold( appBar: AppBar( leading: IconButton( @@ -49,7 +50,7 @@ class InfoPageState extends State { body: NotificationListener( onNotification: _handleTopScroll, child: ListView( - padding: EdgeInsets.all(8.0), + padding: EdgeInsets.all(8.0) + EdgeInsets.only(bottom: bottomInsets), children: [ InfoRow('Title', entry.title), InfoRow('Date', dateText), @@ -63,6 +64,7 @@ class InfoPageState extends State { ], ), ), + resizeToAvoidBottomInset: false, ); } @@ -105,7 +107,13 @@ class SectionRow extends StatelessWidget { Expanded(child: Divider(color: Colors.white70)), Padding( padding: EdgeInsets.all(16.0), - child: Text(title, style: TextStyle(fontSize: 20)), + child: Text( + title, + style: TextStyle( + fontSize: 20, + fontFamily: 'Concourse Caps', + ), + ), ), Expanded(child: Divider(color: Colors.white70)), ], @@ -124,7 +132,7 @@ class InfoRow extends StatelessWidget { padding: EdgeInsets.symmetric(vertical: 4.0), child: RichText( text: TextSpan( - style: DefaultTextStyle.of(context).style, + style: TextStyle(fontFamily: 'Concourse'), children: [ TextSpan(text: '$label ', style: TextStyle(color: Colors.white70)), TextSpan(text: value), diff --git a/lib/widgets/fullscreen/info/metadata_section.dart b/lib/widgets/fullscreen/info/metadata_section.dart index eeee70e43..040c69807 100644 --- a/lib/widgets/fullscreen/info/metadata_section.dart +++ b/lib/widgets/fullscreen/info/metadata_section.dart @@ -56,7 +56,11 @@ class MetadataSectionState extends State { if (directoryName.isNotEmpty) Padding( padding: EdgeInsets.symmetric(vertical: 4.0), - child: Text(directoryName, style: TextStyle(fontSize: 18)), + child: Text(directoryName, + style: TextStyle( + fontSize: 18, + fontFamily: 'Concourse Caps', + )), ), ...tagKeys.map((tagKey) { final value = directory[tagKey] as String; diff --git a/lib/widgets/fullscreen/overlay_bottom.dart b/lib/widgets/fullscreen/overlay_bottom.dart index c019342b1..eb0018053 100644 --- a/lib/widgets/fullscreen/overlay_bottom.dart +++ b/lib/widgets/fullscreen/overlay_bottom.dart @@ -99,7 +99,7 @@ class _FullscreenBottomOverlayContent extends StatelessWidget { final subRowWidth = min(400.0, maxWidth); final date = entry.bestDate; return DefaultTextStyle( - style: TextStyle( + style: Theme.of(context).textTheme.body1.copyWith( shadows: [ Shadow( color: Colors.black87, diff --git a/pubspec.yaml b/pubspec.yaml index 2e0680899..9361f1e83 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -48,3 +48,11 @@ flutter: assets: - assets/ + + fonts: + - family: Concourse + fonts: + - asset: fonts/ConcourseT3-Regular.ttf + - family: Concourse Caps + fonts: + - asset: fonts/ConcourseC3-Regular.ttf