在搭建公司的樣式庫時本身的一點整理,中間遇到了不少疑惑,也解決了不少疑惑。目前樣式庫和文檔還在繼續開發編寫中,但願該文章對存在疑惑的朋友有幫助,也但願有經驗的大牛們能提供更多思路上的幫助。css
如今這麼多優秀的開源組件庫,爲何還要搭建本身的組件庫呢?
每一個公司都有本身的設計風格,以及不同的產品需求,若是引入其餘第三方組件,很大可能帶來風格和操做上的不統一。
大部分狀況下,沒法直接使用開源組件庫。開發人員接到頁面需求後需從頭開始進行頁面佈局。
開發本身的樣式庫能夠作到如下幾點:html
搭建樣式庫以前,須要作哪些準備?前端
工程的組織結構要需便於開發、維護與發佈
文件組織結構: 見工程
開發: 使用LESS + Vue(DEMO) + Webpack + Postcss
DEMO與文檔: 使用Github + GitPages + GitBook,之後會維護到公司的Gitlab上。
發佈: 目前一鍵發佈到私有npm,並同步上傳到CDNgit
大部分以組件爲粒度進行分類,小部分以屬性爲粒度進行分類.
組件內部更多的以屬性爲粒度進行分類
將REM和OOCSS兩種設計模式結合使用
可參考Mint UI Button、Ant UI Buttongithub
採用BEM命名規範,可是使用'-'進行鏈接,如命名空間(ui)-block-element-modifier
npm
三種命名規範:設計模式
(*)ui-block-element .ui-block-modifier(大多數)
---------------我是一條分割線---------------佈局
通過再三的糾結和思考,最終決定更改命名規範。
依然採用以上的命名規範,可是對於modifier修改成namespace-block--modifier
或namespace-block-element--modifier
爲什麼作這樣的更改決定?
再從新看BEM規範的時候,又有了不同的體會。雖然接受不了 block__element--modifier 這樣的命名規則,可是BEM經過特殊的分割線來區分block、element、modifier,可以讓開發人員一眼看出該命名的做用。
因而決定,使用namespace-block
、namespace-block--modifier
、namespace-block-element
、namespace-block-element--modifier
這樣的命名規則
去掉BEM中的雙下劃線,由於感受太影響美感太雞肋了!!!!!可是保留--鏈接符,能夠方便的區分modifier這種可選屬性,又不影響美感!!!!字體
書寫順序(自外向內)flex
巧用註釋
/** * 頂部註釋 */
/* 內容註釋 */複製代碼
/*ol*/.breadcrumb{}
/*p*/.intro{}
/*ul*/.image-thumbs{}複製代碼
<div class="btn-default js-btn-default"></div>複製代碼
.test h3 span { ... }複製代碼
讀取順序: