レイヤーとエレベーション
フラット、浮き上がったサーフェス、オーバーレイを使い分け、ライト・ダーク両テーマでレイヤー順、スクリム、モーダル動作、シャドウを揃えます。
フラット、浮き上がったサーフェス、オーバーレイを使い分ける
- フラット: 通常のカード、パネル、ページセクションです。サーフェス色とボーダーで区切ります。
- 浮き上がったサーフェス: 背後のページを操作できるまま、周囲から分離する浮動コンテンツです。
- オーバーレイ: ポータルに表示し、周囲から明確に分離するコンテンツです。シャドウは分離を強めますが、モーダルかどうかは動作で決まります。
ライトとダークを比較
浮き上がったサーフェス
浮き上がったサーフェス
ダークテーマでは、サーフェスのコントラストとボーダーが境界の多くを担います。シャドウは唯一の境界ではなく補助的な手がかりです。
共通のレイヤー順
| レイヤー | 値 | CSS 変数 |
|---|---|---|
base | 0 | --tinyrack-layer-base |
component-raised | 2 | --tinyrack-layer-component-raised |
component-overlay | 3 | --tinyrack-layer-component-overlay |
chrome | 100 | --tinyrack-layer-chrome |
backdrop | 900 | --tinyrack-layer-backdrop |
dropdown | 1000 | --tinyrack-layer-dropdown |
popover | 1100 | --tinyrack-layer-popover |
dialog | 1210 | --tinyrack-layer-dialog |
toast | 1300 | --tinyrack-layer-toast |
tooltip | 1400 | --tinyrack-layer-tooltip |
backdrop は dialog より下に置きます。ドロップダウン、ポップオーバー、ダイアログ、トースト、ツールチップと競合する独自の z-index を作らないでください。
アプリヘッダーやツールバーのように、スクロールに追従して固定されるページ要素は chrome に置きます。下を流れるコンテンツより上にあれば十分なので backdrop より下に位置し、スクリムがページの他の部分と同じように覆います。代わりに dropdown を使うと、モーダルが周囲を暗くしてもヘッダーだけが明るいまま残ります。
スクリム、バックドロップ、モーダル動作
両テーマでブロックされたページを分離するバックドロップには --tinyrack-scrim を使います。モーダルには、フォーカスの制限、閉じる動作、背景操作のブロックも必要です。スクリムやシャドウだけではモーダルになりません。
シャドウを選択
| シャドウ | 目的 | 値 |
|---|---|---|
raised | 控えめな浮き上がり | 0 1rem 2.25rem -1rem rgb(0 0 0 / 0.4) |
overlay | ポータル表示を明確に分離 | 0 1.5rem 3rem -1.25rem rgb(0 0 0 / 0.4) |
適用例と実装
TypeScript では tinyrackLayers と tinyrackShadows、CSS では --tinyrack-layer-*、--tinyrack-scrim、--tinyrack-shadow-*、Tailwind では対応する接頭辞付きユーティリティを使います。