Skip to content

Improve Footer section UI/UX of the Website#292

Merged
mehul-m-prajapati merged 2 commits into
GitMetricsLab:mainfrom
yuvraj-k-singh:feature/ux-footer-improvement
May 17, 2026
Merged

Improve Footer section UI/UX of the Website#292
mehul-m-prajapati merged 2 commits into
GitMetricsLab:mainfrom
yuvraj-k-singh:feature/ux-footer-improvement

Conversation

@yuvraj-k-singh
Copy link
Copy Markdown
Contributor

@yuvraj-k-singh yuvraj-k-singh commented May 17, 2026

Related Issue


Description

This PR addresses the UI/UX enhancements for the application Footer component, transitioning it into a highly professional, balanced, and responsive interface matching the updated design framework.

Key Changes Implemented:

  • Refreshed Grid Architecture: Organized the structural layout into clean grid tracks (Brand, Resource links, Legal routes, and Updates) to optimize spacing and structural balance.
  • Enhanced Typography & Color Palette: Replaced the low-contrast text elements with adaptive text classes (text-black/text-zinc-600 for light mode and text-zinc-500 for dark mode) to offer seamless daylight readability against a crisp bg-white backdrop.
  • Refined Subscription Form UI: Designed a responsive, separate-element mailing update form block with an interactive action button (bg-blue-600).
  • Balanced Lower Tray Asset Placement: Cleanly aligned the micro legal links on the left, pinned the dynamic copyright container exactly to the screen's horizontal center tray, and right-aligned the scaled social icons.
  • Upscaled Actionable Elements: Increased the touch targets and overall scale of the interactive social media nodes (FaGithub, FaTwitter, FaDiscord) to h-7 w-7 with localized black-to-brand color smooth hover transitions.

How Has This Been Tested?

  • Daylight Theme Rendering: Tested the contrast and layout visibility under absolute daylight mode to confirm text readability.
  • Dark Mode Integration: Ensured deep slate-navy theme mapping background configurations (dark:bg-[#0f172a]) remain fully functional.
  • Responsiveness Checklist: Validated smooth flex transitions on smaller mobile break-points, checking that components switch correctly from vertical lists to balanced horizontal rows.

Screenshots (if applicable)

Before:
image

After:
image


Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code style update (visual changes, cleaner code structures)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Summary by CodeRabbit

Release Notes

  • New Features
    • Redesigned footer with brand information, organized navigation categories, and social media links.
    • Added email subscription form to receive the latest product updates.

Review Change Stack

Signed-off-by: yuvraj-k-singh <yuvrajstudentbussiness@gmail.com>
@netlify
Copy link
Copy Markdown

netlify Bot commented May 17, 2026

Deploy Preview for github-spy ready!

Name Link
🔨 Latest commit b81aa20
🔍 Latest deploy log https://app.netlify.com/projects/github-spy/deploys/6a0980bb4fc28f000838e655
😎 Deploy Preview https://deploy-preview-292--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.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 17, 2026

Warning

Rate limit exceeded

@yuvraj-k-singh has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 47 minutes and 30 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 86dd19fb-f9b3-43ab-a315-7883737468ba

📥 Commits

Reviewing files that changed from the base of the PR and between 8f8098a and b81aa20.

📒 Files selected for processing (1)
  • src/components/Footer.tsx
📝 Walkthrough

Walkthrough

The Footer component undergoes a comprehensive redesign, transforming from a simple two-link layout to a modern multi-section footer. It adds form state for email subscriptions, reorganizes navigation into grouped categories, introduces social media icons, and implements a dynamic copyright year.

Changes

Footer Redesign

Layer / File(s) Summary
Form state and dependencies
src/components/Footer.tsx
Imports expanded to include useState and additional icons. Component introduces email state and handleSubscribe handler to manage subscription form submission (prevent default, log/alert, clear input).
Navigation and subscription form
src/components/Footer.tsx
Upper section redesigned as responsive grid: brand/description, Resources and Legal link categories using Link components, external Contributing link, and email subscription form connected to state and handlers.
Footer links and social icons
src/components/Footer.tsx
Lower section restructured with terms/privacy links, centered copyright using new Date().getFullYear(), and social media icon row (GitHub, Twitter, Discord) with updated external URLs and sizing.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related issues

  • 🚀 Feature: Add Responsive Footer Section #219: This PR directly implements the requested responsive footer feature with brand information, navigation links, social media icons, contact capability via email subscription form, copyright section, and responsive design as originally requested.

Possibly related PRs

  • GitMetricsLab/github_tracker#171: Both PRs modify src/components/Footer.tsx structure and layout; this PR replaces the footer markup entirely versus prior changes to the same component.

Suggested labels

type:feature, area:ui, component:footer

Poem

🐰 A footer so grand, with links and with flair,
Social icons dancing through the footer air,
Brand and resources neatly arranged,
Subscribe to updates—the design has changed!
Copyright dates flow fresh, year after year,
A modern footer now brings good cheer. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Improve Footer section UI/UX of the Website' clearly and concisely describes the main change—enhancing the footer component's user interface and experience.
Description check ✅ Passed The PR description comprehensively follows the template with all required sections: Related Issue (#219), detailed Description, testing methodology, before/after screenshots, and Type of Change selections.
Linked Issues check ✅ Passed The PR successfully fulfills all coding requirements from issue #219: multi-section footer layout with brand/resource/legal columns [#219], responsive grid design [#219], social media icons [#219], subscription form [#219], typography and color improvements [#219], and responsive design validation [#219].
Out of Scope Changes check ✅ Passed All changes are directly aligned with the footer UI/UX enhancement scope. The rewrite of Footer.tsx with grid layout, typography updates, subscription form, and social icons directly addresses issue #219 requirements with no extraneous modifications.

✏️ 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.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
src/components/Footer.tsx (1)

95-102: ⚡ Quick win

Add an explicit label for the email input for accessibility.

The email field currently relies on placeholder text only. Add a <label> (or at least aria-label) so screen-reader users get a stable accessible name.

Suggested fix
             <form onSubmit={handleSubscribe} className="flex flex-col sm:flex-row items-stretch gap-2 w-full max-w-sm lg:max-w-none">
+              <label htmlFor="footer-email" className="sr-only">
+                Email address
+              </label>
               <input
+                id="footer-email"
                 type="email"
                 required
                 placeholder="Enter email address"
                 value={email}
🤖 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/components/Footer.tsx` around lines 95 - 102, The email input in Footer
(the input using value={email} and onChange={(e) => setEmail(e.target.value)})
lacks an accessible name; add an explicit <label> associated with that input
(give the input an id and render a <label htmlFor="...">Email address</label>)
or add an aria-label/aria-labelledby attribute to the same input so screen
readers get a stable name; ensure the label text is meaningful (e.g., "Email
address") and placed/linked to the input element used for subscribing.
🤖 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/components/Footer.tsx`:
- Around line 8-12: The submit handler handleSubscribe currently logs the user's
email (console.log('Subscribed email:', email)) which leaks PII; remove that
console.log, replace it with a proper submission flow or callback (e.g., call a
submitEmail or onSubscribe prop) and keep the UI behavior (alert and
setEmail('')) intact; update references to handleSubscribe and ensure any new
submitEmail/onSubscribe stub accepts the email and handles it securely (no
client-side logging) before clearing state with setEmail.
- Around line 142-150: The two anchor elements wrapping the social icons (the
<a> that contains FaTwitter and the companion <a> for the Discord icon)
currently use href="#"—replace those placeholders with the real destination URLs
(e.g., your Twitter profile and Discord invite) or, if URLs aren't available
yet, make the icons non-interactive: remove the href and render a non-clickable
element (e.g., a <span> with the same classes and aria-disabled="true" or
role="img") so they don't behave as broken links; ensure the change is applied
to the anchor nodes that wrap FaTwitter and the Discord icon component in the
Footer component.

---

Nitpick comments:
In `@src/components/Footer.tsx`:
- Around line 95-102: The email input in Footer (the input using value={email}
and onChange={(e) => setEmail(e.target.value)}) lacks an accessible name; add an
explicit <label> associated with that input (give the input an id and render a
<label htmlFor="...">Email address</label>) or add an aria-label/aria-labelledby
attribute to the same input so screen readers get a stable name; ensure the
label text is meaningful (e.g., "Email address") and placed/linked to the input
element used for subscribing.
🪄 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: d6941702-48a1-4b23-87c0-45e1d133f3a3

📥 Commits

Reviewing files that changed from the base of the PR and between a2452b3 and 8f8098a.

📒 Files selected for processing (1)
  • src/components/Footer.tsx

Comment thread src/components/Footer.tsx
Comment thread src/components/Footer.tsx Outdated
Signed-off-by: yuvraj-k-singh <yuvrajstudentbussiness@gmail.com>
@mehul-m-prajapati mehul-m-prajapati merged commit 347992c into GitMetricsLab:main May 17, 2026
6 checks passed
@github-actions
Copy link
Copy Markdown

🎉🎉 Thank you for your contribution! Your PR #292 has been merged! 🎉🎉

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: Add Responsive Footer Section

2 participants