diff --git a/lib/core/theme/app_theme.dart b/lib/core/theme/app_theme.dart index efa75dd..737af08 100644 --- a/lib/core/theme/app_theme.dart +++ b/lib/core/theme/app_theme.dart @@ -31,7 +31,12 @@ class AppTheme { // ============ ANIMATION ============ static const Duration durationFast = Duration(milliseconds: 200); static const Duration durationNormal = Duration(milliseconds: 300); + static const Duration durationSm = Duration(milliseconds: 200); + static const Duration durationMd = Duration(milliseconds: 300); + static const Duration durationLg = Duration(milliseconds: 400); + static const Duration durationXl = Duration(milliseconds: 500); static const Curve curveDefault = Curves.fastOutSlowIn; + static const Curve curveSmooth = Curves.fastOutSlowIn; // ============ TYPOGRAPHY HELPERS ============ static TextStyle _spaceGrotesk({ diff --git a/lib/features/admin/screens/admin_panel.dart b/lib/features/admin/screens/admin_panel.dart index 9b04af7..182e3d9 100644 --- a/lib/features/admin/screens/admin_panel.dart +++ b/lib/features/admin/screens/admin_panel.dart @@ -558,7 +558,7 @@ class _UsersTab extends ConsumerWidget { .withOpacity(0.2), borderRadius: BorderRadius.circular(50), ), - child: const Text( + child: Text( 'ADMIN', style: TextStyle( fontSize: 10, diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index 8b22480..4aaad94 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -163,11 +163,10 @@ class _LoginScreenState extends ConsumerState { const SizedBox(height: 48), // Login Form Container - GlassContainer( + GlassContainer.floating( width: 500, padding: const EdgeInsets.all(48), // Spacious padding borderRadius: 24, - opacity: 0.7, child: Form( key: _formKey, child: Column( @@ -332,7 +331,7 @@ class _LoginScreenState extends ConsumerState { ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), - borderSide: const BorderSide(color: AppColors.focusColor, width: 2), + borderSide: BorderSide(color: AppColors.focusColor, width: 2), ), contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 20), diff --git a/lib/features/iptv/services/subtitle_service.dart b/lib/features/iptv/services/subtitle_service.dart index 5bc5cee..678ce70 100644 --- a/lib/features/iptv/services/subtitle_service.dart +++ b/lib/features/iptv/services/subtitle_service.dart @@ -170,7 +170,7 @@ class SubtitleService { final minutes = int.parse(parts[1]); final secondsParts = parts[2].split('.'); final seconds = int.parse(secondsParts[0]); - final milliseconds = int.parse(secondsParts[1].padEnd(3, '0')); + final milliseconds = int.parse(secondsParts[1].padRight(3, '0')); return Duration( hours: hours, diff --git a/lib/features/iptv/widgets/live_tv_tab.dart b/lib/features/iptv/widgets/live_tv_tab.dart index 105e7ea..f5ee70e 100644 --- a/lib/features/iptv/widgets/live_tv_tab.dart +++ b/lib/features/iptv/widgets/live_tv_tab.dart @@ -99,9 +99,8 @@ class _LiveTVTabState extends ConsumerState // HEADER (Glass) Padding( padding: const EdgeInsets.fromLTRB(24, 16, 24, 16), - child: GlassContainer( + child: GlassContainer.glass( borderRadius: 16, - opacity: 0.6, padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), child: Row( @@ -288,9 +287,8 @@ class _LiveTVTabState extends ConsumerState }); }, borderRadius: 16, - child: GlassContainer( + child: GlassContainer.base( borderRadius: 16, - opacity: 0.2, // Darker glass padding: const EdgeInsets.all(0), child: Stack( children: [ diff --git a/lib/mobile/features/iptv/widgets/mobile_live_tv_tab.dart b/lib/mobile/features/iptv/widgets/mobile_live_tv_tab.dart index 7040f25..3fa5d45 100644 --- a/lib/mobile/features/iptv/widgets/mobile_live_tv_tab.dart +++ b/lib/mobile/features/iptv/widgets/mobile_live_tv_tab.dart @@ -144,9 +144,8 @@ class _MobileLiveTVTabState extends ConsumerState { // Header & Search Padding( padding: const EdgeInsets.all(16), - child: GlassContainer( + child: GlassContainer.glass( borderRadius: 16, - opacity: 0.1, padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), child: Row( @@ -352,9 +351,8 @@ class _MobileChannelTile extends StatelessWidget { ? '/api/xtream/${channel.streamIcon}' : null; - return GlassContainer( + return GlassContainer.glass( borderRadius: 12, - opacity: 0.15, padding: EdgeInsets.zero, child: InkWell( onTap: onTap, diff --git a/lib/mobile/widgets/mobile_scaffold.dart b/lib/mobile/widgets/mobile_scaffold.dart index 97d34b8..393fa69 100644 --- a/lib/mobile/widgets/mobile_scaffold.dart +++ b/lib/mobile/widgets/mobile_scaffold.dart @@ -42,7 +42,7 @@ class MobileScaffold extends ConsumerWidget { ], ), bottomNavigationBar: Container( - decoration: const BoxDecoration( + decoration: BoxDecoration( color: AppColors.surface, border: Border( top: BorderSide(