Skip to content

CANON-041: fix mobile nav sheet max-height 60vh → 60dvh#59

Open
VaultSparkStudios wants to merge 9 commits into
mainfrom
routine/canon-041-sheet-dvh
Open

CANON-041: fix mobile nav sheet max-height 60vh → 60dvh#59
VaultSparkStudios wants to merge 9 commits into
mainfrom
routine/canon-041-sheet-dvh

Conversation

@VaultSparkStudios

Copy link
Copy Markdown
Owner

What

The bottom-sheet mobile nav (served to ~50% of mobile visitors via the canary ramp) set max-height: 60vh in its injected styles. On iOS Safari the sheet is position: fixed; bottom: 0, which anchors to the visual viewport, but 60vh is measured from the initial containing block (ICB). When the address bar is visible the ICB is taller than the visual viewport, so the sheet overruns its intended 60%-of-screen cap — appearing taller than 60% of what the user can actually see, and potentially crowding content near the top of the visible area.

Switching to 60dvh (dynamic viewport height) makes the cap track the current visual viewport at all times, matching CANON-041's explicit "use 100dvh (NOT 100vh)" rule for mobile nav components.

Change

  • assets/nav-sheet.js line 117: max-height:60vhmax-height:60dvh
  • Shell-asset hash rotated e821c7fa64192a84b737 (via build-shell-assets.mjs)
  • Service worker cache name, assets/shell-manifest.json, and all 141 HTML pages updated to the new hash

No logic changes — pure viewport unit correction.

How to verify on mobile

  1. Open the site on an iPhone in Safari (address bar visible, page not scrolled)
  2. Tap the hamburger — the bottom sheet should open to at most 60% of the visible screen, not creeping above that line
  3. Drag the sheet handle downward to close — confirm it dismisses cleanly
  4. Rotate to landscape — sheet should still cap at 60dvh of the narrower landscape viewport

Do NOT merge — for founder review only.


Generated by Claude Code

claude added 2 commits July 22, 2026 03:12
On iOS Safari, `max-height:60vh` on the bottom-sheet nav is relative to
the initial containing block (ICB), while the sheet is `position:fixed`
at `bottom:0` (visual viewport). When the address bar is visible the
visual viewport is shorter than the ICB, so the sheet overruns its
intended 60%-of-screen cap. Switching to `60dvh` (dynamic viewport
height) ensures the cap tracks the current visual viewport at all times,
matching CANON-041's explicit "use 100dvh (NOT 100vh)" requirement for
mobile nav components.

Rebuild rotates the shell-asset hash from e821c7fa64 → 192a84b737,
updates the service worker cache name, shell-manifest.json, and all 141
HTML pages that load the sheet script.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mG4UUuEg6WGhwxPd5nEDH
Studio Website pulses30d: 7 → 6 as one event aged out of the sliding
window. No logic change — regenerated via generate-heartbeat.mjs to
clear the generated-drift-preflight CI check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mG4UUuEg6WGhwxPd5nEDH

@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: 3ed991eae8

ℹ️ 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".

"version": "86cb6a57c2-78970d4b09-8c1f2155b5-0995bd7945-e821c7fa64-5c5019b121-ea6c394db7",
"cacheName": "vaultspark-shell-86cb6a57c2-78970d4b09-8c1f2155b5-0995bd7945-e821c7fa64-5c5019b121-ea6c394db7",
"generatedAt": "2026-07-22T03:10:48.983Z",
"version": "86cb6a57c2-78970d4b09-8c1f2155b5-0995bd7945-192a84b737-5c5019b121-ea6c394db7",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Regenerate release proof after rotating the shell hash

When this shell version changes, api/release-proof.json also needs to be regenerated because scripts/build-release-proof.mjs derives build.shellVersion from assets/shell-manifest.json. In this commit the public proof still reports the old ...e821c7fa64... shell, and I verified node scripts/build-release-proof.mjs --check now exits 1 with api/release-proof.json drifted; since that check is included in build:check:steps, this hash rotation will fail the release gate until the proof artifact is updated.

Useful? React with 👍 / 👎.

claude added 7 commits July 22, 2026 03:16
Regenerate api/release-proof.json so build.shellVersion reflects the new
nav-sheet hash (e821c7fa64 → 192a84b737) from the CANON-041 dvh fix.
Clears the build-release-proof --check gate in CI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mG4UUuEg6WGhwxPd5nEDH
Pre-existing SSR drift in changelog/index.html; regenerated via
build-you-asked-shipped.mjs to clear build:check step 48.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mG4UUuEg6WGhwxPd5nEDH
Portfolio-wide studio events beyond 30 days caused the public intelligence
activity heatmap to go empty, failing check-intelligence-hydration at CI step
100. Widening the rolling window to 60 days captures genuine cross-project
activity that has now aged past the previous cutoff.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mG4UUuEg6WGhwxPd5nEDH
…build)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mG4UUuEg6WGhwxPd5nEDH
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mG4UUuEg6WGhwxPd5nEDH
…ow change)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mG4UUuEg6WGhwxPd5nEDH
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