logomarks 是做什麼的?
由 David Sherlock 繪製的 3,797 個免費幾何 Logo 標誌,全部遵循同一標準: https://logomarks.ai (CC0,公有領域)。此技能說明如何設計屬於該系列的新標誌,以及如何檢查、編輯和重複使用現有標誌。(若要為專案挑選現有標誌並進行設定,請使用 Logomarks 挑選器技能。)
此資料夾的內容:
SKILL.md:本檔案。scripts/kit.mjs:建構該系列所使用的幾何套件(形狀、真實布林運算、編織、等角立方體和等角立體)。需要執行npm install polygon-clipping(附有package.json)。scripts/fit.mjs:將任何 SVG 標誌調整為標準尺寸並進行檢查。無依賴項。scripts/examples.mjs:來自該系列的六個真實標誌,使用套件重建。examples/:它們的輸出,已經過擬合。
使用現有標誌
該網站兼作靜態 API。無需安裝:
https://logomarks.ai/marks.json:每個標誌的name、slug、file、tags(round、square、letter、number、symmetric、radial、solid、light、wide、tall、new)和繪製尺寸。https://logomarks.ai/svg/<slug>.svg:標誌本身。https://logomarks.ai/marks/<slug>:其頁面,提供 PNG、favicon 和品牌模擬下載。https://logomarks.ai/logomarks.zip:所有標誌。
在從頭開始設計之前,請檢查現有標誌(或其重新混合版本)是否符合需求。取得 marks.json 並按標籤和名稱進行篩選。
標準(不可協商)
-
viewBox="0 0 512 512"。 -
標誌的最長邊精確為 448,居中:邊距為 32,基於真實輪廓測量。寬標誌寬度為 448,高度較短;高標誌高度為 448。切勿憑目測調整大小:請執行
fit.mjs。 -
**測量幾何形狀,而非畫布。**在構建過程中,標誌可以超出 0-512 的範圍(等角立體和高堆疊通常會如此)。只要擬合步驟測量的是真實輪廓,這就沒問題。請勿透過在 viewBox 內渲染來尋找標誌的邊界:任何超出範圍的內容對該渲染都是不可見的,接著「擬合」會將其留在外部,最終檔案在邊緣處被截斷。
fit.mjs會測量每個點和曲線,因此它能處理在任何位置繪製的標誌;fit.mjs --check會將任何仍超出畫布的標誌標記為失敗。 -
整個檔案:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"> <path fill-rule="evenodd" d="…"/> </svg> -
僅使用
currentColor的填充路徑。無筆畫(將其展開)、<g>、transform、style、遮罩、裁切路徑、ID 或文字。孔洞是真實的孔洞(採用 evenodd 或反繞線方向),絕非以背景色繪製的形狀。 -
座標精確到小數點後一位。
工作流程
- **閱讀簡報。**名稱、業務內容、感受(冷靜、技術性、有趣、高級)以及標誌將出現的位置(應用程式圖示、favicon、標示牌)。小尺寸使用傾向於採用零件少的粗體標誌。
- 選擇一個系列(如下)。請勿在一個標誌中混合不同系列。
- **寫下 4-6 個一句話點子。**每個點子必須是一個想法:「一個被 S 形通道分割的圓盤」,而非「一個帶有 S、一個點和射線的圓盤」。字母標誌使用名稱的首字母。
- 使用套件建立最佳的 2-3 個方案:一個簡短的腳本,結合基本形狀與布林運算,並呼叫
write()。僅對非常簡單的標誌手寫路徑資料(參見「手寫路徑」)。 - 擬合:
node scripts/fit.mjs out/將它們全部調整為標準尺寸。 - 審查根據檢查清單。分別在 32 像素和 512 像素下查看每個渲染結果。刪除任何不符合條件的方案,並對倖存者進行疊代。
- 交付每個標誌,附上簡短獨特的名稱(一兩個詞:「Cube Window」、「Moonrise」)、其一句話點子和 SVG。
該系列偏好的風格
根據擁有者審查:具有一個負空間想法和厚實均勻間隙的粗體實心標誌;等角立體和立方體;由一個重複元素構成的細節豐富的標誌;極簡點陣和像素標誌;可愛的陶瓷小動物。最重要的是,任何看起來像現代科技、AI 或科技機能品牌風格的東西:精確、工程感、略帶未來感。連鎖帶、模組化磚塊(最愛)、單線和多線繪圖、倒角和斜切、精密環圈和軌道、網格系統、模板和實用字母、故障切片、字母組合。但絕不能是 UI、網路、晶片或電路圖示、神經網路節點圖、大腦,或任何接近已知 AI 標誌的東西(六角形結、星號、四角星芒)。
系列
該系列中的每個標誌都屬於一個系列。一旦你選擇了一個(工作流程的第 2 步),請在構建之前閱讀 references/families.md 中關於該系列的章節:它的建構方式、在 512 畫布上的數字,以及哪些嘗試已被刪除。此檔案中以引號命名的章節(例如「Iso solids」、「Glitch editions」)也在那裡。
系列:粗體負空間;瑞士網格;模板字母;字母組合;襯線字母和字母組合(批次 230);字母徽章;編織;等角立方體;等角立體;重疊(XOR);線條(單線);多線(軌道);斜切;點陣;動物;居家風格動物;葉子和種子;半色調實體;抖動漸淡(批次 167、186);精細;充氣;故障切片;剪切和線框字母(批次 112–113);內嵌字母(批次 124);軌跡和描邊字母(批次 166);迴響字母(批次 202);科技品牌標誌(批次 213);模組化;軌道;字母符號、符號、隱藏生物和形式(批次 168);科技機能(批次 107);工業標誌(批次 95–97);嘗試並放棄(批次 51);摺疊(摺紙);摺痕和繫帶(批次 170);等角 · 平面(批次 215);粗體 · 徽章(批次 216);粗體 · Y2K(批次 232);字母 · 黑體字和粗體 · 破碎(批次 231)。
套件 (scripts/kit.mjs)
形狀是 512 畫布上的多邊形集合(y 軸向下,C = 256 為中心)。
| 函式 | 功能 |
|---|---|
circle(cx, cy, r), ellipse(cx, cy, rx, ry, deg) | 圓盤 |
rect(x, y, w, h), rr(x, y, w, h, r | [tl, tr, br, bl]) | 矩形,圓角或部分圓角 |
squircle(cx, cy, R, n) | 超橢圓:徽章的柔和方形(n 4.5) |
regular(cx, cy, r, sides, deg), roundPoly(points, cut) | 正多邊形;任何帶圓角的多邊形 |
poly([[x, y], …]) | 任何多邊形 |
annulus(cx, cy, r, w) | 寬度為 w 的環;r 是中心線,而非外緣 |
sector(cx, cy, r, a0, a1), arcBand(cx, cy, r, w, a0, a1, round) | 扇形;厚弧,可選圓形端點 |
lens(cx, cy, length, width, deg) | 透鏡/葉片 |
drop(centre, r, tip) | 淚滴 |
pill(a, b, w), bar(a, b, w) | 帶圓形或方形端點的線條,用於形狀或切割間隙 |
stroke(points, w), sample(f, t0, t1, n) | 厚折線(允許可變寬度)和沿曲線的點 |
weave(strands, w, gap), ring(cx, cy, r) | 上下交錯的股線 |
iso(edge), cubes(list, edge, ox, oy, gap) | 等角點;立方體排列 |
isoPrism, isoBlock, isoRing, isoPile | 等角立體(參見「等角立體」) |
dedupe(points) | 在 stroke() 之前移除重複的點 |
grow(shape, d), soften(shape, r1, r2) | 真實的圓角偏移(負值縮小);向內圓角 r1 和向外圓角 r2(蓬鬆形狀) |
robust() | 在腳本頂部呼叫一次:當 polygon-clipping 拋出錯誤時,每個布林運算都會使用微小抖動重試 |
grown(shape, w), over(back, front, w) | 形狀加上一個 2w 的頻寬(減去它可切出一個獨立部分);front 在 back 前面,由 w 切開 |
egg(cx, cy, rx, ry, deg, k) | 蛋形,用於小雕像身體 |
slices(shape, cuts, shifts, { deg, g }) | 故障切片:按間隙 g 切成帶狀,每個帶狀沿切口滑動 |
BADGE, knockout(kind, letter), clearance() | 七種徽章形狀;居中鏤空的字母,如果距離邊緣小於 50 則縮小 |
PIX7, pixels(rows, p), checker(rows) | 粗體 8 位元字母表;一個像素字形合併為一個實體;任何僅角點接觸的部分 |
dsegs(segments, t, g) | 顯示段,帶有尖頭端點,由均勻間隙分開 |
SKEL, skelSolid(k, H, T) | 一個幾何無襯線字體作為中心線;使用方頭端點筆畫填充 |
tracks(pts, { n, pitch, w }), fillet(pts, r), balloon(pts, w0, w1) | 平行軌道;帶圓角的折線;氣球筆畫 |
filletClosed(pts, r), trackLoop(pts, { n, pitch, w }) | 每個角都經過圓角處理的封閉多邊形(允許每個角不同 r);圍繞封閉輪廓的三條軌道(動物用間距 42) |
walk(at, deg, steps) | 海龜路徑:['L', length] 和 ['A', turn°, radius] 步驟,精確半徑的弧(開放式軌道動物) |
seeded(str) | 種子化的 Math.random:為每個標誌設定,以便 robust() 的抖動和批次能夠逐位元組重新產生 |
svgShape(svgText), pathRings(d) | 將標誌的 SVG(或路徑資料)讀回形狀:曲線和弧線取樣,支援 evenodd 或 nonzero 孔洞 |
glitchMark(svgText, { kind, cuts, shift, deg }) | 現有標誌的故障版本(參見「故障版本」) |
U, D, I, X | 聯集、減集、交集、排除 |
rot(shape, deg, cx, cy), rotN(shape, n), move, scale, flipX | 變換;rotN 圍繞中心重複 |
polar(r, deg, cx, cy) | 以某個角度的一個點(0° = 右,90° = 下) |
segmentLines(lines, { t, box }), segments(nodes, strokes, o) | 分段字母:每個筆畫自己的分段,接合處沿角平分線分開 |
isoPieces(pieces, u) | 單位立方體零件,帶無縫面,僅在零件之間和摺痕處有間隙(Iso Lock) |
blocks(list, W, H), nest(W, H, n, sides, cut) | 由實心區塊拼貼而成的矩形,帶均勻間隙(Golden 和 Blocks);一個剝離細分 |
linkage(bars, pins) | 連接在一起的膠囊,每個覆蓋在前一個之上 |
write(file, shape), svg(shape) | 輸出 |
切割間隙 透過減去 bar()(或細的 annulus())且寬度等於間隙寬度。讓零件在護城河中浮動 透過減去其放大副本,然後加回零件(Hex Gem)。如果 polygon-clipping 拋出「Unable to complete output ring」,表示形狀共用一個精確邊緣:將其中一個移動 0.01。如果這還不夠,使用微小抖動(從 1e-4 到約 0.02 嘗試幾次)在輪廓和深度上重試整個建構,或者將面重繪為一個乾淨輪廓而非矩形的聯集。「Degenerate segment at [NaN, NaN]」表示折線有一個重複點:對其使用 dedupe()。套件輔助函式(stroke()、pill()、grown())也呼叫布林運算,因此你程式碼中的抖動無法影響它們:只需呼叫一次 robust(),它們內部的失敗會自行重試。
grow() 在批次 64 之前無任何作用:它簡化了每個重複其第一個點於結尾的環,導致環崩潰到該點,因此它只在那裡添加或移除一個圓。已修復;如果套件副本早於此版本,grow(rect(0, 0, 100, 100), -10) 會顯示問題。
**在兩種背景下以放大尺寸檢查。**小的淺底深色縮圖會誤導:開口可能看起來被填滿,或者細縫可能隱藏。在裁切或發送標誌之前,請在 400 像素、淺底深色的情況下渲染。
手寫路徑
對於簡單的標誌,你可以直接寫入路徑:
- 一個圓是兩個弧:
M cx-r cy a r r 0 1 0 2r 0 a r r 0 1 0 -2r 0 z。 - 一個環是同一條路徑中的兩個圓,帶有
fill-rule="evenodd"。內圓變成一個孔洞。 - 使用 evenodd 時,**重疊部分也會變成孔洞。**對於重疊的實體,要么在套件中合併它們,要么使用預設的 nonzero 規則,每個實體順時針繪製,每個孔洞逆時針繪製。
- 然後執行
fit.mjs。不要試圖手動達到 448,也不要裁切到畫布:如果繪圖的一部分位於 0-512 之外,fit.mjs會將其帶回。
審查檢查清單
刪除或重做任何未通過以下檢查的標誌:
- 一個想法,可以用一個不含「和」的句子描述。
- 在 32 像素下可讀:間隙不會閉合,沒有任何東西變成一團。沒有任何東西窄於 10 個單位。
- 全篇保持一種間隙寬度和一種筆畫粗細(或清晰的 1:2 比例)。保持該系列的間隙(獨立零件之間為 22 個單位):網站的 Gap、Weight 和 Soften 控制項會測量每個標誌的零件和間隙,並在它們均勻時效果最佳。唯一的例外是摺疊或重疊的 SEAM 為 11(Crease 和 Strap 標誌,位於「摺痕和繫帶」下),且僅在僅輪廓在 32 像素下可讀時適用。
- **絕不看起來像圖示。**這是標誌最常失敗的規則。問:它是否能舒適地放在一個圖示集(Material、Lucide、SF Symbols)中?如果是,無論畫得多好,都要刪除。一個 Logo 標誌是屬於一個品牌的抽象或風格化標誌,而不是事物或動作的象形圖。具體來說,不能是 UI 圖示:沒有箭頭、播放、主頁、齒輪、堅果、鈴鐺、鎖、下載、複製、聊天氣泡、地圖釘、Wi-Fi 弧線、圖表(也包括扇形圖)、圖像/山和太陽、「禁止進入」斜線、類似旋轉器的點環、包裹盒。日常物品的線條畫很容易滑入圖示領域:杯子、瓶子、眼鏡、獎盃、高帽、火箭、自行車和寶石都會被解讀為圖示。
- 不是意外形成的身體部位:注意重疊環之間的杏仁形和透鏡形。
- 不是具有意義的符號:沒有宗教、政治或神秘符號(六角星、五角星、十字架、新月星、三曲枝圖、鳥居、巴紋、任何方向的萬字元