Conversation
| left: auto; | ||
| right: max(4px, calc((var(--ios-theme-side-safe-area) - var(--ios-theme-side-tab-bar-width)) / 2)); | ||
| margin: 0; |
There was a problem hiding this comment.
🟡 分割ペイン内の下配置タブが指定した物理側に配置されない
開始側メニュー表示中に slot="bottom" を使うと、メニュー配置が優先されます。両辺が指定され、書字方向によって物理側の指定が無視されるため、バーが予約領域から外れます。
Learn more
分割ペインの既存スタイルは、表示中の開始側メニューを避けるため、下側タブバーに inset-inline-start を設定します。このセレクターは新しい適応型セレクターより詳細度が高いため、ここで設定した left: auto または物理位置より優先されます。絶対配置要素に left、right、固定幅が同時に残ると、LTR では左、RTL では右が優先されます。その結果、物理右配置は LTR で、物理左配置は RTL で壊れます。
Example: LTR の 1024px 幅で開始側メニューが表示され、右配置かつ slot="bottom" の場合、right に加えてメニュー由来の left が残ります。ブラウザーは left を優先し、タブバーを右側の予約領域ではなくメニュー後方へ置きます。
Recommended fix: 適応型の物理配置では論理 inset を明示的にリセットし、分割ペインのメニュールールより確実に優先させてください。左右配置、LTR/RTL、上下スロット、表示中の開始側・終了側メニューを組み合わせたテストも追加してください。
Was this helpful? React with 👍 or 👎 to provide feedback.
| contain: layout style; | ||
| flex-direction: column; | ||
| width: 54px; |
There was a problem hiding this comment.
🟡 縦型タブが Native UI Shell で横向きに投影される
Native UI Shell 有効時、この縦型バーも既存の適格判定を通過します。UIKit は項目を横並びにするため、幅62pxの領域へ押し込まれ、表示と操作領域が崩れます。
Learn more
Native UI Shell は、各ボタンの幅が等しく既定レイアウトならタブバーを投影対象にします。新しい縦型レイアウトでも全ボタンは54px幅なので、この条件を満たします。しかしネイティブ側の configureLayout は通常の UITabBar を横方向の .fill 配置で構成します。Web側の細く縦長な矩形を渡しても、項目が縦並びにはなりません。
Example: 4項目の右配置バーはWebでは約62×224pxです。Shellを有効にすると、4個のUIKit項目がその62px幅へ横並びに収められ、Webの縦型配置と一致しません。
Recommended fix: ネイティブ縦型投影を実装するまでは、.ionic-theme-adaptive-tabs 配下で左右配置されたバーを read の対象外にしてください。その後、Web表示へ正しくフォールバックする統合テストを追加してください。
Was this helpful? React with 👍 or 👎 to provide feedback.
| contain: layout style; | ||
| flex-direction: column; | ||
| width: 54px; |
There was a problem hiding this comment.
🟡 縦型タブの選択エフェクトが横方向に動く
registerTabBarEffect を縦型バーに登録すると、ジェスチャー処理はX座標だけを使います。上下へドラッグ選択できず、別タブのタップでもレンズが正しいボタン位置へ移動しません。
Learn more
公開APIの registerTabBarEffect は、タブバーを横向きと仮定しています。移動範囲、ヒットテスト、進捗、速度をすべてX軸から計算し、レンズのY座標はバー中央に固定します。新しい flex-direction: column はこの前提を変えますが、登録処理は縦型バーを拒否も適応もしません。そのため通常のクリック自体は発火しても、テーマ提供のドラッグ選択と選択レンズが壊れます。
Example: 下端寄せの4項目バーで一番下のタブをタップすると、選択先は変わりますが、レンズはそのボタンではなく縦長バーの中央付近に表示されます。上から下へドラッグしてもX座標がほぼ変わらないため、対象タブを切り替えられません。
Recommended fix: registerTabBarEffect とアニメーション計算を配置クラスに応じてY軸へ切り替えてください。未対応のまま提供する場合は、縦型バーでは登録を拒否して壊れたエフェクトを有効化しないでください。縦方向のタップ、ドラッグ、レンズ位置をテストしてください。
Was this helpful? React with 👍 or 👎 to provide feedback.
Playwright test resultsDetails
|
1ff5623 to
7b6fbb6
Compare
7b6fbb6 to
1e043e8
Compare
|
📊 Ionic 9 Playwright Test Report View the detailed Ionic 9 report: https://rdlabo-dev.github.io/ionic-theme-ios27/pr-208/ Ionic 8 runs against the same screenshots in a separate matrix job. View both results in the workflow run. |
1e043e8 to
9bfebe4
Compare
9bfebe4 to
e091d47
Compare
e091d47 to
2ded8ce
Compare
2ded8ce to
65e2a9e
Compare
65e2a9e to
ddb3365
Compare
bfcede5 to
0b24bf4
Compare
ebe2880 to
fdcff52
Compare
1f7bda0 to
76fb6e2
Compare
ced2fea to
bc6a455
Compare
4969d79 to
23cf96a
Compare
bc6a455 to
e94839a
Compare
|
Consolidated into #213. The adaptive tab-bar commits are now part of the head branch, so this intermediate stacked PR is no longer needed. |
|
Consolidated into #213; its adaptive tab-bar commits are now included in the Web foldable PR. |
Summary
.ios-theme-enable-foldablethe single opt-in for the Duo tab-bar layoutTabViewconfigurations: 50pt outer width, 2pt inner inset, and approximately 52pt per itemslotand writing direction for the physical rail positionion-menu/ion-split-paneStack
Base:
feat/physical-safe-areaVerification