国产精品亚洲lv粉色-狼人青草久久网伊人-一区二区精品视频在线观看-国产靠逼视频-日本天天射-懂色av懂色av粉嫩av分享吧-国产特级黄色片-亚洲九九九九-操操操.com-国产激情高中生呻吟视频-最近中文字幕日本-国内精品久久久久久99-成年人在线观看视频-免费在线观看视频a-久久午夜国产-天天谢天天干-一区在线播放

如何構(gòu)建維護(hù)設(shè)計(jì)組件庫?我總結(jié)了這6個(gè)方法!

2021-12-4 10:36| 查看: 1483| 評論: 0

摘要: 原文引自 medium 上的一篇文章 Keeping Things Organized。該譯文并非完整原文,內(nèi)容已做刪減和調(diào)整,并加入了部分譯者觀點(diǎn)。 如何有條不紊地構(gòu)建及維護(hù)設(shè)計(jì)組件庫?這可不是個(gè)簡單的問題。面對此問題,向開發(fā)同學(xué)們 ...

·

原文引自 medium 上的一篇文章 Keeping Things Organized。該譯文并非完整原文,內(nèi)容已做刪減和調(diào)整,并加入了部分譯者觀點(diǎn)。

如何有條不紊地構(gòu)建及維護(hù)設(shè)計(jì)組件庫?這可不是個(gè)簡單的問題。面對此問題,向開發(fā)同學(xué)們學(xué)習(xí)是個(gè)不錯(cuò)的選擇。無論是設(shè)計(jì)元素的命名,還是組件的「封裝」,設(shè)計(jì)同學(xué)們都能從程序開發(fā)的通用做法中汲取新思路。下面,讓我們一起來了解讓設(shè)計(jì)組件庫井井有條的方法。

本期提綱:

  • 原子設(shè)計(jì)
  • 頁面結(jié)構(gòu)化
  • 命名規(guī)范化
  • 控件封裝
  • Design Tokens
  • 版本管理

原子設(shè)計(jì)

構(gòu)建組件庫,最基本的思維模式即原子設(shè)計(jì)(Atomic Design)。其實(shí),這個(gè)概念并不新鮮,開發(fā)同學(xué)也有類似的思維模式。

1. 基本概念

考察代碼是否有條理,最好從命名開始。BEM(Block Element Modifier)是一種前端開發(fā)所用的模塊化命名方法,它能使代碼的可讀性更高,也更便于協(xié)作。BEM 將事物分為 3 個(gè)層級來命名:

Block

一個(gè)有獨(dú)立意義的實(shí)體,對標(biāo)原子設(shè)計(jì)中的分子(molecules),如:

  • header
  • container
  • menu
  • chackbox
  • input

命名方式為添加一個(gè)句號作為前綴,如:.block。

Element

Block 的一部分,沒有獨(dú)立意義,對標(biāo)原子設(shè)計(jì)中的原子(atoms),如:

  • menu item
  • list item
  • checkbox caption
  • header title

命名方式為在 block 名后添加兩個(gè)下劃線,如:.block__elem。

Modifier

用來定義 block 或 element 的樣式、表現(xiàn)或狀態(tài)的元素,如:

  • disabled
  • highlighted
  • checked
  • fixed
  • size big
  • color yellow。

命名方式為在 block 或 element 后添加兩個(gè)破折號,如:

  • .block–mod
  • .block__elem–mod
  • .block–color-black
  • .block–color-red。

這里為熟悉前端的設(shè)計(jì)師舉一個(gè)實(shí)際案例,以了解如何用 BEM 來寫下圖所示的三個(gè)按鈕:

·

HTML

<button class="button"> 
Normal button 
</button> 
<button class="button button--state-success"> 
Success button 
</button> 
<button class="button button--state-danger"> 
Danger button 
</button>

CSS

.button { 
display: inline-block; 
border-radius: 3px; 
padding: 7px 12px; 
border: 1px solid #D5D5D5; 
background-image: linear-gradient(#EEE, #DDD); 
font: 700 13px/18px Helvetica, arial; 
} 
.button--state-success { 
color: #FFF; 
background: #569E3D linear-gradient(#79D858, #569E3D) repeat-x; 
border-color: #4A993E; 
} 
.button--state-danger { 
color: #900; 
}
2. 具體實(shí)踐

設(shè)計(jì)同學(xué)不需要嚴(yán)格踐行開發(fā)同學(xué)的 BEM 命名方式,但其對頁面各元素的分類是值得參考的。

頁面結(jié)構(gòu)化

結(jié)構(gòu)化頁面的基本原則是:

  • 方便檢索控件(Components)
  • 方便編輯控件
  • 清晰地傳達(dá)控件狀態(tài)

1. 基本概念

以 React 或 TypeScipt 為例,開發(fā)同學(xué)會(huì)讓每個(gè)控件都用一個(gè)文件夾來將其歸納,如:

src/components/Button/Button.tsx

·

2. 具體實(shí)踐

  • 讓每個(gè)控件都用一個(gè)頁面(Page)來將其歸納
  • 將控件按命名排序
  • 用 emoji 來表示控件狀態(tài)

·

其中,「

HTML素材網(wǎng),HTML5模板,網(wǎng)頁特效 微信公眾賬號二維碼 淘寶店鋪地址二維碼
Copyright©2025  素材8  Powered by 智伙伴科技
   魯ICP備14029286號-5 魯公網(wǎng)安備37060202001967號
返回頂部返回頂部
發(fā)布主題
岚皋县| 图们市| 融水| 朝阳市| 安塞县| 天门市| 通化市| 白玉县| 揭阳市| 涞源县| 松江区| 涡阳县| 拉孜县| 原阳县| 资阳市| 法库县| 呼伦贝尔市| 新平| 黄骅市| 鄂托克前旗| 海晏县| 巴楚县| 同心县| 措美县| 彰武县| 沙河市| 乌什县| 林芝县| 晋宁县| 溆浦县| 青岛市| 阿鲁科尔沁旗| 安仁县| 龙口市| 邻水| 三江| 德江县| 原阳县| 松江区| 阿拉尔市| 泾源县|