☰
Bootstrap Icons 的 braces-asterisk 图标:源码结构与字体、精灵图、图标字体多形态使用指南
2026/9/28 2:41:42 网站建设 项目流程
  • 前端

【免费下载链接】icons

Official open source SVG icon library for Bootstrap.

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

导读

本文以 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":颜色继承当前文本颜色,因此可以用 CSScolor随意换色(图标字体与内联用法下均生效)。
  • 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.svgSVG 精灵图中的 symbol<symbol id="braces-asterisk" viewBox="0 0 16 16">
font/bootstrap-icons.css图标字体类.bi-braces-asterisk::before { content: "\f70e"; }
font/bootstrap-icons.scssSass 变量映射"braces-asterisk": "\f70e"
font/bootstrap-icons.json图标名到码点映射"braces-asterisk": 63246
font/bootstrap-icons.tsTypeScript 字面量类型\| "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.

项目地址:https://gitcode.com/gh_mirrors/ic/icons
点击查看免费下载
上一篇:rainfrog源码解析:核心组件scroll_table.rs实现原理
下一篇:终极指南:5个步骤掌握MoCo v3自监督学习与对比学习技术

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

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

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

立即咨询