Communitygithub.com

Ajit-ApTech/premium-glass-android

在 Android 應用程式中,使用 Jetpack Compose 設計並構建具有 Apple 風格的「液態玻璃」介面,包含半透明浮動導覽、表單與控制項,適用於暗/亮色主題、可讀性檢查、無障礙設計、模糊效能限制及 AI 影像輔助設計。

premium-glass-android 是什麼?

這項技能專為 Android 開發者設計,協助他們在 Jetpack Compose 中打造高階、Apple 風格的「液態玻璃」使用者介面。其核心理念是將玻璃材質僅用於浮動層級的控制項(如底部導覽列、浮動按鈕、搜尋欄),而非內容或卡片本身,以保持介面的簡潔與層次感。技能提供了完整的材質層級(薄、一般、厚、遮罩)及其對應的模糊程度與填充色,並內建可讀性對比檢查(4.5:1)、無障礙模式(減少透明度、大字型、減少動態效果)以及對 Android 12 以上裝置的效能預算限制(同時最多 2-3 個模糊層)。此外,還包含 AI 影像提示生成模式,可協助設計參考畫面,以及程式碼/設計審查模式,自動化檢查玻璃濫用情況。技能支援 Claude Code 等 AI 代理工具,並提供完整的 Compose 範本、檢查清單與自動化指令碼,確保實作品質符合高標準。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ajit-ApTech/Premium-liquid-glass/tree/main/premium-glass-android

在你喜歡的 AI 中提問

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

說明文件

Premium Glass for Android(高階 Android 玻璃介面)

目標:打造一個平靜、富有空間感且高質感的介面。玻璃是浮動於內容上方的控制項材質,不應隨處濫用。成功檢驗標準:使用者會說「這介面感覺乾淨且富有層次」,而不是「有人對所有東西都加了模糊效果」。

此技能控制材質、層級、深度、動畫與無障礙設計。專案本身的品牌應控制識別與文案。預設品牌值位於 assets/tokens.json(保留色板),可進行替換。

0. 安全性與範圍

  • 僅在用戶選取的專案內運作。不得讀取機密、金鑰或環境變數。不得發出網路請求或安裝套件;若需要某個函式庫,請直接命名並讓用戶決定。
  • 未經要求不得覆寫現有檔案;請先提出建議(見第 2 節)。
  • 僅使用虛構的範例內容。
  • 禁止使用 Apple 字體(San Francisco)、SF Symbols、Apple 標誌或 iOS 介面元素。請使用 Inter 以及 Material Symbols / Lucide 風格圖示。
  • 標記為 (VERIFY) 的事實可能隨著時間失效(API、版本),請提醒用戶進行確認。

1. 五大強制規則

  1. 內容區塊絕不使用玻璃材質。卡片、列表列、表單、頁面背景與媒體應保持不透明或柔軟表面。
  2. 玻璃僅限於浮動層:底部導覽藥丸、滾動內容上方的頂部欄位、浮動動作按鈕、底部表單與選單、搜尋欄位、提示/ Snackbar、小型浮動標籤。
  3. 禁止玻璃上疊加玻璃。在玻璃表面內部,使用填色、分隔線或不透明度來區隔項目。
  4. 可讀性優先於美觀。主體文字在最差背景上需達到 4.5:1 對比度(大字型與圖示為 3:1)。請執行 scripts/contrast_check.py。
  5. 每個玻璃表面都需有實心備援方案(適用於舊版 Android、減少透明度、高對比度、省電模式、裝置停用模糊效果)。

在對任何元素套用玻璃材質前,捫心自問:「這個材質傳達了什麼功能角色?」有效的答案:它浮動於滾動內容上方;它是暫時性或情境感知的;它必須在內容移動時仍保持可觸達。沒有答案就表示不該使用玻璃。

2. 工作流程

  1. 檢查:平台、最低 / 目標 SDK、現有主題 / 代碼、導覽結構、無障礙需求、效能目標。列出未確定的問題,而非猜測。
  2. 層級對照表(在任何程式碼之前):元素 -> 層級(內容 / 結構 / 浮動)-> 是否使用玻璃 -> 材質層級 -> 原因的表。與計畫一同呈現。
  3. 代碼:從 assets/tokens.json 開始;調整品牌顏色;在兩種模式(亮/暗)下對每個層級重新執行對比檢查。
  4. 使用 assets/GlassTheme.kt 中的範本與 references/compose-implementation.md 中的指導進行建構。
  5. 透過 references/review-checklist.md 與 scripts/audit_compose.py 驗證。報告證據(對比值、每頁玻璃層數、備援畫面截圖)。沒有證據,不得宣稱檢查通過。

3. 材質層級(起始值,單位 dp)

層級用途模糊程度填色(暗色)填色(亮色)
none內容、卡片、列表、背景---
thin僅圖示或大型標籤的控制項16墨水色 @ 0.55白色 @ 0.55
regular導覽藥丸、頂部欄、搜尋、FAB、提示24墨水色 @ 0.66白色 @ 0.70
thick表單、選單、對話框、文字密集覆蓋層32墨水色 @ 0.78白色 @ 0.82
scrim用於模態表單背後的遮暗0-8黑色 @ 0.20-0.45黑色 @ 0.20-0.45
詳細資訊與驗證後的對比數值請參閱 references/tokens.md。填色使用表面墨水色調色,而非純白色,以確保暗色模式下的文字在明亮背景上仍可讀。

4. Android 實際情況(在承諾任何功能前請先閱讀)

  • Modifier.blur() / RenderEffect 模糊的是元素本身的內容,而非其後方的內容。真正的背景模糊需要一個函式庫(Haze 採用 Apache-2.0 授權,支援 Android 上的 Compose)或對話框的視窗模糊。函式庫的 API 名稱會因版本而異:請閱讀已安裝版本的 README(VERIFY)。
  • 模糊效果需要 Android 12(API 31)或更高版本(VERIFY)。低於此版本,請使用實心備援表面。
  • 模態底部表單與對話框位於獨立視窗中,因此合成層內的背景模糊可能無法看到其後的內容。請在支援的情況下使用視窗背景模糊,並檢查 WindowManager.isCrossWindowBlurEnabled(VERIFY),否則使用帶有遮罩的接近不透明厚表單。
  • 在純漸層上使用模糊效果是無效的;玻璃需要其後有結構(內容、圖片或刻意設計的柔和光暈)。否則只會浪費效能。
  • 預算:每頁最多同時 2-3 個模糊層(低階手機為 1-2 個)。切勿模糊列表項目或整個頁面。不要在大面積表面上動態改變模糊半徑;請調整透明度或變形。
  • 請在低階手機(3-4 GB RAM)上,以接近發行版本的建置進行測試。

5. 無障礙模式(全部實作)

  • 減少透明度(應用內設定 + 系統「移除動畫」/ 高對比度訊號):將玻璃表面替換為實心表面代碼,並加上 1 dp 的可見邊框。
  • 大字型(200%)與 TalkBack:不可僅用顏色傳達資訊;僅圖示的控制項需有標籤;焦點順序合理。
  • 減少動態效果:將移動效果替換為淡入淡出;保留狀態回饋。
  • 觸控目標至少 48 dp。手勢操作(滑動)必須有按鈕或 customActions 替代方案。

6. 元件

導覽藥丸、頂部欄、FAB、表單、搜尋欄、標籤、卡片、滑動列、分類堆疊、聊天輸入、遮罩值標籤的規範,請參閱 references/components.md。每個角色使用一個圓角半徑(標籤 999、控制項 16、卡片 24、導覽藥丸 28、表單 32);巢狀圓角半徑 = 外部半徑 - 內邊距。

7. 動畫

彈簧動畫 250-350 毫秒,短淡入淡出 150 毫秒,無彈跳過衝。在滑動閾值時提供觸覺回饋。按下狀態:縮放 0.97 加上柔和亮光。尊重減少動態效果設定。

8. 影像提示模式(參考畫面)

當被要求產生模擬畫面提示時,請遵循 references/image-prompts.md:每個提示一個畫面、自包含風格區塊、精確的螢幕文字、玻璃僅限於浮動層、「卡片不透明」、Android 狀態列、無 Apple 元素。參考文件中有六個經過驗證的畫面提示。提醒使用者,生成模型會扭曲小文字與梵文;請將輸出作為版面與氛圍參考,然後在 Figma / Compose 中重建。

9. 審查模式

當被要求審查設計或程式碼時:按層級分類每個元素、計算每頁玻璃層數、執行審查指令碼(python scripts/audit_compose.py <src>)、執行對比指令碼,然後按嚴重性列出發現的問題,並提供來自 references/review-checklist.md 的修正建議。

10. 輸出期望

對於任何任務,請說明:哪些元素使用了玻璃及其原因;使用的層級;對比證據;備援方案;任何近似值或未驗證的部分。保持變更範圍精簡:不要重新設計不相關的 UX;將不相關的問題分開列出。

參考資料與檔案

  • references/principles.md - 源自 Apple 的設計原則與資料來源
  • references/tokens.md - 代碼表與驗證過的對比結果
  • references/compose-implementation.md - Compose 架構、程式碼片段、備援方案、效能
  • references/components.md - 元件規格與狀態
  • references/image-prompts.md - 提示範本與工作流程
  • references/review-checklist.md - 品質閘門與反模式
  • scripts/contrast_check.py、scripts/audit_compose.py - 本地檢查工具(無網路需求)
  • assets/tokens.json、assets/GlassTheme.kt(可選:將 45 個畫面的 Retain 提示集新增為 assets/retain-screen-prompts.md)

相關技能