Skip to content

Conversation

@ComputelessComputer
Copy link
Collaborator

@ComputelessComputer ComputelessComputer commented Dec 5, 2025

Summary

Fixes mobile Safari safe area issue where the mobile menu and drawer sidebars were extending beyond the safe area boundaries, causing awkward display on iOS devices with notches/home indicators.

Changes:

  • Added viewport-fit=cover to the viewport meta tag to enable safe area insets
  • Added paddingBottom: env(safe-area-inset-bottom) to the mobile menu dropdown
  • Added paddingBottom: env(safe-area-inset-bottom) to the docs and handbook drawer sidebars (which already had left safe area padding)

Review & Testing Checklist for Human

  • Test on actual iOS Safari device - Open the mobile menu on an iPhone with a notch/home indicator and verify content no longer extends beyond the safe area
  • Check docs/handbook drawer sidebars - Navigate to /docs or /company-handbook on mobile and verify the drawer respects the bottom safe area
  • Verify sticky header behavior - Ensure the sticky header at top still works correctly with viewport-fit=cover (may need top safe area padding if issues appear)
  • Check Zendesk chat widget - The chat bubble in bottom-right may be affected by viewport-fit=cover; verify it's still accessible

Notes

There are other components using 100vh calculations that may have similar issues (product pages, gallery pages, etc.) but were not addressed in this PR since they weren't shown in the reported screenshot. May need follow-up if issues are found elsewhere.

Requested by: @ComputelessComputer ([email protected])
Link to Devin run: https://app.devin.ai/sessions/fa5c3161fa514674acdc2b7b10107ae9

- Add viewport-fit=cover to viewport meta tag to enable safe area insets
- Add paddingBottom: env(safe-area-inset-bottom) to mobile menu
- Add paddingBottom: env(safe-area-inset-bottom) to docs and handbook drawer sidebars

Co-Authored-By: [email protected] <[email protected]>
@devin-ai-integration
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@netlify
Copy link

netlify bot commented Dec 5, 2025

Deploy Preview for hyprnote-storybook ready!

Name Link
🔨 Latest commit 71e340f
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/6933bbbe70fab9000870ff6b
😎 Deploy Preview https://deploy-preview-2135--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 5, 2025

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit 71e340f
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/6933bbbe0a58ca00083cca92
😎 Deploy Preview https://deploy-preview-2135--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 5, 2025

📝 Walkthrough

Walkthrough

Adds bottom safe-area inset padding to mobile menu/drawer containers and updates the root viewport meta tag to include viewport-fit=cover. Changes are presentation-only; no control-flow or exported API changes.

Changes

Cohort / File(s) Summary
Mobile safe-area & viewport
apps/web/src/components/header.tsx, apps/web/src/routes/__root.tsx, apps/web/src/routes/_view/route.tsx
Adds paddingBottom: "env(safe-area-inset-bottom)" to mobile menu/drawer container styles (MobileMenu, MobileDocsDrawer, MobileHandbookDrawer) and updates the viewport meta tag to width=device-width, initial-scale=1, viewport-fit=cover. No logic or API changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Check mobile menu and drawer visuals on devices/emulators with safe areas (iOS notch, etc.).
  • Confirm viewport meta change doesn't conflict with any existing meta handling or tests.
  • Verify style insertion doesn't unintentionally override other container styles.

Possibly related PRs

Suggested reviewers

  • yujonglee

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
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.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'fix: add mobile Safari safe area support' directly and accurately summarizes the main change—adding safe area support for mobile Safari.
Description check ✅ Passed The description is well-related to the changeset, providing clear context about the safe area issue, specific changes made, and testing guidance.
✨ 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 devin/1764920268-fix-mobile-safari-safe-area

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 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: 0

🧹 Nitpick comments (2)
apps/web/src/routes/_view/route.tsx (2)

103-106: Add fallback value to the safe-area environment variable.

The env() function should include a fallback value for browsers that don't support safe-area-inset variables. This ensures graceful degradation on older browsers or non-iOS devices.

Apply this diff:

       style={{
         paddingLeft: "env(safe-area-inset-left)",
-        paddingBottom: "env(safe-area-inset-bottom)",
+        paddingBottom: "env(safe-area-inset-bottom, 0px)",
       }}

Note: Consider applying the same fallback pattern to paddingLeft on line 104 for consistency.


191-194: Add fallback value to the safe-area environment variable.

Same as the MobileDocsDrawer above, add a fallback value for graceful degradation.

Apply this diff:

       style={{
         paddingLeft: "env(safe-area-inset-left)",
-        paddingBottom: "env(safe-area-inset-bottom)",
+        paddingBottom: "env(safe-area-inset-bottom, 0px)",
       }}

Note: Consider applying the same fallback pattern to paddingLeft on line 192 for consistency.

📜 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 34744c3 and 71e340f.

📒 Files selected for processing (2)
  • apps/web/src/components/header.tsx (1 hunks)
  • apps/web/src/routes/_view/route.tsx (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/web/src/components/header.tsx
🧰 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/routes/_view/route.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). (6)
  • GitHub Check: Redirect rules - hyprnote
  • GitHub Check: Header rules - hyprnote
  • GitHub Check: Pages changed - hyprnote
  • GitHub Check: ci
  • GitHub Check: fmt
  • GitHub Check: Devin

@ComputelessComputer ComputelessComputer deleted the devin/1764920268-fix-mobile-safari-safe-area branch December 14, 2025 15:21
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