# Neutral（中性默认主题）

Neutral 是 astryx-vue 的默认主题。它的基调是中性黑白灰，适用于各类企业级后台、中台系统和工具型网页。

## 引入方式

只需在你的前端入口文件（如 `main.ts`）中加入这行引入：

```ts
import '@astryx-vue/themes/neutral.css'
```

这一行代码会完成这几件事：
1. **自动加载字体资源：** 加载西文字体 Figtree 与等宽代码字体 JetBrains Mono（包含 400 常规、500 中粗、600 半粗、700 加粗以及 400/600 斜体）。因为声明了 `font-synthesis: none`，所以系统严格使用真实设计的字重，不会让浏览器去硬拉变形生成伪粗体或伪斜体。
2. **引入所有组件主题样式：** 依次加载 `neutral/` 目录下的所有样式，包括全局基准 `base.css`。
3. **注入全局根节点：** 会自动将基础变量挂载在 `:root` 和 `[data-astryx-theme='neutral']` 上，因此无需任何额外配置，引入即全站生效。

## 字体回退栈（Font Stack）

- **正文与标题（Body & Heading）：**
  `--astryx-font-family-body` 和 `--astryx-font-family-heading` 优先使用 Figtree，随后按系统习惯回退：
  `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`。
- **等宽代码（Code）：**
  `--astryx-font-family-code` 和原版一样优先用系统等宽字体：
  `ui-monospace, 'SF Mono', Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`。

想换成自己的字体，覆盖上面三个变量即可；也可以不引入内置的 `fonts.css`，改用 Google Fonts 加载 Figtree，例如在 `<head>` 里放 `<link href="https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap" rel="stylesheet">`。

## 和原版设计保持一致

Neutral 的每一个颜色、圆角和阴影值都和上游 v0.7.1 的 `neutralTheme.ts` 一致：

- **色板：** 灰阶、文字、图标、边框、背景、状态色和十种分类色都取自上游审定色板（`neutralPaletteRefs.generated.ts`）。
- **直角定义 `--astryx-radius-none`：** 和上游一样是 `0px`，方形头像和骨架屏保持直角。
- **辅助文本色 `--astryx-color-text-secondary`：** 浅色 `#474747`、深色 `#9e9e9e`，与上游一致。

组件级配色不再各写一份十六进制值，而是引用语义变量（例如 `--astryx-badge-info-background` 指向上游审定的状态色）。改一个语义变量，用到它的组件会一起更新。

## 手机上字号更大

在触屏设备（粗指针）且视口窄于 `lg` 断点（1024px）时，正文字号基准从 14px 提升到 16px，字阶比例从 1.2 调整为 1.1736。这样正文够大好读，而 Display 1 仍保持桌面端的 42px。桌面端字号不受影响。

## 明暗深色模式

Neutral 在定义时就声明了 `color-scheme: light dark`。因此只要你使用 `light-dark()` 变量，它会自动跟随操作系统或文档站当前的外观切换。

如果你需要在页面的某一个特定区域固定显示深色或浅色，只需在父容器元素上添加属性 `data-astryx-color-mode="light"` 或 `"dark"`。具体说明请参阅 [深色模式指南](/guide/dark-mode)。
