☰
Bootstrap Icons 的 currency-bitcoin 图标全解析:SVG 结构、U+F635 码点与四种实战用法
2026/10/4 13:39:52 网站建设 项目流程
  • 前端

【免费下载链接】icons

Official open source SVG icon library for Bootstrap.

项目地址:https://gitcode.com/gh_mirrors/ic/icons
点击查看免费下载

导读

本文以 Bootstrap Icons 官方图标库(v1.13.1,MIT 协议)中currency-bitcoin(比特币符号 ₿)图标为研究对象,从 docs/content/icons/currency-bitcoin.md 这份每图标一页的文档骨架出发,结合 icons/currency-bitcoin.svg、font/bootstrap-icons.json、font/bootstrap-icons.scss 以及 Hugo 文档渲染模板等仓库源码,完整还原该图标从矢量路径、字体码点到嵌入页面的全链路实现。读完你将掌握:如何看懂一个 16×16 的 Bootstrap 图标源码、它的 Unicode/CSS/JS 码点换算方法,以及内嵌 SVG、<img>引用、SVG Sprite 与 Web 字体四种官方推荐的接入方式。

一、文档骨架:一个属于 Commerce 分类的加密货币图标

在 Bootstrap Icons 的文档仓库中,每一个图标都对应一个独立的 Markdown 页面,位于 docs/content/icons/ 目录下,页面文件名与图标名一一对应。currency-bitcoin的文档内容如下:

--- title: Currency bitcoin categories: - Commerce tags: - money - finance - crypto ---

这份文档是纯 Front Matter(前置元数据),没有正文,其作用是为 Hugo 站点提供图标的元信息:

  • title:图标展示名称Currency bitcoin,在页面中会作为面包屑与 H1 标题渲染;
  • categories(分类):Commerce(商业),用于在图标总览页做分类浏览与筛选;
  • tags(标签):money、finance、crypto,用于关键词检索——当用户在 docs/layouts/partials/icons.html 渲染的图标网格中搜索crypto、money或finance时,该图标会出现在结果中。

需要说明的是,这类"每图标一页"的 Markdown 并非手工逐一维护,而是由构建脚本自动生成的:在 package.json 中定义了"pages": "node build/build-pages.mjs",运行npm run pages会为 icons/ 目录下的每个 SVG 生成对应的模板页面,再人工补全分类与标签。因此本文讨论的"文档"本质上是一个由仓库构建流水线驱动的图标元数据条目。

二、源码级解剖:16×16 的 ₿ 是怎么画出来的

图标的本体是 icons/currency-bitcoin.svg,完整内容如下:

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-currency-bitcoin" viewBox="0 0 16 16"> <path d="M5.5 13v1.25c0 .138.112.25.25.25h1a.25.25 0 0 0 .25-.25V13h.5v1.25c0 .138.112.25.25.25h1a.25.25 0 0 0 .25-.25V13h.084c1.992 0 3.416-1.033 3.416-2.82 0-1.502-1.007-2.323-2.186-2.44v-.088c.97-.242 1.683-.974 1.683-2.19C11.997 3.93 10.847 3 9.092 3H9V1.75a.25.25 0 0 0-.25-.25h-1a.25.25 0 0 0-.25.25V3h-.573V1.75a.25.25 0 0 0-.25-.25H5.75a.25.25 0 0 0-.25.25V3l-1.998.011a.25.25 0 0 0-.25.25v.989c0 .137.11.25.248.25l.755-.005a.75.75 0 0 1 .745.75v5.505a.75.75 0 0 1-.75.75l-.748.011a.25.25 0 0 0-.25.25v1c0 .138.112.25.25.25z"/> </svg>

这段源码包含几层信息:

1. 画布与网格规格。width="16" height="16"与viewBox="0 0 16 16"说明图标绘制在 16×16 的逻辑坐标网格上。这并非偶然——README.md 明确说明新字形先在 Figma 中以 16×16 网格设计,再导出为扁平化的fill(非 stroke)SVG,这是全库 2000+ 图标统一的规范。

2. 命名与样式约定。class="bi bi-currency-bitcoin"是图标全局类名,fill="currentColor"是关键设计:图标不写死颜色,而是继承使用处文本的currentColor值,这正是 Bootstrap Icons 能随按钮、链接、导航等组件的文字颜色自动变色的底层机制。

3. 路径数据解读。从路径命令可以推断,这是一个典型的"₿"字形:

  • 中央竖线由M5.5 13v1.25...V13h.5v1.25...V13等片段构成,并在上下两端通过h1、a.25等命令扩张出水平横杠(币符的上横与下横);
  • 主体部分的h.084c1.992 0 3.416-1.033...段通过三次贝塞尔曲线c绘制出字母 B 的上半弧与下半弧;
  • 整体以z闭合路径,形成单一路径的扁平化轮廓。

由于采用纯path单路径而非多个形状叠加,该 SVG 体积极小(一行路径),非常适合内嵌进 HTML 或直接复制使用。

三、四种官方使用方式(README 用法 + 源码佐证)

README.md 的 Usage 章节给出了四种接入方式,下面逐一结合仓库源码说明currency-bitcoin的具体写法。

方式一:内嵌 SVG(复制 HTML)

把上面完整的<svg>直接粘贴进项目 HTML,是最简单、无依赖的方式。文档站点的 docs/layouts/icons/single.html 中,"Copy HTML" 区块就是通过readFile读取该 SVG 文件后原样展示给用户复制的,并同时演示了它的三种内嵌场景:

  • 作为标题前的图标:Heading、Smaller heading场景;
  • 混入行内文本:Inline text <svg.../>;
  • 放进按钮与链接:<button>、<a>内部使用。

由于fill="currentColor",同一段 SVG 放在不同颜色的按钮里会自动跟随文字颜色,无需额外改色。

方式二:通过<img>元素引用

将 SVG 保存为独立文件(文档站点提供"Download SVG"下载按钮,链接指向 icons/currency-bitcoin.svg),然后在页面中引用:

<img src="icons/currency-bitcoin.svg" alt="Bitcoin currency icon" width="16" height="16">

这种方式适合不需要改色、或希望浏览器缓存 SVG 文件的场景;但注意<img>方式无法继承currentColor,颜色由文件内固定属性或 CSS 滤镜决定。

方式三:使用 SVG Sprite

仓库根目录的 bootstrap-icons.svg 是一个聚合 Sprite 文件,其中包含currency-bitcoin的<symbol id="currency-bitcoin">定义。文档图标网格 docs/layouts/partials/icons.html 正是这样渲染每个图标的:

<svg class="bi" width="1em" height="1em" fill="currentColor"> <use xlink:href="../bootstrap-icons.svg#currency-bitcoin"/> </svg>

在你自己的项目中引用同一方式:

<svg class="bi" width="16" height="16" fill="currentColor"> <use xlink:href="bootstrap-icons.svg#currency-bitcoin"/> </svg>

Sprite 的优势是整库图标只发一个请求,且通过fill="currentColor"保持主题色一致。该 Sprite 文件由npm run icons构建流程中的svg-sprite --config svg-sprite.json步骤生成(见 package.json 与 svg-sprite.json)。

方式四:使用 Web 字体(CSS 类)

通过 npm 安装后引入字体样式:

npm i bootstrap-icons

然后按文档站点 "Icon font" 区块给出的写法使用:

<i class="bi bi-currency-bitcoin"></i>

字体实现位于 font/bootstrap-icons.scss:@font-face声明了名为bootstrap-icons的字体族,src 指向 font/fonts/ 目录下的.woff2与.woff两个格式;.bi::before, [class^="bi-"]::before, [class*=" bi-"]::before选择器负责把类名映射到对应字形。SCSS 中的映射表$bootstrap-icons-map里有该图标对应的码点条目,编译后的 font/bootstrap-icons.css 与压缩版 font/bootstrap-icons.min.css 可直接在 HTML 中<link>引入。字体方式还自带两处排版细节(见 SCSS 第 20–33 行):vertical-align: -.125em修正图标与文字的基线对齐,-webkit-font-smoothing: antialiased改善小尺寸渲染锯齿。

四、字体码点:U+F635 与四种转义写法

使用 Web 字体时,浏览器正是靠私有 Unicode 码点把bi类名映射到 ₿ 字形的。码点数据集中维护在 font/bootstrap-icons.json:

"currency-bitcoin": 63029

十进制63029换算为十六进制即0xF635(位于 Unicode 私有使用区 PUA,避免与正常字符冲突)。docs/layouts/icons/single.html 在渲染图标详情页时,用printf "%X"把该十进制值转成十六进制,并输出四种常见转义形式:

形式写法
UnicodeU+F635
CSS\f635
JavaScript\uF635
HTML&#xF635;

这四种写法分别适用于不同的使用场景:

  • CSS:如需在自定义伪元素中直接引用字形,可在样式里写content: "\f635";;
  • JavaScript:动态渲染图标时可用字符串"\uF635";
  • HTML:在原生 HTML 中可通过字符引用&#xF635;直接输出字形(前提是页面已加载bootstrap-icons字体)。

同时,font/bootstrap-icons.ts 中导出的BootstrapIconsId联合类型包含"currency-bitcoin"等全部图标名,为 TypeScript 项目中的图标名提供编译期类型提示,package.json也通过"types": "font/bootstrap-icons.ts"字段把该声明文件暴露给 npm 使用者。

五、颜色与尺寸的控制机制

由于 SVG 与字体的字形都基于fill="currentColor"与字体色渲染,currency-bitcoin的颜色和尺寸天然跟随上下文,不需要额外配置:

  • 跟随文字颜色:放在<a>、<button>或带color的容器内,图标自动使用该容器文字颜色;修改颜色只需改一处color属性。
  • 尺寸随字号缩放:Sprite 与内嵌 SVG 常写width="1em" height="1em",让图标大小与相邻文字的字号绑定;字体方式下图标本质是字符,天然继承font-size。
  • 字形对齐:字体方式已内置vertical-align: -.125em微调基线,内嵌 SVG 方式如需精细对齐可自行添加同样的规则。

这套机制让同一个图标可以在导航、支付表单、图表图例等场景中零成本复用,无需为每种配色准备一份 SVG。

六、文档站点如何渲染这一页(Hugo 链路)

currency-bitcoin详情页的最终 HTML 由 docs/layouts/icons/single.html 模板渲染,其工作流完整展示了这个图标在官方文档中的呈现逻辑:

  1. 元数据区:面包屑 + H1 标题来自 Front Matter 的title,Tags/Category 列表来自tags与categories;
  2. 大图预览:通过readFile "/icons/currency-bitcoin.svg"把 SVG 文件内容直接注入.icon-demo容器(font-size: 10em放大显示),并附带无障碍role="img"与aria-label;
  3. Examples 区:同一段 SVG 注入标题、行内文本、链接、三种 Bootstrap 按钮、按钮组、输入框前缀等 6 种真实场景;
  4. 下载与字体区:"Download SVG" 按钮指向 icons/currency-bitcoin.svg;"Icon font" 区块通过printf '<i class="bi bi-%s"></i>'生成bi类名示例;"Code point" 区块读取font/bootstrap-icons.json计算码点;"Copy HTML" 区块高亮展示内嵌 SVG 源码。

在图标总览页一侧,docs/layouts/partials/icons.html 遍历Type == "icons"的所有页面,把data-name、data-tags、data-categories写入列表项,供前端搜索框按名称/标签/分类即时过滤——这就是crypto、money标签能在文档站被检索到的原因。

本地预览整站可运行(详见 package.json 的脚本定义):

npm start # 等价于 npm run docs-serve,启动 Hugo 开发服务器 # 打开 http://localhost:4000 即可浏览

生产构建则使用npm run docs-build(即hugo --cleanDestinationDir --printUnusedTemplates)。

七、仓库内的一致性验证

currency-bitcoin在整个仓库中的出现位置是自洽的,可用于交叉验证实现完整性:

  • icons/currency-bitcoin.svg:图标唯一 SVG 源文件;
  • font/bootstrap-icons.json:记录码点63029(U+F635);
  • font/bootstrap-icons.scss / font/bootstrap-icons.css / font/bootstrap-icons.min.css:bi-currency-bitcoin类与\f635字形映射;
  • font/bootstrap-icons.ts:BootstrapIconsId类型中的图标名;
  • bootstrap-icons.svg:Sprite 中的#currency-bitcoinsymbol;
  • docs/content/icons/currency-bitcoin.md:文档站元数据(本文的主题骨架)。

此外,仓库测试脚本test:check-icons(node build/check-icons.mjs)会对图标目录做一致性校验(命名、SVG 规范等),全量npm test还会并行执行 ESLint、Stylelint、锁文件校验等检查,确保包括本图标在内的全部资源在每次改动后保持规范一致。整个项目遵循 MIT 协议发布(见 LICENSE),currency-bitcoin图标同样在此协议下可自由用于个人与商业项目。

综上,currency-bitcoin虽只是 2000+ 图标中的一员,但它完整承载了 Bootstrap Icons 的核心工程约定:16×16 扁平化单路径设计、currentColor主题色继承、分类标签驱动的文档检索体系,以及"SVG 源文件 → 字体/Sprite 产物 → Hugo 文档页"的三级构建链路。理解这一个图标,也就理解了整座图标库的接入与扩展方式。

  • 前端

【免费下载链接】icons

Official open source SVG icon library for Bootstrap.

项目地址:https://gitcode.com/gh_mirrors/ic/icons
点击查看免费下载
上一篇:A/B 测试失败其实是成功?Free AI Courses 实验解读高级技巧
下一篇:基于Lua脚本的罗技鼠标宏压枪解决方案:实现绝地求生精准射击的完整指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询