Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat: Add support for iOS safe area#817

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
WarningImHack3r wants to merge5 commits intosveltejs:main
base:main
Choose a base branch
Loading
fromWarningImHack3r:safari-safe-area

Conversation

WarningImHack3r
Copy link

@WarningImHack3rWarningImHack3r commentedNov 6, 2024
edited
Loading

Add support for iOS' safe area environment variables to prevent the navbar from being hidden behind the iPhone's home bar.

It works using theofficial Webkit guide, which was originally made after the introduction of the iPhone X with iOS 11.
It exposes theenv() CSS function with 4 variables (safe-area-inset-{top,left,right,bottom}),requiringviewport-fit=cover in theviewport meta tag to get rid of natural viewport margins(edit: apparently not needed from my testing, removed it - probably only required for the left/right variants?).

These environment variables are smartly populated by the system based on the current Safari layout, giving them a value granularly as needed.

Note

You might note my PR doesn't include the outdatedconstant() function, the previous name ofenv() between iOS 11.0 and 11.2 beta versions: the already low range of concerned versions combined with the ancient age of this major iOS version isn’t worth the effort, in my opinion.
It can, however, be easily added at will with@supports queries or CSS rules fallbacks after bypassingcalc() calls.

On desktop, theenv() function is (supposedly) undefined, invalidating the CSS lines using it, leading to no repercussions on desktop browsers or other mobile browsers. I've tested it on Arc / Chrome desktop in responsive mode and noticed no impact.

Demo

beforeafter
Before(old Safari layout/in-app browser)After(old Safari layout/in-app browser)
after old UI regularafter new UI
After(old Safari layout/in-app browser - "unscrolled" state)After(new Safari layout - not impacted)

A note on documentation PRs

If this is a documentation PR (i.e. changing content withinapps/svelte.dev/content/docs), then this is the wrong repository to make those changes. The content in this folder is synced from other repositories. Therefore, these changes should be made in their respective repositories (athttps://github.com/sveltejs/svelte orhttps://github.com/sveltejs/kit, or example).

Before submitting the PR, please make sure you do the following

  • It's really useful if your PR references an issue where it is discussed ahead of time.
  • Prefix your PR title withfeat:,fix:,chore:, ordocs:.
  • This message body should clearly illustrate what problems it solves.

@vercelVercel
Copy link

vercelbot commentedNov 6, 2024

@WarningImHack3r is attempting to deploy a commit to theSvelte Team onVercel.

A member of the Team first needs toauthorize it.

@vercelVercel
Copy link

vercelbot commentedJan 13, 2025
edited
Loading

The latest updates on your projects. Learn more aboutVercel for Git ↗︎

NameStatusPreviewUpdated (UTC)
svelte-dev✅ Ready (Inspect)Visit PreviewApr 4, 2025 7:48pm

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers
No reviews
Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

3 participants
@WarningImHack3r@dummdidumm@Rich-Harris

[8]ページ先頭

©2009-2025 Movatter.jp