The file write needs permission. I have the full HTML ready — here it is, intended for `site/public/raw/260415_new-css-variable-for-mobile-safe-area-insets.html` (slug matches the repo's `yymmdd_urlSlug` convention, no collision). If you'd rather I write it directly, re-grant write access and I'll save it. ```html
Shopify モバイルアプリ内で動く埋め込みアプリ向けに、画面下部のオーバーレイ(フローティング下部ナビバーなど)の高さを CSS ピクセルで返す新しいカスタムプロパティ。App Bridge が自動でセットし、固定配置の FAB やスティッキーフッターをバーの上に逃がせる。2026年4月15日から適用。
下部固定の FAB やスティッキーフッターが、ネイティブのフローティングバーと重なってタップできない/見えない。
App Bridge がバーの高さを変数にセット。CSS で calc() に足すだけで固定要素がバーの上に乗る。
この変数は <body> に自動で下部パディングを追加する。通常スクロールするコンテンツを持つ 大半のアプリは無対応でも フローティングバーに隠れず正しく動く。
スティッキーフッターやフローティングアクションボタン(FAB)など、position:fixed/sticky で下部に置いた独自要素は、自分で変数を CSS に組み込む必要がある。
var(--shopify-safe-area-inset-bottom, 0px) を足す。| 状況 | var(--shopify-safe-area-inset-bottom) の値 |
|---|---|
| オーバーレイが無いとき | 0px 既定値 |
| モバイルのフローティング下部バーが表示中 | バーの高さ(CSS ピクセル)に自動調整 |
| セットする主体 | App Bridge が自動でセット(JS の追加実装は不要) |
, 0px を付ける。カスタムの下部固定要素には、既存の bottom 値に変数を足すだけ。記事に示された実装例は次の通り。
16px として安全に成立する。Shopify モバイル上で動き、ビューポート下部に fixed / sticky 要素を使う すべての埋め込みアプリ。
対象アプリすべてに 2026年4月15日 から適用される。
大半は対応不要。カスタム下部固定 UI がある場合のみ、CSS に変数を組み込む。
App Bridge が値を自動セットするため、開発者側は var() を CSS に書くだけ。リスナー登録や高さ計測のコードは要らない。
オーバーレイ有無で 0px とバー高さを行き来する。メディアクエリや端末判定で自前分岐する必要がない。
通常フローのコンテンツは <body> への自動パディングでカバーされる。対応が要るのは fixed / sticky 要素だけと切り分けられる。
変数が無い環境でも壊れないよう、第2引数に 0px を渡すのが安全。calc(16px + var(--…, 0px)) の形を徹底。
2026年4月15日に対象アプリへ一律適用される変更で、changelog 上は Action Required 扱い。下部固定 UI を持つアプリは期日までに実機(Shopify モバイル)で重なりを確認すること。詳細は App Home の Environment API ドキュメントを参照。
bottom を calc(16px + var(--shopify-safe-area-inset-bottom, 0px)) に変更してバーの上へ逃がす。<body> 自動パディングで救われるので、手当ては固定要素だけに限定できる。bottom(または padding-bottom)に変数を加算し、常にバーの上に表示。var(--shopify-safe-area-inset-bottom, 0px) を組み込み、全アプリへ一括配布。calc(… + var(--shopify-safe-area-inset-bottom, 0px)) を足せばフローティングバーに隠れない。」