# pivcss-icons（可选包）

> **不进** `pivcss.css`。CSS `mask` + `currentColor` · 默认字形来自 [Font Awesome Free Solid](https://fontawesome.com/search?ic=free-collection)。

## v0.6 · Solid + Brands

| 项 | 说明 |
|----|------|
| 来源 | `@fortawesome/fontawesome-free` **solid**（约 1400）+ **brands**（约 495） |
| 品牌 | 微信 `weixin`、QQ `qq`、支付宝 `alipay`、微博 `weibo`、知乎 `zhihu`、B站 `bilibili`… |
| 别名 | `wechat`→`weixin`、`twitter`→`x-twitter` |
| 分类 | 品牌图标归入侧边栏 **品牌社交** |

**字重说明：** Free 集只有 Solid 字形；`thin/light/regular/bold/solid` 修饰符均可写，但 **mask 同源**（与 FA 官网 Free 一致）。要真·Classic 多线宽需 Pro 或自绘 stroke 版。

### 用法

```html
<span class="pvs-icon pvs-icon-house pvs-icon--lg" aria-hidden="true"></span>
<span class="pvs-icon pvs-icon--solid pvs-icon-0 pvs-icon--xl" aria-hidden="true"></span>
<!-- 旧名仍可用 -->
<span class="pvs-icon pvs-icon-home" aria-hidden="true"></span>
```

## 文件 SSOT

| 文件 | 职责 |
|------|------|
| `icons.manifest.mjs` | **生成物** · FA path + viewBox |
| `icons.fa-aliases.mjs` | 旧类名 → FA slug |
| `icons.foundation.mjs` | 字重/尺寸/族定义 |
| `icons.solids.mjs` | 手写 solid 覆盖（FA 默认可空） |
| `scripts/import_fa_free_cli.mjs` | 从 npm 包导入 |
| `scripts/build_icons_cli.mjs` | → SCSS（文件 URL）+ SVG + gallery |

## 构建

```bash
npm run pivcss-icons:import-fa   # 重导 FA Free Solid
npm run pivcss-icons:build
```

- SVG：`/static/pivcss-icons/svg/solid/{name}.svg`
- **列表** `gallery.html` — 分类 pill 筛选 + 点击弹出层
- **深链** `gallery.html#icon-0`

## 增图标

1. 优先在 [FA Free](https://fontawesome.com/search?ic=free-collection) 找同名 solid
2. 没有则：`icons.solids.mjs` 手写 + manifest 追加（`render: 'stroke'` 仍支持自绘线型）
3. `npm run pivcss-icons:build`
