- 前端
【免费下载链接】icons
Official open source SVG icon library for Bootstrap.
导读
本文以 Bootstrap 官方开源图标库(当前仓库gh_mirrors/ic/icons)中braces-asterisk图标的官方文档 docs/content/icons/braces-asterisk.md 为核心,深入解析该图标的命名语义、分类标签、SVG 路径实现,并完整演示它在嵌入式内联、图标字体、SVG 精灵图、Sass 与 CSS 等多种形态下的接入方式。读完本文,你将能准确理解这个"花括号加星号"图标的定位,并掌握在真实项目中直接引用它的全部可行方案。
一、官方文档定义了怎样的一个图标
braces-asterisk的文档页以 YAML frontmatter 形式记录了它的全部元信息(见 docs/content/icons/braces-asterisk.md):
--- title: Braces asterisk categories: - Typography tags: - text - type - code - developer - development - software added: 1.10.0 ---这些字段的含义与用途如下:
- title:图标显示名称
Braces asterisk,即"花括号 + 星号"。braces指成对的花括号{ },asterisk指星号*,组合起来正是代码语境中"代码块/代码片段 + 通配符"的视觉表达。 - categories:
Typography(排版),在图标库中归入排版类目,与代码、文本相关的图标并列。 - tags:
text、type、code、developer、development、software六个标签,全部指向"文本、代码、开发者"语境。在图标库的检索与分类体系中,这些标签用于让开发者按关键词快速定位该图标。 - added: 1.10.0:表明该图标自 Bootstrap Icons 1.10.0 版本起加入。当前仓库 package.json 中记录的库版本为
1.13.1,说明它已是稳定发布的既有图标。
可以推断,braces-asterisk的设计意图是服务开发者场景——例如标记"代码片段"、"含通配符的代码块"或"编程相关提示",与同族的braces(纯花括号)图标形成互补关系。
二、源码视角:SVG 路径如何画出"花括号 + 星号"
2.1 独立 SVG 文件
图标源文件位于 icons/braces-asterisk.svg,完整内容如下:
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-braces-asterisk" viewBox="0 0 16 16"> <path fill-rule="evenodd" d="M1.114 8.063V7.9c1.005-.102 1.497-.615 1.497-1.6V4.503c0-1.094.39-1.538 1.354-1.538h.273V2h-.376C2.25 2 1.49 2.759 1.49 4.352v1.524c0 1.094-.376 1.456-1.49 1.456v1.299c1.114 0 1.49.362 1.49 1.456v1.524c0 1.593.759 2.352 2.372 2.352h.376v-.964h-.273c-.964 0-1.354-.444-1.354-1.538V9.663c0-.984-.492-1.497-1.497-1.6M14.886 7.9v.164c-1.005.103-1.497.616-1.497 1.6v1.798c0 1.094-.39 1.538-1.354 1.538h-.273v.964h.376c1.613 0 2.372-.759 2.372-2.352v-1.524c0-1.094.376-1.456 1.49-1.456v-1.3c-1.114 0-1.49-.362-1.49-1.456V4.352C14.51 2.759 13.75 2 12.138 2h-.376v.964h.273c.964 0 1.354.444 1.354 1.538V6.3c0 .984.492 1.497 1.497 1.6M7.5 11.5V9.207l-1.621 1.621-.707-.707L6.792 8.5H4.5v-1h2.293L5.172 5.879l.707-.707L7.5 6.792V4.5h1v2.293l1.621-1.621.707.707L9.208 7.5H11.5v1H9.207l1.621 1.621-.707.707L8.5 9.208V11.5z"/> </svg>关键设计要点:
- 16×16 视图盒:
viewBox="0 0 16 16",与库内所有图标保持统一的网格规范,方便在字体与精灵图中对齐。 - fill="currentColor":颜色继承当前文本颜色,因此可以用 CSS
color随意换色(图标字体与内联用法下均生效)。 - fill-rule="evenodd":路径采用偶奇填充规则,保证内部镂空区域(花括号与星号之间的负空间)正确透明。
- 路径结构:从源码结构看,
d值可分为三大部分——左花括号的折线轮廓(M1.114 ...段)、右花括号的镜像轮廓(M14.886 ...段)、以及中间星号的M7.5 ... z段(由四段对角斜线收拢于中心,构成*形)。
2.2 与基础版 braces 的对比
库中还提供了不带星号的姊妹图标 icons/braces.svg,其路径仅包含左右花括号两段,且没有fill-rule="evenodd"。两者对比可以直观看出:
braces:纯花括号,适合表达"代码块/代码片段"本身;braces-asterisk:在花括号中央叠加星号,语义更偏向"代码中的通配符"、"匹配任意内容的代码段"或"待填充的代码占位"。
这种"基础形 + 修饰形"的成对设计在 Bootstrap Icons 中十分常见(如check与check-all、cloud与cloud-plus),braces与braces-asterisk是同一思路下的排版类目变体。
三、一个图标在仓库中的"多重身份"
braces-asterisk不只是icons/目录下的一个 SVG 文件,它在构建产物中同时存在多个可引用形态。通过全文搜索braces-asterisk可以确认其全部注册位置:
| 产物文件 | 具体形态 | 内容示例 |
|---|---|---|
| icons/braces-asterisk.svg | 独立 SVG 源文件 | class="bi bi-braces-asterisk" |
| bootstrap-icons.svg | SVG 精灵图中的 symbol | <symbol id="braces-asterisk" viewBox="0 0 16 16"> |
| font/bootstrap-icons.css | 图标字体类 | .bi-braces-asterisk::before { content: "\f70e"; } |
| font/bootstrap-icons.scss | Sass 变量映射 | "braces-asterisk": "\f70e" |
| font/bootstrap-icons.json | 图标名到码点映射 | "braces-asterisk": 63246 |
| font/bootstrap-icons.ts | TypeScript 字面量类型 | \| "braces-asterisk" |
这些映射之间相互印证:JSON 中的63246正是十六进制码点0xF70E的十进制值,而 CSS/SCSS 中的\f70e即该码点的转义写法。TypeScript 类型文件(font/bootstrap-icons.ts)则把"braces-asterisk"收录进联合类型,供使用图标名作参数的类型安全场景(如图标组件、查询工具)引用。
从仓库的构建脚本(见 package.json 的icons-font-main、icons-sprite等命令)看,这些形态均由构建流程从icons/*.svg统一生成,开发者直接消费产物即可,无需手工维护映射。
四、安装与五种使用方式
官方使用文档位于 docs/content/_index.md,其中给出了安装入口与全部用法。以下以braces-asterisk为例逐一落地。
4.1 安装
# 方式一:npm(包含 SVGs、精灵图与图标字体) npm i bootstrap-icons # 方式二:Composer(PHP 项目) composer require twbs/bootstrap-icons也可以直接引用 CDN 上的压缩样式表:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">或在 CSS 中通过@import引入:
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css");4.2 方式一:内联嵌入式
直接把 SVG 源文件内容嵌入 HTML。官方建议设置width: 1em(可选height: 1em),以便通过font-size缩放:
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-braces-asterisk" viewBox="0 0 16 16"> <path fill-rule="evenodd" d="M1.114 8.063V7.9c1.005-.102 1.497-.615 1.497-1.6V4.503c0-1.094.39-1.538 1.354-1.538h.273V2h-.376C2.25 2 1.49 2.759 1.49 4.352v1.524c0 1.094-.376 1.456-1.49 1.456v1.299c1.114 0 1.49.362 1.49 1.456v1.524c0 1.593.759 2.352 2.372 2.352h.376v-.964h-.273c-.964 0-1.354-.444-1.354-1.538V9.663c0-.984-.492-1.497-1.497-1.6M14.886 7.9v.164c-1.005.103-1.497.616-1.497 1.6v1.798c0 1.094-.39 1.538-1.354 1.538h-.273v.964h.376c1.613 0 2.372-.759 2.372-2.352v-1.524c0-1.094.376-1.456 1.49-1.456v-1.3c-1.114 0-1.49-.362-1.49-1.456V4.352C14.51 2.759 13.75 2 12.138 2h-.376v.964h.273c.964 0 1.354.444 1.354 1.538V6.3c0 .984.492 1.497 1.497 1.6M7.5 11.5V9.207l-1.621 1.621-.707-.707L6.792 8.5H4.5v-1h2.293L5.172 5.879l.707-.707L7.5 6.792V4.5h1v2.293l1.621-1.621.707.707L9.208 7.5H11.5v1H9.207l1.621 1.621-.707.707L8.5 9.208V11.5z"/> </svg>4.3 方式二:SVG 精灵图(推荐用于多处复用)
精灵图允许通过<use>引用任意图标,片段标识符即文件名。官方文档强调:使用外部文件形式的精灵图时需注意 Chrome 存在<use>跨域不生效 的已知问题,因此精灵图更适合部署在同一域名下:
<svg class="bi" width="32" height="32" fill="currentColor"> <use xlink:href="bootstrap-icons.svg#braces-asterisk"/> </svg>对应精灵图文件 bootstrap-icons.svg 中,braces-asterisk以<symbol id="braces-asterisk" class="bi bi-braces-asterisk" viewBox="0 0 16 16">的形式存在,id与文件名一致,<use>的#片段名即可直接命中。
4.4 方式三:外部图片引用
将仓库icons/目录下的 SVG 拷贝到自己的静态资源目录,像普通图片一样使用<img>:
<img src="/assets/icons/braces-asterisk.svg" alt="Braces asterisk" width="32" height="32">注意:<img>方式无法利用currentColor换色,换色需在 SVG 文件内指定fill。
4.5 方式四:图标字体
引入字体样式表后,用bi+ 图标名组成 class:
<i class="bi bi-braces-asterisk"></i>图标的颜色与大小完全跟随文字样式:
<i class="bi bi-braces-asterisk" style="font-size: 2rem; color: cornflowerblue;"></i>其背后的实现见 font/bootstrap-icons.css 中的规则.bi-braces-asterisk::before { content: "\f70e"; }——即把0xF70E码点渲染为对应字形。若想用 Sass 变量方式引用,可借助 font/bootstrap-icons.scss 中"braces-asterisk": "\f70e"的映射。
4.6 方式五:CSS 背景图(含 Sass 项目适配)
可以把 SVG 作为 CSS 背景图(官方提醒:必须转义特殊字符,例如十六进制颜色中的#要写成%23):
.bi-braces-asterisk-bg { display: inline-block; width: 1rem; height: 1rem; background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%23333' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M1.114 8.063V7.9c1.005-.102 1.497-.615 1.497-1.6V4.503c0-1.094.39-1.538 1.354-1.538h.273V2h-.376C2.25 2 1.49 2.759 1.49 4.352v1.524c0 1.094-.376 1.456-1.49 1.456v1.299c1.114 0 1.49.362 1.49 1.456v1.524c0 1.593.759 2.352 2.372 2.352h.376v-.964h-.273c-.964 0-1.354-.444-1.354-1.538V9.663c0-.984-.492-1.497-1.497-1.6M14.886 7.9v.164-1.005.103-1.497.616-1.497 1.6v1.798c0 1.094-.39 1.538-1.354 1.538h-.273v.964h.376c1.613 0 2.372-.759 2.372-2.352v-1.524c0-1.094.376-1.456 1.49-1.456v-1.3c-1.114 0-1.49-.362-1.49-1.456V4.352C14.51 2.759 13.75 2 12.138 2h-.376v.964h.273c.964 0 1.354.444 1.354 1.538V6.3c0 .984.492 1.497 1.497 1.6M7.5 11.5V9.207l-1.621 1.621-.707-.707L6.792 8.5H4.5v-1h2.293L5.172 5.879l.707-.707L7.5 6.792V4.5h1v2.293l1.621-1.621.707.707L9.208 7.5H11.5v1H9.207l1.621 1.621-.707.707L8.5 9.208V11.5z'/></svg>"); background-repeat: no-repeat; background-size: 1rem 1rem; }若在 Bootstrap 的 Sass 项目中以 npm 方式安装,还需把字体目录变量指向node_modules内的实际位置(官方说明该设置对 Vite、Parcel 等构建器是必需的):
// 更新导入目录,指向 node_modules 中的实际位置 $bootstrap-icons-font-dir: "bootstrap-icons/font/fonts"; // 照常导入 Sass 文件 @import "bootstrap-icons/font/bootstrap-icons";五、适用场景小结
综合官方分类标签(Typography+text/type/code/developer/software)与路径语义,braces-asterisk适合以下使用场景:
- 代码编辑器、IDE 插件或文档站点中表示"代码片段 / 代码块";
- 标记"含通配符的代码"或"正则/匹配类"功能入口;
- 开发者工具、CLI 帮助面板中的装饰性图标;
- 作为
braces图标的强调变体,在同一界面中区分"普通代码"与"带星号的通配代码"两种状态。
其字体码点\f70e、精灵图id、TypeScript 类型名统一为braces-asterisk,无论在哪种形态下引用,命名都保持一致,便于记忆与迁移。
六、延伸阅读
- 官方安装与使用总览:docs/content/_index.md
- 该图标文档与元数据:docs/content/icons/braces-asterisk.md
- 源 SVG 与姊妹图标:icons/braces-asterisk.svg、icons/braces.svg
- 字体 CSS / Sass / JSON / TS 映射:font/bootstrap-icons.css、font/bootstrap-icons.scss、font/bootstrap-icons.json、font/bootstrap-icons.ts
- 精灵图文件:bootstrap-icons.svg
- 包信息与构建脚本:package.json
- 前端
【免费下载链接】icons
Official open source SVG icon library for Bootstrap.
相关推荐
Bootstrap Icons 的 camera-video-fill 图标:源码结构、字体映射与使用指南
Bootstrap Icons 的 camera video fill 图标:源码结构、字体映射与使用指南 本篇技术指南以 Bootstrap Icons 官方
前端Flapigen:终极Rust跨语言绑定工具完全指南
Flapigen:终极Rust跨语言绑定工具完全指南 Flapigen是一款强大的Rust跨语言绑定工具,能够轻松连接Rust编写的程序或库与其他编程语言。它作
前端Bootstrap Icons bag-x 图标深度解析:SVG 结构、字体编码与多形态集成指南
Bootstrap Icons bag x 图标深度解析:SVG 结构、字体编码与多形态集成指南 本篇技术指南以 Bootstrap Icons 开源图标库(仓
前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考