Skip to content

Dashboard#65

Merged
nitinmohan18 merged 6 commits into
mainfrom
dashboard
Jul 7, 2026
Merged

Dashboard#65
nitinmohan18 merged 6 commits into
mainfrom
dashboard

Conversation

@nitinmohan18

@nitinmohan18 nitinmohan18 commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

This PR introduces major layout and logic improvements to the Dashboard, enhances the Navbar's scroll-spy reliability, and refines the mobile responsiveness of the Contact section. It also addresses various dark/light mode visual bugs to ensure a premium user experience across all devices.


Related Issue

Closes #


Type of Change

  • Feature
  • Bug Fix
  • Documentation
  • Refactor
  • Performance Improvement
  • CI / Build
  • Other

What Changed?

  • Dashboard Redesign (Bento Layout): Reconstructed the dashboard to use a modern, asymmetrical Bento-grid layout. Eliminated horizontal stacking in favor of floating, densely-packed professional cards.
  • Card Contrast & Theme Fixes: Overhauled QuickActionCard and RecentActivityCard. Replaced the washed-out glassmorphism with high-contrast, premium translucent colors (bg-white/[0.03] for dark mode, bg-black/[0.02] for light mode) and subtle inner 3D shadows.
  • Fixed Theme-Toggle Blinking: Removed transition-all and transition-colors from text elements inside dashboard cards to prevent text from slowly "fading" and blinking when toggling between dark and light modes.
  • Navbar Scroll-Spy Logic: Completely overhauled the navbar.tsx scroll intersection logic. It now uses a highly accurate "eye-level" offset (40% down the screen) rather than relying on top-edge boundaries, preventing the wrong link (like Contact) from highlighting on large screens. Added explicit highlighting for direct navigation to /dashboard.
  • Contact Section Mobile Fixes: Adjusted the grid layout for the Contact section on mobile to ensure all elements fit perfectly on the screen without breaking proportions.
  • Dashboard Divider: Re-added the glowing gradient horizontal divider at the very top of the dashboard section to clearly separate it from the Universities section above it.

Screenshots (UI Changes Only)


Testing

  • Verified that scrolling down the landing page accurately highlights the correct Navbar links regardless of screen size.
  • Navigated directly to /dashboard to ensure the Dashboard link is actively highlighted.
  • Toggled between Light and Dark modes to confirm there is no text blinking and that the cards maintain premium contrast in both modes.
  • Tested the new Dashboard layout on Desktop (12-column bento grid) and Mobile (stacked 1-column grid) to verify responsiveness.

Checklist

  • My branch is up to date with the latest main.
  • My code follows the project's coding standards.
  • I have formatted the modified files (npx prettier --write <file>).
  • npm run format:check passes.
  • npm run lint passes.
  • npm run typecheck passes.
  • npm run build passes.
  • I have updated documentation if required.
  • I have tested my changes locally.
  • This Pull Request focuses on a single feature or fix.

Additional Notes

The next phase will involve completely replicating the premium dark-mode dashboard reference image (including glowing progress bars and centered banner).

@vercel

vercel Bot commented Jul 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hyper-learning-tech Ready Ready Preview, Comment Jul 7, 2026 10:30am

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The dashboard page is now rendered as an embedded section on the homepage. The dashboard layout is restructured with a new welcome banner, reworked Continue Learning and Quick Actions sections, and restyled QuickActionCard/RecentActivityCard components. Navbar Dashboard link and active-section/scroll logic are also updated.

Changes

Dashboard Embedding and Restyling

Layer / File(s) Summary
Homepage embeds dashboard
app/(public)/page.tsx
Imports DashboardPage and renders it inside a new <section id="Dashboard"> before the contact section.
Dashboard layout rework
app/dashboard/page.tsx
Replaces the welcome hero with a full-width premium banner, reworks the Continue Learning grid, and updates the Quick Actions section layout and card titles/descriptions while keeping route/icon/colorVariant wiring.
QuickActionCard restyle
components/dashboard/quick-action-card.tsx
Updates the Link wrapper classes, adds a hover gradient overlay, replaces the arrow with a hoverable circular container, and updates title/description typography with line-clamp.
RecentActivityCard restyle
components/dashboard/recent-activity-card.tsx
Updates the Link container and adds a gradient overlay, adjusts header row typography/spacing with responsive time-ago hiding, and restyles the footer/progress and chevron elements.

Navbar Hash Navigation and Active-State Updates

Layer / File(s) Summary
Dashboard link and scroll/active logic
components/navbar.tsx
Changes the Dashboard nav href to /#Dashboard, switches scroll-based active section detection to a viewport-percentage offset, and adds explicit Dashboard pathname checks in desktop/mobile isActive logic.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested reviewers: imuniqueshiv, RamuuXfree

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is relevant but too generic to convey the main change in the pull request. Use a concise descriptive title like "Refine dashboard layout and navbar scroll-spy".
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dashboard

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.

@nitinmohan18 nitinmohan18 merged commit 45f4c8e into main Jul 7, 2026
4 of 5 checks passed
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🎉 Congratulations @nitinmohan18!

Thank you for contributing to HyperLearningTech.

Your pull request has been successfully merged into main.

📦 Merge Summary

  • PR: Dashboard #65 - Dashboard
  • Status: ✅ Merged
  • Repository: HyperLearningTech

🚀 Keep Contributing

  • Follow the CONTRIBUTING.md guidelines.
  • Keep each Pull Request focused on a single feature or fix.
  • Run formatting, linting, type checking, and a production build before opening a PR.

Thank you for helping make HyperLearningTech better.

Happy Coding! 🚀

@nitinmohan18 nitinmohan18 deleted the dashboard branch July 7, 2026 10:33

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
components/navbar.tsx (1)

290-295: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Fragile active-state matching via label string; verify dual-route setup is intentional.

The added clause pathname === "/dashboard" && link.label === "Dashboard" matches on the link's display label rather than a stable identifier (e.g. its href/target). If the label text ever changes, this condition silently stops working with no compile-time signal.

Separately, app/dashboard/page.tsx still exports a standalone page component reachable at /dashboard, in addition to the newly embedded /#Dashboard section on the homepage. Confirm this dual-route setup (same content served at both /dashboard and /#Dashboard) is intentional (e.g., for deep-linking/bookmarks) rather than a leftover route that should be redirected or removed.

♻️ Suggested refactor: match on a stable target instead of label text
+const DASHBOARD_ROUTE = "/dashboard";
+const DASHBOARD_HASH = "/#Dashboard";
+
 const isActive =
   (pathname === "/" &&
     link.href.startsWith("/#") &&
     activeSection === link.href) ||
   (pathname === link.href && !link.href.startsWith("/#")) ||
-  (pathname === "/dashboard" && link.label === "Dashboard");
+  (pathname === DASHBOARD_ROUTE && link.href === DASHBOARD_HASH);
🤖 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 `@components/navbar.tsx` around lines 290 - 295, The active-state check in
navbar.tsx is fragile because it keys off link.label === "Dashboard" instead of
a stable target. Update the matching logic in the Navbar link handling to use a
durable identifier such as link.href or an explicit route key, so the Dashboard
state does not break if the display text changes. Also verify the dual-route
setup between the Navbar’s /dashboard handling and the homepage `#Dashboard`
section is intentional; if not, remove or redirect the standalone dashboard page
rather than relying on both paths.
🤖 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 `@components/dashboard/quick-action-card.tsx`:
- Around line 61-64: The focus-visible state on QuickActionCard is missing a
ring width, so the ring color from style.wrapper won’t render visibly. Update
the className in quick-action-card so the card includes a ring width utility
(for example matching the pattern used by RecentActivityCard) while keeping the
existing focus-visible ring color from style.wrapper.

---

Nitpick comments:
In `@components/navbar.tsx`:
- Around line 290-295: The active-state check in navbar.tsx is fragile because
it keys off link.label === "Dashboard" instead of a stable target. Update the
matching logic in the Navbar link handling to use a durable identifier such as
link.href or an explicit route key, so the Dashboard state does not break if the
display text changes. Also verify the dual-route setup between the Navbar’s
/dashboard handling and the homepage `#Dashboard` section is intentional; if not,
remove or redirect the standalone dashboard page rather than relying on both
paths.
🪄 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: 3c385449-c8f0-433b-9e24-d2d6fd54bbd2

📥 Commits

Reviewing files that changed from the base of the PR and between a5483b8 and 4ebcb4b.

📒 Files selected for processing (5)
  • app/(public)/page.tsx
  • app/dashboard/page.tsx
  • components/dashboard/quick-action-card.tsx
  • components/dashboard/recent-activity-card.tsx
  • components/navbar.tsx

Comment on lines +61 to +64
className={`group relative flex flex-col gap-3 overflow-hidden rounded-[20px] border border-black/10 dark:border-white/[0.08] bg-black/[0.02] dark:bg-white/[0.03] p-5 shadow-[inset_0_1px_0_rgba(255,255,255,0.05)] transition-transform hover:-translate-y-1 hover:shadow-xl hover:bg-black/[0.04] dark:hover:bg-white/[0.05] hover:border-blue-500/30 ${style.wrapper}`}
>
<div
className={`flex h-12 w-12 items-center justify-center rounded-xl transition-colors ${style.iconBox}`}
>
<Icon className="h-6 w-6" />
<div className="absolute inset-0 bg-gradient-to-br from-black/5 dark:from-white/5 to-transparent opacity-0 transition-opacity duration-300 group-hover:opacity-100" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the target component and related shared styles
git ls-files | rg 'components/dashboard/quick-action-card\.tsx|RecentActivityCard|style\.|tailwind|class-variance|variants'
printf '\n--- quick-action-card.tsx ---\n'
cat -n components/dashboard/quick-action-card.tsx | sed -n '1,220p'

printf '\n--- search for wrapper style definitions and focus-visible ring usage ---\n'
rg -n "focus-visible:ring|ring-2|ring-\[|style\.wrapper|RecentActivityCard|quick-action-card" components -S

Repository: imuniqueshiv/HyperLearningTech

Length of output: 11290


Add a focus-visible ring width. style.wrapper only adds focus-visible:ring-*, so this card has no visible focus ring without ring/ring-2 (as in RecentActivityCard).

🤖 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 `@components/dashboard/quick-action-card.tsx` around lines 61 - 64, The
focus-visible state on QuickActionCard is missing a ring width, so the ring
color from style.wrapper won’t render visibly. Update the className in
quick-action-card so the card includes a ring width utility (for example
matching the pattern used by RecentActivityCard) while keeping the existing
focus-visible ring color from style.wrapper.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant