Communitygithub.com

licher255/svg-techo

使用内置的 JavaScript 生成器创建程序化 SVG 纹理、几何叠加层、图像蒙版、ASCII 图形以及用于网站和视频的 WebGL 拖尾或火焰特效。选择、调用和扩展可重用代码,并使用可复现的参数。

svg-techo 是什么?

此技能提供了一个完整的程序化图形生成工具包,专为需要创建可复现视觉资产的开发者设计。其核心是一组 JavaScript 模块,位于 `assets/lib/` 目录下,涵盖从几何纹理、点阵图案到 WebGL 粒子效果等多种图形输出。该工具包支持 Node.js 环境和浏览器环境,并提供 CLI、自检脚本和浏览器检测工具。开发者可通过修改生成器参数或扩展现有模块来定制输出,且所有生成过程均为确定性的,种子参数可确保跨帧或跨项目复现。它还提供了与 React、Three.js 和 Remotion 等框架集成的指导,使其成为设计系统开发、视频生成和交互式应用的理想选择。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/licher255/svg-techo/tree/HEAD

在你喜欢的 AI 中提问

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

文档

svg-techo 是做什么的?

使用 assets/lib/ 中的可复用 JavaScript 模块。通过生成器参数更改外观。当任务需要新行为时,扩展相应的模块,然后验证其正常入口点。

入口点

  • assets/lib/index.mjs 导出 materialKinds、svgKinds、referencePresets、renderSvg(kind, options) 和 createLightRenderer(canvas, options)。
  • assets/lib/index.d.mts 提供 TypeScript 声明。
  • scripts/render-svg.mjs 是 Node CLI。
  • scripts/self-test.mjs 检查几何形状、输入边界、确定性、循环和 RGBA 输入。
  • scripts/browser-check.html 检查 SVG 解码、WebGL、Alpha、相位和释放。

这些路径是相对于本 SKILL.md 的。在导入之前,将完整的 assets/lib/ 目录复制到目标项目的版本控制源代码中,并保持内部模块导入不变。

工作流程

  1. 确定资源的用途、尺寸、调色板、动画和透明度要求。在选择颜色之前,阅读项目现有的设计 Token。
  2. 阅读 API 参考。复制 referencePresets[kind] 并编辑生成器的嵌套 options[kind] 配置。确认半径、间距、数量和笔画宽度的含义。
  3. 对于网站或营销视频,阅读相关 集成指南 部分。将参数和种子与项目一起保留,以便后续版本可以复现该资源。
  4. 执行代码并检查实际输出。检查 SVG 尺寸、透明度和裁剪。检查 WebGL 编译、渲染和清理。检查目标工作流中的视频帧数、循环过渡和 Alpha。
  5. 提供所请求的代码、调用示例、配置和输出文件。记录实际使用的参数。

模块

模块职责
geometry.mjs分发到 geometry-a、geometry-b 和点阵
dot-matrix.mjs点尺寸、边缘间隙、形状和布局
fields.mjs分发到 fields-audited 以处理轮廓、半色调、ASCII 和像素代码
light.mjs具有显式相位的 WebGL 拖尾和火焰渲染
common.mjs共享验证、种子随机性、相位归一化、XML 转义

扩展规则

  • 保持 SVG 生成器的纯函数性和确定性。静态生成器保持静态,除非调用者更改其特定参数。启用运动的 WebGL 和轮廓接受相位参数。
  • 保持种子在视频帧之间固定。从帧号推导动画参数。
  • 在添加种类或参数时,更新导出、声明、参数文档和相关检查。
  • 在适配到 React、Three.js 或 Remotion 时重用该库。
  • 点阵使用 dotMatrix.dotSize、spacing、layout 和 range。其默认直径为 8,边缘间隙为 24。密度由间距或行/列数决定。
  • 在预期背景上检查透明图形。在目标编辑器中验证解码后的视频 Alpha。
  • 使用业务数据和标准编码器生成机器可读的条形码。

示例任务

  • 生成品牌色轮廓 SVG 并保留其参数。
  • 根据 Remotion 帧号动画化 hudLines.rotation。
  • 使用产品图像 RGBA 作为半色调 Alpha 蒙版或 ASCII 输入。
  • 调整光渲染器的方向和能量参数以创建循环叠加层。

相关技能