Communitygithub.com

dominikmartn/nothing-design

當使用者明確提到「Nothing 風格」、「Nothing 設計」、「/nothing-design」,或直接要求使用/套用 Nothing 設計系統時,才應使用此技能。請勿針對一般 UI 或設計任務自動觸發。

nothing-design 是什麼?

這是一個專為 AI 代理(如 Claude Code、Cursor、Codex)設計的技能,用於嚴格遵循「Nothing」風格的 UI/UX 設計系統。它基於瑞士字體排版、工業設計(Braun、Teenage Engineering)與現代介面工藝,打造單色、以字體為主、資訊密集且不雜亂的介面,同時以同等嚴謹度支援深色與淺色模式。此技能系統化地將設計決策分解為可執行的規則,包括三層視覺層級、字體訓練(最多使用 2 種字體家族與 3 種字體大小)、以留白表達關聯性、以及透過灰階與狀態色彩建立層級。它明確定義了應避免的反模式,例如漸層、陰影、骷髏載入畫面或彈出提示。工作流程從宣告 Google Fonts 開始,接著要求使用者選擇模式,並逐步引導完成層級草稿、構圖與元件建置。此技能對於需要在各種前端框架(如 HTML/CSS、SwiftUI、React/Tailwind)中維持一致性與高品質的開發者與設計師尤為有用。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dominikmartn/nothing-design-skill/tree/main/nothing-design

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Nothing 風格 UI/UX 設計系統

這是一套資深產品設計師的工具包,融合瑞士字體排版、工業設計(Braun、Teenage Engineering)與現代介面工藝。單色調、以字體為驅動、資訊密集而不雜亂。深色與淺色模式均以同等嚴謹度處理。

在開始任何設計工作前,請宣告需要哪些 Google Fonts 以及如何載入它們(請參閱 references/tokens.md 第 1 節)。切勿假設字體已可用。


1. 設計哲學

  • 減法,而非加法。 每個元素都必須爭取它的像素。預設為移除。
  • 結構即是裝飾。 將網格、資料、層級本身展現出來。
  • 單色是畫布。 色彩是事件,不是預設——除非用於編碼資料狀態(見第 3 節)。
  • 字體擔負重任。 字級、字重與間距創造層級——而非顏色、圖示或邊框。
  • 兩種模式都是第一優先。 深色模式:OLED 黑。淺色模式:暖白。兩者都不是「衍生」而來——兩者都獲得完整的設計關注。請詢問使用者要從哪個模式開始。
  • 工業溫度。 技術性與精確性,但絕不冰冷。應能感受到人的觸感。

2. 工藝規則——如何構圖

2.1 視覺層級:三層規則

每個畫面恰有 三個重要性層級。不是兩個,不是五個。就是三個。

層級是什麼如何處理
主要使用者第一眼看到的那一件事。一個數字、一個標題、一個狀態。使用 Doto 或 Space Grotesk 顯示字級。--text-display。48–96px 呼吸空間。
次要輔助內容。標籤、說明、相關資料。使用 Space Grotesk 內文/副標題。--text-primary。緊貼主要層級(8–16px)。
第三層元資料、導航、系統資訊。可見但從不競爭。使用 Space Mono 說明/標籤。--text-secondary 或 --text-disabled。全部大寫。推到邊緣或底部。

測試方法: 瞇著眼看畫面。你還看得出什麼最重要嗎?如果有兩個元素競爭,其中一個需要縮小、淡化或移動。

常見錯誤: 把一切都變成「次要」。大小均勻的元素搭配均勻的間距 = 視覺扁平。要勇敢——讓主要元素大得誇張,讓第三層元素小得誇張。這種對比本身就是層級。

2.2 字體紀律

每個畫面最多使用:

  • 2 種字體家族(Space Grotesk + Space Mono。Doto 僅用於英雄時刻。)
  • 3 種字體大小(一個大、一個中、一個小)
  • 2 種字體粗細(Regular + 另一種——通常是 Light 或 Medium,少用 Bold)

把它想像成預算。每增加一個大小/粗細,都會犧牲視覺一致性。在增加新大小之前,先問:我能否改用間距或顏色來創造這個區別?

決策大小粗細顏色
標題 vs. 內文是否否
標籤 vs. 數值否否是
啟用 vs. 停用導航否否是
英雄數字 vs. 單位是否否
區段標題 vs. 內容是選用否

經驗法則: 如果想去使用新的字體大小,那很可能是間距問題。改用增加距離來解決。

2.3 間距即意義

間距是溝通關係的主要工具。

緊密(4–8px)   = 「這些屬於一起」(圖示 + 標籤、數字 + 單位)
中等(16px)    = 「同一組,不同項目」(清單項目、表單欄位)
寬鬆(32–48px)   = 「新的一組從這裡開始」(區段分隔)
寬廣(64–96px)   = 「這是一個新脈絡」(英雄區到內容區、主要分隔)

如果需要分隔線,那間距很可能錯了。 分隔線是間距對比不足的症狀。只在資料密集的清單中使用,且僅限於結構完全相同的項目。

2.4 容器策略(優先使用頂層)

  1. 僅用間距(接近性分組項目)
  2. 一條分隔線
  3. 一個微妙的邊框輪廓
  4. 一個帶背景變化的表面卡片

每下降一層,視覺重量就增加。使用能達成目標的最輕量工具。永遠不要將最重要的元素放入盒子中——讓它漂浮在背景上。

2.5 色彩作為層級

在單色系統中,灰階本身就是層級。每個畫面最多 4 個層級:

--text-display (100%) → 英雄數字。每個畫面一個。
--text-primary (90%)  → 內文、主要內容。
--text-secondary (60%) → 標籤、說明、元資料。
--text-disabled (40%) → 停用狀態、時間戳記、提示。

紅色(#D71921)不屬於層級的一部分。 它是一種中斷——「看這裡,現在。」如果沒有急迫的事,畫面就不應該有紅色。

資料狀態顏色(成功綠、警告琥珀、強調紅)在編碼資料數值時不受「一個強調色」規則的限制。將顏色應用在數值本身,而非標籤或列背景。完整色彩系統請參閱 references/tokens.md。

2.6 一致性 vs. 變化

在以下方面保持一致: 字體家族、標籤處理(一律使用 Space Mono 全部大寫)、間距節奏、色彩角色、元件形狀、對齊。

在每個畫面中,恰好在 一個 地方打破模式: 一個超大的數字、一個圓形元件、紅色強調色、Doto 標題、一個巨大的間距缺口。

這個單一的打破點就是設計本身。沒有它:是無趣的網格。多於一個:是視覺混亂。

2.7 構圖平衡

不對稱 > 對稱。 置中佈局感覺很普通。偏好刻意的不平衡構圖:

  • 左大右小: 英雄度量 + 元資料堆疊。
  • 上重下輕: 大標題靠近頂端,下方內容稀疏。
  • 邊緣錨定: 重要元素固定在畫面邊緣,負空間留在中央。

用更多的空白空間來平衡重型元素,而不是用更多的重型元素。

2.8 Nothing 風格

  1. 透過空白的自信。 大面積未中斷的背景區域。抵制填滿空間的衝動。
  2. 小處的精準。 字距、精確的灰階值、4px 的間隙。微觀決策累積成工藝。
  3. 資料即美感。 使用 Space Mono 48px 顯示的 36GB/s 本身就是視覺。不需要插圖。
  4. 機械般的誠實。 控制項看起來就像控制項。切換開關 = 實體開關。量表 = 儀器。
  5. 一個驚喜時刻。 點陣式標題。一個圓形元件。一個紅點。節制讓這一個表達性時刻更有力量。
  6. 打擊感,而非流暢感。 想像 UI 聲音:點擊而非嗖聲,滴答而非鈴聲。設計感覺機械且精確的轉場。

2.9 資料密集畫面的視覺變化

當一個畫面出現 3 個以上資料區段時,請變化視覺形式:

形式最適合重量
英雄數字(大型 Doto/Space Mono)單一關鍵度量重——使用一次
分段進度條朝目標的進度中
同心圓 / 弧多個相關百分比中
行內緊湊條形圖次要度量在行中顯示輕
僅數字加狀態顏色無比例的數值最輕
迷你趨勢線圖隨時間的趨勢中
統計行(標籤 + 數值)簡單資料點輕

主要區段 → 最重的處理方式。次要區段 → 不同的形式。第三層區段 → 最輕的處理方式。形式會變化,但聲音保持不變。


3. 反模式——絕對不要做的事

  • UI 框架中不使用漸層
  • 沒有陰影。沒有模糊。平面表面,邊框分隔。
  • 沒有骨架載入畫面。使用 [載入中...] 文字或分段式旋轉器。
  • 沒有彈出提示。使用內聯狀態文字:[已儲存]、[錯誤:...]
  • 沒有悲傷表情插圖、可愛吉祥物或多段落的空狀態
  • 表格中不使用斑馬紋
  • 不使用填滿圖示、多色圖示或表情符號作為 UI
  • 沒有視差、劫持滾動或無謂的動畫
  • 沒有彈簧/反彈緩動。僅使用微妙的緩出。
  • 卡片邊框半徑不超過 16px。按鈕是膠囊形(999px)或技術形(4–8px)。
  • 資料視覺化:在引入顏色之前,先用不透明度(100%/60%/30%)或圖案(實心/條紋/點狀)來區分。

4. 工作流程

  1. 宣告字體——告知使用者需要載入哪些 Google Fonts(請參閱 references/tokens.md)
  2. 詢問模式——深色還是淺色?沒有預設值。
  3. 草擬層級——在撰寫任何程式碼前,先識別出 3 個層級
  4. 構圖——套用工藝規則(第 2.1–2.9 節)
  5. 檢查 Token——查閱 references/tokens.md 以取得精確數值
  6. 建構元件——查閱 references/components.md 以了解樣式
  7. 適配平台——查閱 references/platform-mapping.md 以了解輸出慣例

5. 參考檔案

關於詳細的 Token 數值、元件規格與平台特定指南:

  • references/tokens.md — 字體、字級系統、色彩系統(深色 + 淺色)、間距系統、網格、動態、圖示、點陣主題
  • references/components.md — 卡片、按鈕、輸入框、清單、表格、導航、標籤、分段控制、進度條、圖表、小工具、覆蓋層、狀態模式
  • references/platform-mapping.md — HTML/CSS、SwiftUI、React/Tailwind、紙本輸出慣例

相關技能