Open32

every layoutを読む

kawabatakawabata

Webデザインにおいては全てがボックスです
つまりボックスを生成するかしないかのどちらかです

kawabatakawabata

Webブラウザは、いくつかの要素にデフォルトのCSSスタイルを適用してくれます。

kawabatakawabata

display inlineのものは 書字方向(水平方向)に沿って行の中(inline) に展開される
要素が保持するコンテンツと同じだけの幅になり、スペースが空いていればどこでも流れ込んで配置される

kawabatakawabata

inlineは書字方向(水平方向)
blockはフロー方向(垂直方向)

kawabatakawabata

タイポグラフィ的に考えると、
ブロック要素は段落
インライン要素は単語

kawabatakawabata

ブロック要素 幅や高さ、マージン、パディングを適用可能

インライン要素 水平方向のパディング、マージンのみ適用
(その周りのインライン要素と適合するように設計されています)

kawabatakawabata

インライン要素 幅や高さ、マージン、パディングを適用可能、書字方向(水平方向)に並ぶ

kawabatakawabata

display: none;にするとスクリーンリーダーからも取り除かれる

kawabatakawabata

grid flexはその要素自体は block要素と変わりはないが子要素の振る舞いが変化する

kawabatakawabata

コンテンツの大きさに応じてインライン要素であれば水平方向に、ブロック要素であれば垂直方向に広がります

kawabatakawabata

Webコンテンツは「動的」なもの 変化を前提としたものとして捉えるべき。
最初からCSSの柔軟性を使ってデザインすることを推奨する

kawabatakawabata

border-boxを使わない例外として、本書で解説しているCenterレイアウトなどのように「コンテンツ自身」のサイズが重要になるものがあります。CSSのカスケードはこのような全体的な規則に対する例外に適用するように設計されています。

つまり、ワイルドセレクタで指定した要素よりもクラスで指定した要素が適用されます。

* {
  box-sizing: border-box;
}

.center-l {
  box-sizing: content-box;
}
kawabatakawabata

ボックスの高さや幅が出ている場合のみ、 content-box, border-box には違いが出ます。

ブロック要素を別のブロック要素の中に配置する

子要素にcontent-boxを使ってpadding 1rem , width: 100% を適用する

kawabatakawabata

width 100% は、この要素の幅を親要素と同じにするという指示だからです。

kawabatakawabata

width autoにすると子ボックスは親ボックスにピッタリ収まります。

kawabatakawabata

要素のサイズは可能な限り、その内側のコンテンツと外側のコンテキストから導出されるべきだということです。
サイズを規定しようとするほど問題が生じやすくなる

kawabatakawabata

何をすべきかをブラウザに指示するのではなく、ユーザーやその画面、端末のために最適な結果になるようにブラウザ自身の計算によって独自の結論を引き出させましょう。

kawabatakawabata

プログラマにはお馴染みの「継承よりコンポジション」という原則があります

kawabatakawabata

継承によって全てを共通のオリジンに結びつけるよりも、単純な独立した部品(オブジェクトやクラス、関数)を組み合わせる方がより柔軟で効率的になるという考え方です。

kawabatakawabata

継承の考え方では、UI部品が最終的になんと呼ばれるかを最終的に意識せざるを得ない。

コンポジションでは、その部品やその部品を構成する小さな部品が何をするのかをはっきりさせることができる。

kawabatakawabata

レイアウトプリミティブ

ダイアログという形状の全てを孤立した独自のものだと考えていた。
しかし、実際にはコンポジションに過ぎず基本的なレイアウトを組み合わせていただけです。

kawabatakawabata

プリミティブとは何か

true

これを見ただけだと何を意味しているのかわからん

{
firstName: "田中",
lastName: "太郎"
}

さっきより製作者の意図が乗ってる

つまりプリミティブとは製作者の意図をあまり感じないようなもの?