Repository: ParimSsme/furniture_shop_app
Pull request #3: Fix auth screen overflow issues with SingleChildScrollView
Author: login: Ibraheem-MuhammedAmeen
Created: 2025-05-17T06:34:07Z | Merged: 2025-05-22T15:04:38Z



Diff:
diff --git a/lib/presentation/pages/auth/login_page.dart b/lib/presentation/pages/auth/login_page.dart
index 595b4e3..75cfe7d 100644
--- a/lib/presentation/pages/auth/login_page.dart
+++ b/lib/presentation/pages/auth/login_page.dart
@@ -12,45 +12,46 @@ class LoginPage extends StatelessWidget {
     return Scaffold(
       resizeToAvoidBottomInset: true,
       body: SafeArea(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          crossAxisAlignment: CrossAxisAlignment.start,
-          children: [
-
-            Padding(
-              padding: const EdgeInsets.symmetric(horizontal: 25),
-              child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-
-                  /// Header
-                  Row(
+        child: SingleChildScrollView(
+          child: Padding(
+            padding: EdgeInsets.only(
+              top: MediaQuery.of(context).size.height * 0.1,
+            ),
+            child: Column(
+              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+              crossAxisAlignment: CrossAxisAlignment.start,
+              children: [
+                Padding(
+                  padding: const EdgeInsets.symmetric(horizontal: 25),
+                  child: Column(
+                    crossAxisAlignment: CrossAxisAlignment.start,
                     children: [
-                      const Expanded(child: Divider(thickness: 1.5)),
-                      Padding(
-                        padding: const EdgeInsets.symmetric(horizontal: 20),
-                        child: SvgPicture.asset(AppIconAssets.furniture),
+                      /// Header
+                      Row(
+                        children: [
+                          const Expanded(child: Divider(thickness: 1.5)),
+                          Padding(
+                            padding: const EdgeInsets.symmetric(horizontal: 20),
+                            child: SvgPicture.asset(AppIconAssets.furniture),
+                          ),
+                          const Expanded(child: Divider(thickness: 1.5)),
+                        ],
                       ),
-                      const Expanded(child: Divider(thickness: 1.5)),
-                    ],
-                  ),
-
-                  const SizedBox(height: 20),
 
-                  /// Greeting texts
-                  Text('Hello!', style: kGreyGelasioLargeTitleStyle),
-                  Text('WELCOME BACK', style: kBlackGelasioLargeTitleStyle),
+                      const SizedBox(height: 20),
 
-                ],
-              ),
+                      /// Greeting texts
+                      Text('Hello!', style: kGreyGelasioLargeTitleStyle),
+                      Text('WELCOME BACK', style: kBlackGelasioLargeTitleStyle),
+                    ],
+                  ),
+                ),
+                const LoginInputCard(),
+              ],
             ),
-
-            const LoginInputCard(),
-          ],
+          ),
         ),
       ),
     );
   }
 }
-
-
diff --git a/lib/presentation/pages/auth/signup_page.dart b/lib/presentation/pages/auth/signup_page.dart
index 278d07c..ebfa594 100644
--- a/lib/presentation/pages/auth/signup_page.dart
+++ b/lib/presentation/pages/auth/signup_page.dart
@@ -13,39 +13,41 @@ class SignUpPage extends StatelessWidget {
       resizeToAvoidBottomInset: true,
       extendBody: true,
       body: SafeArea(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          crossAxisAlignment: CrossAxisAlignment.start,
-          children: [
-
-            /// Header
-            Padding(
-              padding: const EdgeInsets.symmetric(horizontal: 25),
-              child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-                  Row(
+        child: SingleChildScrollView(
+          child: Padding(
+            padding: EdgeInsets.only(
+              top: MediaQuery.of(context).size.height * 0.1,
+            ),
+            child: Column(
+              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+              crossAxisAlignment: CrossAxisAlignment.start,
+              children: [
+                /// Header
+                Padding(
+                  padding: const EdgeInsets.symmetric(horizontal: 25),
+                  child: Column(
+                    crossAxisAlignment: CrossAxisAlignment.start,
                     children: [
-                      const Expanded(child: Divider(thickness: 1.5)),
-                      Padding(
-                        padding: const EdgeInsets.symmetric(horizontal: 20),
-                        child: SvgPicture.asset(AppIconAssets.furniture),
+                      Row(
+                        children: [
+                          const Expanded(child: Divider(thickness: 1.5)),
+                          Padding(
+                            padding: const EdgeInsets.symmetric(horizontal: 20),
+                            child: SvgPicture.asset(AppIconAssets.furniture),
+                          ),
+                          const Expanded(child: Divider(thickness: 1.5)),
+                        ],
                       ),
-                      const Expanded(child: Divider(thickness: 1.5)),
+                      const SizedBox(height: 25),
+                      Text('WELCOME', style: kBlackGelasioLargeTitleStyle),
                     ],
                   ),
+                ),
 
-                  const SizedBox(height: 25),
-
-                  Text('WELCOME', style: kBlackGelasioLargeTitleStyle),
-                ],
-              ),
+                const SignupInputCard(),
+              ],
             ),
-
-
-            const SignupInputCard(),
-
-          ],
+          ),
         ),
       ),
     );
diff --git a/lib/presentation/pages/auth/widgets/login_input_card.dart b/lib/presentation/pages/auth/widgets/login_input_card.dart
index b902257..27f1be8 100644
--- a/lib/presentation/pages/auth/widgets/login_input_card.dart
+++ b/lib/presentation/pages/auth/widgets/login_input_card.dart
@@ -13,60 +13,57 @@ class LoginInputCard extends StatelessWidget {
     final screenHeight = MediaQuery.of(context).size.height;
     final controller = LoginController.to;
 
-    return Flexible(
-      child: SizedBox(
-        height: screenHeight * 0.6,
-        child: AppCard(
-          padding: const EdgeInsets.fromLTRB(30, 10, 0, 10),
-          margin: const EdgeInsets.only(right: 30),
-          child: Column(
-            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-            crossAxisAlignment: CrossAxisAlignment.stretch,
-            children: [
-              AuthTextField(
-                controller: controller.emailController.value,
-                label: 'Email',
-                hint: 'Enter your email',
-
-              ),
-              Obx(
-                () => AuthTextField(
-                  controller: controller.passwordController.value,
-                  label: 'Password',
-                  hint: 'Enter your password',
-                  isPassword: controller.showPassword,
-                  suffix: IconButton(
-                    onPressed: controller.toggleShowPassword,
-                    icon: Icon(
-                      controller.showPassword
-                          ? Icons.remove_red_eye_outlined
-                          : Icons.visibility_off,
-                    ),
+    return SizedBox(
+      height: screenHeight * 0.6,
+      child: AppCard(
+        padding: const EdgeInsets.fromLTRB(30, 10, 0, 10),
+        margin: const EdgeInsets.only(right: 30),
+        child: Column(
+          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+          crossAxisAlignment: CrossAxisAlignment.stretch,
+          children: [
+            AuthTextField(
+              controller: controller.emailController.value,
+              label: 'Email',
+              hint: 'Enter your email',
+            ),
+            Obx(
+              () => AuthTextField(
+                controller: controller.passwordController.value,
+                label: 'Password',
+                hint: 'Enter your password',
+                isPassword: controller.showPassword,
+                suffix: IconButton(
+                  onPressed: controller.toggleShowPassword,
+                  icon: Icon(
+                    controller.showPassword
+                        ? Icons.remove_red_eye_outlined
+                        : Icons.visibility_off,
                   ),
                 ),
               ),
-              Padding(
-                padding: const EdgeInsets.only(right: 30),
-                child: Column(
-                  crossAxisAlignment: CrossAxisAlignment.stretch,
-                  children: [
-                    TextButton(
-                      onPressed: () {},
-                      child: const Text('Forgot Password'),
-                    ),
-                    AppContainedTextButton(
-                      text: 'Log in',
-                      onPressed: controller.login,
-                    ),
-                    TextButton(
-                      onPressed: controller.signUp,
-                      child: const Text('SIGN UP'),
-                    ),
-                  ],
-                ),
-              )
-            ],
-          ),
+            ),
+            Padding(
+              padding: const EdgeInsets.only(right: 30),
+              child: Column(
+                crossAxisAlignment: CrossAxisAlignment.stretch,
+                children: [
+                  TextButton(
+                    onPressed: () {},
+                    child: const Text('Forgot Password'),
+                  ),
+                  AppContainedTextButton(
+                    text: 'Log in',
+                    onPressed: controller.login,
+                  ),
+                  TextButton(
+                    onPressed: controller.signUp,
+                    child: const Text('SIGN UP'),
+                  ),
+                ],
+              ),
+            )
+          ],
         ),
       ),
     );
diff --git a/lib/presentation/pages/auth/widgets/signup_input_card.dart b/lib/presentation/pages/auth/widgets/signup_input_card.dart
index 06264ce..1ff0cfa 100644
--- a/lib/presentation/pages/auth/widgets/signup_input_card.dart
+++ b/lib/presentation/pages/auth/widgets/signup_input_card.dart
@@ -11,89 +11,86 @@ class SignupInputCard extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-
     final screenHeight = MediaQuery.of(context).size.height;
     final controller = SignUpController.to;
 
-    return Flexible(
-      child: SizedBox(
-        height: screenHeight * 0.7,
-        child: AppCard(
-          padding: const EdgeInsets.fromLTRB(30, 10, 0, 10),
-          margin: const EdgeInsets.only(right: 30),
-          child: Column(
-            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-            crossAxisAlignment: CrossAxisAlignment.stretch,
-            children: [
-              AuthTextField(
-                controller: controller.nameController.value,
-                label: 'Name',
-                hint: 'Enter your name',
-              ),
-              AuthTextField(
-                controller: controller.emailController.value,
-                label: 'Email',
-                hint: 'Enter your email',
-              ),
-              Obx(
-                () => AuthTextField(
-                  controller: controller.passwordController.value,
-                  label: 'Password',
-                  hint: 'Enter your password',
-                  isPassword: controller.showPassword,
-                  suffix: IconButton(
-                    onPressed: controller.toggleShowPassword,
-                    icon: Icon(
-                      controller.showPassword
-                          ? Icons.remove_red_eye_outlined
-                          : Icons.visibility_off,
-                    ),
+    return SizedBox(
+      height: screenHeight * 0.7,
+      child: AppCard(
+        padding: const EdgeInsets.fromLTRB(30, 10, 0, 10),
+        margin: const EdgeInsets.only(right: 30),
+        child: Column(
+          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+          crossAxisAlignment: CrossAxisAlignment.stretch,
+          children: [
+            AuthTextField(
+              controller: controller.nameController.value,
+              label: 'Name',
+              hint: 'Enter your name',
+            ),
+            AuthTextField(
+              controller: controller.emailController.value,
+              label: 'Email',
+              hint: 'Enter your email',
+            ),
+            Obx(
+              () => AuthTextField(
+                controller: controller.passwordController.value,
+                label: 'Password',
+                hint: 'Enter your password',
+                isPassword: controller.showPassword,
+                suffix: IconButton(
+                  onPressed: controller.toggleShowPassword,
+                  icon: Icon(
+                    controller.showPassword
+                        ? Icons.remove_red_eye_outlined
+                        : Icons.visibility_off,
                   ),
                 ),
               ),
-              Obx(
-                () => AuthTextField(
-                  controller: controller.confirmPasswordController.value,
-                  label: 'Confirm Password',
-                  hint: 'Enter your confirm password',
-                  isPassword: controller.showConfirmPassword,
-                  suffix: IconButton(
-                    onPressed: controller.toggleShowConfirmPassword,
-                    icon: Icon(
-                      controller.showConfirmPassword
-                          ? Icons.remove_red_eye_outlined
-                          : Icons.visibility_off,
-                    ),
+            ),
+            Obx(
+              () => AuthTextField(
+                controller: controller.confirmPasswordController.value,
+                label: 'Confirm Password',
+                hint: 'Enter your confirm password',
+                isPassword: controller.showConfirmPassword,
+                suffix: IconButton(
+                  onPressed: controller.toggleShowConfirmPassword,
+                  icon: Icon(
+                    controller.showConfirmPassword
+                        ? Icons.remove_red_eye_outlined
+                        : Icons.visibility_off,
                   ),
                 ),
               ),
-              AppContainedTextButton(
-                text: 'SIGN UP',
-                onPressed: controller.signUp,
-              ),
-              Row(
-                mainAxisAlignment: MainAxisAlignment.center,
-                children: [
-                  Text(
-                    'Already have account?',
-                    style: kGreyNunitoSmallTitleStyle.copyWith(
-                      fontWeight: FontWeight.w500,
-                    ),
+            ),
+            AppContainedTextButton(
+              text: 'SIGN UP',
+              onPressed: controller.signUp,
+            ),
+            Row(
+              mainAxisAlignment: MainAxisAlignment.center,
+              children: [
+                Text(
+                  'Already have account?',
+                  style: kGreyNunitoSmallTitleStyle.copyWith(
+                    fontWeight: FontWeight.w500,
                   ),
-                  TextButton(
-                    onPressed: controller.login,
-                    style: TextButton.styleFrom(
-                      textStyle: kTextButtonStyle.copyWith(
-                        fontWeight: FontWeight.w500,
-                      ),
-                      padding: const EdgeInsets.symmetric(horizontal: 5),
+                ),
+                TextButton(
+                  onPressed: controller.login,
+                  style: TextButton.styleFrom(
+                    textStyle: kTextButtonStyle.copyWith(
+                      fontWeight: FontWeight.w500,
                     ),
-                    child: const Text('SIGN IN'),
+                    padding: const EdgeInsets.symmetric(horizontal: 5),
                   ),
-                ],
-              ),
-            ],
-          ),
+                  child: const Text('SIGN IN'),
+                ),
+              ],
+            ),
+          ],
         ),
       ),
     );


Reviews:
user: login: ParimSsme
state: COMMENTED
author_association: OWNER
submitted_at: 2025-05-21T14:43:12Z
user: login: ParimSsme
state: COMMENTED
author_association: OWNER
submitted_at: 2025-05-21T14:49:30Z
user: login: Ibraheem-MuhammedAmeen
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-21T20:27:04Z
user: login: ParimSsme
state: COMMENTED
author_association: OWNER
submitted_at: 2025-05-22T03:35:23Z
user: login: Ibraheem-MuhammedAmeen
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-22T09:07:56Z
user: login: Ibraheem-MuhammedAmeen
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-22T09:21:42Z
user: login: ParimSsme
state: APPROVED
author_association: OWNER
submitted_at: 2025-05-22T15:04:26Z

Review comments:
diff_hunk: @@ -11,46 +11,43 @@ class LoginPage extends StatelessWidget {
   Widget build(BuildContext context) {
     return Scaffold(
       resizeToAvoidBottomInset: true,
-      body: SafeArea(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          crossAxisAlignment: CrossAxisAlignment.start,
-          children: [
-
-            Padding(
-              padding: const EdgeInsets.symmetric(horizontal: 25),
-              child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-
-                  /// Header
-                  Row(
-                    children: [
-                      const Expanded(child: Divider(thickness: 1.5)),
-                      Padding(
-                        padding: const EdgeInsets.symmetric(horizontal: 20),
-                        child: SvgPicture.asset(AppIconAssets.furniture),
-                      ),
-                      const Expanded(child: Divider(thickness: 1.5)),
-                    ],
-                  ),
-
-                  const SizedBox(height: 20),
-
-                  /// Greeting texts
-                  Text('Hello!', style: kGreyGelasioLargeTitleStyle),
-                  Text('WELCOME BACK', style: kBlackGelasioLargeTitleStyle),
-
-                ],
+      body: SingleChildScrollView(
path: lib/presentation/pages/auth/login_page.dart
user: login: ParimSsme
body: Please use SingleChildScrollView inside SafeArea
created_at: 2025-05-21T14:43:11Z
author_association: OWNER
diff_hunk: @@ -11,46 +11,43 @@ class LoginPage extends StatelessWidget {
   Widget build(BuildContext context) {
     return Scaffold(
       resizeToAvoidBottomInset: true,
-      body: SafeArea(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          crossAxisAlignment: CrossAxisAlignment.start,
-          children: [
-
-            Padding(
-              padding: const EdgeInsets.symmetric(horizontal: 25),
-              child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-
-                  /// Header
-                  Row(
-                    children: [
-                      const Expanded(child: Divider(thickness: 1.5)),
-                      Padding(
-                        padding: const EdgeInsets.symmetric(horizontal: 20),
-                        child: SvgPicture.asset(AppIconAssets.furniture),
-                      ),
-                      const Expanded(child: Divider(thickness: 1.5)),
-                    ],
-                  ),
-
-                  const SizedBox(height: 20),
-
-                  /// Greeting texts
-                  Text('Hello!', style: kGreyGelasioLargeTitleStyle),
-                  Text('WELCOME BACK', style: kBlackGelasioLargeTitleStyle),
-
-                ],
+      body: SingleChildScrollView(
+        child: Padding(
+          padding: const EdgeInsets.only(top: 75, right: 10, left: 10),
path: lib/presentation/pages/auth/login_page.dart
user: login: ParimSsme
body: Padding with static values is not a reliable approach because the status bar height varies across different devices. A hardcoded value might work on some screens but can cause layout issues on others, especially on devices with notches or different screen densities.

The recommended and more flexible solution is to use the SafeArea widget, which automatically adds padding to avoid system UI intrusions like the status bar, notch, and navigation bar — ensuring consistent layout across all devices.
created_at: 2025-05-21T14:49:30Z
author_association: OWNER
diff_hunk: @@ -11,46 +11,43 @@ class LoginPage extends StatelessWidget {
   Widget build(BuildContext context) {
     return Scaffold(
       resizeToAvoidBottomInset: true,
-      body: SafeArea(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          crossAxisAlignment: CrossAxisAlignment.start,
-          children: [
-
-            Padding(
-              padding: const EdgeInsets.symmetric(horizontal: 25),
-              child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-
-                  /// Header
-                  Row(
-                    children: [
-                      const Expanded(child: Divider(thickness: 1.5)),
-                      Padding(
-                        padding: const EdgeInsets.symmetric(horizontal: 20),
-                        child: SvgPicture.asset(AppIconAssets.furniture),
-                      ),
-                      const Expanded(child: Divider(thickness: 1.5)),
-                    ],
-                  ),
-
-                  const SizedBox(height: 20),
-
-                  /// Greeting texts
-                  Text('Hello!', style: kGreyGelasioLargeTitleStyle),
-                  Text('WELCOME BACK', style: kBlackGelasioLargeTitleStyle),
-
-                ],
+      body: SingleChildScrollView(
+        child: Padding(
+          padding: const EdgeInsets.only(top: 75, right: 10, left: 10),
path: lib/presentation/pages/auth/login_page.dart
user: login: Ibraheem-MuhammedAmeen
body: Okay, thanks! What if I wrap the static padding with a SafeArea?
created_at: 2025-05-21T20:27:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -11,46 +11,43 @@ class LoginPage extends StatelessWidget {
   Widget build(BuildContext context) {
     return Scaffold(
       resizeToAvoidBottomInset: true,
-      body: SafeArea(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          crossAxisAlignment: CrossAxisAlignment.start,
-          children: [
-
-            Padding(
-              padding: const EdgeInsets.symmetric(horizontal: 25),
-              child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-
-                  /// Header
-                  Row(
-                    children: [
-                      const Expanded(child: Divider(thickness: 1.5)),
-                      Padding(
-                        padding: const EdgeInsets.symmetric(horizontal: 20),
-                        child: SvgPicture.asset(AppIconAssets.furniture),
-                      ),
-                      const Expanded(child: Divider(thickness: 1.5)),
-                    ],
-                  ),
-
-                  const SizedBox(height: 20),
-
-                  /// Greeting texts
-                  Text('Hello!', style: kGreyGelasioLargeTitleStyle),
-                  Text('WELCOME BACK', style: kBlackGelasioLargeTitleStyle),
-
-                ],
+      body: SingleChildScrollView(
+        child: Padding(
+          padding: const EdgeInsets.only(top: 75, right: 10, left: 10),
path: lib/presentation/pages/auth/login_page.dart
user: login: ParimSsme
body: @Ibraheem-MuhammedAmeen When using the SafeArea widget in Flutter, there's no need to apply static padding manually, as SafeArea automatically accounts for device-specific areas like the status bar, notches, and navigation bars.
Thank you so much for your help.
created_at: 2025-05-22T03:35:23Z
author_association: OWNER
diff_hunk: @@ -11,46 +11,43 @@ class LoginPage extends StatelessWidget {
   Widget build(BuildContext context) {
     return Scaffold(
       resizeToAvoidBottomInset: true,
-      body: SafeArea(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          crossAxisAlignment: CrossAxisAlignment.start,
-          children: [
-
-            Padding(
-              padding: const EdgeInsets.symmetric(horizontal: 25),
-              child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-
-                  /// Header
-                  Row(
-                    children: [
-                      const Expanded(child: Divider(thickness: 1.5)),
-                      Padding(
-                        padding: const EdgeInsets.symmetric(horizontal: 20),
-                        child: SvgPicture.asset(AppIconAssets.furniture),
-                      ),
-                      const Expanded(child: Divider(thickness: 1.5)),
-                    ],
-                  ),
-
-                  const SizedBox(height: 20),
-
-                  /// Greeting texts
-                  Text('Hello!', style: kGreyGelasioLargeTitleStyle),
-                  Text('WELCOME BACK', style: kBlackGelasioLargeTitleStyle),
-
-                ],
+      body: SingleChildScrollView(
+        child: Padding(
+          padding: const EdgeInsets.only(top: 75, right: 10, left: 10),
path: lib/presentation/pages/auth/login_page.dart
user: login: Ibraheem-MuhammedAmeen
body: ok let me correct that
created_at: 2025-05-22T09:07:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -11,46 +11,43 @@ class LoginPage extends StatelessWidget {
   Widget build(BuildContext context) {
     return Scaffold(
       resizeToAvoidBottomInset: true,
-      body: SafeArea(
-        child: Column(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          crossAxisAlignment: CrossAxisAlignment.start,
-          children: [
-
-            Padding(
-              padding: const EdgeInsets.symmetric(horizontal: 25),
-              child: Column(
-                crossAxisAlignment: CrossAxisAlignment.start,
-                children: [
-
-                  /// Header
-                  Row(
-                    children: [
-                      const Expanded(child: Divider(thickness: 1.5)),
-                      Padding(
-                        padding: const EdgeInsets.symmetric(horizontal: 20),
-                        child: SvgPicture.asset(AppIconAssets.furniture),
-                      ),
-                      const Expanded(child: Divider(thickness: 1.5)),
-                    ],
-                  ),
-
-                  const SizedBox(height: 20),
-
-                  /// Greeting texts
-                  Text('Hello!', style: kGreyGelasioLargeTitleStyle),
-                  Text('WELCOME BACK', style: kBlackGelasioLargeTitleStyle),
-
-                ],
+      body: SingleChildScrollView(
+        child: Padding(
+          padding: const EdgeInsets.only(top: 75, right: 10, left: 10),
path: lib/presentation/pages/auth/login_page.dart
user: login: Ibraheem-MuhammedAmeen
body: I meant something like this — it adds more space within the safe zone if the default SafeArea padding isn't enough for you.
SafeArea(
  child: Padding(
    padding: EdgeInsets.all(20), // Your design spacing
    child: SingleChildScrollView(
      child: Column(
        ...
      ),
    ),
  ),
)

created_at: 2025-05-22T09:21:42Z
author_association: CONTRIBUTOR

PR comments:
user: login: Ibraheem-MuhammedAmeen
created_at: 2025-05-17T06:36:05Z
body: Sorry for the delay! 🙏
I’ve cleaned up the PR — it now only includes the 4 files you mentioned:

lib/presentation/pages/auth/login_page.dart

lib/presentation/pages/auth/signup_page.dart

lib/presentation/pages/auth/widgets/login_input_card.dart

lib/presentation/pages/auth/widgets/signup_input_card.dart

Thanks again for the guidance — really appreciate your help! 😊
author_association: CONTRIBUTOR
user: login: Ibraheem-MuhammedAmeen
created_at: 2025-05-17T06:38:05Z
body: If there are any similar tasks or improvements needed in the future, I’d be glad to help.
author_association: CONTRIBUTOR
user: login: ParimSsme
created_at: 2025-05-20T05:16:29Z
body: @Ibraheem-MuhammedAmeen I am very sorry for the delay, I am very busy, I will merge this by tomorrow, please accept my apologies for the delay again.
author_association: OWNER
user: login: Ibraheem-MuhammedAmeen
created_at: 2025-05-20T16:21:05Z
body: no p
author_association: CONTRIBUTOR
user: login: Ibraheem-MuhammedAmeen
created_at: 2025-05-22T10:18:00Z
body: Hey, I've updated the LoginPage by wrapping the layout in SafeArea and using SingleChildScrollView inside it. Let me know if there’s anything else I should improve. Thanks for the guidance!
author_association: CONTRIBUTOR
user: login: Ibraheem-MuhammedAmeen
created_at: 2025-05-22T21:25:01Z
body: Thanks a lot — I’ve learned so much from this experience, and I’d love to contribute more if there’s anything else I can help with.
author_association: CONTRIBUTOR