Community影像github.com

SaaS Logo 標誌生成器

以 Notion、Linear、Vercel 等知名 SaaS 品牌風格,生成單一幾何符號標誌,並輸出為透明背景 PNG 與應用程式圖示磁磚,可直接用於網站或產品。

SaaS Logo 標誌生成器 是什麼?

這項技能專為需要快速產出 SaaS 產品標誌的開發者與設計師設計,模仿 Eleven 個知名品牌(如 Notion、Linear、Vercel、Slack、Miro、Airtable、Intercom、PostHog、Webflow、Mintlify 和 Claude)的標誌風格。它透過分析這些標誌的幾何結構與五大家族(實心基本形、重複基本形、字母形、多面體、柔和線條),讓使用者能根據產品特性選擇最適合的家族。技能會基於產品簡介生成 3-4 個概念,並透過 OpenRouter 的圖片模型(預設為 Google Gemini 系列)平行產生圖片。最後,它會自動將產生的圖片裁切為透明背景的標誌圖示與圓角應用程式磁磚 PNG,並提供評比與替換機制。支援 Claude Code、Cursor、Codex 等平台,透過 JSON 輸出結果,並利用獨立的 Shell 和 Python 腳本來完成裁切與拼版作業。

相容平台✓Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/paralect/saas-skills/tree/HEAD/skills/saas-logo

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

SaaS Logo 標誌生成器 是做什麼的?

此技能使用的所有檔案都存放在 SKILL.md 同層的專屬資料夾中,路徑皆以此資料夾為相對基準。它不需要其他技能或其他資料夾的任何東西,所以請勿到處尋找。除非使用者指定其他位置,否則所有產出物都儲存在目前專案的 out/saas-logo/ 目錄下。

一個符號,扁平化。回傳的結果是:在透明背景上、經邊緣裁切後的獨立標誌圖示,以及同一個標誌放置於應用程式圖示磁磚上的版本。這些檔案可直接放入網站中使用。此技能所參考的標誌都研究過並記錄在 references/analysis.md 中:包括這十一個標誌各自的幾何結構、它們共同遵守的八項規則,以及它們所屬的五個家族。第一次製作標誌前請先閱讀該文件;這就是此處定義「看起來像真正的 SaaS 標誌」的依據。

發送給圖片模型的提示詞存放在 prompt.md 中,包含了模型所需的一切:共享規則(畫布、磁磚、扁平面填色、線條粗細、顏色)以及參考標誌所屬的五個家族,每個家族都有自己的規則。您的工作是在提示詞之前進行思考(選擇家族和符號),以及在提示詞之後進行判斷。

步驟

1. 瞭解產品

閱讀簡報、README、登陸頁面文案,以及任何現有資料。寫下一行摘要:「名稱 — 使用者用它來做什麼,用一個動詞,作用於一個物件上。」 「將任務交給程式碼代理」 → 交接,一張任務卡。 「將資料夾發佈為網站」 → 發佈,一個頁面。 標誌要表現的是這個動詞或物件,而不是產品類別(不要使用齒輪、雲端、火箭、圖表)。如果產品有品牌色,請記下其色碼(從 CSS 變數、favicon 取得)及其產品名稱的英文首字母。

2. 選擇家族

prompt.md 第三節定義了五個家族,以及每個家族最適合的用途:

  • 實心基本形 (Solid primitive) (Vercel, Miro):基礎設施、開發者工具,任何希望給人「無可取代」感覺的產品,用一個形狀來傳達概念。
  • 重複基本形 (Repeated primitive) (Slack, Claude, Linear, Intercom, PostHog):協作、通訊、AI,任何涉及多個部件共同運作的產品。
  • 字母形 (Letterform) (Webflow, Miro, Notion):產品名稱本身就是品牌,且其首字母具有強烈形狀(A, M, N, W, K, Z, S, V)時使用。
  • 多面體 (Faceted object) (Airtable, Notion 的頁面):資料、儲存、文件,任何包含可以填充或堆疊物體的產品。
  • 柔和線條 (Soft stroke) (Mintlify, Intercom):友善的消費端產品、文件、客服,任何傾向溫暖而非技術感的產品。

當使用者提到某個參考品牌時,其家族便已確定:「像 Slack」或「像 Claude」→ 重複基本形;「像 Vercel」→ 實心基本形;「像 Webflow」或「像 Notion」→ 字母形;「像 Airtable」→ 多面體;「像 Mintlify」或「像 Intercom」→ 柔和線條。當使用者指定家族時,就使用該家族。當沒有任何線索時,將概念分散到兩三個家族中,最終由產出的圖片品質決定。

3. 撰寫 3–4 個概念

每個概念需用 2–3 句話描述,讓圖片模型不需猜測即可繪製:

  • 將符號描述為幾何形狀,而非名詞。不是「一張任務卡」,而是「一個圓角矩形,寬大於高,在其後方有一個完全相同的矩形,向上向右偏移其高度的四分之一」。不是「一個井字號」,而是「四個藥丸形狀,每個都是一條帶有圓形凸起的條狀,繞中心旋轉 90°」。
  • 如果是重複基本形,需描述數量與節奏:「從左到右五條垂直條,高度比例依次為 3-5-4-2-3」。
  • 命名所屬家族,如果是字母形,需指定是哪個字母以及構成該字母的兩三個筆畫。
  • 顏色:若有品牌色,使用十六進位色碼,否則使用「黑色磁磚,白色標誌」或「金盞花色磁磚,黑色標誌」。
  • 排除事項:當概念可能引發模型添加額外元素時,需明確指出:「無圓點」、「條狀周圍無邊框」、「留白區域保持空白」。

讓不同概念的輪廓有所區別(高 vs 寬,單一團塊 vs 散佈)。捨棄任何需要超過該家族允許的基本形數量,或使用了該家族禁止的顏色的概念。

4. 組合提示詞並生成圖片

對於每個概念,取用 prompt.md 並將其中的 {{input}} 替換為以下內容:

<Product> — <它是什麼以及做什麼>。動詞是 <動詞>;物件是 <物件>。
品牌色:<十六進位色碼或「無」>。首字母:<字母>。
家族:<五個家族之一>

概念:<步驟 3 的概念>

透過 OpenRouter 平行生成所有概念(方法如下),每個概念生成一張正方形圖片。將圖片儲存為 <concept>.png 或 .jpg,取決於回傳的格式(下方的程式碼片段可以區分它們)。

預設模型:google/gemini-3.1-flash-lite-image (Nano Banana 2 Lite),最便宜且最快;它處理扁平幾何圖形已足夠應付整個流程,一個概念如果在此模型上失敗,通常在其它模型上也會失敗。僅在使用者要求,或當某個候選概念需要比兩輪生成更乾淨的渲染結果時,才升級模型:google/gemini-3.1-flash-image (Nano Banana 2),然後 google/gemini-3-pro-image (Nano Banana Pro),後者能畫出最乾淨的幾何圖形:平直的端點、均勻的線條粗細、真正的扁平填色。

5. 評比

執行 bash <此技能資料夾>/scripts/sheet.sh sheet.png a.png b.png … 將所有磁磚圖片排成一排,並開啟該檔案。若要同時檢視參考標誌,執行 bash <此技能資料夾>/scripts/fetch-references.sh out/saas-logo/references 會透過 Brandfetch 將十一個標誌拉取到一個獨立的排版圖中(需要 Brandfetch 客戶端 ID;請參閱該腳本的開頭說明)。依照分析文件中評判參考標誌的方式來評判每個磁磚:

  • 扁平化 — 每個形狀僅使用一種填色,無漸層、無陰影、無斜面。任何不符合此條件的都應重新生成,而非保留。
  • 統一的角落 — 全部尖角或全部圓角,按照家族的規定。
  • 數量 — 概念中指定的基本形數量,不能多也不能少。多一個點、一個邊框、一個缺口,都代表在重新生成時未能明確命名(例如:「條狀周圍無邊框」)。
  • 輪廓 — 瞇起眼睛看。在 16px 大小下應為一個清晰的形狀,沒有意外的第二個圖案:三條線和一個曲線可能變成了一張臉,一個 V 形和一個點可能變成了一個游標,四個藥丸形可能變成了一個風車。
  • 含意 — 在不看產品名稱的情況下,能否辨識出動詞或物件?如果它看起來像一個類別圖示,那是概念有問題,而不是渲染的問題。
  • 畫布 — 磁磚在平面灰色背景上居中,除此之外無其他東西,無文字。磁磚大小和確切顏色在不同渲染之間可能略有差異;這是正常的。當需要一組圖片完全一致時,請在同一個回合中使用同一個模型生成,或後續再裁切到磁磚範圍。

僅重新生成失敗的概念,並在概念描述中明確指出失敗的原因。通常需要兩輪生成;如果一個概念連續失敗兩次,通常是概念本身的問題,而非模型問題。請更換該概念。

6. 裁切

渲染結果是一個工作檔案:一個帶有磁磚的灰色畫布。將每個保留的候選概念裁切成最終可用的檔案:

bash <此技能資料夾>/scripts/cut.sh <concept>.png out/saas-logo/<product> --name <product>

它會產生 <product>-mark.png(透明背景上、經邊緣裁切且無內邊距的獨立標誌圖示)和 <product>-tile.png(具有透明圓角的應用程式圖示磁磚)。畫布顏色從渲染圖的角落讀取,磁磚顏色從磁磚邊緣內側的色帶讀取,邊緣像素會從這些顏色中分離出來,因此邊緣能保持柔和且無光暈。當交付多個概念時,應分別命名(例如 --name relay-bars、--name relay-block)。首次執行會在技能資料夾內的 scripts/.venv 中建立一個包含 Pillow 和 NumPy 的小型 Python 虛擬環境;之後執行便會瞬間完成。

在深色和淺色背景上開啟這兩個檔案進行檢查:確認標誌邊緣沒有磁磚顏色的邊紋,磁磚角落沒有畫布顏色的細縫,標誌的任何部分都沒有被裁切到。出現邊紋表示渲染圖的磁磚不是純色的(混入了漸層或暗角);應重新生成渲染圖,而不是修補裁切結果。只有在放大檢視時才看到的邊緣微弱色調,是來自 Lite 和 Flash 模型的 JPEG 噪點;當這點很重要時,請用 google/gemini-3-pro-image 再次渲染該候選概念,它會回傳 PNG 格式。

7. 交付

將標誌圖示和應用程式圖示磁磚的 PNG 檔案放入 out/saas-logo/<product>/。僅在使用者要求時,才將它們複製到產品存放品牌資產的位置(public/、brand/、assets/)。將渲染圖和 sheet.png 放在旁邊的 renders/ 資料夾中,以保持整潔。在摘要中,請說明推薦的 -mark.png 和 -tile.png 檔案路徑,用一句話說明您推薦哪個概念及其原因,並列出其他替代概念及其對應的檔案。

透過 OpenRouter 生成圖片

API 金鑰來自 OPENROUTER_API_KEY 環境變數。如果未設定,請停止並要求使用者設定,而不是猜測使用其他提供者。

KEY="$OPENROUTER_API_KEY"

# request.json: {"model": "google/gemini-3.1-flash-lite-image", "prompt": "<組合後的提示詞>", "aspect_ratio": "1:1"}
curl -sS https://openrouter.ai/api/v1/images \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d @request.json > response.json

python3 - <<'PY'
import base64, json, pathlib
data = json.loads(pathlib.Path("response.json").read_text())["data"][0]
image = base64.b64decode(data["b64_json"])
# Lite 和 Flash 模型回傳 JPEG 位元組,Pro 回傳 PNG;據此命名檔案。
ext = "png" if image.startswith(b"\x89PNG") else "jpg"
pathlib.Path(f"concept.{ext}").write_bytes(image)
PY

scripts/sheet.sh 和 scripts/cut.sh 可接受兩種格式。

檔案

  • prompt.md — 提示詞範本;{{input}} 會被替換成產品摘要、家族和概念。其第三節包含了五個家族。
  • references/analysis.md — 對十一個參考標誌的研究:每個標誌的幾何結構、共同規則、五個家族。
  • scripts/fetch-references.sh — 透過 Brandfetch 的 Logo API(從 BRANDFETCH_CLIENT_ID 環境變數讀取客戶端 ID)將參考標誌拉取到一個資料夾和排版圖中;任何網域列表都可以,用於不同的參考集。
  • scripts/sheet.sh — 在灰色畫布上將磁磚排成一排(需要 rsvg-convert;可用 brew install librsvg 安裝)。
  • scripts/cut.sh、scripts/cut.py — 將渲染結果裁切為最終交付用的透明標誌圖示和應用程式圖示磁磚 PNG。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相關技能