開發了這麼久的項目,天天重複的 margin , padding , background 重複了一遍又一遍, 自從使用了基礎樣式庫 assembly-css後(下面統一稱爲基礎庫),幾乎能夠徹底的避免了一遍一遍的基礎樣式。css
<div class="content"></div>
<style>
.content {
width: 100px;
font-size: 16px;
display: flex;
justify-content: space-around;
}
</style>
複製代碼
使用了基礎庫後,只須要這樣html
<div class="w-100 fs-16 flex j-around"></div>
複製代碼
好了,一行搞定git
<div class="main">
<div class="content">
<div classs="title">...</div>
</div>
</div>
複製代碼
若是你的產品經理給你個改樣式的需求,這一層一層套的厲害,維護很不方便github
使用了基礎庫後,每個樣式都是提早聲明好的,只須要組合就能夠了,像上面同樣,直接在dom的class上組合,避免了dom嵌套的麻煩事npm
不信回來打我
通過我開發的項目來說,若是html部分的代碼超過1000行
或者頁面多於10
個的話,要寫的樣式不是很變態的佈局,我都建議使用。bash
固然,若是你的需求不考慮這庫只有60k
的文件大小,碰巧你用上癮了,那也能夠用。框架
由於在項目達到這個程度以及之上的話,像之前開發方式來說,css的文件估計也要好幾十k了,更甚者幾百k,這之中確定會包含着大量重複的css,因此使用基礎庫代替後,一次聲明,write everywhere。dom
它的原理就是提早聲明好可能用到的基本css,聲明成類,而後dom經過class直接引用就行了。佈局
像margin-left: 10px
這樣的代碼,直接在dom class上寫 <div class="m-l-10"></div>
就完事。flex
從一開始就聲明瞭assembly-css
是應用在基礎的樣式中去的,若是有複雜的需求,好比說透明背景,漸變背景和複雜的box-shadow, 我是建議都是經過.bg-black-rgba-0_5
這樣來聲明,這樣直觀一看就知道這個是想表示一個黑色半透明背景的class類
固然,assebly-css總體的設計思想就是這樣實現的: 組合樣式
這是一個三欄佈局,直接使用基礎庫寫出來就是這樣的,你能夠直接把代碼複製到一個demo文件裏試一下
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/assembly-css/dist/assembly-css.css">
<section class="flex j-between">
<div class="w-200 bg-green">left</div>
<div class="flex-1 bg-blue">content</div>
<div class="w-200 bg-green">right</div>
</section>
複製代碼
這裏我總結一下,國外其實有一個assembly.css庫,這個庫是也是經過組合class類形式來寫css的,不過是能夠組合現成的ui樣式的,設計複雜(不如直接用ui框架)。
而這個庫是聲明瞭最基礎的class類讓咱們本身去組合想要的樣式。
整體來講,設計的方案我以爲是存在一些問題的。好比說如何定義本身的class類,想要重寫這個基礎庫的類,還必須拷貝到本身的項目中去。還有顏色什麼的也是在庫中聲明好的,怎麼能夠本身配顏色...
安利了這麼多,若是你有好的想法,我很是歡迎你能來提issues,或者直接pr。
若是認爲這是一個好的有前景想法,我也很是歡迎你能和我一塊兒規劃這個項目的將來👋!