在Web中使用NerdFont
Outline

前言

虽然fa free也为我们提供了大量的免费图标,为Web UI付出了不可忽视的贡献。但有些图标确实需要付费才能使用,且价格也不是小项目可以承担的。我部署的第一个nodejs项目遇到的问题就是他用了付费图标库依赖,我无法安装。

NerdFont图标集在tui中被广泛使用,被NVim,各种shell美化工具使用。它的图标集也非常丰富,尤其是在编程相关的方面,相对于fa free只强不弱。同时我也没在它的网站上找到什么付费才能用的图标。

本博客的图标就是用NerdFont图标集实现的,效果也非常好。

使用方法

众所周知,NerdFont图标集是以字体的形式存在的,所以我们只需要把它作为web字体引入即可。直接去官网下载的字体光压缩包都动着大几M,是不可能拿来做web的。

偶然见,我发现了nerdfont-webfonts这个项目,它为web使用做了优化,直接引入css即可。本博客使用的JetBrains Mono Nerd Font字体也才950k,可谓是小了很多。

nerdfont-webfonts
2026/2/7
 40 0 5
Max Shaughnessy
avatar
Nerd Fonts for cros and hterm
 40 0 5
2026/2/7

现在字体列表里找到你要的字体,找到它的css名称,直接在html里https://cdn.jsdelivr.net/gh/mshaugh/nerdfont-webfonts@v3.3.0/build/{css名}即可。 比如我用的是JetBrainsMono,对应的css名是jetbrainsmono.css,按下方插入css即可将字体引入。

HTML
<link
 rel="stylesheet"
 href="https://cdn.jsdelivr.net/gh/mshaugh/nerdfont-webfonts@v3.3.0/build/jetbrainsmono.css"
/>

然后在css里使用该字体即可。

CSS
body {
 family: 'JetBrainsMonoNL NF', monospace;
}

TIP

你可以打开上面的css看下它都定义了字体名。

一些使用心得

NerdFont只是字体,你只要把图标的unicode码放塞在文字里就可以用。

Vue
<span> Web</span>
Vue
<span>
    <font-awesome-icon :icon="['fas', 'tag']" />
    Web
</span>

可以直接以文字的方式表示。这不仅可以直接在ide里预览,可读性比fa更好,同时对于不方便传递组件的场景非常有用。

WARNING

NerdFont图标集更偏向于编程领域,对于生活类图标可能没有fa那么丰富。

NerdFont只是字体,在某些情况下css表现和svg略有不同。

9faa0fe
Post.vue
utf-8
TOP
1:1