品牌識別 是做什麼的?
以下流程是持久性的部分。影像模型、圖示規格與商店尺寸會隨時間變動;在渲染任何內容前請查閱當前平台規格,而 (2026-10 確認) 標記了最可能變動的尺寸。
腳本位於 ~/claude-skills/tools/brand/。make_versus.py(步驟 3 的對照表)與 make_fonts.py(步驟 5)可直接在任何應用程式中執行。其餘腳本(提示詞、候選繪圖、素材渲染器、商店框架、海報)是為特定應用程式撰寫並繪製其標誌,請閱讀它們以了解方法並進行調整。這些腳本需要 rsvg-convert、Pillow、fontTools 與無頭 Chrome。
1. 需求摘要
一個共享的需求摘要需貼在每個概念之前(tools/brand/logo-prompts.md 是一個實作範例):
- 使用位置(啟動器圖示、商店列表),因此必須在 48px 下清晰可辨,且能作為單色輪廓呈現
- 平面向量、實心形狀、無漸層、陰影、3D、紋理或文字
- 以十六進位碼指定的精確色盤,以及「無其他」
- 一個位於圓角方形底板上的置中標誌
- 每次執行以網格方式呈現數個變體,以便探索一個概念而非押注在單一渲染上
- 該類別的禁用清單
完成條件:需求摘要符合一個段落,且每個概念為額外的一行。
2. 迭代
- 第一輪:六到七個概念加上一個開放式需求。選擇一個。
- 第二輪:保留勝出者,每次提示詞變化一個軸向(幾何 vs. 圓潤、強調色含義、留白、小型單色壓力測試)。用文字詳細描述字母結構;模型容易在跨腳本時混淆相似字形。
- 在繼續之前,讓專案外部的人觀看。 一個腳本、符號或顏色對受眾的觀感,可能會讓提示詞無法察覺的標誌被拒絕。一個外部意見抵得上一輪迭代。
- 第三輪 測試:孩子能在看過一次後憑記憶畫出嗎?為任何草圖標註繪製者。
3. 對照表
將兩到三個決選方案以程式碼(SVG 字串)重新繪製,然後透過啟動器圖示實際會遇到的情境進行測試(make_versus.py 從 SVG 完成所有工作):
- 圓形與圓角矩形遮罩
- 模糊的「一覽」檢視
- 淺色與深色系統色調下的主題(單色)圖示
- 48、32、24 與 16px,並放大顯示
- 墨水覆蓋率,以及每個候選方案的一行評語
相信對照表而非個人偏好。需要解釋的標誌,輸給首先能自我表述的標誌。
完成條件:一個候選方案在對照表上勝出,且我能用一句話解釋原因。
4. 單一繪圖,所有素材
勝出者變成一個帶有參數的函式(顏色、低於某尺寸時細節開啟或關閉)。一個腳本從它渲染所有素材;icon-assets.md 記錄了尺寸矩陣和每個尺寸背後的規則。在應用程式內部,使用相同數值的元件繪製標誌,而非傳送 PNG 圖片,這樣它在任何尺寸下都保持銳利,並且能在深色模式中切換顏色。
然後在儲存庫的文件中提供 Logo 套件(包含標準組合與獨立標誌、淺色與深色、SVG 與 PNG),這樣就不會有人為了取得 Logo 而截取應用程式畫面。
5. 字型
自行託管字型,使用 fontTools 將其子集化為 woff2 格式(保留產品所需的腳本及其貨幣和符號),保留可變軸。依賴下載字型的建置流程存在網路相依性,可能導致部署失敗。(2026-10 確認:next/font/google 曾以此方式導致 Vercel 建置失敗。)
6. 商店素材與海報
- 透過無頭 Chrome 將商店框架渲染為 HTML,並使用商店當前尺寸 (2026-10 確認:Play 手機截圖 1080x1920、特色圖形 1024x500、列表圖示 512px RGB 無透明)。在繪製框架內使用真實手機的真實畫面。Chrome 可能在寫入後以非零狀態碼退出,因此請將輸出檔案視為成功的信號。
- 任何畫面上不得出現真實用戶的姓名或資料,且說明中的所有聲明必須與審閱中的建置版本相符。
- 使用
play.py icon與play.py art上傳(參見expo-release)。列表圖示是其專屬素材;沒有建置流程會更改它。 - 海報與縮圖:為應用程式可能產生的每種裁切進行設計,並將每個渲染結果上傳到新路徑(參見
mobile-performance,Images)。