Skip to content

improved overall ui of header footer and home section and removed sea…#44

Merged
nitinmohan18 merged 1 commit into
mainfrom
improve-ui
Jul 3, 2026
Merged

improved overall ui of header footer and home section and removed sea…#44
nitinmohan18 merged 1 commit into
mainfrom
improve-ui

Conversation

@nitinmohan18

@nitinmohan18 nitinmohan18 commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

Refined the layout, typography, and visual hierarchy of the Navbar, Landing Page, and Footer for a more polished and premium user experience.


Related Issue

Closes #


Type of Change

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

What Changed?

  • Navbar: Restored the original asymmetrical layout balancing the search bar, logo, and navigation links. Stabilized the search bar to its preferred solid state.
  • Landing Page (Universities): Improved the structural margins and vertical rhythm after the search bar removal. Reduced overall page length by removing artificial height constraints and trimming vertical padding.
  • Footer Hierarchy: Removed the "Learning" column and adopted a clean, premium split layout (Brand on Left, Navigation on Right).
  • Footer Typography: Significantly increased the font size, weight, and visual prominence of the "Platform" and "Company" navigation columns to establish them as the footer's main focal point.
  • Footer Feature Cards: Subdued the visual weight of the 2x2 Feature Cards by making backgrounds slightly more transparent and reducing icon sizes so they act as a subtle premium detail without overpowering the main links.

Screenshots (UI Changes Only)


Testing

Verified the layout responsiveness and visual hierarchy across desktop screens. Checked Navbar alignment and spacing. Confirmed the height reduction of the Universities section on the landing page. Validated the Footer's strict 12-column grid and typography hierarchy.


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 footer was restructured from a flex space-between layout (which caused massive awkward gaps on large monitors) into a strict 12-column grid layout to mathematically and evenly distribute space, matching premium design standards.

@vercel

vercel Bot commented Jul 3, 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 3, 2026 6:01pm

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a university search feature: navbar dispatches a university-search custom event consumed by the universities landing page, with desktop/mobile search inputs and dropdowns routing to available universities or showing toast notices. Also restyles navbar link rendering/magnetic hover, footer sections, and universities page spacing/copy.

Changes

University Search Feature

Layer / File(s) Summary
Universities dataset export and event consumption
features/landing/universities.tsx
Exports the universities constant, adds a useEffect listening for university-search events to update searchQuery, and revises the empty-state helper text.
Navbar search state and filtering logic
components/navbar.tsx
Imports Search icon, universities, and toast; adds handleSearchChange (dispatches event), handleSearchKeyDown (Enter navigation), and filteredUniversities computation.
Desktop and mobile search UI wiring
components/navbar.tsx
Adds desktop and mobile search inputs with animated dropdowns showing filtered universities, routing to available items or showing a coming-soon toast.

Navbar Layout Restyle

Layer / File(s) Summary
Nav link ordering and magnetic item behavior
components/navbar.tsx
Reorders navLinks, reduces MagneticNavItem mouse-move scaling, and removes hover-driven label expansion for a simpler motion link.
Desktop link rendering and active indicator
components/navbar.tsx
Replaces the floating dock with direct Link elements showing icon/label and an animated active underline, adjusting action-area markup.

Footer and Universities Landing Restyle

Layer / File(s) Summary
Footer top wrapper and navigation grid
components/footer.tsx
Switches top wrapper breakpoints from xl:* to lg:* and restructures navigation into a two-column grid with updated link styling.
Company section and feature cards restyle
components/footer.tsx
Simplifies the Company section container/heading, updates company link styling, and redesigns feature cards container, copy, and card internals.
Universities landing section spacing and copy
features/landing/universities.tsx
Adjusts section padding, header container sizing, subtitle styling/copy, and empty-state text.

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

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Navbar
  participant Window
  participant UniversitiesPage
  participant Router

  User->>Navbar: types search query
  Navbar->>Window: dispatch university-search CustomEvent
  Window->>UniversitiesPage: update searchQuery from event detail
  User->>Navbar: selects filtered university result
  alt status Available
    Navbar->>Router: navigate to university href
  else not available
    Navbar->>User: show toast "coming soon"
  end
Loading

Possibly related PRs

Suggested reviewers: imuniqueshiv, RamuuXfree

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 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.
Title check ✅ Passed The title matches the main scope of the PR by calling out header, footer, and home section UI improvements, plus the search removal.
✨ 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 improve-ui

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 1410294 into main Jul 3, 2026
4 of 6 checks passed
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

🎉 Congratulations @nitinmohan18!

Thank you for contributing to HyperLearningTech.

Your pull request has been successfully merged into main.

📦 Merge Summary

🚀 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 improve-ui branch July 3, 2026 18:03

@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: 2

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

224-330: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Duplicated dropdown-selection handler between desktop and mobile.

The onClick logic at Lines 279-304 (desktop) is duplicated almost verbatim at Lines 469-495 (mobile), differing only by the extra setIsOpen(false) call for mobile. Consider extracting a shared handleUniversitySelect(uni) function (accepting an optional closeMenu flag) to avoid the two copies drifting apart over time.

🤖 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 224 - 330, The university selection logic
is duplicated in the desktop and mobile dropdown handlers, which makes them easy
to drift apart. Extract the shared selection flow from the existing `onClick`
blocks into a reusable `handleUniversitySelect(uni, closeMenu?)` helper in
`Navbar`, and have both dropdowns call it, keeping only the mobile-specific
`setIsOpen(false)` behavior as an optional parameter.

107-136: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Filter semantics diverge from the consumer's default-empty behavior; consider extracting shared filtering logic.

filteredUniversities here returns false for an empty query (Line 129), while the equivalent filter in features/landing/universities.tsx returns true for an empty query. This is currently safe only because the dropdown is gated on searchQuery truthiness, but it's an easy trap for future edits (e.g., someone removing that gate later without noticing the empty-query short-circuit differs from the landing page's intended default of "show all").

Given both files independently reimplement the same name/fullName/description/branches matching logic against the exported universities array, extracting a shared filterUniversities(query) helper (e.g., in features/landing/universities.tsx, exported alongside universities) would remove this duplication and the semantic drift risk.

🤖 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 107 - 136, The navbar search filtering
logic in handleSearchChange/handleSearchKeyDown/filteredUniversities duplicates
the university matching rules used by the landing page and has a different
empty-query behavior. Extract a shared filter helper alongside the universities
data (for example from features/landing/universities.tsx) that applies the same
name/fullName/description/branches matching and consistent default-empty
semantics, then reuse it in components/navbar.tsx so both consumers stay in
sync.

266-323: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚖️ Poor tradeoff

Dropdown results lack listbox/option semantics and keyboard navigation.

The search results render as a plain list of <button> elements inside a motion.div with no role="listbox"/role="option" or arrow-key navigation; only mouse/Enter-to-scroll interaction is supported. This is a minor accessibility gap for keyboard/screen-reader users trying to select a specific result rather than just navigating to the section.

Also applies to: 456-514

🤖 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 266 - 323, The search results dropdown in
Navbar lacks listbox/option semantics and proper keyboard navigation, so update
the results container in the navbar search render to behave like an accessible
combobox list. Add listbox/option roles and keyboard handling in the search
interaction around the filteredUniversities map, and wire arrow-key focus
movement plus Enter/Escape selection behavior for each result button so users
can navigate and choose options without a mouse. Also apply the same accessible
pattern to the matching dropdown block referenced by the related range.

75-93: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low value

Remove the unused MagneticNavItem component. The desktop nav now renders Link directly, and MagneticNavItem only remains as an unused definition here.

🤖 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 75 - 93, Remove the unused
MagneticNavItem component from the navbar implementation since desktop
navigation now uses Link directly. Delete the MagneticNavItem definition and any
related refs/handlers/imports that are no longer referenced in
components/navbar.tsx, keeping only the symbols actually used by the navbar
render path.
🤖 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/footer.tsx`:
- Around line 259-262: The footer link text in the two nav columns is too
constrained on very small screens, causing longer items to overflow. Update the
footer link styling in the footer component so the link labels can wrap instead
of using the non-wrapping behavior, and/or reduce the mobile grid spacing in the
footer’s 2-column layout to give the links enough room.

In `@features/landing/universities.tsx`:
- Around line 43-54: The Universities landing section only listens for future
“university-search” events in useEffect and therefore misses the current navbar
search state on route navigation. Update features/landing/universities.tsx so
the UniversitySearch/landing filter is rehydrated when navigating back to the
section, either by re-emitting the active search after route changes or by
reading from shared state/URL params instead of only relying on the event
listener in useEffect. Use the existing setSearchQuery handler and the
“university-search” event wiring as the entry point for the fix.

---

Nitpick comments:
In `@components/navbar.tsx`:
- Around line 224-330: The university selection logic is duplicated in the
desktop and mobile dropdown handlers, which makes them easy to drift apart.
Extract the shared selection flow from the existing `onClick` blocks into a
reusable `handleUniversitySelect(uni, closeMenu?)` helper in `Navbar`, and have
both dropdowns call it, keeping only the mobile-specific `setIsOpen(false)`
behavior as an optional parameter.
- Around line 107-136: The navbar search filtering logic in
handleSearchChange/handleSearchKeyDown/filteredUniversities duplicates the
university matching rules used by the landing page and has a different
empty-query behavior. Extract a shared filter helper alongside the universities
data (for example from features/landing/universities.tsx) that applies the same
name/fullName/description/branches matching and consistent default-empty
semantics, then reuse it in components/navbar.tsx so both consumers stay in
sync.
- Around line 266-323: The search results dropdown in Navbar lacks
listbox/option semantics and proper keyboard navigation, so update the results
container in the navbar search render to behave like an accessible combobox
list. Add listbox/option roles and keyboard handling in the search interaction
around the filteredUniversities map, and wire arrow-key focus movement plus
Enter/Escape selection behavior for each result button so users can navigate and
choose options without a mouse. Also apply the same accessible pattern to the
matching dropdown block referenced by the related range.
- Around line 75-93: Remove the unused MagneticNavItem component from the navbar
implementation since desktop navigation now uses Link directly. Delete the
MagneticNavItem definition and any related refs/handlers/imports that are no
longer referenced in components/navbar.tsx, keeping only the symbols actually
used by the navbar render path.
🪄 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: af89b355-f9b1-455f-9e9c-b9ae2785218f

📥 Commits

Reviewing files that changed from the base of the PR and between 76f176d and 8da0e1f.

📒 Files selected for processing (3)
  • components/footer.tsx
  • components/navbar.tsx
  • features/landing/universities.tsx

Comment thread components/footer.tsx
Comment on lines +259 to +262
<div className="grid grid-cols-2 gap-12 sm:gap-20 xl:pr-10 w-full lg:w-auto mt-4 lg:mt-0">
{/* Platform */}
<div className="flex flex-col sm:w-[130px] xl:border-l border-slate-200 dark:border-white/[0.03] xl:pl-8">
<h3 className="mb-3 text-[11px] font-extrabold uppercase tracking-[0.2em] text-black dark:text-white/90">
<div className="flex flex-col">
<h3 className="mb-4 text-[13px] font-extrabold uppercase tracking-[0.15em] text-slate-900 dark:text-white">

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 relevant file and nearby layout classes
git ls-files components/footer.tsx
wc -l components/footer.tsx
sed -n '230,330p' components/footer.tsx

# Find the specific link class usages mentioned in the comment
rg -n 'whitespace-nowrap|grid-cols-2|gap-12|Privacy Policy|Student Login' components/footer.tsx

Repository: imuniqueshiv/HyperLearningTech

Length of output: 7827


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Read the footer layout around the main wrapper and the nav block
sed -n '170,235p' components/footer.tsx
sed -n '235,315p' components/footer.tsx

# Show the exact classes on the footer wrappers to understand mobile sizing
rg -n 'flex flex-col|lg:flex-row|justify-between|gap-12|w-full lg:w-auto|grid-cols-2|whitespace-nowrap|w-fit' components/footer.tsx

Repository: imuniqueshiv/HyperLearningTech

Length of output: 11587


Let these footer links wrap on very small screens. The same whitespace-nowrap class is used in both nav columns, and the 2-column mobile grid with gap-12 leaves too little room on narrow viewports, so longer items like “Student Login” and “Privacy Policy” can overflow. Dropping whitespace-nowrap or reducing the mobile gap would fix it.

🤖 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/footer.tsx` around lines 259 - 262, The footer link text in the
two nav columns is too constrained on very small screens, causing longer items
to overflow. Update the footer link styling in the footer component so the link
labels can wrap instead of using the non-wrapping behavior, and/or reduce the
mobile grid spacing in the footer’s 2-column layout to give the links enough
room.

Comment on lines +43 to +54
useEffect(() => {
const handleSearch = (e: CustomEvent<string>) => {
setSearchQuery(e.detail);
};
window.addEventListener("university-search", handleSearch as EventListener);
return () =>
window.removeEventListener(
"university-search",
handleSearch as EventListener
);
}, []);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== features/landing/universities.tsx ==\n'
cat -n features/landing/universities.tsx | sed -n '1,220p'

printf '\n== components/navbar.tsx ==\n'
cat -n components/navbar.tsx | sed -n '1,260p'

printf '\n== search for university-search ==\n'
rg -n "university-search|SearchQuery|searchQuery" .

Repository: imuniqueshiv/HyperLearningTech

Length of output: 25065


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== Navbar usage ==\n'
rg -n "<Navbar|Navbar\(" app components features .

printf '\n== layout files ==\n'
git ls-files | rg '(^|/)(layout|page)\.(tsx|ts|jsx|js)$'

printf '\n== root layout and nearby composition ==\n'
for f in app/layout.tsx app/page.tsx src/app/layout.tsx src/app/page.tsx; do
  if [ -f "$f" ]; then
    echo "--- $f ---"
    cat -n "$f" | sed -n '1,220p'
  fi
done

Repository: imuniqueshiv/HyperLearningTech

Length of output: 5247


Re-dispatch the active university search on navigation. The navbar keeps searchQuery in local state, but features/landing/universities.tsx only hydrates from future university-search events. When navigating to /#Universities from another route, the section mounts with an empty filter until the user types again. Re-emit the current value after route changes, or move the query into shared state/URL params.

🤖 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 `@features/landing/universities.tsx` around lines 43 - 54, The Universities
landing section only listens for future “university-search” events in useEffect
and therefore misses the current navbar search state on route navigation. Update
features/landing/universities.tsx so the UniversitySearch/landing filter is
rehydrated when navigating back to the section, either by re-emitting the active
search after route changes or by reading from shared state/URL params instead of
only relying on the event listener in useEffect. Use the existing setSearchQuery
handler and the “university-search” event wiring as the entry point for the fix.

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