Community图像github.com

Logomarks/几何标志设计

设计新的几何标志(符号、字母组合和交织字母),生成符合 logomarks.ai 免费 Logomarks 集标准(512 网格、精确适配、构造工具包、规范检查与审美品味)的纯色 SVG。用于设计新的几何标志、绘制或迭代标志符号、品牌符号、字母组合或交织字母,检查 SVG 标志是否符合规范,或编辑、混搭现有 Logomarks。

几何标志设计 是什么?

这是一个用于设计和生成高质量几何标志的 AI 技能,基于 David Sherlock 创作的免费 Logomarks 集合(logomarks.ai,CC0 公共领域)。该技能的核心是遵循一套严格的设计标准:所有标志必须使用 512x512 的 viewBox,最长边精确为 448 像素并居中,仅使用纯色填充路径(currentColor),无描边、变换或样式。它提供了一个完整的 JavaScript 构造工具包(scripts/kit.mjs),包含形状生成、布尔运算、等距投影、像素艺术等功能,使得构建复杂几何图形变得系统化和可重复。该技能适用于多个 AI 编程平台(如 Claude Code、Cursor、Codex 等),通过 CLI 和文件交互工作。它的主要价值在于:1) 确保设计的标志符合统一标准,可用于实际品牌;2) 提供可复用的脚本化设计流程,加速迭代;3) 支持对现有标志进行检视、编辑和混搭。使用时,用户需要先阅读设计简报,选择一种设计家族(如负空间、瑞士网格、等距立方体等),用 kit 构建脚本生成 SVG,然后通过 fit.mjs 脚本自动适配和检查,最后根据长长的审查清单进行人工审核。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Logomarks/skills/tree/HEAD/skills/logomarks

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

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Logomarks

David Sherlock 创作的 3,797 个免费几何标志(logomarks),均按统一标准绘制: **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 或反向绕行),绝不能使用背景色绘制的形状。

  • 坐标保留一位小数。

工作流程

  1. 阅读简报。 名称、业务内容、感觉(平静、技术感、有趣、高端)以及标志将出现的位置(应用图标、favicon、标识牌)。小尺寸使用倾向于粗体且部件少的标志。
  2. 选择一个家族(见下方)。不要在一个标志中混合多个家族。
  3. 写出 4–6 个单行创意。 每个必须是一个创意:“一个被 S 形通道分隔的圆盘”,而不是“一个带 S 形、圆点和射线的圆盘”。字母组合使用名称的首字母。
  4. 使用工具包构建最佳 2–3 个创意:一个简短的脚本,将基本几何体与布尔运算结合,并调用 write()。仅对手写路径数据非常简单的标志(见“手写路径”)。
  5. 适配:运行 node scripts/fit.mjs out/ 将所有标志缩放至标准尺寸。
  6. 根据检查清单评审。 查看每个标志的渲染效果,分别在 32 像素和 512 像素下。剔除任何不符合要求的标志,并对幸存者进行迭代。
  7. 交付每个标志,附带一个简短、独特的名称(一个或两个单词,例如“Cube Window”、“Moonrise”)、其单行创意和 SVG。

该集合偏好的风格

根据所有者的评审:粗体实体标志,带有一个负空间创意和厚实且均匀的间隙;等距实体和立方体;由一个重复元素构建的复杂标志;极简点阵和像素标志;可爱的陶瓷小雕像动物。最重要的是,任何看起来像现代科技、AI 或科技服饰品牌的东西:精确、工程化、略带未来感。交织的环带、模块化瓷砖(最爱)、单线和多线绘画、倒角和斜切、精确的环形和轨道、网格系统、模板字母和实用字母、故障切片、交织字母。但绝不能是 UI、网络、芯片或电路图标、神经网络节点图、大脑,或任何接近已知 AI 标志的东西(六边形结、星号、四角星形)。

家族

集合中的每个标志都属于一个家族。一旦你选择了一个(工作流程的第 2 步),请在构建前阅读 references/families.md 中的相关章节:其构造方式、在 512 画布上的数字,以及尝试过并排除的内容。本文件中以引号命名的章节(“Iso solids”、“Glitch editions”)也在那里。

家族:Bold negative space;Swiss grid;Stencil letters;Monograms;Serif letters and monograms (batch 230);Letter badges;Woven;Iso cubes;Iso solids;Overlaps (XOR);Line (monoline);Multiline (tracks);Oblique;Dot grids;Animals;Animals in the house styles;Leaf and seed;Halftone solids;Dither taper (batches 167, 186);Detailed;Inflated;Glitch slices;Shear and Wire letters (batches 112–113);Inline letters (batch 124);Rail and Trace letters (batch 166);Echo letters (batch 202);Tech brand marks (batch 213);Modular;Orbits;Letter symbols, symbols, hidden creatures and forms (batch 168);Techwear (batch 107);Industry marks (batches 95–97);Tried and dropped (batch 51);Folded (origami);Fold seams and straps (batch 170);Iso · Planes (batch 215);Bold · Emblems (batch 216);Bold · Y2K (batch 232);Letters · Blackletter and Bold · Shatter (batch 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等距实体(见“Iso solids”)
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 或非零孔洞得到尊重
glitchMark(svgText, { kind, cuts, shift, deg })现有标志的故障版本(见“Glitch editions”)
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 and the 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() 即可,其内部的失败会自行重试。

批次 64 之前的 grow() 无效:它用最后一个重复的第一个点简化每个环,从而将环折叠到该点,因此它只在那里添加或删除一个圆。已修复;如果你的工具包副本早于此版本,则 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 时,重叠部分也会变成孔洞。 对于重叠实体,要么在工具包中合并它们,要么使用默认的非零规则,每个实体顺时针绘制,每个孔洞逆时针绘制。
  • 然后运行 fit.mjs。不要试图手动达到 448,也不要裁剪到画布:如果部分绘图位于 0–512 之外,fit.mjs 会将其重新纳入。

检查清单

剔除或重做任何不符合以下条件的标志:

  • 一个创意,可以用一个不带“和”的句子描述。
  • 在 32 像素处可读:间隙不闭合,任何部分不模糊。没有宽度小于 10 单位的元素。
  • 整个标志使用一种间隙宽度和一种描边重量(或清晰的 1:2 比例)。保持集合的间隙(独立部件之间为 22 单位):网站的 Gap、Weight 和 Soften 控件测量每个标志的部件和间隙,当它们均匀时效果最佳。唯一的例外是褶皱或重叠的 SEAM 为 11(折痕和条带标志,见“Fold seams and straps”),并且仅当轮廓本身在 32 像素处可读时。
  • 绝不读作图标。 这是大多数标志失败的原因。问:它是否适合放在图标集(Material、Lucide、SF Symbols)中?如果是,无论绘制得多好,都要剔除。标志是属于一个品牌的抽象或风格化符号,而不是事物或动作的象形图。具体来说,不是 UI 图标:没有箭头、播放、主页、齿轮、螺母、铃铛、锁、下载、复制、聊天气泡、地图图钉、Wi-Fi 弧线、图表(也包括饼图扇区)、图像/山峰和太阳、“禁止进入”斜线、类似旋转器的点环、包装盒。日常物品的线条图很快会滑入图标范畴:杯子、瓶子、眼镜、奖杯、高礼帽、火箭、自行车和宝石都被解读为图标。
  • 不意外地看起来像身体部位:注意重叠环之间的杏仁形和透镜形。
  • 不是具有意义的符号:没有宗教、政治或神秘符号(六芒星、五芒星、十字架、新月星、三曲枝、鸟居、巴纹、任何方向的卍字符)、旗帜或危险标志(生物危害、辐射)。
  • 不是著名的标志形状,例如围绕一个点的三个轨道会被认为与 React 的原子相似。
  • 不是复制品,既不是已知品牌标志的复制,也不是独立的通用库存形状(单纯的圆形、六边形、星形、漩涡形或地球形)。
  • 不是近似重复品,既不是同一批次中其他标志的近似重复,也不是现有 Logomarks 的重复(检查 marks.json)。现有标志的旋转或镜像被视为重复。名称必须唯一。

…

[已截断以供翻译]

相关技能