feat: introduce Apple TV-style color palette and mobile IPTV settings tab

This commit is contained in:
Michael committed 2025-12-11 23:23:42 +01:00
1 parent 426e763742
commit c791631b09
4 files changed
+25 -25

No files matched your search

+20 -20
View File
@@ -26,40 +26,40 @@ class MobileTheme {
return baseTheme.copyWith(
colorScheme: AppColors.darkColorScheme,
scaffoldBackgroundColor: AppColors.background,
scaffoldBackgroundColor: Colors.black, // Enforce Pure Black
// Typography: Scaled down for mobile
textTheme: TextTheme(
displayLarge: GoogleFonts.inter(fontSize: 32, fontWeight: FontWeight.w700, letterSpacing: -1.0, color: AppColors.textPrimary),
displayMedium: GoogleFonts.inter(fontSize: 28, fontWeight: FontWeight.w700, letterSpacing: -0.5, color: AppColors.textPrimary),
displaySmall: GoogleFonts.inter(fontSize: 24, fontWeight: FontWeight.w600, color: AppColors.textPrimary),
headlineMedium: GoogleFonts.inter(fontSize: 20, fontWeight: FontWeight.w600, color: AppColors.textPrimary),
titleLarge: GoogleFonts.inter(fontSize: 18, fontWeight: FontWeight.w600, color: AppColors.textPrimary),
titleMedium: GoogleFonts.inter(fontSize: 16, fontWeight: FontWeight.w600, color: AppColors.textPrimary),
bodyLarge: GoogleFonts.inter(fontSize: 14, fontWeight: FontWeight.w400, color: AppColors.textSecondary),
bodyMedium: GoogleFonts.inter(fontSize: 12, fontWeight: FontWeight.w400, color: AppColors.textSecondary),
labelLarge: GoogleFonts.inter(fontSize: 12, fontWeight: FontWeight.w600, color: AppColors.textPrimary),
displayLarge: GoogleFonts.inter(fontSize: 32, fontWeight: FontWeight.w700, letterSpacing: -1.0, color: Colors.white),
displayMedium: GoogleFonts.inter(fontSize: 28, fontWeight: FontWeight.w700, letterSpacing: -0.5, color: Colors.white),
displaySmall: GoogleFonts.inter(fontSize: 24, fontWeight: FontWeight.w600, color: Colors.white),
headlineMedium: GoogleFonts.inter(fontSize: 20, fontWeight: FontWeight.w600, color: Colors.white),
titleLarge: GoogleFonts.inter(fontSize: 18, fontWeight: FontWeight.w600, color: Colors.white),
titleMedium: GoogleFonts.inter(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white),
bodyLarge: GoogleFonts.inter(fontSize: 14, fontWeight: FontWeight.w400, color: const Color(0xFF9E9E9E)),
bodyMedium: GoogleFonts.inter(fontSize: 12, fontWeight: FontWeight.w400, color: const Color(0xFF9E9E9E)),
labelLarge: GoogleFonts.inter(fontSize: 12, fontWeight: FontWeight.w600, color: Colors.white),
),
// AppBar: Transparent / Glass
appBarTheme: AppBarTheme(
backgroundColor: AppColors.surface.withOpacity(0.8), // Slight background for mobile
foregroundColor: AppColors.textPrimary,
backgroundColor: Colors.transparent, // Fully transparent for gradient overlay
foregroundColor: Colors.white,
elevation: 0,
centerTitle: true,
scrolledUnderElevation: 0,
titleTextStyle: GoogleFonts.inter(
fontSize: 16,
fontWeight: FontWeight.w600,
color: AppColors.textPrimary,
color: Colors.white,
),
),
// Bottom Navigation Bar
bottomNavigationBarTheme: BottomNavigationBarThemeData(
backgroundColor: AppColors.surface.withOpacity(0.9),
selectedItemColor: AppColors.primary,
unselectedItemColor: AppColors.textSecondary,
backgroundColor: const Color(0xFF1C1C1E).withOpacity(0.95), // Darker surface
selectedItemColor: Colors.white,
unselectedItemColor: const Color(0xFF9E9E9E),
selectedLabelStyle: GoogleFonts.inter(fontSize: 10, fontWeight: FontWeight.w600),
unselectedLabelStyle: GoogleFonts.inter(fontSize: 10, fontWeight: FontWeight.w500),
type: BottomNavigationBarType.fixed,
@@ -69,7 +69,7 @@ class MobileTheme {
// Inputs
inputDecorationTheme: InputDecorationTheme(
filled: true,
fillColor: AppColors.surface,
fillColor: const Color(0xFF1C1C1E), // Dark Grey Surface
contentPadding: const EdgeInsets.symmetric(horizontal: spacing16, vertical: spacing12),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(radiusMd),
@@ -81,15 +81,15 @@ class MobileTheme {
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(radiusMd),
borderSide: const BorderSide(color: AppColors.focusColor, width: 2),
borderSide: const BorderSide(color: Colors.white, width: 1), // White border focus
),
hintStyle: GoogleFonts.inter(color: AppColors.textTertiary, fontSize: 14),
hintStyle: GoogleFonts.inter(color: const Color(0xFF616161), fontSize: 14),
),
// Buttons
filledButtonTheme: FilledButtonThemeData(
style: FilledButton.styleFrom(
backgroundColor: AppColors.focusColor,
backgroundColor: Colors.white, // White buttons
foregroundColor: Colors.black,
elevation: 0,
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),