FortAwesome/Font-Awesome · 上手攻略
- 仓库:
FortAwesome/Font-Awesome - 链接:https://github.com/FortAwesome/Font-Awesome
- 分类:skill · 图标字体 / SVG 图标库
- 作者:spark
- 更新:2026-07-14
1. 这是什么
FortAwesome/Font-Awesome 是 GitHub 上最知名的开源图标库——「The iconic SVG, font, and CSS toolkit.」。简单说,它是一套图标字体 + SVG sprite + CSS / JS 框架的合集,给网站、App、文档提供矢量图标。
仓库当前状态:
- 仓库
6.x分支代表 Font Awesome 6(Long Term Support,仅修关键 bug) - Font Awesome 7 已发布(2025 年发布,最新稳定版 7.3.0,2026-02 在 GitHub Releases 标记),引入了 4500+ 新图标、Sharp / Sharp Duotone 风格、Sketch / Slab-serif 等 Pro+ 图标包
- Free 版图标采用 CC BY 4.0(icons)/ SIL OFL 1.1(fonts)/ MIT(code)三重许可——商业、个人、开源随便用
- Free 版图标数 2 万+(Free 仓库
fontawesome-free),Pro 版(含品牌 / 高级风格)约 6 万+
仓库本身(FortAwesome/Font-Awesome)是官方 meta 仓库,主要放 README、UPGRADING、CODE_OF_CONDUCT 等。真正的图标文件、CSS、JS 在官方 npm 包 [@fortawesome/fontawesome-free](https://www.npmjs.com/package/@fortawesome/fontawesome-free) 以及 CDN 资源(jsDelivr / cdnjs / unpkg)中分发。GitHub Releases 页面提供完整的 6.x 和 7.x 版本归档下载。
2. 解决什么问题
Web/App 开发者经常需要大量图标(导航、操作按钮、社交媒体、品牌标识),痛点是:
- 图标散落各处——一个项目里今天用 Material Icons、明天用 Ionicons、后天又混 Bootstrap Icons,风格不一致、性能难优化、license 各异。
- 图标管理成本——SVG 一个个复制粘贴、压缩、命名,构建工具整合困难。
- CSS 字体 vs SVG sprite vs JS 组件三种集成方式各有适用场景,需要在同一图标库里灵活切换。
- 品牌图标合规——Twitter/X、Facebook、GitHub 等品牌图标不能用自有 logo 替代,必须用官方授权版本。
Font Awesome 解决了:
- 统一来源:一个项目只用 Font Awesome 一个图标库就能覆盖 90% 场景。
- 三种集成方式:Webfont(最简单)、SVG + JS(最灵活、可 tree-shake)、CSS-only Kit(零 JS)。
- 开源免费 + 商业 Pro 双轨:Free 满足大多数项目,Pro(含 6 万+ 图标 + 高级风格 + Kits)是 SaaS 模式。
- CDN 友好:jsDelivr、cdnjs 都同步了所有版本,无需自建。
- 组件生态深:React、Vue、Angular、Ember 等主流前端框架都有官方封装包;Bootstrap、Tailwind UI、AdminLTE、Laravel 等模板默认集成;几乎所有静态站点生成器(Hugo、Jekyll、Hexo、Docusaurus)都有 Font Awesome 主题可选。
- 稳定性强:自 2012 年发布以来,已经迭代了 7 个主版本,license 一直保持开源、商业友好,是企业项目几乎不需要担心合规问题的图标来源。
它不是专门的设计资源库(iconography 设计感上 Material Symbols、Apple SF Symbols 更精致),但生态成熟度、文档完善度、CDN 同步速度、社区覆盖广度上无敌。对绝大多数中小型 Web 项目来说,Font Awesome 是"不需要思考的选择"——装上去就有 2 万+ 图标可用,配色、动画、尺寸、Tree-shake 都有官方解决方案;如果发现它不够用,再换更精细的设计资源库也不迟。
3. 快速安装
Font Awesome 7.x 当前推荐安装方式有三种,按使用场景选:
3.1 Webfont + CSS(最简单,零 JS)
适用于静态站点、不需要 tree-shake 的项目:
<head>
<!-- 7.x CDN,jsDelivr -->
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.3.0/css/all.min.css"
/>
</head>
<body>
<i class="fa-solid fa-house"></i>
<i class="fa-brands fa-github"></i>
<i class="fa-regular fa-circle-user"></i>
</body>
注意:Font Awesome 官方文档更推荐用 Kit(需注册账号),CDN 是次选但可用。 版本号以发布日为准,
7.3.0为本攻略撰写时的稳定版,使用前可在 Releases 确认最新。
3.2 SVG + JS(推荐,支持 tree-shake)
适合现代构建工具(Vite / Webpack / Rollup)项目:
npm install @fortawesome/fontawesome-svg-core \
@fortawesome/free-solid-svg-icons \
@fortawesome/free-brands-svg-icons
# React / Vue 额外加
npm install @fortawesome/react-fontawesome @fortawesome/vue-fontawesome
最小使用示例(原生 JS):
import { library, dom } from '@fortawesome/fontawesome-svg-core';
import { faHouse, faUser } from '@fortawesome/free-solid-svg-icons';
import { faGithub } from '@fortawesome/free-brands-svg-icons';
library.add(faHouse, faUser, faGithub);
dom.watch(); // 自动扫描页面 <i class="fa-house"> 并替换为 SVG
React 示例:
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faHouse } from '@fortawesome/free-solid-svg-icons';
import { faGithub } from '@fortawesome/free-brands-svg-icons';
export function Header() {
return (
<header>
<FontAwesomeIcon icon={faHouse} />
<FontAwesomeIcon icon={faGithub} size="2x" spin />
</header>
);
}
3.3 使用 Kit(需注册 Font Awesome 账号)
- 登录 fontawesome.com
- 创建 Kit → 选择 Free 或 Pro、选择需要加载的样式(Solid / Regular / Brands / Sharp / Duotone)
- 复制
<script src="https://kit.fontawesome.com/你的kitid.js" crossorigin="anonymous"></script>到<head> - 优点:可上传自定义图标、可在图标浏览器里点选、有版本控制和缓存优化
4. 核心用法
4.1 CSS 类的命名规则(Webfont 方式)
Font Awesome 7 的 class 格式:<前缀>-<风格简写> <图标名>
<i class="fa-solid fa-house"></i> <!-- 实心 -->
<i class="fa-regular fa-circle"></i> <!-- 描边 -->
<i class="fa-brands fa-github"></i> <!-- 品牌 -->
<i class="fa-sharp fa-solid fa-bell"></i> <!-- Sharp 风格(Pro) -->
<i class="fa-duotone fa-camera"></i> <!-- Duotone(Pro+) -->
4.2 常用修饰类
<i class="fa-solid fa-house fa-2x"></i> <!-- 放大 2 倍 -->
<i class="fa-solid fa-spinner fa-spin"></i> <!-- 旋转动画 -->
<i class="fa-solid fa-heart fa-beat"></i> <!-- 心跳动画 -->
<i class="fa-solid fa-user fa-fw"></i> <!-- Fixed Width,宽度对齐 -->
<i class="fa-brands fa-twitter" style="color:#1da1f2"></i> <!-- 直接上色 -->
4.3 SVG 模式下修改颜色 / 尺寸(React/Vue)
<FontAwesomeIcon icon={faHouse} color="#ff5722" size="3x" />
<FontAwesomeIcon icon={faSpinner} spin />
<FontAwesomeIcon icon={['fab', 'github']} /> {/* 数组写法:fab=brands */}
4.4 在 CSS 里伪元素用
.btn::before {
font-family: "Font Awesome 7 Free"; /* 或 "Font Awesome 7 Brands" */
font-weight: 900; /* Solid 是 900,Regular 是 400 */
content: "\f015"; /* fa-house 的 unicode */
}
Webfont 模式下 unicode 在 官网图标详情页 看。SVG 模式下用 JS API 不需要 unicode。
4.5 离线 / 自托管
- Webfont:下载
@fortawesome/fontawesome-freezip,解压后webfonts/放静态目录,css/引入 - SVG:直接
import子包(@fortawesome/free-solid-svg-icons等),Webpack/Vite 会 tree-shake 掉未用图标
5. 典型适用场景
- 网站导航 / 后台 UI:上万种通用图标覆盖 99% 业务
- 品牌社交链接:Brands 集合含 GitHub、Twitter、LinkedIn 等官方授权 logo
- 文档站点:常与 Docusaurus / VitePress 集成
- 快速原型:不需要设计资源就能搭出像样的 UI
- CMS 主题 / 模板市场:几乎所有付费主题默认带 Font Awesome
不适用:
- 追求极致设计感——Material Symbols / Apple SF Symbols / Phosphor Icons 设计更现代、风格统一
- 超大规模图标库(10 万+)——Material Icons / Noun Project 更全
- 强 tree-shake 极度敏感的纯 SVG 项目——SVG + JS 模式仍会引入核心运行时(~30 KB gzip),超敏感场景可考虑 Phosphor 的纯 SVG sprite 或 lucide-react
- 品牌定制图标——Kit 上传是唯一免费方案,但管理成本不如设计资源库
6. 坑与注意
- CDN 路径的版本号是写死的——升级要手改;推荐用 Kit 或 npm 包以便升级。
- Solid / Regular 切换 需切换 CSS 类(
fa-solid↔fa-regular)或 React 组件的 weight,不能同一个图标两种风格混用——Pro+ 风格的 Sharp / Duotone 需要付费。 - Webfont 模式下图标颜色只能单一——默认继承
color,双色调只能用 Duotone(Pro)或 SVG 模式。 - 品牌图标必须用 Brands 集合——不要把公司 logo 自己做成图标塞 Solid 集合,可能侵权。
- Webfont 在旧 IE / 老 Safari 不支持 woff2——需要 fallback 或降级到 woff。
- 图标名称变化——Font Awesome 4 → 5/6/7 有不少图标重命名(如
fa-glass→fa-martini-glass),升级时参考 UPGRADING.md。 - Pro 图标在 Free 项目里会用空方框替代——上线前必查。
- Kit 模式下图标浏览器上传自定义 SVG 后需手动 commit 到 Kit 才生效——自动化部署要小心。
- 6.x 已进入 LTS,只修关键 bug——新项目建议直接上 7.x(7.3.0 当前稳定版)。
7. 与同类对比
| 资源 | 风格 | 集成方式 | 授权 | 中文/本地化 |
|---|---|---|---|---|
| Font Awesome(本仓库) | 通用、覆盖广 | Webfont / SVG+JS / Kit | Free: CC BY + SIL OFL + MIT | 全球 |
| Material Symbols | Google 设计语言、现代 | 字体子集化 / SVG sprite | Apache 2.0 | 全球 |
| Phosphor Icons | 极简、6 种权重 | SVG / React / Vue | MIT | 全球 |
| Lucide | 简洁、tree-shake 友好 | SVG sprite / React / Vue | ISC | 全球 |
| Tabler Icons | 大量免费 SVG | SVG sprite / React / Vue | MIT | 全球 |
| Bootstrap Icons | Bootstrap 风格 | Webfont / SVG | MIT | 全球 |
对比结论:Font Awesome 的独特优势是生态成熟度——几乎所有 CMS、框架、组件库(Bootstrap、Tailwind UI、AdminLTE 等)默认集成;如果项目没有特殊设计要求、想省事,Font Awesome 是最稳的选择。如果追求极致性能(bundle size)或现代设计语言,Phosphor / Lucide 更值得考虑。
8. 一句话推荐结论
图标库的事实标准——Web 端首选 7.x + CDN/Kit,构建工具用 SVG + JS tree-shake;Free 够用就 Free,需要品牌 / 高级风格再上 Pro。
参考来源
- 仓库 README(2026-07-14 抓取):https://raw.githubusercontent.com/FortAwesome/Font-Awesome/6.x/README.md
- 仓库主页:https://github.com/FortAwesome/Font-Awesome
- Releases:https://github.com/FortAwesome/Font-Awesome/releases
- jsDelivr 资源:https://www.jsdelivr.com/package/npm/@fortawesome/fontawesome-free
- cdnjs 资源:https://cdnjs.com/libraries/font-awesome
- 官方文档:https://fontawesome.com/docs
- v7 升级指南:https://docs.fontawesome.com/upgrade/whats-changed
- 版本与定价:https://fontawesome.com/versions
- 第三方概述(Utah IT, 2025-08):https://websites.it.utah.edu/announcements/posts/2025/august/font-awesome-7.php
不确定处
- 7.x 主分支(
7.x/master)当前 commit 哈希未直接抓取,7.3.0是 GitHub Releases 标记的稳定版(2026-02-10),后续可能有更新,使用前请到 Releases 确认。 - Kit 注册流程、Pro+ 图标包定价以官网实时为准,本攻略不涉及付费细节。
- Webfont 模式在某些极老浏览器上的 woff2 fallback 行为未在本环境实测,建议 IE11 等目标环境上线前做兼容性测试。
- React/Vue 各框架封装包版本兼容性请以各包 README 为准,与 Font Awesome 7 主版本需对齐。