CSS設計模式
→CSS方法論
CSS/設計模式
ManzDev/frontend-evolution: Frontend Evolution timeline (1995-2019)
bubkoo.com/source/_posts/css-methodologies.md at master · bubkoo/bubkoo.com
基於命名
漫談 CSS 架構方法 - 以 OOCSS, SMACSS, BEM 為例
2009
OOCSS
2010
BEM
History / Methodology / BEM
2013 BEM CORE 1.0
2011
SMACSS
2014
SUIT CSS
https://www.npmjs.com/package/suitcss/v/0.3.0
PRECSS
1 年前に素人が FLOCSS 使って直面した疑問/失敗に対し、PRECSS を学んで解消 / 前進できた話
2014
CSS in JS
https://www.npmjs.com/package/jss/v/0.2.0
2015
Atomic CSS
樣式原子化
https://github.com/acss-io/atomizer
フロントエンドのコンポーネント設計に立ち向かう - Qiita
CSS Modules
CSS Modulesの歴史、現在、これから
2016
styled-components
Utility-first CSS
2017
Tailwind CSS
令和時代の CSS 記法再考
適合原生CSS,或是CSS Modules、Vue、BEM的人
反而可能不適合如styled-components的CSS in JS
更改BEM裡Modifier的寫法
1. 盡可能使用WAI-ARIA屬性
2. 無法使用WAI-ARIA表現的則使用自訂資料屬性
code:html
<button
type="button"
class="button"
data-level="primary"
aria-pressed="true"
Button
</button>
code:css
.button {
color: #333;
background-color: #f0f0f0;
border: #999 1px solid;
padding: .4em;
&data-level="primary" {
background-color: #fcc;
}
&aria-pressed="true" {
box-shadow: 2px 2px 4px #999 inset;
}
}
更改動態樣式的寫法
改為使用CSS自訂屬性
code:html
<div
class="tooltip"
aria-hidden="false"
style="--top: 120px; --left: 40px"
...</div>
code:css
.tooltip {
--top: 0;
--left: 0;
position: absolute;
top: var(--top);
left: var(--left);
}
避免優先度混淆
明示變數的影響範圍
相關連結
CSS 不是我們想像的這麼簡單!
CSS のクラス名を決めるときに使うリストをつくりました
CSS 設計完全ガイドで学んだ PRE_CSS を Elm で堅牢に実装する