Skip to content

CANON-041: replace 100vh with 100dvh in Studio Hub sidebar#57

Open
VaultSparkStudios wants to merge 1 commit into
mainfrom
routine/canon-041-hub-100dvh
Open

CANON-041: replace 100vh with 100dvh in Studio Hub sidebar#57
VaultSparkStudios wants to merge 1 commit into
mainfrom
routine/canon-041-hub-100dvh

Conversation

@VaultSparkStudios

Copy link
Copy Markdown
Owner

What

Replaces all 100vh with 100dvh in studio-hub/src/styles/hub.css — the CANON-041 violation that was present across the body, layout shell, desktop sticky sidebar, and the mobile fixed sidebar.

Root issue (mobile sidebar, line 950): On iOS Safari with a dynamic address bar, 100vh equals the full viewport including browser chrome. When the address bar is visible, the fixed-position mobile sidebar extends below the visible screen — bottom nav links clip and are unreachable even though overflow-y: auto is set. 100dvh always tracks the dynamic visible viewport.

Extra fix included for the mobile sidebar block:

  • height: 100vhheight: 100vh; height: 100dvh; (100vh kept as fallback for browsers without dvh support)
  • Added padding-bottom: env(safe-area-inset-bottom, 0) so notched/home-bar devices don't clip the last nav item

Files changed

  • studio-hub/src/styles/hub.css — 5 100vh100dvh across body, #app, .shell, .sidebar (desktop sticky), .sidebar (mobile fixed)

How to verify on mobile

  1. Open /studio-hub/ on an iPhone with iOS Safari (any recent version)
  2. Tap the menu button — sidebar slides in
  3. Scroll to the very bottom of the sidebar — all nav items, including the last one, should be fully visible and tappable
  4. No content should be cut off by the address bar or home indicator

Previously: bottom sidebar items clipped below screen; 100vh exceeded the visual viewport when iOS address bar was shown.
After: sidebar fills exactly the dynamic visible viewport; all items reachable.


Generated by Claude Code

On iOS Safari with dynamic address bar, 100vh includes the browser chrome
so the fixed mobile sidebar overflows below the visible viewport — bottom
nav links clip and are unreachable. 100dvh tracks the dynamic visible
viewport correctly. Also adds padding-bottom safe-area inset for notched
devices and the 100vh fallback for older browsers that lack dvh support.

Co-Authored-By: Claude <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0158ce955f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

radial-gradient(circle at 50% 100%, rgba(255, 200, 116, 0.07), transparent 26%),
linear-gradient(145deg, #04070d 0%, #07111d 45%, #03060a 100%);
min-height: 100vh;
min-height: 100dvh;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restore 100vh fallbacks before 100dvh

In browsers that do not support dynamic viewport units, this 100dvh declaration is ignored; the same commit keeps a 100vh fallback for the mobile sidebar, but the body, #app, .shell, and desktop .sidebar replacements no longer have one. On older Safari/embedded webviews the hub can therefore lose its full-viewport shell and scrollable/sticky sidebar behavior that previously worked with 100vh. Keep the old 100vh declaration immediately before the 100dvh override for these non-mobile rules as well.

Useful? React with 👍 / 👎.

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