レスポンシブレイアウト
Tinyrack の寸法、コンテナ、共通ブレークポイントを使い、コンテンツに空間が必要な時点でリフローするモバイルファーストのレイアウトを作ります。
最小の有効なレイアウトから開始
まず一列または折り返すレイアウトを作ります。内容を把握しにくい、ラベルが衝突する、操作に必要な幅が足りない場合だけブレークポイントを追加してください。デバイス名ではなく、コンテンツが基準です。
ブレークポイントより先に寸法を選択
1 つの領域に読みやすい幅が必要なら、measure-* トークンを使います。再利用する領域が自身の幅に応じて変わる場合はコンテナクエリを使ってください。ページシェルや複数の領域を同時にリフローする場合はビューポートのブレークポイントを使います。
| トークン | 値 | Tailwind |
|---|---|---|
measure-xs | 4rem | max-w-tinyrack-measure-xs |
measure-sm | 8rem | max-w-tinyrack-measure-sm |
measure-md | 12rem | max-w-tinyrack-measure-md |
measure-lg | 16rem | max-w-tinyrack-measure-lg |
measure-xl | 24rem | max-w-tinyrack-measure-xl |
<article className="max-w-tinyrack-measure-xl">...</article>
<section className="@container"><div className="grid @md:grid-cols-2">...</div></section>
共通ブレークポイントスケール
Tailwind のテーマ変数は --breakpoint-sm、--breakpoint-md、--breakpoint-lg です。TypeScript の tinyrackBreakpoints も同じ値を提供します。
| トークン | 値 | Tailwind テーマ変数 | Tailwind バリアント |
|---|---|---|---|
sm | 40rem | --breakpoint-sm | sm:* |
md | 48rem | --breakpoint-md | md:* |
lg | 64rem | --breakpoint-lg | lg:* |
xl | 80rem | --breakpoint-xl | xl:* |
縮小ではなくリフロー
- ラベルと値が窮屈になる前に縦へ並べます。
- 主要操作を使い続けられるように操作行を折り返します。
- 補助ナビゲーションは隠さず、明示的なコントロールの背後へ移します。
- 列の比較が必要な表は、そのコンテナ内だけでスクロールさせます。
<section className="grid gap-4 md:grid-cols-[minmax(0,1fr)_auto]">
<div>ラックの詳細</div><div className="flex flex-wrap gap-2">操作</div>
</section>
実装責任を分ける
視覚的なリフローとコンテナクエリには CSS または Tailwind を使います。動作、データ取得、操作モードを変える必要がある場合だけ、TypeScript で tinyrackBreakpoints を参照してください。Tailwind が共通の --breakpoint-* スケールを解決できるように、コンポーネントスタイルより先に @tinyrack/ui/core.css を読み込みます。
レスポンシブ品質確認
変更したしきい値の直前、境界上、直後で確認してください。390px のビューポート、200% ズーム、長い翻訳ラベル、キーボードのフォーカス順、表の局所スクロール、必須操作が消えないことを含めます。