Skip to content

style(header): enhance mobile menu button and layout styling#2077

Merged
ComputelessComputer merged 1 commit intomainfrom
c-branch-19
Dec 2, 2025
Merged

style(header): enhance mobile menu button and layout styling#2077
ComputelessComputer merged 1 commit intomainfrom
c-branch-19

Conversation

@ComputelessComputer
Copy link
Collaborator

No description provided.

@netlify
Copy link

netlify bot commented Dec 2, 2025

Deploy Preview for hyprnote-storybook ready!

Name Link
🔨 Latest commit 99f6962
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/692f09e055e4f50008ef95d6
😎 Deploy Preview https://deploy-preview-2077--hyprnote-storybook.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.

@netlify
Copy link

netlify bot commented Dec 2, 2025

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit 99f6962
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/692f09e11069ea0008296225
😎 Deploy Preview https://deploy-preview-2077--hyprnote.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
Contributor

coderabbitai bot commented Dec 2, 2025

📝 Walkthrough

Walkthrough

Reworked the header's mobile menu: replaced separate backdrop+panel with a single fixed translucent/blurred overlay, removed backdrop click-to-close, changed toggle button styling, and converted the flat mobile menu into a nested accordion with adjusted spacing and positioning.

Changes

Cohort / File(s) Summary
Mobile menu UI & behavior
apps/web/src/components/header.tsx
Replaced two-layer backdrop+panel with one fixed translucent white/backdrop-blur overlay (top offset adjusted to 69px); removed backdrop onClick close; toggle button styling updated (cursor, gradient, color, hover/active effects); mobile menu restructured into nested accordion for Product/Features; adjusted spacing, max-height, shadow/border treatment, and footer-like section spacing.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Inspect apps/web/src/components/header.tsx for overlay positioning and responsive max-height calculations.
  • Verify that menu closing occurs only via item interactions and that focus/keyboard accessibility remains intact.
  • Check visual states of toggle button (hover/active) and submenu expand/collapse behavior across viewports.

Possibly related PRs

Suggested reviewers

  • yujonglee

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Description check ❓ Inconclusive No pull request description was provided by the author. Add a description explaining the purpose and rationale for the styling changes to help reviewers understand the intent and any visual improvements.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main changes: enhanced mobile menu button styling and improved layout/overlay structure for the mobile menu.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch c-branch-19

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 32f0388 and 99f6962.

📒 Files selected for processing (1)
  • apps/web/src/components/header.tsx (3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Avoid creating a bunch of types/interfaces if they are not shared. Especially for function props, just inline them instead.
Never do manual state management for form/mutation. Use useForm (from tanstack-form) and useQuery/useMutation (from tanstack-query) instead for 99% of cases. Avoid patterns like setError.
If there are many classNames with conditional logic, use cn (import from @hypr/utils). It is similar to clsx. Always pass an array and split by logical grouping.
Use motion/react instead of framer-motion.

Files:

  • apps/web/src/components/header.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Redirect rules - hyprnote
  • GitHub Check: Header rules - hyprnote
  • GitHub Check: Pages changed - hyprnote
  • GitHub Check: fmt
  • GitHub Check: ci
🔇 Additional comments (1)
apps/web/src/components/header.tsx (1)

225-231: Mobile menu toggle button styles and accessibility look good.

Button has clear visual affordance, hover/active states, and appropriate aria-* attributes; no issues from my side.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
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: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/web/src/components/header.tsx (1)

237-365: Consider restoring backdrop click-to-close functionality.

The previous implementation likely had a separate backdrop element that closed the menu when clicked. The consolidated structure removes this common UX pattern, requiring users to click a menu item to dismiss the overlay. Most mobile menus allow dismissal by clicking outside the menu content.

Consider adding an onClick handler to close the menu:

-          <div className="fixed top-[69px] left-0 right-0 bg-white/80 backdrop-blur-sm border-b border-neutral-100 shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_2px_4px_-2px_rgba(0,0,0,0.1)] z-50 sm:hidden animate-in slide-in-from-top duration-300 max-h-[calc(100vh-65px)] overflow-y-auto">
+          <div 
+            onClick={() => setIsMenuOpen(false)}
+            className="fixed top-[69px] left-0 right-0 bg-white/80 backdrop-blur-sm border-b border-neutral-100 shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_2px_4px_-2px_rgba(0,0,0,0.1)] z-50 sm:hidden animate-in slide-in-from-top duration-300 max-h-[calc(100vh-65px)] overflow-y-auto">
-            <nav className={`${maxWidthClass} mx-auto px-4 py-6`}>
+            <nav 
+              onClick={(e) => e.stopPropagation()}
+              className={`${maxWidthClass} mx-auto px-4 py-6`}
+            >
🧹 Nitpick comments (1)
apps/web/src/components/header.tsx (1)

224-231: Remove redundant cursor-pointer class.

The cursor-pointer class is unnecessary on button elements, as they display a pointer cursor by default.

Apply this diff:

-                className="cursor-pointer px-3 h-8 flex items-center text-sm bg-linear-to-t from-neutral-200 to-neutral-100 text-neutral-900 rounded-full shadow-sm hover:shadow-md hover:scale-[102%] active:scale-[98%] transition-all"
+                className="px-3 h-8 flex items-center text-sm bg-linear-to-t from-neutral-200 to-neutral-100 text-neutral-900 rounded-full shadow-sm hover:shadow-md hover:scale-[102%] active:scale-[98%] transition-all"
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ae85942 and 32f0388.

📒 Files selected for processing (1)
  • apps/web/src/components/header.tsx (3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Avoid creating a bunch of types/interfaces if they are not shared. Especially for function props, just inline them instead.
Never do manual state management for form/mutation. Use useForm (from tanstack-form) and useQuery/useMutation (from tanstack-query) instead for 99% of cases. Avoid patterns like setError.
If there are many classNames with conditional logic, use cn (import from @hypr/utils). It is similar to clsx. Always pass an array and split by logical grouping.
Use motion/react instead of framer-motion.

Files:

  • apps/web/src/components/header.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Redirect rules - hyprnote
  • GitHub Check: Header rules - hyprnote
  • GitHub Check: Pages changed - hyprnote
  • GitHub Check: fmt
  • GitHub Check: ci

@ComputelessComputer ComputelessComputer merged commit ea6457f into main Dec 2, 2025
12 of 13 checks passed
@ComputelessComputer ComputelessComputer deleted the c-branch-19 branch December 2, 2025 15:50
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