z-index について
ここでは、プロジェクトで統一して利用するz-indexの基準値について説明します。
z-indexは CSS カスタムプロパティ(CSS変数)で管理する
z-indexの値はグローバルで管理し、再利用可能にするためCSSカスタムプロパティで定義します。
:root {
--z-index-header: 100;
--z-index-modal: 200;
}
定義したCSSカスタムプロパティは、var()
関数を使って適用します。
.modal {
position: relative;
z-index: var(--z-index-modal);
}
同じレイヤー内で微調整が必要な場合は、基準値に対して計算式を使用できます。
/* ヘッダー内の要素を1段階上に配置する例 */
.header__notification {
position: relative;
z-index: calc(var(--z-index-header) + 1);
}
UI要素別の z-index 基準値
UI要素 | 値 | 説明 |
---|---|---|
hide | -1 | 要素を非表示にする場合に使用 |
base | 0 | 通常の要素の初期値 |
decorator | 50 | 疑似要素(::before, ::after)、装飾的な境界線などの配置用 |
dropdown | 1000 | ドロップダウンメニューの配置用 |
sticky | 1200 | position: sticky で固定する要素(ヘッダーなど)の配置用 |
banner | 1300 | 通知バナーやアラートの配置用 |
overlay | 1400 | モーダルの背景 オーバーレイなどの配置用 |
modal | 1500 | モーダルウィンドウの配置用 |
popover | 1600 | ポップオーバーメニューの配置用 |
toast | 1700 | トースト通知の配置用 |
tooltip | 1800 | ツールチップの配置用 |