diff --git a/assets/fonts/InterDisplay-ExtraBold.ttf b/assets/fonts/InterDisplay-ExtraBold.ttf new file mode 100644 index 0000000..4ad8a62 Binary files /dev/null and b/assets/fonts/InterDisplay-ExtraBold.ttf differ diff --git a/assets/fonts/InterDisplay-Regular.ttf b/assets/fonts/InterDisplay-Regular.ttf new file mode 100644 index 0000000..956be38 Binary files /dev/null and b/assets/fonts/InterDisplay-Regular.ttf differ diff --git a/lib/screens/app_detail_screen.dart b/lib/screens/app_detail_screen.dart index a69b6d1..a650911 100644 --- a/lib/screens/app_detail_screen.dart +++ b/lib/screens/app_detail_screen.dart @@ -270,22 +270,78 @@ class _AppDetailContent extends HookConsumerWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(height: 12), - Text( - 'Latest release', - style: context.textTheme.headlineMedium?.copyWith( - fontWeight: FontWeight.bold, - ), - ), - const SizedBox(height: 8), Row( children: [ - VersionPillWidget( - app: app, - forceVersion: latestMetadata.version, + Expanded( + child: Container( + height: 1, + color: Theme.of( + context, + ).colorScheme.onSurface.withValues(alpha: 0.2), + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + ), + child: Text( + 'LATEST RELEASE', + style: context.textTheme.labelLarge?.copyWith( + color: Theme.of(context).colorScheme.onSurface + .withValues(alpha: 0.85), + letterSpacing: 1.5, + fontWeight: FontWeight.bold, + ), + ), + ), + Expanded( + child: Container( + height: 1, + color: Theme.of( + context, + ).colorScheme.onSurface.withValues(alpha: 0.2), + ), + ), + ], + ), + const SizedBox(height: 16), + Row( + children: [ + Text( + 'Version ', + style: context.textTheme.bodyMedium, + ), + ColorFiltered( + colorFilter: const ColorFilter.matrix([ + 0.2126, + 0.7152, + 0.0722, + 0, + 0, + 0.2126, + 0.7152, + 0.0722, + 0, + 0, + 0.2126, + 0.7152, + 0.0722, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + ]), + child: VersionPillWidget( + app: app, + forceVersion: latestMetadata.version, + ), ), const SizedBox(width: 12), Text( - formatDate(latestMetadata.createdAt), + '(${formatDate(latestMetadata.createdAt)})', style: context.textTheme.bodyMedium?.copyWith( color: Theme.of( context, diff --git a/lib/theme.dart b/lib/theme.dart index e7a234a..d8d795d 100644 --- a/lib/theme.dart +++ b/lib/theme.dart @@ -2,9 +2,12 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:skeletonizer/skeletonizer.dart'; -/// Font family used throughout the app +/// Base font family used for body text and UI elements const kFontFamily = 'Inter'; +/// Display and headline font family +const kHeadlineFontFamily = 'Inter Display'; + // Professional color constants (dark theme only) class AppColors { // Dark theme professional blues @@ -76,25 +79,25 @@ TextTheme _createProfessionalTextTheme() { return const TextTheme().copyWith( // Display styles - for main headings displayLarge: const TextStyle( - fontFamily: kFontFamily, - fontSize: 56, - fontWeight: FontWeight.w700, + fontFamily: kHeadlineFontFamily, + fontSize: 62, + fontWeight: FontWeight.w800, letterSpacing: -0.5, color: baseColor, height: 1.1, ), displayMedium: const TextStyle( - fontFamily: kFontFamily, - fontSize: 44, - fontWeight: FontWeight.w600, + fontFamily: kHeadlineFontFamily, + fontSize: 48, + fontWeight: FontWeight.w800, letterSpacing: -0.25, color: baseColor, height: 1.15, ), displaySmall: const TextStyle( - fontFamily: kFontFamily, - fontSize: 36, - fontWeight: FontWeight.w600, + fontFamily: kHeadlineFontFamily, + fontSize: 40, + fontWeight: FontWeight.w800, letterSpacing: 0, color: baseColor, height: 1.2, @@ -102,25 +105,25 @@ TextTheme _createProfessionalTextTheme() { // Headline styles - for section titles headlineLarge: const TextStyle( - fontFamily: kFontFamily, - fontSize: 32, - fontWeight: FontWeight.w600, + fontFamily: kHeadlineFontFamily, + fontSize: 35, + fontWeight: FontWeight.w800, letterSpacing: 0, color: baseColor, height: 1.25, ), headlineMedium: const TextStyle( - fontFamily: kFontFamily, - fontSize: 28, - fontWeight: FontWeight.w600, + fontFamily: kHeadlineFontFamily, + fontSize: 31, + fontWeight: FontWeight.w400, letterSpacing: 0.15, color: baseColor, height: 1.3, ), headlineSmall: const TextStyle( - fontFamily: kFontFamily, - fontSize: 24, - fontWeight: FontWeight.w600, + fontFamily: kHeadlineFontFamily, + fontSize: 26, + fontWeight: FontWeight.w400, letterSpacing: 0.15, color: baseColor, height: 1.35, @@ -128,25 +131,25 @@ TextTheme _createProfessionalTextTheme() { // Title styles - for card titles and prominent text titleLarge: const TextStyle( - fontFamily: kFontFamily, - fontSize: 22, - fontWeight: FontWeight.w600, + fontFamily: kHeadlineFontFamily, + fontSize: 24, + fontWeight: FontWeight.w400, letterSpacing: 0.1, color: baseColor, height: 1.4, ), titleMedium: const TextStyle( - fontFamily: kFontFamily, - fontSize: 18, - fontWeight: FontWeight.w600, + fontFamily: kHeadlineFontFamily, + fontSize: 20, + fontWeight: FontWeight.w400, letterSpacing: 0.15, color: baseColor, height: 1.45, ), titleSmall: const TextStyle( - fontFamily: kFontFamily, - fontSize: 16, - fontWeight: FontWeight.w500, + fontFamily: kHeadlineFontFamily, + fontSize: 18, + fontWeight: FontWeight.w400, letterSpacing: 0.15, color: baseColor, height: 1.45, @@ -338,9 +341,9 @@ final darkTheme = ThemeData( surfaceTintColor: Colors.transparent, foregroundColor: AppColors.darkOnSurface, titleTextStyle: TextStyle( - fontFamily: kFontFamily, - fontSize: 20, - fontWeight: FontWeight.w600, + fontFamily: kHeadlineFontFamily, + fontSize: 22, + fontWeight: FontWeight.w800, color: AppColors.darkOnSurface, letterSpacing: 0.1, ), diff --git a/lib/widgets/latest_releases_container.dart b/lib/widgets/latest_releases_container.dart index 7511fd5..b4067f2 100644 --- a/lib/widgets/latest_releases_container.dart +++ b/lib/widgets/latest_releases_container.dart @@ -68,7 +68,7 @@ class LatestReleasesContainer extends HookConsumerWidget { context, ).colorScheme.onSurface.withValues(alpha: 0.85), letterSpacing: 1.5, - fontWeight: FontWeight.w300, + fontWeight: FontWeight.bold, ), ), ), diff --git a/pubspec.yaml b/pubspec.yaml index be29e7d..4b0ded0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -120,6 +120,11 @@ flutter: weight: 300 - asset: assets/fonts/Inter-Italic.ttf style: italic + - family: Inter Display + fonts: + - asset: assets/fonts/InterDisplay-Regular.ttf + - asset: assets/fonts/InterDisplay-ExtraBold.ttf + weight: 800 flutter_launcher_icons: android: true