Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
190
The Mindset for Success: Future Career Progression
greggifford
PRO
0
200
Mind Mapping
helmedeiros
PRO
0
46
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
110
How to Ace a Technical Interview
jacobian
281
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
48
Deep Space Network (abreviated)
tonyrice
0
33
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
2k
Odyssey Design
rkendrick25
PRO
0
450
So, you think you're a good person
axbom
PRO
0
1.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
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