Skip to content

fix: correct iOS Safari viewport height on sign request - #7964

Merged
vitormattos merged 1 commit into
LibreSign:mainfrom
bdebyl:fix_safari_ios_viewheight
Aug 4, 2026
Merged

fix: correct iOS Safari viewport height on sign request#7964
vitormattos merged 1 commit into
LibreSign:mainfrom
bdebyl:fix_safari_ios_viewheight

Conversation

@bdebyl

@bdebyl bdebyl commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

📝 Summary

Fixes the external signing page being cut off at the bottom on iOS Safari.

ExternalApp.vue sizes html body #content — and, under max-width: 512px, #app-sidebar — to height: 100vh with position: fixed. iOS Safari resolves 100vh against the large viewport i.e. as though the browser chrome were hidden. The element therefore extends behind the bottom toolbar, and its lower edge cannot be scrolled into view / is inaccessible.

On the signing page that lower edge is the action bar, so a signer on an iPhone sees it clipped and cannot reliably tap it. Signing is effectively blocked on mobile Safari.

This pairs each 100vh with a following 100dvh. The dynamic viewport unit tracks the browser chrome as it shows and hides, which is the intended behaviour here.

Why it is paired with 100vh

The 100vh declaration is kept first, so a browser without dvh support simply drops the second declaration and behaves exactly as it does today. From my understanding, no @supports guard is needed and there is no regression risk for older clients.

Note: I did test on other browsers, but the before/after is the same for desktop.

🧪 How to test

  1. Open signature request page on iOS with Safari or other mobile browser
  2. The bottom <aside> allowing signature defining is no longer obscured by UI elements

🎨 UI / Front‑end changes

🏚️ Before 🏡 After
2026-08-02_10-47 2026-08-02_10-47_1
  • Tested in multiple browsers (Chrome, Firefox, Safari) – optional but appreciated
  • [n/a] Components, Unit (with vitest) and/or e2e (with Playwright) tests added - Required
  • Accessibility verified (contrast, keyboard navigation, screen reader friendly) – if applicable
  • [n/a] Design review approved – optional, link to feedback if available
  • [n/a] Documentation updated (if applicable) – docs repository

✅ Checklist

@github-project-automation github-project-automation Bot moved this to 0. Needs triage in Roadmap Aug 2, 2026
Signed-off-by: Bastian de Byl <bastian@debyl.io>
@bdebyl
bdebyl force-pushed the fix_safari_ios_viewheight branch from d006af6 to e1b466f Compare August 2, 2026 15:01
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Files with missing lines Coverage Δ
src/ExternalApp.vue 100.00% <ø> (ø)

... and 173 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@vitormattos

Copy link
Copy Markdown
Member

/backport to stable34

@vitormattos

Copy link
Copy Markdown
Member

/backport to stable33

@vitormattos

Copy link
Copy Markdown
Member

/backport to stable32

@vitormattos

Copy link
Copy Markdown
Member

@bdebyl, thank you very much for your contribution!

If you’re comfortable sharing, we’d be interested in learning more about how you discovered LibreSign, how you use it, and what motivated you to contribute.

You’re also welcome to join the LibreSign community on Telegram.

@vitormattos
vitormattos merged commit a72908c into LibreSign:main Aug 4, 2026
65 checks passed
@github-project-automation github-project-automation Bot moved this from 0. Needs triage to 4. to release in Roadmap Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 4. to release

Development

Successfully merging this pull request may close these issues.

3 participants