nwc_css_2023
#nwc_css
myakura(セッションオーナー)
poteboy(ツール)
AlanGDavalos(仕様)
yuheiy(設計)
CSSの進化がアツい
ここ2・3年で特に
Kuma UI
スコープをつけるのが大前提
コンパイルも自前実装
Stylexは自前
ハッシュ付きのクラスを付けている?
@scopeの概念が入ってくる
新しい構文として追加される
カスケードレイヤー
ツールを使う人はどれくらい把握してる?
使っているのは把握しているけど
今後取り入れていくことは検討はしている
でもツール作成すべての概念を追っているわけではない
@scopeは手で書くものではなくなってる?
CSS in JSとは違うものという理解
外側のこと書くからユニークにならない
ツールで有効活用するものではないかも
Shadow DOMという形が元ネタ
再利用性のあるコンポーネントにはいいけど
カスケードの影響を受けたいのは@scope
アプリケーション内でのコンポーネント向け?
全体の影響を受けたい
リンクにスタイルをつけるとか
一部のスタイルはコンポーネントで変えたい
toで範囲を示すのはいいなと思う
コンポーネントを入れ子をする時
このコンポーネントの中には影響しないようには書きたい
長ったらしいクラス名はいらなくなるのは便利
CSSが書きやすくなる
ユーティリティファーストなものが流行ってる
Kuma UIはユーティリティPropsというのがある?
@layerも出来てきたから詳細度はどうにでもなりつつある
ユーティリティだけだとコンポーネントの境界が分かりづらい
開発者が見ている構造とユーザが見ている構造が異なっている
ユーティリティはCSSならではの良さをあまり使えないのでは
:has()の存在はでかい
これをユーティリティクラスで実現できる?
Tailwind CSSでやり方はある
学習や理解度も落ちそうな気がする
CSS PropsはJSDocで内容を知れる
CSSを書くのはファイルの行き来がしんどい
Kuma UIは構造化されている
Chakra UIとかxstyled
慣れも大きい
デザインシステムを作る際に
コンフィグでいじってる?
カラーパレットとかは設定してる
Web Componentsでやっていた
共通でshadow rootに取り入れる
むしろデザインシステムはWeb Componentsで作ろうぜ
使用するライブラリが別れていたら便利
あまりデザインシステムを作らんでも良いのではという話
出来合いのものがあればそれは使った方がいい
UI部品のデザインシステムをつくっている
React + Tailwind CSS
いろんなところで使うならShadow DOMが便利でtoo Much
Every Layoutレイアウトプリミティブの発想は取り入れている?
あんまりそこまでは取り入れてない(yuheiy)
プリミティブを究極に分解していくとユーティリティなのでは?
デザイナーとも共有していかないと大変
今こそがCSSを学び直すきっかけでは?
color-mix()って凄い
CSSでできることはだいぶ増えてきた考え方を変えたほうが良いのではないかね
固定観念を変えたい
学べるものなんだろうか?
構文・概念はだいぶ増えた
どこまでJavaScriptでやらせとるねん問題
いろいろ削減した上で、意味あるところでJSつかってほしい
標準に追従してほしい
認知負荷はどうする?
そんな問題になるのかなーという感想
この辺はツールがなんとかしてくれる?
負荷は減らしたい
Kuma UIは責務を分離したいのはずっと考えている
上から知識継承で新しいこと教えてくれるのが理想ではあるが…
CSS頑張ったからパフォーマンス良くなったとかが良いことに繋がる
SPAやってる限りはビルドプロセスにかかる
Astroは極力ゼロにしてくるツール
View Transitions API
Astroはラッパーとしてツールで使えるようにしてくれている
CSSの仕様はどこまで見てる?
poteboyはほとんどCSS知らない
CSSを書かないで済む、簡単にしたい気持ちはわかる
開発者が苦労しないようにする
デザインシステムはthemeで制御したい
アプリケーション作る側はCSSをあまり理解してないことがある
yuheiyのところのデザインシステムはどこまでカスタムしてる?
Tailwind CSSの語彙をそのまま使ってる
スペーシングとか
たまたま揃ってるのでそれを使っている
カラーパレットとかはまさにカスタマイズしてほしいけどそれ以上は…
そこから先は実装の細かい話になっていきそう
myakuraのところでTailwind CSSみたいな見た目でデザインつくってという依頼をやってた
そういうの皆やらんのかな?
おすすめのCSS仕様
color周辺とscope(myakura)
:has(), View Transitions API(AlanGDavalos)
@layer(poteboy)
Atomic CSSの課題だったCSSの読み込み問題を解消してくれる
stylex に @layer 使うモードある
https://github.com/facebook/stylex/blob/ee3ac48bdbf16a3301088ad8ea9c337987800941/packages/babel-plugin/src/index.js#L254
OpenUIの流れでCSSも強化されていってる
popover, selectlist, dialog
popoverからdialogの進化に繋がっているのはおもしろい
CSSつらい話
!important地獄
そこからShadow DOMに閉じこもってしまった
雑誌デザインとかはフォント基準の単位はいいかも
Incremental Font Transfer
Webフォントが重い話
LINEのコーポレートフォントは1MBあった
@font-face に合わせて CSS のサイズ調整 | Articles | web.dev
グリフの置き換えはレイアウトシフト起きる問題
font-display: optional;って使うのか?
自分が見たい文字を置き換えてしまうのはいやだなーと思う話
本文フォントはブラウザ指定を使わせてほしい
CSSのパフォーマンスについて
content-visibility
Skeleton Screen
1:1で対になる存在
カードとか
読み込みはコンポーネント自体の状態ではない
サーバーと一緒に考えるところの話になってきそう
Optimistic Update(楽観的な更新)
CSSパフォーマンスに関する計測結果 - Speaker Deck
GitHub - css-hooks/css-hooks: Hook into advanced CSS features from native inline styles.
CSSインラインスタイルの実現
カスケードはエディタの補完と相性悪いのではないか
CSSはどこからでもやってくるので
AIフレンドリーの話
Tailwindとかと相性がいい
TailwindCSSに関する私の考えやスタンス | yamanoku Advent Calendar 2023
ツールは新しいものに代謝してくれていってる