diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000..fe9b147 Binary files /dev/null and b/assets/logo.png differ diff --git a/lib/ui/screens/home_shell.dart b/lib/ui/screens/home_shell.dart index 30fd1db..709c7e9 100644 --- a/lib/ui/screens/home_shell.dart +++ b/lib/ui/screens/home_shell.dart @@ -5,7 +5,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../l10n/app_localizations_ext.dart'; import '../widgets/status_bar.dart'; import 'account_screen.dart'; -import 'placeholder_screen.dart'; import 'receive_screen.dart'; import 'send_screen.dart'; import 'settings_screen.dart'; @@ -40,10 +39,17 @@ class _HomeShellState extends ConsumerState { body: Row( children: [ NavigationRail( + minWidth: 88, + minExtendedWidth: 232, + extended: true, selectedIndex: _selectedIndex, onDestinationSelected: (index) => setState(() => _selectedIndex = index), - labelType: NavigationRailLabelType.all, + labelType: NavigationRailLabelType.none, + leading: const Padding( + padding: EdgeInsets.fromLTRB(18, 18, 18, 10), + child: _BrandHeader(), + ), destinations: [ NavigationRailDestination( icon: const Icon(Symbols.account_box), @@ -67,9 +73,9 @@ class _HomeShellState extends ConsumerState { icon: const Icon(Symbols.settings), label: Text(l10n.settingsTitle)), ], - trailing: Padding( - padding: const EdgeInsets.all(12), - child: const StatusBar(), + trailing: const Padding( + padding: EdgeInsets.all(12), + child: StatusBar(), ), ), const VerticalDivider(width: 1), @@ -79,3 +85,71 @@ class _HomeShellState extends ConsumerState { ); } } + +class _BrandHeader extends StatelessWidget { + const _BrandHeader(); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 12), + decoration: BoxDecoration( + color: const Color(0x18FFFFFF), + borderRadius: BorderRadius.circular(22), + border: Border.all(color: const Color(0x1F88FFE1)), + ), + child: Row( + children: [ + Container( + width: 44, + height: 44, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(14), + gradient: const LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0x2200FFF0), + Color(0x12000000), + ], + ), + ), + child: Padding( + padding: const EdgeInsets.all(4), + child: Image.asset('assets/logo.png'), + ), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + 'Peya Wallet', + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w700, + letterSpacing: 0.2, + ), + ), + const SizedBox(height: 2), + Text( + 'Desktop', + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.bodySmall?.copyWith( + color: theme.colorScheme.onSurfaceVariant, + letterSpacing: 0.4, + ), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 7286319..030a2d6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -40,4 +40,5 @@ flutter: uses-material-design: true generate: true assets: + - assets/logo.png - assets/tray.png