不就一個下拉選單,是能有多難?
一顆下拉選單,我手刻了八個版本才勉強能用,後面還排著十一版沒動。這篇講每一版壞在哪——Portal、鍵盤、ARIA、輸入法、手機、螢幕閱讀器,以及為什麼一個人重構跟一群人重構,難的完全不是同一件事。
共 21 篇
一顆下拉選單,我手刻了八個版本才勉強能用,後面還排著十一版沒動。這篇講每一版壞在哪——Portal、鍵盤、ARIA、輸入法、手機、螢幕閱讀器,以及為什麼一個人重構跟一群人重構,難的完全不是同一件事。
當 AI 能直接產出 prototype,Figma 還有必要嗎?只要設計師和工程師不是同一個人,就一定需要溝通工具。這篇講反方向的 Code to Figma 怎麼做。
UI Library 卡了兩週都在調架構,Primitive UI 的 API 設計常常撞到底層盲點。測試案例動不動比原始碼大兩三倍,維護難度又更高。
設計師開始主動要求導入 Storybook 了。導入失敗多半敗在不重視元件庫迭代;而 .stories 檔案其實也是給 AI 很好的 Context。
Primitive UI、Atomic UI、Headless UI 講的都是同一件事。原子化把樣式控制權還給你,但版本管理、依賴共用、權重管理這些問題也一併曝露出來。
越熟悉 Chakra UI 的底層,越覺得它的抽象化是門藝術。真正驚奇的不是 Chakra 本身,而是 Zag、Ark、Park 這三套底層的抽象技巧。
做 Dialog 一定要實作 Portal,因為 overflow 這個天坑連 fixed 都躲不掉。這篇也講定位為什麼一定要用絕對位置,以及鎖捲軸時的抖動怎麼處理。
以為 Button 是最簡單的元件,做下去才知道超級困難。Variant 與 Theme 該不該混用、icon 讓 Size 的 padding 難以分類、Loading 要不要保留原寬度。
大家對 Design System 的認知常常停在色票、文字、元件。實際做過一輪 Design System 專案之後,我認為它遠比這個定義寬得多。
Design Token 讓 CSS 的共用被規範化,也讓設計師參與了開發流程,代價是知識門檻。這篇講 System、Seed、Alias 三層 Token,以及實務上的普及率。
暫停了一群人的 UI Library 專案,改成自己一個人做。從最基礎的 Button 開始,光是 Variants、Theme、Size、Shape 加上 Token 關聯性就複雜到不行。
2024 WebConf 的筆記:峰值體驗、Design Token 是設計掌握開發節奏的工具、最花時間的其實是命名,還有一整串跨部門溝通的問答應對。
前端拿到 Design System 就像拿到加速工作的標準,但這只可能發生在產品開發,接案公司初期根本定義不出來。這篇講設計師那側的難點。
工程師說那是設計的問題,設計師說 CSS 是工程師的問題。這些工具本來就只是溝通橋樑,而它最有價值的地方是「一致的設計語言」,不是效率。
從零打造一套 UI Library,不基於任何現有框架,從 bundle script 到每個元件細節都自己做。目標是能同時跑在 SSR 與微前端架構下。
今年大部分心力都投在這個 Side Project:從零造一套像 antd、mui、vuetify 的 UI Library。UI 設計師相對好找,前端反而少之又少。
設計系統最關鍵的是一致性,但前期該關注的不是 component,而是更包容的 Design Language。這篇講為什麼一開始需要更多發散。
光是用 div 刻一個 Custom Select,就有八個坑等著你。這篇講手刻元件的隱形成本:測試、Storybook、元件文件、打包成 package,全都是長期技術債。
前些陣子在社群上討論了一個話題,「哪一個 UI 框架好用?」這件事。 基本上在 React 的生態系中,毫無疑問的是對應 Material Design 的 mui,和對應 Ant Design 的 antd。有 Google 和螞蟻金服兩
從輪播、下拉選單到彈窗,手刻元件累積的都是經年累月的智慧。這篇講顏色系統、多國語言排版、無障礙互動與 API 接口設計各自的難處。
Design Token 是一組類似 key word alias 的標籤,把「什麼場景用什麼顏色」定義下來,換 Dark Mode 時只要換掉 Token。這篇講它跟一般顏色表的差別。