Communitygithub.com

tgallina-hub/liquid-glass-web

使用 Liquid Glass 網頁設計系統,以玻璃、半透明或 Liquid Glass 風格建構或重新設計網頁介面(HTML/CSS、React、任何框架),並能用新的強調色重新打造品牌。

liquid-glass-web 是什麼?

此技能提供了一套完整的網頁設計系統,將 Apple 的 Liquid Glass 材質模型引入瀏覽器環境。它定義了清晰的雙層架構:不透明的內容層與浮動於上方的半透明功能層(導覽列、工具列、選單等),並附帶完整的設計權杖(tokens)、元件類別(lg-*)與對比度檢查腳本。支援 Light、Dark 與 Contrast 三種主題,並內建無障礙(a11y)與減少動畫等偏好設定。開發者可透過修改 assets/tokens.json 輕鬆變更強調色,並透過自動化腳本驗證 WCAG 對比度與重新產生 CSS。此系統不包含 Apple 字型、符號或資產,適用於任何框架(React、Vue、Svelte 或純 HTML/CSS),但明確不適用於原生 Apple 應用程式(應使用 SwiftUI/UIKit/AppKit 的原生玻璃 API)或印刷/簡報設計。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tgallina-hub/liquid-glass-web/tree/HEAD/liquid-glass-web/skills/liquid-glass-web

在你喜歡的 AI 中提問

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

說明文件

Liquid Glass Web

一個將 Liquid Glass 材質模型適配到瀏覽器的網頁設計系統。內容位於不透明層上,而導航與控制項的薄半透明功能層則浮動於內容之上。本系統是 Apple「Adopting Liquid Glass」公開指南的獨立改編版,不包含任何 Apple 字型、符號或資產。

此技能包含的內容

路徑用途
assets/tokens.json真相來源:顏色(主題 light、dark、contrast)、字體、間距、圓角、尺寸、材質、陰影。
assets/tokens.css編譯後的 CSS 自訂屬性與字體類別。修改 tokens 後請執行 scripts/build_tokens_css.py 重新產生。
assets/liquid-glass.css元件樣式(lg-* 類別)。與框架無關。
assets/liquid-glass.react.js選用的 React 18 套件,暴露 window.LG(經典腳本;需要 window.React 和 window.ReactDOM)。
assets/liquid-glass.d.ts元件 props,作為文件使用。
assets/example.html純 HTML 的完整畫面。可複製其結構。
references/brand-book.md原則、語氣、顏色、材質、字體、佈局、動畫、圖示、無障礙。設計前請務必閱讀。
references/html-api.md無需 React 的每個元件標記方式。
references/components/<Name>.md每個元件的指南:使用者需提供的內容、注意事項。
scripts/contrast_check.py對每個主題中的每個權杖配對進行 WCAG 檢查,包含最差情況的玻璃效果。失敗時回傳 Exit 1。
scripts/build_tokens_css.py將 tokens.json 編譯為 tokens.css。

工作流程

A. 建構或重新設計 UI

  1. 閱讀 references/brand-book.md,然後閱讀 references/components/ 中你需要的元件檔案。
  2. 將 assets/tokens.css 和 assets/liquid-glass.css 複製到專案中,並依序載入。在 React 專案中,可以使用套件或移植 references/html-api.md 中的標記。在其他框架中,請移植標記。
  3. 佈置兩層:
    • 內容層: 不透明,位於 canvas 和 surface 上。所有供閱讀的內容都放在此處。
    • 玻璃層: 僅限導航與控制項,浮動於滾動內容之上(工具列、分頁列、群組、選單、中型 sheet)。
  4. 使用權杖名稱(例如 var(--accent))。絕不硬編碼權杖涵蓋的顏色、圓角或間距值。
  5. 完成前執行下方的檢查清單。

B. 重新品牌(新的強調色或中性色)

  1. 僅修改 assets/tokens.json 中的值。保留權杖名稱,因為 CSS 依賴它們。
  2. 每個變更的強調色需要在每個主題中有其配套:accent、on-accent、accent-text、accent-glass、focus-ring。如果暗色主題的強調色是淺色,則 on-accent 必須是深色。
  3. 執行 python3 scripts/contrast_check.py assets/tokens.json。調整數值直到顯示 RESULT: PASS。請勿降低閾值。
  4. 執行 python3 scripts/build_tokens_css.py assets/tokens.json > assets/tokens.css。
  5. 除非有特殊要求,否則保留玻璃權杖(glass-fill、glass-edge、glass-lift、glass-blur)。玻璃層保持無色。

不可妥協的規則

  • 玻璃僅用於功能層。絕不使用於列表行、內容卡片或頁面區塊,且不可玻璃疊玻璃。
  • 常規玻璃上的文字僅使用 ink、ink-glass-muted、accent-glass 或 critical-glass。絕不在玻璃上使用 ink-secondary、accent-text 或 critical:它們在深色或亮色內容上會失效。
  • 透明玻璃(lg-glass--clear)僅用於照片、影片或地圖之上,且下方需有 lg-dim。僅在其上放置符號和 19px 以上的粗體標籤。
  • 每個視圖最多一個 prominent 按鈕。所有控制項皆為膠囊形狀(radius-full)。嵌套圓角需同心:內層 = 外層 − inset。
  • 點擊區域至少為 target-min(44px)。每個僅限圖示的控制項都必須有 aria-label。
  • 狀態必須同時使用圖形和文字;顏色本身從不傳達意義。
  • 尊重 prefers-reduced-transparency、prefers-contrast 和 prefers-reduced-motion。CSS 已處理這些設定;請勿覆寫。
  • 請勿使用 Apple 的 SF Symbols、Apple 字型或商標。字型堆疊使用裝置的系統字型;React 套件中的圖示集為原始佔位符。

交付前檢查清單

  • 工具列後方無自訂背景;內容在其下方滾動,並在工具列與內容重疊處使用 lg-edge 滾動邊緣效果。
  • 玻璃數量很少(工具列、群組、選單、sheet)。其他項目都不是玻璃。
  • 已在 data-theme="light"、"dark" 和 "contrast" 下檢查畫面。
  • 如果權杖已變更:contrast_check.py 顯示 PASS,且 tokens.css 已重新產生。
  • 鍵盤:每個控制項都可觸及,並顯示 focus-ring 外框。
  • 文案:動作使用 sentence case,僅列表區段標題使用 Title Case,動詞優先,無 emoji。

相關技能