標誌設計技能 — 終極版
全面的標誌與視覺品牌形象設計。涵蓋:品牌背景分析、視覺識別策略、AI 圖像生成、直接 SVG 創作、點陣圖轉向量、標誌動畫、品牌系統文件、字型挑選以及品牌一致性交付。
視覺工具 — 修正與驗證
當使用者發送標誌/圖片以供參考並要求合併想法時:vision_analyze 必須正常運作。如果它回傳「我沒有看到圖片」而非分析結果,則表示 MiniMax-M2.7 缺乏原生視覺能力,需要修正輔助配置。
正確的修正方式(執行這兩個指令,已於 2026 年 7 月驗證):
hermes config set auxiliary.vision.provider minimax
hermes config set auxiliary.vision.model MiniMax-Image-01
執行後檢查配置 — 它應該出現在頂層的 vision: 區段下(在 ~/.hermes/config.yaml 約第 559 行),與巢狀的 auxiliary.vision: 區段分開。如果 vision_analyze 仍然失敗,則圖片 URL 可能無法存取 — 嘗試重新下載或使用不同的路徑。此修正會跨工作階段持續生效。
如果視覺功能仍然失敗的備援方案: 使用 PIL/Pillow 從圖片中取樣像素顏色並以分析方式描述。讀取檔案,取樣關鍵區域(頂部中央、中央、底部、角落),並回報主要顏色、亮度分佈以及基本形狀。這在 vision_analyze 故障時可作為備援方案 — 已確認該圖片是淺灰色背景上的黑色翅膀搭配淚滴形船錨。
漸層確認協議(關鍵 — 在撰寫任何 SVG 之前必須執行)
使用者會以自然語言描述來調整漸層,在實際看到視覺效果之前,這通常是模糊的。在撰寫 SVG 之前,務必使用他們確切的顏色名稱口頭確認順序。 這可以避免 3 次迭代重做。
撰寫程式碼前的步驟(強制性):
使用者說:「金色 祖母綠 青色 祖母綠 金色」
→ 正確:說「收到 — 金色 → 祖母綠 → 青色 → 祖母綠 → 金色,兩端都是金色,青色在最中央。」然後再撰寫 SVG。
→ 錯誤:假設你了解他們的意思就直接撰寫 SVG。
使用者說:「青色藍過渡到金色,中間夾雜祖母綠」
→ 正確:說「所以是金色 → 祖母綠 → 青色 → 祖母綠 → 金色?還是金色 → 青色 → 祖母綠 → 青色 → 金色?請從左到右為我說明。」
→ 錯誤:自行選定一個解釋就直接撰寫。
從真實迭代中學到的關鍵經驗(2026 年 7 月 — 組織層級):
-
「青色藍過渡到金色,中間夾雜祖母綠,兩端是金色」→ 使用者確認金色在外端。祖母綠和青色在中間。
-
「青色在中間」→ 青色位於 50% 偏移位置,祖母綠/其他顏色在兩側。
-
有疑慮時:使用使用者自己的顏色名稱,向他們提供從左到右的精確順序,並詢問「這樣對嗎?」
-
漸層點的顏色應明確確認 — 它是與漸層線分開的獨立元素。
-
金色在基點(3/6/9/12 點鐘方向)的漸層邊框:使用 CSS
conic-gradient()透過foreignObject或border-image來實現 — SVG 1.1 不支援<conicGradient>。嘗試使用它會無聲失敗。 -
Telegram 風格的圓角圖示:黑色圓形基底 + 漸層邊框描邊 + 內部填色覆蓋中心。在圓形上使用
fill="none" stroke="url(#grad)"來製作邊框。確保 SVG 圓形的 r 與背景圓形的 r 相符,這樣才不會有間隙。 -
確認後:撰寫 SVG → 透過 Playwright 渲染為 PNG → 在獨立行中發送為
MEDIA:/path/to/file.png。
V 形凹陷標記的光學置中(從組織迭代中學到的關鍵經驗):
當標記具有向下延伸的 V 形凹陷時,幾何中心(50% y 位置)看起來會太高 — 視覺重心低於中心。對於一個 512×512 的畫布,且標記群組內 V 形凹陷頂點位於局部 y≈28 時,translate(256, 290) 為一個高大的組合標記(翅膀 + V 形凹陷)提供了正確的光學平衡。透過視覺進行迭代 — 從 +20px 開始,逐漸增加直到看起來正確為止。
Telegram/社交圖示邊框限制:
黑色圓形基底的 r 必須與邊框描邊的內徑完全相等 — 不能有間隙。如果邊框描邊為 8px 且中心在 r=252,則內緣為 r=248。黑色圓形也必須是 r=248。任何不匹配都會導致可見的間隙或重疊。
Telegram 圖示構成經驗教訓(2026 年 7 月 — 組織迭代):
- 「不要邊框,只要圖示」→ 使用者希望不要邊框環,只要黑色背景上的標記。移除
<circle>邊框元素,只保留黑色<rect>背景和標記群組。 - 「往下移一點,這樣我才能看到完整的標誌」→ 對於高大的標記(翅膀 + V 形凹陷),幾何中心(50% y 位置)會裁剪到頂部。將 translate y 調整到約 290(在 512 畫布上)。從 +20px 開始進行視覺迭代,直到頂部有呼吸空間且底部不感到擁擠。
- 「讓標誌更大」→ 按比例增加標記路徑座標和描邊寬度。對於示波器標記,將手臂從 ±196 延伸到 ±234 使其填滿空間。位於手臂端點的金色強調點應剛好在圓形邊緣內側(在 512 畫布上距離邊緣約 20px)。
- 「將翅膀與示波器 V 形凹陷結合」→ V 形凹陷頂點成為有機的「淚滴形船錨」收斂點。翅膀從訊號手臂端點向上延伸。青色點保持在訊號源頭(V 形凹陷底部)。保持訊號手臂作為結構基礎 — 它們支撐著有機的翅膀形狀。
- 「置中」→ 對於視覺重量平衡的標記,幾何置中(平移至畫布中心)即可。對於具有向下 V 形延伸的標記,光學置中需要從幾何中心向下偏移 40–60px。從 +20px 開始並進行調整。
將兩個標誌合併為一個(設計綜合):
- 當使用者說「將 X 與 Y 結合」時,識別每個的語義核心:X = 有機翅膀對稱性 + 淚滴形船錨(黑色剪影),Y = 示波器 V 形凹陷 + 漸層訊號 + 青色點
- 綜合:保持示波器訊號作為結構基礎,增加有機翅膀形狀作為從訊號手臂流出的次要葉片
- 漸層和青色點是跨綜合過程應持續存在的品牌識別元素
- 不要隨機混合風格 — 從每個標記中挑選最強的結構元素,並有意圖地組合它們
第一次迭代容易誤讀的標記類型
訊號脈衝標記(心跳 / 示波器 / EKG)。 當簡報要求一個「訊號」或「脈衝」標記,而你將其繪製為 \_/\_(平坦基線、峰值、較小峰值、平坦基線)時,第一次迭代很可能被解讀為一個雙臂張開的人、波浪或地形起伏,因為人眼會優先進行身體形狀的模式匹配。兩種特定的修正方式:
- 保持平坦基線段較短,靠近峰值。 離峰值太遠的長基線段會被解讀為「手臂。」將它們緊貼在峰值的上升/下降邊緣。
- 確保上升坡和下降坡是清晰的。 一個對稱的峰值加上遠離中心的平坦線段,會被解讀為一個身體(手臂 + 頭部)。一個明顯不對稱的下降(從基線急劇上升、峰值、然後在下降過程中有一個較小的次要凸起)則會被解讀為帶有活動的資料 — 那是訊號,而不是身體。
- 在主要峰值之外增加至少一個次要特徵。 即使在下降過程中增加一個小的刻度,也能將解讀結果從「形狀」改變為「資料」。沒有它,訊號標記會預設為身體剪影。
六邊形 / 菱形 / 正方形輪廓。 當簡報是「現代科技」且標記是六邊形或菱形時,檢查邊緣是否意外形成字母(六邊形內部的「X」會拼出某個東西,或者菱形的角被解讀為指向錯誤方向的「V」)。如果有歧義,將頂點角度調整 5°。
作為應用程式圖示的圓角正方形。 驗證圓角半徑是否符合平台。iOS 使用「squircle」(連續轉角,在數學上與簡單的 border-radius 不同)。在一個 200×200 的正方形上使用簡單的 border-radius: 36px 會被解讀為「Android Material」而非「iOS」。如果平台很重要,請使用專用的 iOS 風格 squircle 產生器。
SVG 中的錐形漸層:
SVG 1.1 沒有原生的錐形漸層元素。<conicGradient> 是無效的。解決方案:
- 在
foreignObjectdiv 內使用 CSSconic-gradient()— 在瀏覽器中有效,可透過 Playwright 渲染 - 在
foreignObject內的<div>上使用border-image: conic-gradient(...) 1 - 退而求其次,使用帶有多個停止點並旋轉 45° 的
linearGradient作為圓形stroke— 可以在 4 個點提供 4 種顏色和金色,但無法完美同時處於 3/6/9/12 位置
常見的誤讀模式:
- 「青色到金色」+ 「中間夾雜祖母綠」= 金色 → 祖母綠 → 青色 → 祖母綠 → 金色(不是金色 → 青色 → 祖母綠 → 青色 → 金色)
- 「兩端都是金色」= 外側停止點是金色,不是青色
- 「青色在中心」= 青色位於 50% 偏移位置,祖母綠/其他顏色在兩側
在要求顏色反饋之前,務必渲染為 PNG 並以視覺方式呈現。 文字中的顏色描述不可靠 — 視覺才是最終依據。
環境注意事項
在此 Hermes 環境中,圖像生成(FAL.ai FLUX.2)不可用 — FAL_KEY 未設定。請勿嘗試將 ImageGenerate 用於標誌工作。無論如何,SVG 優先都是更好的選擇:它產生的是實際的向量檔案,而非點陣圖。
透過 Playwright 渲染 SVG(已於 2026 年 7 月確認可行):
import asyncio
from playwright.async_api import async_playwright
async def render(svg_path, png_path, width=900):
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page(viewport={'width': width, 'height': int(width*0.9)})
await page.goto(f'file://{svg_path}')
await asyncio.sleep(0.8)
await page.screenshot(path=png_path, full_page=False)
await browser.close()
asyncio.run(render('/path/to/logo.svg', '/path/to/preview.png'))
在 Telegram 上交付: 圖片必須在獨立行中發送為 MEDIA:/absolute/file.png。Markdown 圖片語法  在 Telegram 上不會渲染 — 它會無聲失敗。切勿在 Markdown 文字區塊中嵌入圖片連結。
黃金法則
- 標誌以 SVG 優先。 生成直接的 SVG 向量 — 而非 AI 圖像生成。SVG 可無限縮放、可編輯、可動畫化,並可透過 Playwright 即時渲染。僅在概念需要照片級寫實參考或 SVG 無法實現的複雜紋理時,才使用 ImageGenerate。已確認可行的工作流程(2026 年 7 月): 撰寫 SVG → 透過 Playwright 無頭模式渲染為 PNG → 在 Telegram 上發送為
MEDIA:/path/to/file.png。 - 以視覺方式迭代。 概念 → PNG 預覽 → 改進。使用者在看到標記而非描述時,改進效果更好。在鎖定概念之前,生成 2-4 個探索不同維度(移除箭頭、僅圖示、顏色轉換)的變體。
- 在每個維度上都要具體。 「現代」毫無意義。「幾何、緊密字距、海軍藍 + 金色」才有意義。
- 執行避免清單。 大多數糟糕的 AI 標誌來自於沒有告訴模型要拒絕什麼。
- 可擴展性是不可協商的。 標誌必須在 16×16 解析度下清晰可讀。
- 最小平滑幾何 = 可動畫化的幾何。 具有 400 個點的複雜描摹路徑無法進行編排。
第一階段:品牌背景分析
先讀取現有背景
檢查是否存在 .agents/brand-context.md。如果存在,請讀取它 — 不要詢問已經擷取的資訊。
已建立品牌捷徑: 如果品牌有公開網站,在詢問任何問題之前,先導航到該網站並以視覺方式擷取品牌背景。閱讀首頁文案、標語、關鍵訊息、產品名稱和顏色。檢查專案儲存庫中的 public/logo.png 或 public/favicon.ico 以查看目前的標誌。將發現結果儲存在此技能的 references/<brand-name>.md 中。
如果沒有背景存在 — 快速收集
不要問超過 3 個問題:
- 「品牌名稱是什麼,它是做什麼的?」(一句話)
- 「描述個性的 3 個詞?」(例如:大膽、技術性、高級)
- 「你有偏好的顏色嗎 — 或者有什麼要避免的?」(或者說「給我驚喜」)
從這三個答案中推斷其餘所有內容。
儲存品牌背景
儲存到 .agents/brand-context.md:
# 品牌背景
## 品牌
- **名稱**:[名稱]
- **類別**:[產業/利基]
- **描述**:[一句話簡介]
- **階段**:[預發布 / 早期 / 成長 / 已建立]
## 品牌個性
- **個性詞彙**:[詞, 詞, 詞]
- **語調**:[正式/休閒] · [嚴肅/活潑]
- **欣賞的競爭對手**:[選填]
## 顏色
- **偏好**:[顏色或「給我驚喜」]
- **避免**:[如果指定了顏色]
## 目標
- **主要用途**:[應用程式圖示 / 網站 / 社交媒體 / 印刷 / 包裝 / 全部]
- **關鍵要求**:[必須在單色下運作 / 幾何 / 等]
- **動態**:[品牌是否需要動態標誌 / 揭曉 / 啟動畫面?]
第二階段:視覺識別策略
在生成任何內容之前,先定義設計方向。
8 個維度
| 維度 | 問題 | 範例 |
|---|---|---|
| 名稱 | 需要出現什麼? | 「目標平台」 |
| 產業 | 什麼領域? | 金融科技 / 交易 |
| 核心價值 | 品牌的單字精髓 | 精準 |
| 個性 | 品牌性格? | 大膽、技術性、高級 |
| 色彩情感 | 顏色傳達什麼? | 金色 = 財富/高級 |
| 競爭對手差距 | 其他品牌看起來如何? | 「彭博繁複;我們要極簡」 |
| 標誌類型 | 哪一種最適合? | 組合 / 字母標記 / 抽象 |
| 使用情境 | 它會出現在哪裡? | 應用程式圖示、網站、深色終端機 |
標誌類型選擇指南
| 類型 | 最適合 | 範例 |
|---|---|---|
| 文字標記 | 新品牌、易記名稱 | Google、Coca-Cola |
| 字母標記 | 長名稱、縮寫 | IBM、HBO |
| 組合 | 最通用 | Slack、Spotify |
| 抽象標記 | 科技、AI、全球品牌 | Nike、Apple |
| 徽章 | 餐廳、體育、官方 | Starbucks |
| 吉祥物 | 消費應用程式、食品品牌 | Mailchimp |
| 花押字 | 個人品牌、代理商 | Vogue |
色板框架
主要品牌色 — 一種主導情感:
| 顏色 | 情感 | 最適合 |
|---|---|---|
| 海軍藍 (#0A1628) | 信任、穩定、 |
…
[後續內容因長度限制而截斷]