Bootstrap Icons:Bootstrap 官方开源 SVG 图标库的安装、使用与二次开发指南
前端【免费下载链接】iconsOfficial open source SVG icon library for Bootstrap.项目地址https://gitcode.com/gh_mirrors/ic/icons点击查看免费下载Bootstrap Icons 是 Bootstrap 官方维护的开源 SVG 图标库仓库内收录了超过 2,000 个图标覆盖箭头、天气、交通、媒体、设备、Emoji 等常见 UI 场景。本文以仓库 README.md 为主线结合 package.json、svgo.config.mjs、svg-sprite.json 与 build 目录下的构建脚本完整讲解如何安装引入、四种使用方式、本地开发环境搭建、图标规范化加工流程与发布机制帮助你既能直接使用这套图标也能深入理解其背后的构建原理。项目速览Bootstrap Icons 以「图标即文件」为核心理念每个图标都是独立的 16x16 网格 SVG 文件存放在仓库根目录的 icons 目录中例如 icons/alarm.svg、icons/alarm-fill.svg。同一语义往往提供-fill实心与普通描边两种变体部分还提供-circle、-square等容器变体例如arrow-down-circle-fill、arrow-up-left-square。仓库的发布物并不包含复杂的框架封装而是直接面向开发者icons单个 SVG 源文件bootstrap-icons.svg全部图标合并而成的 SVG SpriteSymbol 模式font由图标自动生成的 Web Font 及其配套 CSS/SCSS/TypeScript/JSON 文件docs基于 Hugo 的官方文档站点当前仓库的版本为 1.13.1见 package.json 的version字段许可协议为 MIT见 LICENSE。安装 Bootstrap IconsBootstrap Icons 已经打包并发布到 npm。需要注意npm 包内只包含加工处理后的 SVG 成品不会附带任何框架层封装具体如何渲染由你和团队自行实现。npm i bootstrap-icons对于使用 Packagist 生态的 PHP/Composer 项目也可以通过 Composer 安装composer require twbs/bootstrap-icons此外该图标库还同步提供 Figma 社区版本方便设计师在原型阶段直接使用同一套视觉资源。安装完成后包的入口产物与仓库发布物一一对应产物说明icons/*.svg单个图标 SVG 文件bootstrap-icons.svgSVG Sprite 文件font/bootstrap-icons.css图标字体 CSSfont/bootstrap-icons.scss图标字体 SCSS 源文件font/bootstrap-icons.ts图标 ID 的 TypeScript 类型定义font/bootstrap-icons.json图标名与字符码映射表这些文件的具体构成可以在 package.json 的files字段中确认。四种使用方式根据项目的技术栈与渲染需求可以选择以下任意一种方式引入图标。1. 直接复制粘贴 SVG内嵌 HTML将 icons 目录中某个 SVG 文件的内容直接粘贴到 HTML 中。加工后的图标文件带有标准化的classbi bi-xxx、width16、height16、fillcurrentColor属性因此可以借助 CSS 控制颜色与尺寸i classbi bi-alarm/i2. 通过img元素引用把 SVG 视为普通图片资源img srcicons/alarm.svg altAlarm width32 height32这种方式的优点是零 CSS 依赖缺点是颜色由文件内的currentColor决定外部不易覆写。3. 使用 SVG Sprite仓库根目录的 bootstrap-icons.svg 是一个标准的 Symbol 型 Sprite每个图标被包裹在symbol idxxx中例如symbol idalarm。引入方式如下svg classbi width16 height16 fillcurrentColor use xlink:hrefbootstrap-icons.svg#alarm/use /svgSprite 方式只需一次 HTTP 请求即可复用任意图标适合图标数量较多的场景。4. 通过 CSS 字体引入引入 font/bootstrap-icons.css或编译 font/bootstrap-icons.scss即可使用bi/bi-xxx类名i classbi-alarm/i其实现原理在 CSS 中非常直观——每个图标对应一个::before伪元素font-face { font-family: bootstrap-icons; src: url(./fonts/bootstrap-icons.woff2?hash) format(woff2), url(./fonts/bootstrap-icons.woff?hash) format(woff); } .bi-alarm::before { content: \f102; }字体文件位于 font/fonts提供 woff2 与 woff 两种格式并在 URL 上附加哈希参数以便缓存刷新。SCSS 版本则把同样的映射整理为 Sass 变量与 Map例如$bootstrap-icons-font-dir、$bootstrap-icons-font-file以及从$bootstrap-icons-map生成的 class 规则方便二次定制。若项目使用 TypeScript可直接引用 font/bootstrap-icons.ts 中的BootstrapIconsId联合类型获得图标名的编译期校验。本地开发与文档预览仓库的文档站点由 Hugo 驱动。克隆仓库、安装依赖并启动本地服务器git clone https://github.com/twbs/icons/ cd icons npm i npm start然后打开浏览器访问http://localhost:4000即可预览文档。其中npm start只是docs-serve的别名后者实际执行hugo server --port 4000 --disableFastRender对应脚本定义可查看 package.json 的scripts字段。常用 npm 脚本以下是开发过程中最常用的几个脚本完整清单以npm run输出为准Script说明startdocs-serve的别名docs-serve启动本地 Hugo 服务器端口 4000docs-build构建文档站点hugo --cleanDestinationDir --printUnusedTemplatespages为每个图标生成带模板 Markdown 的独立页面icons加工并优化icons目录中的 SVG生成字体与 Spriteicons-zip打包icons、bootstrap-icons.svg与font为发布压缩包test并行运行全部校验ESLint、Stylelint、锁文件、图标一致性等其中pages脚本的实现位于 build/build-pages.mjs它会遍历icons目录中的每个 SVG并在 docs/content/icons 下创建对应的 Markdown 页面已存在则跳过把「图标文件 → 文档页面」一一对应起来。新增 SVG 图标的工作流图标通常由维护者在 Figma 中先行设计再以加工脚本统一规范化。新增一个图标的完整流程如下在 Figma 中以16x16 网格设计新字形导出为扁平化flattened的 SVG仅含fill不包含stroke将新 SVG 放入icons目录运行npm run icons执行脚本脚本会完成两步加工先用 SVGO 优化 SVG再改写 SVG 源码——移除全部原有属性并按项目偏好的顺序重新设置属性与取值运行npm run pages生成图标对应的独立文档页面补全页面内容在新分支中提交结果以便更新。注意事项提交时请排除所有自动生成的文件如font/**和bootstrap-icons.svg因为它们极易产生冲突发行版本的 dist 文件通常会在发版前统一更新。SVG 加工规则的源码级拆解SVGO 的优化规则全部集中在 svgo.config.mjsmultipass: true开启多轮迭代优化压缩更彻底js2svg.pretty: true、indent: 2、eol: lf保证输出格式统一、便于 diffpreset-default覆盖项removeUnknownsAndDefaults.keepDataAttrs: false移除所有data属性removeUnknownsAndDefaults.keepRoleAttr: true保留role属性无障碍可访问性removeViewBox: false保留viewBox确保图标可被缩放removeAttrs显式移除clip-rule与fill为后续统一赋值腾出空间自定义explicitAttrs插件为每个svg按固定顺序写入xmlns、width16、height16、fillcurrentColor、classbi bi-{文件名}、viewBox0 0 16 16。这也是为什么 icons 目录中每个成品 SVG 都能保持「同构、同序、同默认值」——既便于机器解析也便于人类审阅。Sprite 与字体、类型、映射的生成SVG Sprite由icons-sprite脚本调用svg-sprite工具生成配置见 svg-sprite.json。它采用symbol模式输出 bootstrap-icons.svg关闭命名空间 class 与 XML 声明并对每个形状做与主流程一致的 SVGO 优化。图标字体icons-font脚本借助fantasticon从图标生成字体再由cleancss压缩产出 font/bootstrap-icons.min.css 等文件。一致性校验test:check-icons会读取 font/bootstrap-icons.json 与icons目录做比对实现见 build/check-icons.mjs确保字体映射表与 SVG 源文件不出现增删不一致从机制上杜绝「有字体没图标」或「有图标没字体」的错位。发布机制文档站点与发布包在打上新的 Git Tag 时自动发布。整个发布流水线可以归纳为npm run icons # 重新加工图标、生成字体与 Sprite npm run docs-build # 构建文档站点 npm run icons-zip # 产出 bootstrap-icons-version.zip随后打上版本 Tag 触发自动发布具体可参考 package.json 中的release、release-version脚本及仓库的 CI 工作流配置。许可证Bootstrap Icons 基于 MIT 许可证发布见 LICENSE可以在商业与非商业项目中自由使用只需保留版权声明。小结Bootstrap Icons 的价值在于「一套图标、多种交付形态」单个 SVG、SVG Sprite、Web Font 以及配套的类型与映射文件可以按需取用同时它的仓库本身就是一套完整的「图标工程化」范例——Figma 设计 → 规范化 SVG → SVGO 优化 → 自动生成字体与 Sprite → 自动生成文档页面全链路均由 package.json 中的脚本串起。无论是想要快速接入图标资源还是希望借鉴其构建管线都可以从 README.md 和 build 目录开始深入。赞分享前端【免费下载链接】iconsOfficial open source SVG icon library for Bootstrap.项目地址https://gitcode.com/gh_mirrors/ic/icons点击查看免费下载相关推荐WinUtil终极指南一键解决Windows系统优化与软件批量安装难题WinUtil终极指南一键解决Windows系统优化与软件批量安装难题 还在为Windows系统越用越慢而烦恼吗还在为每次重装系统后需要逐个安装几十个软件而桌面应用运维Bootstrap Icons 使用指南SVG 图标库的安装、五种引入方式与无障碍实践Bootstrap Icons 使用指南SVG 图标库的安装、五种引入方式与无障碍实践 本文以 Bootstrap Icons 官方文档 docs/cont前端Bootstrap Icons 开源图标库完整使用指南Bootstrap Icons 开源图标库完整使用指南 Bootstrap Icons 是一个功能强大的开源SVG图标库专为现代Web开发设计。该库包含超过2前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026 最新!OpenClaw 保姆级安装指南:从“配置报错”到“丝滑运行”,手把手带你开启小龙虾之旅

2026 最新!OpenClaw 保姆级安装指南:从“配置报错”到“丝滑运行”,手把手带你开启小龙虾之旅

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

2026/9/26 19:46:00 阅读更多 →
用ffmpeg+Remotion+Manim+Claude Code搭建可编程视频处理管线

用ffmpeg+Remotion+Manim+Claude Code搭建可编程视频处理管线

1. 项目缘起:为什么我要把视频处理这件事“管道化”做内容这行十几年,我踩过最大的坑不是不会写脚本,而是素材到成片之间的那段“脏活”。录屏、口播、素材混剪、字幕烧录、格式转换、批量压缩,每一步单拎出来都不难,但…

2026/9/26 19:46:00 阅读更多 →
【花雕学编程】嵌入式破局:MimiClaw入局后,用TaoToken统一Key打通“小龙虾”AI智能体边缘设备配置

【花雕学编程】嵌入式破局:MimiClaw入局后,用TaoToken统一Key打通“小龙虾”AI智能体边缘设备配置

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

2026/9/26 19:46:00 阅读更多 →

最新新闻

企业Agent平台生产落地:从Demo到可靠的五块拼图

企业Agent平台生产落地:从Demo到可靠的五块拼图

写这篇东西的起因,是我过去两年里看了不下二十个企业 Agent 平台的 Demo,也亲手帮三家公司做过从 PoC 到生产环境的迁移。最扎心的现象是:Demo 阶段人人都觉得手里握着下一代生产力,一旦把 Agent 接到真实业务里,Promp…

2026/9/26 20:36:25 阅读更多 →
将 OpenCode Go 配置为 Qwen Code 的模型供应商:settings.json 骨架与 API Key 验证

将 OpenCode Go 配置为 Qwen Code 的模型供应商:settings.json 骨架与 API Key 验证

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

2026/9/26 20:36:25 阅读更多 →
Hadoop集群运行故障排查实战指南

Hadoop集群运行故障排查实战指南

简介:本资源是面向1X大数据平台运维职业技能等级证书备考者与Hadoop初学者的实操型学习材料,聚焦Hadoop集群运行核心运维能力培养。内容系统覆盖NameNode/DataNode格式化、Java进程与HDFS状态查看(jps/hdfs dfsadmin -report)、浏…

2026/9/26 20:36:25 阅读更多 →
海河沿岸旅游景观可视化大屏:Python爬虫与画像系统全解析

海河沿岸旅游景观可视化大屏:Python爬虫与画像系统全解析

海河贯穿天津市区,沿岸散布着意式风情区、天津之眼、古文化街、五大道等一大批旅游景观节点。去年我开始做一个与"城市双修"相关的完整项目——把海河沿岸的旅游景观数据汇聚到一个可视化大屏上,同时给景区和游客做画像分析。整个系统用Python…

2026/9/26 20:36:25 阅读更多 →
智能体选型避坑指南:5条自查标准+TaoToken配置骨架

智能体选型避坑指南:5条自查标准+TaoToken配置骨架

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

2026/9/26 20:36:25 阅读更多 →
慢SQL优化实战:从执行计划到索引设计的性能排查指南

慢SQL优化实战:从执行计划到索引设计的性能排查指南

做数据库性能排查这些年,我对慢SQL的态度早就从"看到了顺手改一改"变成了"必须当成事故来对待"。原因很简单:一条慢SQL的破坏力远远超过它表面上那几秒的耗时。它可能只有一行代码,却能在高峰期占满数据库连接池、拖慢主…

2026/9/26 20:35:24 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/26 20:27:29 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →