$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CSS Architecture
Search
yuki0410
October 18, 2021
0
27
CSS Architecture
yuki0410
October 18, 2021
Tweet
Share
More Decks by yuki0410
See All by yuki0410
PlantUML
yuki0410
0
85
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
GraphQLとの向き合い方2022年版
quramy
50
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Mobile First: as difficult as doing things right
swwweet
225
10k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Done Done
chrislema
186
16k
Building Applications with DynamoDB
mza
96
6.8k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Invisible Side of Design
smashingmag
302
51k
Transcript
? by yuki.ohnaka @ no4 1
CSS Architecture by yuki.ohnaka @ no4 2
About Me yuki ohnaka 株式会社ナンバーフォー Front-end / Server-side / Native-App
engineer Vue / React / TypeScript / Java / PHP / Kotlin / Swift / Python / Docker / Ansible ... Qiita / Zenn by yuki.ohnaka @ no4 3
良い CSS Architecture とは? 予測しやすい 再利用しやすい 保守しやすい 拡張しやすい 出典: CSS
Architecture by yuki.ohnaka @ no4 4
(c) 2017 niewals by yuki.ohnaka @ no4 5
CSS 設計をするときの 7 つのポイント by yuki.ohnaka @ no4 6
1. コンテンツとスタイリングは疎結合にする <!-- no good --> <article class="article"> <h2 class="article__title">title</h2>
</article> /** no good */ .article h2 { /** */ } by yuki.ohnaka @ no4 7
1. コンテンツとスタイリングは疎結合にする <!-- good --> <article class="article"> <h2 class="article__title">title</h2> </article>
/** good */ .article__title { /** */ } by yuki.ohnaka @ no4 8
2. 影響範囲を無闇に拡げない /** no good */ #main-nav > div {
/** */ } /** good */ .main-nav__section { /** */ } by yuki.ohnaka @ no4 9
3. 親に関わらず動くようにする /** no good */ #main-nav .article { /**
*/ } /** good */ .article { /** */ } by yuki.ohnaka @ no4 10
4. 詳細度を無闇にあげない /** no good */ #main-nav ul li ul
li div { /** */ } /** good */ .main-nav-sub-list__inner { /** */ } by yuki.ohnaka @ no4 11
5. 影響範囲が想像できるクラス名 <!-- no good --> <article class="article"> <h2 class="title">title</h2>
</article> /** no good */ .article .title { /** */ } by yuki.ohnaka @ no4 12
5. 影響範囲が想像できるクラス名 <!-- good --> <article class="article"> <h2 class="article__title">title</h2> </article>
/** good */ .article__title { /** */ } by yuki.ohnaka @ no4 13
6. 見た目・機能・役割が想像できるクラス名 /** no good */ .title1 { /** */
} /** good */ .page-title { /** */ } by yuki.ohnaka @ no4 14
7. コンポーネントにマージンを持たせない /** no good */ .article { margin-left: 20px;
} /** good */ .article-container { display: grid; column-gap: 20px; } .article { /** */ } by yuki.ohnaka @ no4 15
さぁ、やってみよう by yuki.ohnaka @ no4 16
チームで開発するためには、具体的なルールが 必要 by yuki.ohnaka @ no4 17
既存の CSS を設計を取り入れる BEM (MindBEMding) OOCSS SMACSS FLOCSS Enduring CSS
(ECSS) 必要に応じてカスタムする場合はある。 by yuki.ohnaka @ no4 18
ご清聴ありがとうございました by yuki.ohnaka @ no4 19
@ おまけ by yuki.ohnaka @ no4 20
CSS Architecture は必要か? by yuki.ohnaka @ no4 21
最近 CSS の周辺環境 は便利になってきている scoped CSS (Vue) CSS Modules (with
React) CSS in JS (with React) styled-components (with React) Utility first CSS FW (tailwind) with Web Components もう CSS Architecture なんてどうでもいいのでは? by yuki.ohnaka @ no4 22
引き続き CSS Architecture は必要 解決できていない課題もある モダンな開発以外の開発案件もまだたくさんある CSS Architecture で考慮していた要素が、別(コンポーネント設計 など)に移っただけなので、考えなければいけないことは一緒。
by yuki.ohnaka @ no4 23
シングルクラス VS マルチクラス by yuki.ohnaka @ no4 24
抽象的過ぎないマルチクラスがおすすめ by yuki.ohnaka @ no4 25