ADR-0072: コードを動かす画面を、幅が 48rem 未満か高さが 500px 未満のときに狭い配置にし、高さが 500px 未満ではペインを左の縦のタブで切り替える¶
Status¶
承認
Context¶
スマートフォンを横に向けたときの、コードを動かす画面の配置の条件を決める必要がある。
- テーマ変数は、Tailwind のデフォルトのブレークポイントを消し、ここに置いた名前だけをユーティリティにすると決めている。
- テーマ変数に置いたブレークポイントは、幅 48rem の
mdだけである(packages/ui/design/tokens.mdの「ブレークポイントは、DADS の設定の例の 1 つ(48rem)だけを置く」)。 - 触る端末では、押せる領域と、行と帯の高さを 44px にする。
- 375×812 の端末を横に向けると、幅 812px、高さ 375px になる。幅だけで分けると、ファイルの木、エディタ、プレビュー、端末を並べる PC の配置になる。
- PC の配置で高さ 375px に端末とエディタを上下に並べると、44px の帯と見出しを除いたエディタの高さは、数行になる見込みである(測っていない)。
- 記事に埋め込んだ実行環境は iframe の中のページで、メディアクエリの幅と高さは、iframe の幅と高さで決まる。記事の段の幅(640px)は 48rem より狭い。
- 記事に埋め込む iframe の高さは、記事の形式の設計で決める。まだ決めていない。
Decision¶
コードを動かす画面は、幅が 48rem 未満か、高さが 500px 未満のときに、狭い配置にする。
- 狭い配置では、ファイルの木を左のドロワーで出し、エディタ、端末、プレビューのペインを 1 つずつ切り替えて出す。48rem 未満の幅に 4 つのペインを並べると、1 つのペインの幅が 192px に満たず、幅 375px では 100px に満たないためである。
- 縦向きの画面(幅が 48rem 未満で、高さが 500px 以上)では、ペインを下のタブで切り替える。
- 高さが 500px 未満のときは、幅にかかわらず、下のタブの代わりに、左に縦のタブを置き、選んだペインを右に広げる。下に帯を置くと、ペインの高さがさらに減るためである。
- 記事に埋め込んだ実行環境では、下のタブの代わりに、枠の上のタブでペインを切り替える。高さが 500px 未満の iframe では、ツールのページと同じく左の縦のタブにする。
- テーマ変数のファイルに、高さの条件の custom variant を 1 つ置く(
short、(max-height: 499.98px))。- 幅の
mdと並べて使い、コードを動かす画面の外では使わない。ブレークポイントをmdだけにした規則の例外を、この画面に限るためである。 - コードを動かす画面のコンポーネントの外で
shortを使うと、check:utilitiesが失敗する。
- 幅の
- 500px は、横に向けたスマートフォンを含み、PC のブラウザのウィンドウを含まないように選んだ値である。
- 横に向けたスマートフォンの高さは、端末の短い辺からブラウザのアドレスバーとツールバーを引いた値になる。短い辺は多くが 320〜440 CSS px の見込みで(未確認)、500px より低くなる見込みである。
- PC のブラウザのウィンドウの高さは、多くが 600px 以上の見込みである(未確認)。
承認の条件¶
- ADR-0062 を先に承認していること。
- 実機の iPhone の Safari を横に向け、ツールのページが左の縦のタブの配置になり、選んだペインが画面の高さいっぱいに出ること。
- PC の Chrome のウィンドウの高さを 500px 未満にしたとき、左の縦のタブの配置になり、500px 以上に戻すと PC の配置に戻ること。
- 記事の段(640px)に、高さ 500px 以上の iframe で埋め込んだ実行環境が、枠の上のタブの配置になること。
- 高さ 500px 未満の iframe で埋め込んだ実行環境が、左の縦のタブの配置になること。
Considered Options¶
| 選択肢 | 強み | 弱み |
|---|---|---|
| 採用: 高さ 500px 未満でも狭い配置にし、縦のタブを左に置く | 高さが低くてもエディタの高さを保てる | 高さの条件の variant が 1 つ増える |
| 幅だけで分ける | ブレークポイントが増えない | 高さ 375px に 4 つのペインが並び、エディタが数行になる見込みである |
| 高さ 500px 未満でも下のタブにする | 縦向きと同じコンポーネントで組める | 下の帯の分だけ、ペインの高さが減る |
横向きを orientation: landscape で分ける |
向きの名前のとおりに読める | 高さの低い PC のブラウザのウィンドウと、高さの十分な横向きのタブレットを分けられない |
Consequences¶
Positive¶
- 横に向けたスマートフォンでも、エディタと端末を 1 つずつ広く使える。
Negative¶
- コードを動かす画面の配置が、下のタブの狭い配置、縦のタブの狭い配置、枠の上のタブの記事の埋め込み、PC の配置の 4 つになり、撮って確認する幅と高さが増える。
- 高さの条件の variant は、ブレークポイントを
mdだけにした規則(packages/ui/design/tokens.md)の例外になる。