Menu
广告

SVG 不规则形状生成器

生成平滑、随机的有机 SVG 形状。可复制 SVG 或 CSS clip-path。

作者 Nethanel Bar, Co-founder & CEO

最后更新

广告

准备好真正学会编程了吗?

Coddy 让你在浏览器里编写真实代码来学习:互动课程、即时反馈,卡住时还有 AI 帮忙。

SVG blob 生成器是什么?

SVG blob 生成器会在圆周上取若干个点,再用平滑的贝塞尔曲线把它们连起来,生成闭合的有机形状。结果是一个柔和、流动的轮廓,也就是你在营销页首屏背后、头像周围或者落地页上常见的那种彩色背景图形。

Blob 恰好介于几何与随机之间。调整点数,可以得到软糖形(3 至 4 个点)、鹅卵石形(5 至 6 个点)或杂乱的形状(10 个以上)。调整随机度滑块,可以从接近圆形一直变到夸张扭曲。随时点击骰子按钮,就能生成一个全新的种子。

一切都在你的浏览器中运行。可以导出为可复制粘贴的 SVG 代码片段、可下载的 .svg 文件,或者一个 CSS clip-path 值,直接应用到任意 HTML 元素上,把它裁剪成这个形状。

制作 blob 时你会学到

  • 三次贝塞尔曲线让形状变得平滑:每对相邻的点都有两个控制柄,经过计算让每个连接处的切线保持连续。
  • 这里用到的 Catmull-Rom 样条会根据相邻点自动推算出这些控制柄,所以你不必手动调整控制点来保持曲线平滑。
  • CSS 的 clip-path: path(...) 可以把 blob 形状应用到任意元素上,比如图片、div、视频,而且不影响它的布局盒子。
  • 用 SVG 渲染的形状可以无限缩放而不出现像素化,这一点和 PNG 不同,而且只有几百字节大小。

生成 blob 的步骤

  1. 选择点数

    点数少(3 至 5 个)会生成软糖形状。点数多(8 至 12 个)会生成鹅卵石般的不规则形状。

  2. 设置随机度

    0% 是一个圆。50% 会得到柔和的不规则曲线。100% 会得到夸张扭曲、极具张力的轮廓。

  3. 选择颜色或渐变

    使用纯色填充,或者开启“渐变”,选择两种颜色和一个角度。和常见的首屏设计风格很搭。

  4. 随机生成并导出

    点击骰子生成新的种子。满意之后,复制 SVG、复制 CSS clip-path,或者下载 .svg 文件。

blob 最适合用在哪里

blob 的几种常见用法,以及需要注意的地方。

使用场景用法注意事项
首屏背景嵌入 SVG,用绝对定位放在内容后面保持对比度,blob 上方的文字颜色要清晰可读
图片遮罩给 <img> 应用 CSS clip-path: path('…')图片源文件仍会被下载,裁剪只是视觉效果
头像形状把头像包在一个带 clip-path 的 div 里如果圆形就够用,只用 border-radius 即可,clip-path 的重绘开销更大
区块分隔把一个宽 blob 拉伸铺在区块底部给 viewBox 设置 preserveAspectRatio,让形状在宽屏上也保持正确
装饰点缀放几个大小不一的半透明 blob动画要适度,大面积路径反复重绘很耗 CPU
品牌插画把 blob 和上方的文字或图标组合在一起选定一种统一的形状风格,品牌形象才能保持一致

可以试试的 blob 示例

在首屏区域放一个 blob

HTML
<section class="hero">  <svg class="blob" viewBox="0 0 400 400" aria-hidden="true">    <path d="M 280 110 C 320 150 340 220 300 280 C 260 330 180 340 130 300 C 80 260 70 180 110 130 C 150 80 240 70 280 110 Z"          fill="#7fb2ff"/>  </svg>  <h1>Welcome to Coddy</h1></section>
CSS
.hero { position: relative; }.hero .blob { position: absolute; inset: 0; width: 60%; opacity: 0.4; z-index: 0; }.hero h1 { position: relative; z-index: 1; }

一个绝对定位的 SVG 放在标题后面。降低不透明度,上面的文字不用 backdrop-filter 也能保持清晰可读。

把图片裁剪成 blob 形状

CSS
.avatar {  width: 240px;  height: 240px;  object-fit: cover;  clip-path: path('M 280 110 C 320 150 340 220 300 280 C 260 330 180 340 130 300 C 80 260 70 180 110 130 C 150 80 240 70 280 110 Z');}

所有现代浏览器都支持 clip-path。这里的路径坐标基于 400×400 的 viewBox,把图片缩放到这个尺寸,裁剪才能精确对齐。

用两个柔和的 blob 做装饰背景

HTML
<div class="backdrop">  <svg class="blob blob-a" viewBox="0 0 400 400">…</svg>  <svg class="blob blob-b" viewBox="0 0 400 400">…</svg></div>
CSS
.backdrop .blob { position: absolute; opacity: 0.5; filter: blur(60px); }.blob-a { top: -10%; left: -10%; width: 50%; }.blob-b { bottom: -10%; right: -10%; width: 60%; }

叠加几个模糊的 blob,能营造出柔和的“极光”效果。用负偏移把它们放到可见区域之外,只让圆润的边缘露出来。

使用 SVG blob 的常见错误

  • 忘了写 viewBox,却给 <svg> 设置了固定的宽高。这样形状无法响应式缩放,应该用 viewBox 配合 CSS 中的宽高。
  • 每一帧都对大面积填充路径做动画。路径光栅化开销很大,要么用 transform/opacity,要么用 CSS 滤镜预先模糊,交给 GPU 处理。
  • 把内联 <svg> 复制到 Tailwind/Bootstrap 里,结果继承了 display: inline 而不是 block。默认的基线间隙会在形状下方留出几个像素。
  • 把 blob 用作按钮形状,却忘了鼠标事件仍然在矩形包围盒上触发,而不是在曲线轮廓上。如果需要精确的点击检测,就在里面放一个真正的 <button>。
  • 在移动端叠加很多高模糊度的不透明 blob。合计的重绘开销会让低端设备的帧率明显下降。

SVG blob 生成器常见问题

设计中的 blob 是什么?

Blob 是一种由平滑曲线构成的、不对称的有机闭合形状。它在现代网页设计中很流行,比如首屏背景、徽章、头像遮罩,因为它比圆形更有亲和力,又比手绘形状更精致。

生成的 SVG 可以免费商用吗?

可以。输出的只是你自己生成的 SVG 代码,没有附带任何许可协议,也不需要署名。商业网站、应用、演示文稿,哪里都能用。

复制之后还能编辑路径吗?
可以。输出的是标准的 SVG <path d="…">。用 Figma、Illustrator、Inkscape 或任意矢量编辑器打开,就能调整控制点。或者直接在这里重新生成,复制一个新形状。
CSS clip-path 输出怎么用?
给任意 HTML 元素应用 clip-path: path('M … Z')。路径坐标和 SVG viewBox 处在同一个坐标空间(这里默认 400×400),所以要把被裁剪的元素设置成这个尺寸,裁剪才能对齐,或者按比例缩放路径坐标。
Math.random 每次访问都会生成同样的形状吗?

不会,但这个工具使用的是带种子的伪随机数生成器。同一个种子总是生成同一个形状,所以你可以一直点“随机生成”直到找到喜欢的形状,SVG 输出会永远保持这个形状。

blob 会拖慢我的页面吗?

单个静态 SVG blob 几乎没有开销。多个带模糊滤镜的动画 blob 在移动端可能开销较大,用 DevTools 做性能分析,并优先使用 transform/opacity 动画,而不是路径属性动画。

了解更多

其他开发者工具

Coddy 编程语言插图

和 Coddy 一起学编程

开始