Skip to content

feat(layout): support foldable safe-area layout - #209

Merged
rdlabo merged 12 commits into
feat/foldable-togglefrom
feat/physical-safe-area
Sep 22, 2026
Merged

rdlabo merged 12 commits into
feat/foldable-togglefrom
feat/physical-safe-area

Conversation

@rdlabo

@rdlabo rdlabo commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • reserve the physical iPhone Duo system region behind the Web foreground
  • apply foldable safe-area conversion to content, toolbars, FABs, and menus without changing ordinary iPhone safe areas
  • keep routers and component backgrounds full viewport
  • cover LTR and RTL with visual regression screenshots

Stack

  1. feat: support iPhone Duo with vertical bars #213 — demo foldable toggle
  2. feat(layout): support foldable safe-area layout #209 — foldable safe-area layout
  3. feat(tabs): add foldable vertical tab bar #208 — foldable vertical tab bar
  4. feat: project foldable toolbar navigation and actions #212 — foldable toolbar projection

Base: feat/foldable-toggle

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

Devin Review

Comment thread src/styles/components/ion-fab.scss Outdated
:is(ion-app, body).ionic-theme-safe-area-left
ion-fab.ios:not(.ios-theme-disabled, .ios26-disabled):not(:where(ion-menu *, ion-modal *, ion-popover *)) {
--ion-safe-area-left: 0px;
--ios-theme-safe-area-inline-start: var(--ion-theme-safe-area-left, var(--safe-area-inset-left, env(safe-area-inset-left, 0px)));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 左側セーフエリアを無視する start 配置の FAB

LTR の左側または RTL の右側に FAB を置くと、メニュー幅変数がセーフエリア変数より優先されます。FAB は予約領域分だけ移動せず、ページ前景やメニューとずれます。

Learn more

fab-horizontal-start の位置は 既存の配置式 で計算されます。この式は --ios-theme-menu-width、次に常時定義される --ios26-menu-width を参照し、それらがない場合だけ --ios-theme-safe-area-inline-start を使います。そのため、この行で物理左側の値を代入しても、LTR の horizontal="start" では位置計算に届きません。RTL の物理右側も同じく logical start なので影響を受けます。

Example: LTR で --ios-theme-menu-width: 300px、--ion-theme-safe-area-left: 76px の場合、左側 FAB は従来どおり 316px に配置されます。予約領域とメニューを考慮するなら、前景端の 376px に 16px を加えた位置へ移動する必要があります。

Recommended fix: 物理セーフエリアが有効な logical start 側では、既存のメニュー幅に物理 inset を加えた値を配置式へ渡してください。小型 FAB の 10px 式にも同じ補正を適用し、LTR 左側と RTL 右側を E2E テストへ追加してください。

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Playwright test results

passed  340 passed

Details

stats  340 tests across 19 suites
duration  4 minutes, 6 seconds
commit  4ed53bc
info  This detailed result covers Ionic 9 only. Ionic 8 runs against the same screenshots in a separate matrix job; check the workflow run for both results. To update the screenshots, comment with /update-screenshots.

github-actions Bot added a commit that referenced this pull request Sep 21, 2026
@rdlabo
rdlabo force-pushed the feat/physical-safe-area branch from 73a14df to 98c85ae Compare September 21, 2026 09:39
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

📊 Ionic 9 Playwright Test Report

View the detailed Ionic 9 report: https://rdlabo-dev.github.io/ionic-theme-ios27/pr-209/

Ionic 8 runs against the same screenshots in a separate matrix job. View both results in the workflow run.

@rdlabo
rdlabo force-pushed the feat/physical-safe-area branch 2 times, most recently from fa91b0f to eab6ff5 Compare September 21, 2026 10:04
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
@rdlabo rdlabo changed the title feat(layout): add physical side safe areas feat(layout): support foldable safe-area layout Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
github-actions Bot added a commit that referenced this pull request Sep 21, 2026
@rdlabo
rdlabo changed the base branch from main to feat/support_foldable September 21, 2026 13:50
@rdlabo
rdlabo force-pushed the feat/physical-safe-area branch from ebe2880 to fdcff52 Compare September 22, 2026 01:01
@rdlabo
rdlabo changed the base branch from feat/support_foldable to feat/foldable-toggle September 22, 2026 01:01
@rdlabo
rdlabo force-pushed the feat/foldable-toggle branch from 81e5dc2 to 37381e9 Compare September 22, 2026 02:35
@rdlabo
rdlabo force-pushed the feat/physical-safe-area branch from 4969d79 to 23cf96a Compare September 22, 2026 02:35
@rdlabo
rdlabo merged commit 23cf96a into feat/foldable-toggle Sep 22, 2026
@rdlabo

rdlabo commented Sep 22, 2026

Copy link
Copy Markdown
Contributor Author

Consolidated into #213; GitHub marked this PR merged after its safe-area commits became part of the #213 head branch.

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.

1 participant