哪些图标库能和morphicons一起玩?Lucide、Tabler、Heroicons兼容性清单与fitIcon跨网格适配教程
哪些图标库能和morphicons一起玩Lucide、Tabler、Heroicons兼容性清单与fitIcon跨网格适配教程【免费下载链接】morphiconsAny icon morphs into any other — universal morphing for stroke-based icons with spring physics. Zero dependencies, ~7 KB gzip.项目地址: https://gitcode.com/gh_mirrors/mo/morphiconsmorphicons 是一个通用图标变形icon morphing库任意描边图标可以平滑变形为另一个图标自带弹簧物理效果、零运行时依赖、gzip 后约 7 KB。很多新手第一反应是——它支持哪些图标库本文给出一份 Lucide、Tabler、Heroicons、Carbon 等主流图标库的兼容性清单并手把手教你用fitIcon完成跨网格适配让你手里的任何描边图标集都能一起玩。兼容性清单速查表哪些图标库可以直接用判断标准很简单图标是否描边绘制stroke、几何是否以数据形式提供、是否画在24×24 网格上。满足三条即可开箱即用图标库网格能否直接变形备注 Lucide24×24✅ 直接可用官方示例主角数据格式即IconNodeTabler Icons24×24✅ 直接可用outline 版节点数据可直接消费Heroiconsoutline24×24✅ 直接可用仅描边版solid 版见下方Heroiconssolid20×20⚠️ 需fitIcon填充风格变形过程中读感不佳Iconoir24×24✅ 直接可用1.5px 描边Feather24×24✅ 直接可用官方 playground 已内置 8 个 Feather 图标Akar Icons / Untitled UI / Hugeicons24×24✅ 直接可用stroke 风格可用Carbon32×32⚠️ 需fitIcon(…, 32)跨网格典型代表Teenyicons15×15⚠️ 需fitIcon(…, 15)小网格同样适配shadcn registry 收录的 200 图标库视包而定✅ 传d字符串viewBox 不是 24 时补一次fitIcon❌ Material Symbols / Bootstrap Icons / Remix Icon / Phosphor 填充版—✖️ 不建议填充剪影无法按描边中心线读取一句话总结24×24 描边库直接连上其它网格的描边库用fitIcon重定网格一次即可填充风格图标暂不适合。为什么必须同网格理解 fitIcon 的必要性morphicons 的对齐算法2D Procrustes基于两个端点在同一坐标空间这一前提。如果拿 24 网格的 Lucide 箭头直接配 32 网格的 Carbon 图标缩放差会被算法误读为一次不想要的变焦σ ≈ 4/3目标图标会画出 24×24 画布之外。这不是猜测而是被测试钉死的结论详见 test/viewbox.test.ts未适配图标溢出画布、出现假缩放适配后θ ≈ 0、σ ≈ 1、残差 1e-9完全全等fitIcon 跨网格适配教程三步搞定第一步确认源图标的 viewBox打开图标库文档看viewBoxCarbon 是0 0 32 32Teenyicons 是0 0 15 15Heroicons solid 是0 0 20 20。第二步调用 fitIcon 重定到 24 网格fitIcon按 SVG 的xMidYMid meet规则缩放 居中保留宽高比返回一个普通d字符串可以在任何接受图标的地方使用。核心实现见 src/core/normalize.tsimport { fitIcon } from morphicons; const search fitIcon(carbonSearch, 32); // 32×32 → 24 网格 const bell fitIcon(teenySmallBell, 15); // 15×15 → 24 网格第二个参数三种写法都支持数字32、字符串0 0 32 32、数组[0, 0, 32, 32]见 test/viewbox.test.ts。第三步在模块作用域只算一次⚠️避坑关键fitIcon放在模块顶层调用不要放在每次渲染里——变形计划按引用缓存复用同一引用才能命中缓存。补充两点不传fitIcon也不会报错算法对相似变换不变但目标会溢出画布属于能跑但不对。React/Vue/Svelte 绑定默认viewBox0 0 24 24可通过 props 覆盖所以只要适配到 24 网格一切对齐。其它带进来的图标d 字符串与 svgToIcon除了图标包的数据导出morphicons 还接受两种输入裸d字符串——任何描边图标复制d属性即可这是最通用的万能接口shadcn registry 里 200 库的path d都能直接喂进来。svgToIcon适配器——Iconify 图标体、从网站复制的完整svg、shadcn 注册表的path一次调用即可转成可用输入且若带 viewBox 会自动调用 fitIcon 重定网格离格收藏开箱即用。解析细节见 src/adapters/svg.ts。import { svgToIcon } from morphicons/adapters; const MENU svgToIcon(menuSvgMarkup); // 解析一次复用引用注意它会主动拒绝无法诚实变形的输入纯填充图标、带transform的元素都会在解析期抛出清晰报错而不是渲染出鬼画符。新手高频问题清单Q1项目里已经在用 lucide-react要换吗不用。MorphIcon消费的是图标数据来自纯数据包lucide的IconNode不是lucide-react的组件。两个包按设计共存、都能树摇只需保持版本一致让变形的图标和静态渲染的图标对得上。Q2路径数据格式有要求吗节点列表只认 7 种描边图元path、line、circle、ellipse、rect、polyline、polygon不支持g包裹和transform坐标必须是字面量其它标签会抛出明确错误见 src/core/normalize.ts。Q3描边粗细不一致怎么办这是观感问题而非结构问题——统一的线宽、圆头端点让变形中途的形状更原生这些属性写在svg上由你的组件控制morphicons 不代管。Q4想本地亲眼看看跨库变形clone 仓库https://gitcode.com/gh_mirrors/mo/morphicons后运行 playground里面有 38 个真实图标Lucide、Feather、Tabler互相变形并实时显示每对的 θ/σ/残差读数bun install bun run play # → http://localhost:3000Feather/Tabler 数据由 playground/extract-vendor-icons.mjs 从 npm 包中真实提取生成到 playground/vendor-icons.ts。小结24×24 描边库Lucide、Tabler、Heroicons outline、Iconoir、Feather 等零配置直接变。其它网格的描边库Carbon 32、Teenyicons 15、Heroicons solid 20fitIcon(icon, viewBox)在模块作用域适配一次即可。任意来源d字符串或svgToIcon都能接住填充风格图标请先换描边版。只要图标是描边中心线 数据可得morphicons 就能让它和任意其它图标互相变形——图标库的边界就是 24 网格 fitIcon的边界。【免费下载链接】morphiconsAny icon morphs into any other — universal morphing for stroke-based icons with spring physics. Zero dependencies, ~7 KB gzip.项目地址: https://gitcode.com/gh_mirrors/mo/morphicons创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

【AODV仿真】AODV临时WSN定制网络层并配合仿真【含Matlab源码 15996期】

【AODV仿真】AODV临时WSN定制网络层并配合仿真【含Matlab源码 15996期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…

2026/10/1 16:14:36 阅读更多 →
DQN 出主意、MPC 踩油门:混合规划把最坏求解耗时砍掉 56%

DQN 出主意、MPC 踩油门:混合规划把最坏求解耗时砍掉 56%

DQN 出主意、MPC 踩油门:混合规划把最坏求解耗时砍掉 56%原文:Collision-Free Trajectory Planning of Mobile Robots by Integrating Deep Reinforcement Learning and Model Predictive Control 作者:Ze Zhang、Yao Cai、Kristian Ceder、A…

2026/10/1 16:14:36 阅读更多 →
关键字段OCR抽取实战:用 Python 完成文档信息抽取 + 自定义OCR模板 + 字段名/值/置信度/坐标框解析

关键字段OCR抽取实战:用 Python 完成文档信息抽取 + 自定义OCR模板 + 字段名/值/置信度/坐标框解析

背景做档案系统、数据中台、企业文档管理的同学,大概率被业务方提过这个需求:把一批扫描件、拍照单据、PDF文档丢进去,自动把合同编号、运单号、收发件人、项目编号这些字段抽出来,直接写进业务库。这件事听起来就是"调个OCR…

2026/10/1 16:14:36 阅读更多 →

最新新闻

MCP实战:用AI构建Excel自动化处理服务

MCP实战:用AI构建Excel自动化处理服务

每天跟Excel打交道的朋友应该都有这种体会:处理报表本身不是最费时间的,费时间的是那些重复性的操作——打开表格、定位列、写公式、复制粘贴、再生成新表。尤其是当数据源有变动、格式不统一的时候,整个人都会烦躁起来。 我最近用MCP&#…

2026/10/1 19:00:57 阅读更多 →
SSM+JSP文化遗产管理系统实战:毕业设计稳过方案

SSM+JSP文化遗产管理系统实战:毕业设计稳过方案

简介:本资源是一套基于SSM(SpringSpringMVCMyBatis)框架与JSP技术实现的文化遗产数字化管理系统的完整毕业设计项目,面向计算机、数学、电子信息等专业的本科生,适用于课程设计、期末大作业及毕业论文实践,…

2026/10/1 19:00:57 阅读更多 →
游戏更新后闪退卡死掉帧?三层排查法与系统级优化实战指南

游戏更新后闪退卡死掉帧?三层排查法与系统级优化实战指南

1. 问题定位:先搞清楚是哪种“卡” 9月22号那波更新之后,社区里炸了锅。我自己的机器、帮朋友远程调的几台、还有群里反馈的案例,加起来少说也有二十来台,症状基本能归成三类: 开局加载到一半直接闪退 、 进游戏后画…

2026/10/1 19:00:57 阅读更多 →
AI桌面工作区实战:文档、表格、智能体与工作流的一体化架构

AI桌面工作区实战:文档、表格、智能体与工作流的一体化架构

1. 为什么要把文档、表格、智能体和流程塞进同一个桌面窗口我最早接触“AI 桌面工作区”这个概念,是因为自己每天的工作流实在太碎了。写方案要开文档工具,整理数据要开表格工具,跑自动化要开浏览器或者命令行,调用模型又得切到另…

2026/10/1 19:00:57 阅读更多 →
UEditor下载安装与配置实操:从零到可用完整指南

UEditor下载安装与配置实操:从零到可用完整指南

这段时间因为要维护一个老项目,我把UEditor的下载和安装整个流程重新过了一遍。说实话,这个编辑器虽然年纪不小了,但在很多企业内部系统、CMS后台里依然是主力,网上能找到的教程又零散又过时,真正能把“下载—安装—调…

2026/10/1 19:00:57 阅读更多 →
12G显存硬扛256K上下文:KV缓存卸载到内存的工程实践

12G显存硬扛256K上下文:KV缓存卸载到内存的工程实践

1. 12G 显存硬扛 256K 上下文,这事到底卡在哪先把结论摆在前面:12G 显存想跑 256K 上下文,靠的不是什么黑科技,而是把KV 缓存从显存里"请"出去,挪到内存里。这个思路听起来简单,但真正动手的时候…

2026/10/1 18:59:56 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →