Skip to content

Commit 257192e

Browse files
authored
Enhance Footer Link Hover Interactions (JhaSourav07#3175)
## Description Enhanced footer link hover interactions by: - Adding a subtle hover lift effect - Adding an animated underline effect - Improving visual feedback while maintaining the existing design language - Supporting both light and dark themes Fixes JhaSourav07#3080 ## Pillar - [ ] 🎨 Pillar 1 — New Theme Design - [ ] 📐 Pillar 2 — Geometric SVG Improvement - [ ] 🕐 Pillar 3 — Timezone Logic Optimization - [x] 🛠️ Other (Bug fix, refactoring, docs) ## Visual Preview <img width="916" height="1280" alt="iiiii" src="https://github.com/user-attachments/assets/e18a90d8-ac0d-46e4-9b66-2a8a358d4184" /> ## Checklist before requesting a review: - [x] I have read the `CONTRIBUTING.md` file. - [x] I have tested these changes locally (`localhost:3000/api/streak?user=YOUR_USERNAME`). - [x] I have run `npm run format` and `npm run lint` locally and resolved all errors (CI will fail otherwise). - [x] My commits follow the Conventional Commits format (e.g., `feat(themes): ...`, `fix(calculate): ...`). - [ ] I have updated `README.md` if I added a new theme or URL parameter. - [x] I have started the repo. - [x] I have made sure that i have only one commit to merge in this PR. - [ ] The SVG output matches the CommitPulse "premium quality" aesthetic standard (no raw elements, smooth animations, correct fonts). - [ ] (Recommended) I joined the CommitPulse Discord community for contributor discussions, mentorship, and faster PR support.
2 parents 291b138 + a57292a commit 257192e

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

app/components/Footer.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ function LinkComponent({
7979
className?: string;
8080
ariaLabel?: string;
8181
}) {
82-
const baseClasses = `transition-colors duration-200 hover:text-black dark:hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 dark:focus:ring-offset-zinc-950 rounded px-1 ${className}`;
82+
const baseClasses = `group inline-block px-1 rounded transition-all duration-300 hover:-translate-y-[2px] hover:font-medium hover:text-teal-800 dark:hover:text-violet-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 dark:focus:ring-offset-zinc-950 ${className}`;
8383

8484
if (isExternal) {
8585
return (
@@ -90,14 +90,20 @@ function LinkComponent({
9090
className={baseClasses}
9191
aria-label={ariaLabel}
9292
>
93-
{children}
93+
<span className="relative inline-block">
94+
{children}
95+
<span className="absolute left-0 -bottom-px h-px w-0 bg-slate-500 dark:bg-slate-400 transition-all duration-500 ease-out group-hover:w-full" />
96+
</span>
9497
</a>
9598
);
9699
}
97100

98101
return (
99102
<Link href={href} className={baseClasses} aria-label={ariaLabel}>
100-
{children}
103+
<span className="relative inline-block">
104+
{children}
105+
<span className="absolute left-0 -bottom-px h-px w-0 bg-slate-500 dark:bg-slate-400 transition-all duration-500 ease-out group-hover:w-full" />
106+
</span>
101107
</Link>
102108
);
103109
}

0 commit comments

Comments
 (0)