落梅听风雪,隔窗枕雨眠

印谱

shuimo-core 的 stamp-v2 印章 gallery。三十二枚按 v2 重刻一文的脉络分作六区:读排、读阴阳、读形、读多边、读环、读磨损。每枚下方一行小字注明该枚与同区兄弟枚的差异维度。

回拙作

视口内才渲染,所以滚动时请稍候片刻 SVG 才会落下来;同样的配置二次进入视口直接走缓存。

一 · 文字布局

v2 的文字排版完全由 text 字符串本身决定:逗号切列,一列内的字数即该列行数,列顺序按传统篆刻规约从右往左读。下面五枚展示最常见的几种行 × 列组合,shape: 'auto' 让外框自动按字数比例推方/长。

单字 1×1
2行1列 竖排单列
2行2列 方寸印
3行2列 双列三字
3行3列 九字格

二 · 阴阳两面

阳章(白底红字)是 v1 时代的默认;阴章(红底白字)在 v2 里成了一阶 API。两层 yin 渲染让磨损的边框依然能正确 clipPath——朱砂只在文字处留白,不漏边框之外。

小篆 · 阳
小篆 · 阴
九叠篆 · 阳
九叠篆 · 阴
金文 · 阳
金文 · 阴

三 · 形状六法

SealShape 是个 discriminated union,kind 字段切换形状:auto(按字数推断方/长)、squarerectcircleellipserectellipse 还接 aspect 参数自定义长宽比——v1 时代的 1:0.6 固定比例从此放开。

auto · 字数自适应
square · 正方
rect · 1:0.6
rect · aspect 1.8
circle · 圆印
ellipse · 8:5

四 · 多边形墙

shape: { kind: 'polygon', sides: 3..12 } 是 v2 才有的能力。orientation 区分平顶(蜂窝六边形)与尖顶(雪花六边形)。

注:博客文章里不会用多边形印章——传统篆刻没有这些造型,跟水墨审美冲突。此节纯为展示 shuimo-core 的 v2 形状能力,不入选博文配印。

三角 · 尖顶
四角 · 菱形
五角 · 尖顶
六角 · 平顶
六角 · 尖顶
七角
八角 · 平顶
十二角

五 · 环排官印

layout.direction = 'circular' 是 v2 新加的环排布局——文字沿圆周绕一圈,是国之玺印 / 官印的标准排法。竖排(v1 / v2 默认)适合 2-8 字方寸印;环排适合稍长字数 + 圆形/椭圆边框。

这一节走的不是 theme 的 <ShuimoStamp> wrapper,而是 StampCard 直接调 generateSealAsync——因为 wrapper 没暴露 layout.direction。Gallery 这页的存在意义之一就是把这种"被 wrapper 藏起来的能力"亮出来。

4 字 · 环排稀疏
7 字 · 环排适中
12 字 · 环排密集

六 · 边框磨损

border.erosion.roughness 一个参数同时控制两层磨损:第一层是边框顶点沿法线向内的 Simplex 噪声扰动(连续波纹),第二层是若干个伪随机三角的布尔减法(突变缺口)。roughness 越大波纹越深、缺口越多。

roughness 0 · 全新
roughness 0.3 · 微磨
roughness 0.6 · 久用
roughness 1.0 · 残印

后记 · 一墙不撞印

三十二枚印章同页渲染,没有一对的 SVG <filter> ID 串号——靠的是 v2 在 (seed, text, shape, mode, size) 上的 idPrefix 哈希命名空间,与本页 StampCard 注入前对 filter ID 再加一层 per-instance UID 后缀。两层兜底,比 v1 的"两枚印章可能撞 ID 把彼此染成同色"踏实得多。

延伸阅读:《印之又印:stamp-v2 的重刻记》——这一页里所有能力的"为什么"都在那篇文章里。

归去来兮 ←