Skip to content

update login page#736

Open
ArshiBansal wants to merge 1 commit into
GitMetricsLab:mainfrom
ArshiBansal:login_page
Open

update login page#736
ArshiBansal wants to merge 1 commit into
GitMetricsLab:mainfrom
ArshiBansal:login_page

Conversation

@ArshiBansal

@ArshiBansal ArshiBansal commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Related Issue


Description

Updated the Login page to align with the application's dark GitHubTracker branding and improve overall usability, accessibility, and visual consistency.

Changes made:

  • Replaced the purple gradient background with the application's standard dark navy theme.
  • Added subtle grid and glow effects to match the landing page design.
  • Redesigned the authentication card with improved contrast, glassmorphism styling, and clearer separation from the background.
  • Improved input field visibility with stronger borders, enhanced placeholder contrast, and clearer focus states.
  • Updated the primary Sign In button to use GitHubTracker's blue/cyan branding.
  • Added a Forgot Password? link below the password field.
  • Improved visibility of the Sign Up link.
  • Refined typography, spacing, and padding for better visual hierarchy.
  • Adjusted card positioning for improved page balance.
  • Added supporting product messaging to communicate the platform's purpose and value proposition.

These changes create a more cohesive authentication experience that matches the application's homepage and overall design system.


How Has This Been Tested?

  • Verified login form rendering in both dark and light themes.
  • Tested email and password input interactions.
  • Confirmed focus states and hover states are visible and accessible.
  • Verified successful login navigation flow.
  • Verified error message handling for invalid login attempts.
  • Checked responsive layout behavior across desktop and mobile viewport sizes.
  • Confirmed navigation links for Sign Up and Forgot Password render correctly.

Screenshots (if applicable)


Type of Change

  • Bug fix
  • New feature
  • Code style update
  • Breaking change
  • Documentation update

Summary by CodeRabbit

  • New Features

    • Added "Forgot Password?" link to the login page.
  • Style

    • Redesigned login page with refreshed visual styling and improved layout structure.
    • Updated card design, form spacing, button styling, and footer area for enhanced user experience.
    • Added visual effects including bottom gradient overlay and improved branding presentation.

@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR redesigns the login page to align with the application's dark theme and improve user experience. The form state and submission logic remain functionally unchanged; the focus is on visual presentation, layout, and accessibility improvements including new input styling, a "Forgot Password?" link, updated button appearance, and enhanced visual hierarchy.

Changes

Login Page Dark Theme Redesign

Layer / File(s) Summary
State setup and form handlers
src/pages/Login/Login.tsx
State hooks (formData, message, isLoading) and event handlers (handleChange, handleSubmit) are refactored while preserving the same behavior: form POST requests to /api/auth/login, message updates from response, navigation on "Login successful", and Axios error mapping.
Page layout and styling redesign
src/pages/Login/Login.tsx
Page background, card layout, branding text, form input fields, and footer are redesigned with updated Tailwind classes for dark theme consistency. "Forgot Password?" route link is added, submit button styling is updated, status message presentation is improved, and a bottom gradient/fade overlay is added for visual polish.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested labels

level:intermediate, quality:clean, type:accessibility

Poem

🐰 A login page dressed in darkest grace,
With themed buttons in their proper place—
No logic shifts, just beauty's care,
A "Forgot Password?" link so fair,
The hop to home feels light as air! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'update login page' is generic and vague, lacking specificity about the nature of the redesign or the key improvements made. Consider a more descriptive title such as 'Redesign login page for dark theme consistency' to better convey the primary change and design system alignment.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed The pull request implements all key coding objectives from issue #724: dark theme styling, updated card/input design, form functionality, branding button updates, Forgot Password link, Sign Up link visibility, product messaging, and visual hierarchy improvements.
Out of Scope Changes check ✅ Passed All changes in the Login component are scoped to the redesign requirements from issue #724; no unrelated functionality or unnecessary alterations are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/pages/Login/Login.tsx (1)

142-175: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add explicit labels for email/password fields (accessibility blocker).

Inputs rely on placeholders only. On Line 143 and Line 161, add associated <label htmlFor=...> (visible or sr-only) so screen-reader users get reliable field names.

Suggested fix
-            <div>
+            <div>
+              <label htmlFor="email" className="sr-only">Email address</label>
               <input
+                id="email"
                 type="email"
                 name="email"
                 autoComplete="username"
                 placeholder="Enter your email"
@@
-            <div>
+            <div>
+              <label htmlFor="password" className="sr-only">Password</label>
               <input
+                id="password"
                 type="password"
                 name="password"
                 autoComplete="current-password"
                 placeholder="Enter your password"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/Login/Login.tsx` around lines 142 - 175, Add explicit associated
<label> elements for the email and password inputs used by the Login component
so screen-readers don't rely on placeholders: give each input an id (e.g.,
id="email" and id="password" if not present) and add a corresponding <label
htmlFor="email">Email</label> and <label htmlFor="password">Password</label>
(these can be visually visible or use an sr-only class). Ensure you update the
JSX around the inputs that use formData.email, formData.password and
handleChange so the label htmlFor matches the input id.
🧹 Nitpick comments (1)
src/pages/Login/Login.tsx (1)

32-35: ⚡ Quick win

Prefer functional state updates for formData.

Using setFormData(prev => ...) avoids stale-closure edge cases during rapid consecutive changes and is the safer React pattern here.

Suggested refactor
-    setFormData({
-      ...formData,
-      [name]: value,
-    });
+    setFormData((prev) => ({
+      ...prev,
+      [name]: value,
+    }));
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/Login/Login.tsx` around lines 32 - 35, The current setFormData call
in Login.tsx spreads the possibly-stale formData variable; change it to use a
functional updater to avoid closure staleness: call setFormData(prev => ({
...prev, [name]: value })), keeping the same name/value keys (where name comes
from the input handler) so the update merges with the previous state safely
during rapid consecutive changes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/pages/Login/Login.tsx`:
- Around line 179-182: The link color classes for the Link to="/forgot-password"
(and the other link around the same area) use fixed dark-tuned classes
(text-cyan-400 / hover:text-cyan-300) which wash out on light backgrounds;
update the className on those Link components to use theme-aware variants (e.g.,
add dark: and non-dark variants such as dark:text-cyan-400 text-cyan-600 and
dark:hover:text-cyan-300 hover:text-cyan-500) so the links have sufficient
contrast in both light and dark modes while preserving hover behavior.

---

Outside diff comments:
In `@src/pages/Login/Login.tsx`:
- Around line 142-175: Add explicit associated <label> elements for the email
and password inputs used by the Login component so screen-readers don't rely on
placeholders: give each input an id (e.g., id="email" and id="password" if not
present) and add a corresponding <label htmlFor="email">Email</label> and <label
htmlFor="password">Password</label> (these can be visually visible or use an
sr-only class). Ensure you update the JSX around the inputs that use
formData.email, formData.password and handleChange so the label htmlFor matches
the input id.

---

Nitpick comments:
In `@src/pages/Login/Login.tsx`:
- Around line 32-35: The current setFormData call in Login.tsx spreads the
possibly-stale formData variable; change it to use a functional updater to avoid
closure staleness: call setFormData(prev => ({ ...prev, [name]: value })),
keeping the same name/value keys (where name comes from the input handler) so
the update merges with the previous state safely during rapid consecutive
changes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7c3a4f90-17c5-433e-9158-63a5bd187edf

📥 Commits

Reviewing files that changed from the base of the PR and between 53f820b and b7de4c1.

📒 Files selected for processing (1)
  • src/pages/Login/Login.tsx

Comment thread src/pages/Login/Login.tsx
@netlify

netlify Bot commented Jun 9, 2026

Copy link
Copy Markdown

Deploy Preview for github-spy ready!

Name Link
🔨 Latest commit b7de4c1
🔍 Latest deploy log https://app.netlify.com/projects/github-spy/deploys/6a28219ab6e462000950d7f5
😎 Deploy Preview https://deploy-preview-736--github-spy.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🚀 Feature: Redesign Authentication Page for Dark Theme Consistency and Improved UX

1 participant