Skip to content

Enhance home and university sections and remove sticky contact header#40

Merged
nitinmohan18 merged 1 commit into
mainfrom
improve-home-university-ui
Jul 2, 2026
Merged

Enhance home and university sections and remove sticky contact header#40
nitinmohan18 merged 1 commit into
mainfrom
improve-home-university-ui

Conversation

@nitinmohan18

@nitinmohan18 nitinmohan18 commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

This PR completely overhauls the Contact Section UI/UX, transitioning it from a standard layout to a highly polished, premium side-by-side design that feels deeply integrated, luxurious, and professional in both light and dark modes.


Related Issue

Closes #


Type of Change

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

What Changed?

  • Structural Redesign: Implemented a new side-by-side layout (45% left content / 50% right form) with a central 1px gradient vertical divider for optimized balance.
  • Form Card Optimization: Widened the form card to 530px, reduced vertical padding for a compact/squarish profile, and added a top horizontal section divider.
  • Premium Input Fields: Redesigned inputs with a pill-style layout, placing icons inside tinted rounded containers on the left, softening borders, and adding smooth focus ring animations.
  • Feature Card Upgrades: Slimmed down the feature cards and replaced flat icon circles with beautiful radial gradient backgrounds featuring soft 3D outer glows.
  • Submit Button Overhaul: Transformed the detached floating button into a full-width integrated button anchoring the bottom of the form. Reduced the color contrast of gradients (softer gold/violet) and replaced the harsh neon glow with a professional, tight directional drop shadow.

Screenshots (UI Changes Only)

(Attach screenshots of the new premium light mode and dark mode layouts here)


Testing

Tested the visual refinements thoroughly across different states.

  • Verified layout alignment and precise positioning of the center divider.
  • Tested hover and focus states on input fields, feature cards, and the new full-width submit button in both dark mode and light mode overrides.

Checklist

Before requesting a review, confirm the following:

  • 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

These microscopic styling upgrades significantly enhance user trust and engagement by providing a tactile, high-end experience that matches the modern quality of the rest of the application.

@vercel

vercel Bot commented Jul 2, 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 2, 2026 4:35pm

@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR restyles the contact section with a new divider, restructured feature cards, availability badge, redesigned form inputs, and a full-width gradient submit button, plus comprehensive light-mode overrides. It also makes smaller styling adjustments to navbar, footer, hero, and universities components.

Changes

Contact Section Redesign

Layer / File(s) Summary
Section divider and column layout
components/contact/ContactSection.module.css, components/contact/ContactSection.tsx
Adds a gold-gradient .sectionDivider and its JSX, adjusts .leftSection/.rightSection flex-basis, .heading typography, and .contactCard sizing.
Feature cards and availability badge
components/contact/ContactSection.module.css, components/contact/ContactSection.tsx
Reworks .featuresHorizontal/.featureItem/.iconWrapper layout and hover effects, adds .featureTitle/.featureDesc, and introduces the availability badge in CSS and markup.
Form inputs restyling
components/contact/ContactSection.module.css, components/contact/ContactSection.tsx
Bolds .cardHeading, adds divider to .cardSubtitle, redesigns .form/.inputRow/.inputGroup/.inputIconWrapper/.input/.textarea, and refactors input field markup to use icon wrappers.
Submit button redesign
components/contact/ContactSection.module.css, components/contact/ContactSection.tsx
Replaces circular submit button with a full-width gradient .submitBtn/.submitRow/.btnIcon, and updates markup with a submitText span.
Light-mode theme overrides
components/contact/ContactSection.module.css
Adds extensive html:not(.dark) overrides for backgrounds, feature cards, form inputs, and submit button including sendIconFly keyframes.

Navbar, Footer, and Hero/Universities Styling Tweaks

Layer / File(s) Summary
Navbar and footer branding
components/navbar.tsx, components/footer.tsx
Simplifies navbar logo wrapper, removes Contact-specific active-link styling, updates underline visibility condition, and restyles footer brand logo/text hover behavior.
Hero background and universities mask
features/landing/hero.tsx, features/landing/universities.tsx
Rewrites hero background-layer markup with new gradient blobs/glow shapes and adds mask-image edge-fade styling to the universities background.

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

Possibly related PRs

Suggested reviewers: imuniqueshiv

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title reflects the main Home and University UI updates and mentions the contact header change, even though other styling work is omitted.
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 improve-home-university-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 c050d0d into main Jul 2, 2026
4 of 7 checks passed
@github-actions

github-actions Bot commented Jul 2, 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! 🚀

@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.

🧹 Nitpick comments (4)
components/contact/ContactSection.module.css (4)

506-517: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Unquote the font-family value.

Stylelint flags font-family: "Inter", sans-serif; — quotes around simple font names should be omitted per font-family-name-quotes.

🔧 Suggested fix
   font-family: "Inter", sans-serif;
+  font-family: Inter, sans-serif;
🤖 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/contact/ContactSection.module.css` around lines 506 - 517, Update
the .input rule in ContactSection.module.css to satisfy the
font-family-name-quotes lint rule by removing the quotes around the simple font
name in the font-family declaration. Keep the fallback sans-serif and adjust
only the font-family value so the .input style remains otherwise unchanged.

Source: Linters/SAST tools


696-1033: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Stylelint config likely missing CSS Modules support for :global().

Static analysis flags selector-pseudo-class-no-unknown on every :global(html:not(.dark)) selector (50+ occurrences). This is valid CSS Modules syntax, so the fix belongs in stylelint config (e.g. stylelint-config-css-modules, or adding global to selector-pseudo-class-no-unknown's ignorePseudoClasses), not in this file.

🔧 Suggested stylelint config fix
+ // .stylelintrc
+ {
+   "rules": {
+     "selector-pseudo-class-no-unknown": [true, { "ignorePseudoClasses": ["global"] }]
+   }
+ }
🤖 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/contact/ContactSection.module.css` around lines 696 - 1033, The
repeated selector warnings come from Stylelint not recognizing CSS Modules’
:global() syntax, not from the ContactSection.module.css styles themselves.
Update the Stylelint configuration to support CSS Modules by either adding the
CSS Modules config/plugin or ignoring the global pseudo-class in
selector-pseudo-class-no-unknown, so selectors like :global(html:not(.dark)) in
ContactSection.module.css are no longer flagged.

Source: Linters/SAST tools


918-921: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Several light-mode overrides are no-op duplicates of the base rules.

.form { gap: 12px }, .messageGroup { margin-bottom: 0 }, .textarea { min-height: 48px }, and most of .submitRow's base properties in the light-mode block (lines 987-992) already match the dark-mode values verbatim (lines 452-459, 519-522, 567-573). These can likely be dropped since the base rule already applies when not overridden.

Also applies to: 979-985, 987-992

🤖 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/contact/ContactSection.module.css` around lines 918 - 921, Several
light-mode overrides in ContactSection.module.css are redundant duplicates of
the base styles, so remove the no-op declarations in the light-mode block for
.form, .messageGroup, .textarea, and the shared base properties in .submitRow.
Keep only the light-mode rules that actually differ from the base/dark-mode
definitions, and use the existing selectors (:global(html:not(.dark)) .form,
.messageGroup, .textarea, .submitRow) to trim the duplicated declarations.

1015-1033: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Keyframe name should be kebab-case; hover fly animation only exists in light mode.

sendIconFly should be send-icon-fly per keyframes-name-pattern. Separately, this fly animation on .submitBtn:hover .btnIcon is only wired up in the light-mode override block — the dark-mode .submitBtn:hover (lines 597-602) doesn't trigger any icon animation. Confirm this asymmetry between themes is intentional.

🔧 Suggested rename
-:global(html:not(.dark)) .submitBtn:hover .btnIcon {
-  animation: sendIconFly 1s ease-in-out infinite alternate;
+:global(html:not(.dark)) .submitBtn:hover .btnIcon {
+  animation: send-icon-fly 1s ease-in-out infinite alternate;
 }

-@keyframes sendIconFly {
+@keyframes send-icon-fly {
   0% {
     transform: translate(0, 0);
   }
   100% {
     transform: translate(2px, -2px);
   }
 }
🤖 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/contact/ContactSection.module.css` around lines 1015 - 1033,
Rename the `@keyframes sendIconFly` definition in `ContactSection.module.css` to
kebab-case and update the `.submitBtn:hover .btnIcon` animation reference to
match. Also review the theme-specific hover behavior for `.submitBtn:hover` so
the icon fly animation is either intentionally light-mode only or added
consistently alongside the dark-mode hover styles; use the `.submitBtn:hover`
and `.btnIcon` selectors to locate the related rules.

Source: Linters/SAST tools

🤖 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.

Nitpick comments:
In `@components/contact/ContactSection.module.css`:
- Around line 506-517: Update the .input rule in ContactSection.module.css to
satisfy the font-family-name-quotes lint rule by removing the quotes around the
simple font name in the font-family declaration. Keep the fallback sans-serif
and adjust only the font-family value so the .input style remains otherwise
unchanged.
- Around line 696-1033: The repeated selector warnings come from Stylelint not
recognizing CSS Modules’ :global() syntax, not from the
ContactSection.module.css styles themselves. Update the Stylelint configuration
to support CSS Modules by either adding the CSS Modules config/plugin or
ignoring the global pseudo-class in selector-pseudo-class-no-unknown, so
selectors like :global(html:not(.dark)) in ContactSection.module.css are no
longer flagged.
- Around line 918-921: Several light-mode overrides in ContactSection.module.css
are redundant duplicates of the base styles, so remove the no-op declarations in
the light-mode block for .form, .messageGroup, .textarea, and the shared base
properties in .submitRow. Keep only the light-mode rules that actually differ
from the base/dark-mode definitions, and use the existing selectors
(:global(html:not(.dark)) .form, .messageGroup, .textarea, .submitRow) to trim
the duplicated declarations.
- Around line 1015-1033: Rename the `@keyframes sendIconFly` definition in
`ContactSection.module.css` to kebab-case and update the `.submitBtn:hover
.btnIcon` animation reference to match. Also review the theme-specific hover
behavior for `.submitBtn:hover` so the icon fly animation is either
intentionally light-mode only or added consistently alongside the dark-mode
hover styles; use the `.submitBtn:hover` and `.btnIcon` selectors to locate the
related rules.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2690a105-d6a4-4083-a46b-f9e6d8ee159f

📥 Commits

Reviewing files that changed from the base of the PR and between 173c3d6 and 5591d54.

📒 Files selected for processing (6)
  • components/contact/ContactSection.module.css
  • components/contact/ContactSection.tsx
  • components/footer.tsx
  • components/navbar.tsx
  • features/landing/hero.tsx
  • features/landing/universities.tsx

@imuniqueshiv imuniqueshiv left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Good Work!

@nitinmohan18 nitinmohan18 deleted the improve-home-university-ui branch July 2, 2026 20:49
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.

2 participants