精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

想明白這點,就知道 TailwindCSS 適不適合你

開發 前端
這篇文章不是TailwindCSS的科普文,但為了文章的完整性,有必要先介紹下TailwindCSS的核心理念 —— 「原子化CSS」。

大家好,我卡頌。

從17年誕生至今,社區對TailwindCSS的接受程度不斷提升:

一些使用過他的程序員大呼真香,而另一些程序員一聽到他宣揚的「原子化CSS」理念就表示不能接受。

同樣是程序員,為什么分歧這么大?這篇文章會分析問題形成的原因,給出建議,并預測TailwindCSS未來的走勢。

原子化CSS vs 語義化CSS

這篇文章不是TailwindCSS的科普文,但為了文章的完整性,有必要先介紹下TailwindCSS的核心理念 —— 「原子化CSS」。

元素樣式是由一條條CSS規則構成的。對于「如何組織CSS規則」,可以分為兩個流派:

  • 語義化CSS(Semantic CSS)
  • 原子化CSS(Atomic/Utility-First CSS)

先說「語義化CSS」,他很好理解,以下面這個class舉例:

.chat-notification {
    display: flex;
    max-width: 24rem;
    margin: 0 auto;
    padding: 1.5rem;
    border-radius: 0.5rem;
    background-color: #fff;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

即使我們沒有其他信息,光看這段代碼,也可以大體判斷出 —— 這是一個聊天通知卡片的樣式。

所以,對于采用「語義化CSS」規范的項目,重點在于「如何為組件定義語義」。這就誕生了很多「類名定義規則」,比如,下面是BEM(Block Element Modifier)規范的定義:

  • Block:塊。
  • Element:元素,是塊的組成部分。
  • Modifier:修飾符,表示一種形態/狀態。

對于「警告狀態的聊天通知卡片」,符合BEM規范的類名為.chat-notification--warning。

「原子化CSS」則更關注CSS本身,上述聊天通知卡片用「原子化CSS」表達如下:

<div class="p-6 max-w-sm mx-auto bg-white rounded-xl shadow-lg flex items-center space-x-4">...</div>

其中每個class代表一個定義好的CSS規則,比如:

  • p-6代表padding: 1.5rem; /* 24px */。
  • bg-white代表background-color: white。

對于用慣了「語義化CSS」的開發者,一時是很難接受「原子化CSS」的。在他們看來,這就是開歷史的倒車,還得額外記憶各種類名的含義。

之所以造成這種誤解,是因為這里有個很重要的因素被忽略了 —— 設計系統。

設計系統

在互聯網公司,頁面的產出流程一般如下:

  • 設計師根據公司需要,定義一套設計系統
  • 根據設計系統的規范,設計師使用工具設計頁面
  • 前端工程師根據工具的標注,產出頁面

所謂「設計系統」,就是對項目視圖各個部分的約定,比如:

  • 布局約定
  • 配色約定
  • 尺寸約定

為了減少前端工程師的上手門檻,這套頁面產出流程對前端隱藏了設計系統的存在。

以國內前端常用的藍湖舉例,在前端界面選定元素后,右邊界面會顯示該元素的CSS規則。

使用時,不需要了解設計系統,只需要一鍵復制CSS規則,再粘貼到項目中就行:

藍湖界面

這個操作邏輯完美契合了「語義化CSS」規范,簡單高效。

而「原子化CSS」的本質是建立在設計系統的基礎上。比如說在TailwindCSS中要定義顏色,需要通過類似text-red-50、text-red-100這樣的類名,每個類名對應了設計系統中一種定義好的顏色:

顏色約定

字體大小、間距、布局等也是同樣的道理:

字體大小約定

所以,如果公司采用了上述這套「對前端屏蔽設計系統」的開發流程,那么TailwindCSS無疑會增加前端的負擔。這種負擔的增加體現在:

  • 需要學習TailwindCSS,從「語義化CSS」轉換到「原子化CSS」。
  • 需要學習設計系統的知識。

更關鍵的是,后續接手的前端也得重新學一遍。

所以,如果這個開發流程不是公司自上而下規定的,就很難在團隊推廣開。

相對的,下面這幾種情況比較容易接受TailwindCSS:

  • 公司層面定義的開發流程中,設計師、前端工程師都要懂設計系統。

這種情況下,設計系統本身就是設計師與前端工程師之間的共同語言,就不需要再經過設計工具(比如藍湖、Figma)翻譯成「語義化CSS」給前端:

  • 沒有專門的設計師(比如獨立開發者或小公司),前端需要承擔設計工作。

這種情況下,TailwindCSS自帶的設計系統能提供基本的設計約束。比如,不知道該選多大的字體時,只需要從如下幾個類中選個合適的即可:

總結

學習TailwindCSS不僅僅是從「語義化CSS」到「原子化CSS」的思維轉變,更是需要了解設計系統的概念。

如果習慣了「對前端屏蔽設計系統」的開發流程,要接受TailwindCSS需要一個自上而下的流程。

從趨勢來看,TailwindCSS被接受程度也是逐年提升:

但我預測,這種增長趨勢在未來某個時間點后會指數上升。這是因為,未來大部分的項目初始化代碼會交給chatGPT完成,而「原子化CSS」相比「語義化CSS」能用更少的字符表達更豐富的樣式信息。舉個例子,對于下面的聊天消息卡片:

用「語義化CSS」表達,字符串長度是1033:

<div class="chat-notification">
  <div class="chat-notification-logo-wrapper">
    <img class="chat-notification-logo" src="/img/logo.svg" alt="ChitChat Logo">
  </div>
  <div class="chat-notification-content">
    <h4 class="chat-notification-title">ChitChat</h4>
    <p class="chat-notification-message">You have a new message!</p>
  </div>
</div>

<style>
  .chat-notification {
    display: flex;
    max-width: 24rem;
    margin: 0 auto;
    padding: 1.5rem;
    border-radius: 0.5rem;
    background-color: #fff;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  }
  .chat-notification-logo-wrapper {
    flex-shrink: 0;
  }
  .chat-notification-logo {
    height: 3rem;
    width: 3rem;
  }
  .chat-notification-content {
    margin-left: 1.5rem;
    padding-top: 0.25rem;
  }
  .chat-notification-title {
    color: #1a202c;
    font-size: 1.25rem;
    line-height: 1.25;
  }
  .chat-notification-message {
    color: #718096;
    font-size: 1rem;
    line-height: 1.5;
  }
</style>

用「原子化CSS」表達,字符串長度是339:

<div class="p-6 max-w-sm mx-auto bg-white rounded-xl shadow-lg flex items-center space-x-4">
  <div class="shrink-0">
    <img class="h-12 w-12" src="/img/logo.svg" alt="ChitChat Logo">
  </div>
  <div>
    <div class="text-xl font-medium text-black">ChitChat</div>
    <p class="text-slate-500">You have a new message!</p>
  </div>
</div>

屆時,當公司自上而下推進「chatGPT生成代碼」時,「原子化CSS」更省token。

而剛才已經說了,要接受TailwindCSS(或者說背后的「原子化CSS」)需要的正是自上而下推動,這就是一個重要契機。

而在眾多「原子化CSS」方案(比如還有UnoCSS)中,tailwindCSS發布時間最早(2017年),遠早于GPT4用于訓練的最晚數據集時間(2021.9)。這意味著GPT4在生成tailwindCSS代碼時會更熟練。

屆時,tailwindCSS為代表的「原子化CSS」將會大放異彩。

責任編輯:姜華 來源: 魔術師卡頌
相關推薦

2021-02-26 15:03:01

RAID磁盤陣列

2013-08-13 14:33:17

程序員

2018-05-13 15:32:45

IT行業運維Linux

2021-03-09 16:36:21

大數據薪資工作

2013-08-16 10:00:45

VMwareOpenStack

2015-03-12 13:39:48

Hadoop場景大數據

2021-01-31 18:52:36

Rust開發Web API

2018-07-29 07:58:34

物聯網IOT物聯網產品

2009-01-15 18:30:11

服務器虛擬化VMware

2018-03-27 10:52:59

程序員不適合C++

2015-10-13 14:23:42

特質適合創業

2015-09-18 10:01:11

2022-06-14 11:15:09

代碼驅動

2010-07-20 09:56:53

VDI部署

2022-07-12 14:04:19

Kafka

2013-12-09 10:16:03

Android firAndroid開發移動創業

2012-03-13 15:28:47

Kindle Fire傲游

2022-11-07 10:20:20

useEffects

2016-11-04 09:41:48

容器Docker

2024-10-06 13:00:05

點贊
收藏

51CTO技術棧公眾號

www.亚洲人| 大片网站久久| 精品国产老师黑色丝袜高跟鞋| 色综合五月天导航| 动漫av在线免费观看| 色呦呦在线免费观看| 成人高清视频在线| 琪琪亚洲精品午夜在线| 免费人成又黄又爽又色| 久久三级毛片| 亚洲九九爱视频| 精品国产一区二区三区日日嗨| 视频这里只有精品| 美女av一区| 欧美在线看片a免费观看| 国内一区二区三区在线视频| 谁有免费的黄色网址| 农村妇女一区二区| 夜夜嗨av一区二区三区中文字幕 | 欧美激情一级二级| 天天久久综合网| 国产一二在线播放| 国产精品乱码一区二三区小蝌蚪| 欧美最猛性xxxx| 亚洲成人av免费在线观看| 狠狠久久综合| 中文字幕一区不卡| 精品伦精品一区二区三区视频| 久久综合激情网| 神马影视一区二区| 欧美一区二区视频网站| 日韩毛片在线免费看| gogo在线观看| 欧美国产成人在线| 国产在线一区二| 波多野结衣mp4| 激情久久中文字幕| 亚洲视频第一页| 黄色aaa级片| 福利影院在线看| 亚洲人成网站影音先锋播放| 久久综合九色综合网站| 91亚洲欧美激情| 久久国产高清| 亚洲3p在线观看| 中文字幕五月天| 不卡中文字幕| 亚洲色图狂野欧美| 亚洲国产果冻传媒av在线观看| 97se综合| 午夜精品一区二区三区电影天堂 | 亚洲大尺度美女在线| www.欧美日本| 蜜桃av在线| 亚洲成av人综合在线观看| 免费观看国产视频在线| 黄色在线免费| 久久久另类综合| 久久国产精品亚洲va麻豆| 亚洲精品无码专区| 国产精品自产自拍| 97国产一区二区精品久久呦 | 国产亚洲第一页| 香蕉av一区二区 | 全部免费毛片在线播放一个| 久久精品首页| 日韩av电影手机在线| 国产精品国产三级国产专区52| 成人婷婷网色偷偷亚洲男人的天堂| 欧美日本一区二区在线观看| 99草草国产熟女视频在线| 芒果视频成人app| 色欧美日韩亚洲| 日本www高清视频| 欧美精品高清| 欧美日韩在线直播| 亚洲精品性视频| 国产日韩欧美中文在线| 7777精品伊人久久久大香线蕉完整版| 久在线观看视频| av大大超碰在线| 一区二区三区在线播| 精品一区二区三区毛片| 国产精品影院在线| 国产精品久久久一区麻豆最新章节| 国产一区免费视频| 亚洲精品97久久| 国产美女18xxxx免费视频| 亚洲一区av| 亚洲成人av片在线观看| av中文字幕免费观看| 久久精品av| 国内揄拍国内精品| 制服丝袜在线一区| 国产精品66部| 欧美日韩在线一二三| 黄色一级大片在线免费看产| 亚洲国产精品麻豆| av网站在线不卡| 亚洲一区二区免费在线观看| 亚洲色图综合网| 精品99在线观看| 视频一区欧美日韩| 97超碰人人看人人| 成人免费视频| 亚洲国产精品久久久久秋霞影院| 自拍另类欧美| 九色porny自拍视频在线观看| 欧美日韩国产一区二区三区| 亚洲一区二区三区四区五区| 国产精品视频3p| 日韩专区在线播放| 视频一区二区三区四区五区| 国产乱码精品一区二区三区五月婷| 91网站免费观看| 狠狠色伊人亚洲综合网站l| 一区二区三区中文字幕在线观看| 亚洲永久精品大片| 欧美一级爱爱视频| 78精品国产综合久久香蕉| 欧美精品一区二区精品网| 国产精品免费在线视频| 天堂久久一区二区三区| 国产精品丝袜高跟| 午夜视频免费在线| 亚洲精品乱码久久久久久| 亚洲精品蜜桃久久久久久| 亚洲久草在线| 中文字幕日韩精品在线观看| 午夜影院免费在线观看| 成人黄色一级视频| 日本一区免费| 在线观看v片| 亚洲精品国产精品久久清纯直播| 黄色片网站免费| 亚洲在线国产日韩欧美| 国产精品国产精品国产专区蜜臀ah| 免费在线观看一级毛片| 精品高清一区二区三区| 最新日本中文字幕| 福利片在线观看| 欧美自拍电影| 欧美视频在线一区二区三区| 久久精品国产亚洲av麻豆| 精品国内自产拍在线观看视频| 色综合伊人色综合网站| 超碰在线97观看| 久久人人97超碰com| a√天堂在线观看| 欧美日韩一区二区三区在线电影| 丝袜亚洲另类欧美重口| 中文字幕一区二区三区四区视频 | 成人福利一区| 久久艳片www.17c.com | 高清视频在线观看三级| 亚洲成年网站在线观看| 久久精品欧美一区二区| 成人动漫免费在线观看| 亚洲欧美色一区| 99免费视频观看| 欧美一区二区三| 国产欧美精品在线播放| 成年人黄视频在线观看| 日韩一区二区免费电影| 久久久久久久福利| 国产剧情一区在线| 国产精品视频一二三四区| 国产精品国产| 青草热久免费精品视频 | 欧美色欧美亚洲另类二区| 一级特黄曰皮片视频| 麻豆精品一二三| 日本福利视频导航| 婷婷综合国产| 97超级碰碰人国产在线观看| 国产区高清在线| 欧美高清视频一二三区 | 精品三级av在线导航| 69av在线视频| 视频一区二区免费| 亚洲精品国产精华液| 毛茸茸free性熟hd| 另类激情亚洲| 少妇高潮流白浆| 国产精品白丝av嫩草影院| 日本亚洲精品在线观看| 免费av在线网址| 亚洲精品97久久| 91国在线视频| 亚瑟在线精品视频| www色com| 成人一道本在线| wwww.国产| 亚洲久久视频| 国产精品h视频| 日本成人7777| 亚洲va欧美va国产综合久久| 亚洲美女尤物影院| 精品国模在线视频| 国产乱淫片视频| 欧美日韩在线影院| 国精品无码一区二区三区| 97久久超碰国产精品| 999在线观看视频| 91免费精品| 九九九热999| 欧美9999| 国产精品av电影| av2020不卡| 久热精品视频在线免费观看| 国产三级小视频| 色吊一区二区三区| 精品深夜av无码一区二区老年| 成人国产精品免费观看动漫| 久热精品在线播放| 亚洲精品成人无限看| 欧洲一区二区在线| 久久资源综合| 国产精品成人国产乱一区 | 成+人+亚洲+综合天堂| 色婷婷成人在线| 美女久久一区| 最新精品视频| 欧美日韩有码| 欧美日韩精品久久久免费观看| 久久精品超碰| 国产精品高清在线| 日韩激情av| 久久久精品国产| 免费黄色在线看| 色妞一区二区三区| aiai在线| 中文字幕日韩在线观看| 国产午夜在线视频| 亚洲跨种族黑人xxx| 夜夜爽8888| 欧美熟乱第一页| 久久久国产精品黄毛片| 91小视频免费看| 奇米777第四色| 成人免费毛片高清视频| 中文字幕制服丝袜| 成人精品免费网站| 91精品人妻一区二区三区四区| 久久久久久久波多野高潮日日| 欧美一级免费在线观看| 色天天久久综合婷婷女18| 日韩午夜视频在线观看| 欧洲杯半决赛直播| 午夜精品视频在线观看一区二区 | 秋霞毛片久久久久久久久| 亚洲人成伊人成综合图片| 久久精品五月婷婷| 婷婷成人影院| 日韩欧美激情一区二区| 欧美日韩亚洲在线观看| 在线精品亚洲一区二区| 我不卡神马影院| 日本天堂免费a| 清纯唯美日韩| 中文字幕综合在线观看| 午夜精品剧场| 成人午夜精品久久久久久久蜜臀| 91嫩草亚洲精品| 日韩人妻一区二区三区蜜桃视频| 日韩大片在线| 国产又粗又爽又黄的视频| 欧美精品一卡| 欧美日韩性生活片| 水野朝阳av一区二区三区| 国产一区二区在线免费播放| 国产一区二区调教| fc2成人免费视频| 国产无遮挡一区二区三区毛片日本| 久久久久国产免费| 99re成人在线| 在线视频 日韩| 久久精品免视看| 少妇按摩一区二区三区| 中文字幕一区二区三区不卡在线| 国产一区二区三区四区在线| 最新国产成人在线观看| 精国产品一区二区三区a片| 亚洲色图都市小说| 国产成人无码一区二区三区在线| 亚洲夂夂婷婷色拍ww47| 好吊操这里只有精品| 在线中文字幕不卡| 免费黄色av片| 欧美一级在线视频| 色视频在线观看| 久久久av一区| 超碰在线网址| 欧亚精品中文字幕| 欧美大胆性生话| 亚洲aa中文字幕| 美女亚洲一区| 成年丰满熟妇午夜免费视频 | 国产日产欧美视频| 麻豆传媒一区二区三区| 亚洲精品乱码久久久久久蜜桃图片| 成人av资源在线观看| 四季av中文字幕| 国产精品久久久久永久免费观看| 激情高潮到大叫狂喷水| 五月激情六月综合| 在线精品免费视| 欧美性猛交xxxx黑人交| 成人毛片在线精品国产| 亚洲精品suv精品一区二区| 最新97超碰在线| 欧美一区二区三区艳史| 欧美成人精品午夜一区二区| 亚洲电影免费| 久久久久国产精品一区三寸| 国产成人黄色网址| 91丨九色丨蝌蚪富婆spa| 青青草原在线免费观看视频| 欧美日韩一二三区| 免费人成在线观看网站| 97视频在线观看视频免费视频| 巨茎人妖videos另类| 国产综合 伊人色| 欧美激情精品久久久六区热门| 激情伊人五月天| 国产精品一区一区三区| 婷婷综合在线视频| 色悠悠久久综合| 国产美女裸体无遮挡免费视频| 精品黑人一区二区三区久久| 污视频在线免费观看| 欧美精品在线免费观看| 亚洲视频资源| 亚洲欧美日韩精品在线| 日本欧美久久久久免费播放网| 国产精品19p| 久久久综合激的五月天| 国产成人无码精品亚洲| 亚洲国产精品999| 午夜免费播放观看在线视频| 国产精品免费看久久久香蕉| 国内成人自拍| 国产成人手机视频| 久久九九久久九九| 超碰在线观看91| 欧美成人性战久久| caoporm免费视频在线| 亚洲free性xxxx护士hd| 国产欧美日韩免费观看| www.xxx亚洲| 国产精品久久久久一区| 亚洲中文一区二区三区| 久久国产一区二区三区| 欧美a在线观看| 国产精品网站免费| 91在线国产观看| 无码人妻一区二区三区免费| 日韩久久精品一区| 牛牛在线精品视频| 国产专区一区二区三区| 久久久精品网| av片在线免费看| 日韩欧美色电影| 成年人在线网站| 欧美日韩一区二区三区在线视频| 伊人成年综合电影网| 日日夜夜精品视频免费观看| 亚洲在线观看免费视频| 手机看片一区二区三区| 热久久这里只有精品| 美国成人xxx| 日日噜噜夜夜狠狠| 亚洲免费在线看| 亚洲aⅴ乱码精品成人区| 国产精品成久久久久三级 | 欧美精选在线播放| 欧美人与性动交α欧美精品图片| 成人国产精品久久久久久亚洲| 国产精品免费大片| 99日在线视频| 午夜精品久久久久久久蜜桃app| 亚洲国产精品欧美久久| 5278欧美一区二区三区| 精品精品久久| 久久久久亚洲AV成人网人人小说| 亚洲一区二区三区精品在线| 日韩精品一二| 成人亚洲欧美一区二区三区| 亚洲国产国产亚洲一二三| 中文字幕乱视频| 欧美日韩在线免费视频| 麻豆网在线观看| 成人精品一区二区三区电影黑人| 欧美韩日一区| 日本一级片在线播放| 日韩欧美精品免费在线| 91极品在线| 色女孩综合网| 国产成人免费网站| 中文字幕 视频一区|