feat(layout): support foldable safe-area layout - #209
Conversation
24edb8f to
73a14df
Compare
| :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))); |
There was a problem hiding this comment.
🟡 左側セーフエリアを無視する 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 テストへ追加してください。
Was this helpful? React with 👍 or 👎 to provide feedback.
Playwright test resultsDetails
|
73a14df to
98c85ae
Compare
|
📊 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. |
fa91b0f to
eab6ff5
Compare
ebe2880 to
fdcff52
Compare
81e5dc2 to
37381e9
Compare
This reverts commit d9cfefe.
4969d79 to
23cf96a
Compare
Summary
Stack
Base:
feat/foldable-toggle