- 前端
【免费下载链接】icons
Official open source SVG icon library for Bootstrap.
Bootstrap Icons 官方开源 SVG 图标库(当前仓库版本 1.13.1,位于gh_mirrors/ic/icons)为每一位图标都提供了独立的文档页面与配套源码。本文以Badge 4K图标为线索,完整拆解其文档元数据(docs/content/icons/badge-4k.md)、两种 SVG 形态(描边版与填充版)的路径源码,以及它们如何被编译进字体、雪碧图与各类代码点引用,并给出可直接复制的使用示例。
一、Badge 4K 图标是什么
Badge 4K 是 Bootstrap Icons 中 "Badges"(徽章)分类下的一枚图标,专用于表示4K 超高清分辨率 / 高清显示规格这一语义场景。它在图标文档页(即本文所基于的关联文档)中以元数据形式被定义:
- title:
Badge 4k - categories:
Badges(图标分类,用于文档站的分组导航) - tags:
4k、display、resolution、retina(用于站内搜索与检索标签)
从标签(tags)可以看出,该图标面向的典型使用场景包括:显示器与电视的 4K 分辨率标识、视网膜(Retina)屏相关的清晰度宣传、以及任何需要表达"高清显示规格"的界面元素。仓库中除badge-4k.svg(描边版)外,还提供了badge-4k-fill.svg(填充版),两者共用同一套元数据文档体系。
二、SVG 源码解读:填充版与描边版的路径差异
Badge 4K 的 SVG 源文件位于 icons/badge-4k.svg 与 icons/badge-4k-fill.svg。两个文件都遵循 Bootstrap Icons 的标准规范:viewBox="0 0 16 16"、16×16 网格、fill="currentColor"(颜色随继承的 CSScolor变化)、类名分别为bi bi-badge-4k与bi bi-badge-4k-fill。
描边版(badge-4k.svg)的绘制思路
文件包含两条 path:
- 第一条 path 负责"4"与"K"两个字符的字形:
M4.807 5.001C4.021 6.298 ...,其中4的绘制使用了三次贝塞尔曲线(C指令)过渡,右侧的K则由直线与曲线组合而成;路径中还包含一行a47 47 0 0 1 1.766-3.001的弧线用于补全笔画细节。 - 第二条 path 负责圆角徽章的背景边框:先绘制圆角矩形外框(
M14 3a1 1 0 0 1 1 1v8...),再通过M2 2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2z挖出内部空白,形成"描边式"徽章轮廓。
填充版(badge-4k-fill.svg)的差异
填充版只有两条 path:
- 第一条 path 是"4"的局部笔画(
M3.577 8.9v.03h1.828V5.898h-.062...),单独绘制4字的一撇; - 第二条 path 将徽章背景与其余文字合并为一个整体实心图形:
M2 2a2 2 0 0 0-2 2v8...直接以圆角矩形作为实心底面,文字字形在内部以镂空方式呈现,形成视觉上"实心徽章 + 白色文字"的效果。
两种形态的差异正是 Bootstrap Icons 中-fill后缀图标的一贯设计惯例:描边版适合浅色/细线条场景,填充版在按钮、徽标、彩色背景上对比度更高。选择哪种形态取决于你的界面视觉风格。
三、文档元数据如何驱动图标文档站
docs/content/icons/badge-4k.md本身并不包含正文,而是以 Hugo 前端元数据(front matter)形式为图标文档页提供标题、分类与标签。这些字段在文档站模板中被消费,例如 docs/layouts/icons/single.html:
- 第 20 行通过
.Title输出页面 H1 标题; - 第 22-27 行通过
.Params.tags与.Params.categories输出"Tags"与"Category"列表; - 第 36-38 行根据
.File.TranslationBaseName(即文件名badge-4k)拼接 SVG 路径并读取对应图标文件,用于大图预览、示例区和下载链接。
也就是说,badge-4k.md的存在使得文档站能够自动为这枚图标生成"预览 + 示例 + 下载"的完整页面,同时让搜索功能可以按4k、display、resolution、retina等标签命中它。如果你想新增一枚图标,只需同时提交icons/<name>.svg与docs/content/icons/<name>.md(含 title/categories/tags 元数据),构建流程即可自动完成页面生成。
四、字体化:类名、CSS 内容与代码点
Bootstrap Icons 会把全部图标编译为 icon font(字体文件)。npm run icons-font(见 package.json)会基于icons/*.svg通过@twbs/fantasticon生成字体,并产出font/bootstrap-icons.css、font/bootstrap-icons.min.css、font/bootstrap-icons.ts与font/bootstrap-icons.json。
Badge 4K 在字体体系中的对应关系如下(均可在仓库中验证):
| 图标 | CSS 类名 | 字体内容(content) | Unicode 代码点(十进制→十六进制) |
|---|---|---|---|
| Badge 4K(描边) | .bi-badge-4k | \f15d | U+F15D(61789) |
| Badge 4K(填充) | .bi-badge-4k-fill | \f15c | U+F15C(61788) |
代码点依据见 font/bootstrap-icons.json(第 94-95 行:"badge-4k-fill": 61788, "badge-4k": 61789),CSS 内容依据见 font/bootstrap-icons.css(第 121-122 行:.bi-badge-4k-fill::before { content: "\f15c"; }与.bi-badge-4k::before { content: "\f15d"; })。
五、使用方式:从 CSS 类到 SVG 内联,再到代码点
1. 使用 icon font 类名
引入font/bootstrap-icons.css后,直接使用类名即可:
<link rel="stylesheet" href="font/bootstrap-icons.css"> <!-- 描边版 --> <i class="bi bi-badge-4k"></i> <!-- 填充版 --> <i class="bi bi-badge-4k-fill"></i>字体颜色跟随 CSScolor属性,可配合 Bootstrap 的文本工具类使用,如text-primary、text-success。
2. 直接内联 SVG
由于 SVG 使用fill="currentColor",内联时颜色同样跟随外层容器的color:
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-badge-4k" viewBox="0 0 16 16"> <path d="M4.807 5.001C4.021 6.298 3.203 7.6 2.5 8.917v.971h2.905V11h1.112V9.888h.733V8.93h-.733V5.001zm-1.23 3.93v-.032a47 47 0 0 1 1.766-3.001h.062V8.93zm9.831-3.93h-1.306L9.835 7.687h-.057V5H8.59v6h1.187V9.075l.615-.699L12.072 11H13.5l-2.232-3.415z"/> <path d="M14 3a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zM2 2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2z"/> </svg>3. 代码点方式(CSS / JS / HTML)
如果你需要在不引入整个图标字体的情况下单独使用,可基于代码点引用:
- Unicode:
U+F15D(描边)/U+F15C(填充) - CSS:
\f15d/\f15c - JS:
\uf15d/\uf15c - HTML:
/
例如在 HTML 中直接输出字符实体(需已加载字体):
<i class="bi"></i>这些代码点同样由文档站模板动态生成,参见 docs/layouts/icons/single.html 第 121-139 行的 Code point 区块。
4. 图标雪碧图(SVG Sprite)
仓库通过svg-sprite(配置见 svg-sprite.json,脚本见 package.json 的icons-sprite)将全部图标合并为 bootstrap-icons.svg。如需以雪碧图方式引用 Badge 4K,可先运行:
npm run icons-sprite生成雪碧图后使用<use>引用对应符号(符号 id 通常为bi-badge-4k与bi-badge-4k-fill),适合需要按需打包、减少 HTTP 请求的场景。
六、官方文档中的示例用法(来自 single.html 模板)
Bootstrap Icons 文档站的每个图标页面都会渲染一组"Examples"示例区(docs/layouts/icons/single.html 第 46-106 行),展示了图标在真实界面中的典型摆放方式,Badge 4K 同样适用:
- 标题场景:
fs-2/fs-4的大号文字与图标并排(用于"4K 规格"标题展示); - 行内文本:图标嵌入段落文本流中(如"支持4K分辨率");
- 链接场景:图标置于
.text-decoration-none链接文字后; - 按钮场景:图标 + 文字组合放入
.btn(如btn-primary、btn-success、btn-outline-danger),适合"4K 模式切换"等操作按钮; - 输入框场景:图标作为
.input-group-text前缀装饰输入框。
这些示例说明该图标适合以 16px 基准按font-size等比缩放(文档站大图预览区甚至以font-size: 10em渲染),并可与 Bootstrap 5 的按钮、输入组、排版组件无缝组合。
七、小结
Badge 4K 图标从docs/content/icons/badge-4k.md的元数据出发,串联起仓库中完整的图标生产链路:icons/badge-4k.svg与icons/badge-4k-fill.svg提供矢量源,npm run icons(含icons-main、icons-sprite、icons-font)将其编译为字体、雪碧图与 CSS,最终以.bi-badge-4k/.bi-badge-4k-fill类名、\f15d/\f15c字体内容以及 U+F15D / U+F15C 代码点三种方式对外提供。无论你是需要一枚 4K 分辨率徽标、高清显示标识,还是想理解 Bootstrap Icons 从 SVG 到字体的完整转换机制,这枚图标都是一个足够小的绝佳切片。
- 前端
【免费下载链接】icons
Official open source SVG icon library for Bootstrap.
相关推荐
Bootstrap Icons 的 arrow-down-right-square 图标详解:SVG 源码、字体内码与使用实战
Bootstrap Icons 的 arrow down right square 图标详解:SVG 源码、字体内码与使用实战 本篇技术指南以 Bootstra
前端Bootstrap Icons 的 4 Circle 图标:从 SVG 源码、图标字体到 U+F7A9 码点的完整解析
Bootstrap Icons 的 4 Circle 图标:从 SVG 源码、图标字体到 U+F7A9 码点的完整解析 4 Circle (4 圆圈)是 Boo
前端Bootstrap Icons 的 arrow-counterclockwise 图标:逆时针旋转箭头 SVG 源码、字体码点与实战用法
Bootstrap Icons 的 arrow counterclockwise 图标:逆时针旋转箭头 SVG 源码、字体码点与实战用法 arrow count
前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考