From 6bde8630d8e6646aacb36786eb3ad997c1ac4429 Mon Sep 17 00:00:00 2001 From: Marc Rejohn Castillano Date: Sat, 26 Sep 2026 16:28:01 +0800 Subject: [PATCH] UI Phase 2 (L8): unify Profile section headers with AppSectionHeader The Profile screen's card section titles used plain bold titleMedium text, inconsistent with the cyber accent-bar section headers elsewhere. Convert "Profile Photo", "Face Verification", "Account details", "Password" and "Offices" to AppSectionHeader so they read the same as the rest of the app. Verified: flutter analyze lib clean; flutter build web green; visual QA (Profile) in dark. Co-Authored-By: claude-flow --- lib/screens/profile/profile_screen.dart | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/screens/profile/profile_screen.dart b/lib/screens/profile/profile_screen.dart index b740430c..626fc573 100644 --- a/lib/screens/profile/profile_screen.dart +++ b/lib/screens/profile/profile_screen.dart @@ -14,6 +14,7 @@ import '../../widgets/face_verification_overlay.dart'; import '../../widgets/multi_select_picker.dart'; import '../../widgets/qr_verification_dialog.dart'; import '../../widgets/app_page_header.dart'; +import '../../widgets/app_section_header.dart'; import '../../widgets/responsive_body.dart'; import '../../utils/snackbar.dart'; @@ -102,10 +103,7 @@ class _ProfileScreenState extends ConsumerState { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - 'Account details', - style: Theme.of(context).textTheme.titleMedium, - ), + const AppSectionHeader('Account details', padding: EdgeInsets.zero), const SizedBox(height: 12), // Email (read-only) TextFormField( @@ -151,10 +149,7 @@ class _ProfileScreenState extends ConsumerState { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - 'Password', - style: Theme.of(context).textTheme.titleMedium, - ), + const AppSectionHeader('Password', padding: EdgeInsets.zero), const SizedBox(height: 8), const Text( 'Set or change your password. OAuth users (Google/Meta) can set a password here.', @@ -224,10 +219,7 @@ class _ProfileScreenState extends ConsumerState { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - 'Offices', - style: Theme.of(context).textTheme.titleMedium, - ), + const AppSectionHeader('Offices', padding: EdgeInsets.zero), const SizedBox(height: 12), officesAsync.when( data: (offices) { @@ -286,7 +278,7 @@ class _ProfileScreenState extends ConsumerState { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text('Profile Photo', style: theme.textTheme.titleMedium), + const AppSectionHeader('Profile Photo', padding: EdgeInsets.zero), const SizedBox(height: 16), Center( child: Stack( @@ -359,7 +351,7 @@ class _ProfileScreenState extends ConsumerState { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text('Face Verification', style: theme.textTheme.titleMedium), + const AppSectionHeader('Face Verification', padding: EdgeInsets.zero), const SizedBox(height: 8), Text( 'Enroll your face for attendance verification. '