# 设计原则

## 强调靠墨色，不靠颜色（§2）
- 好：一处只有一个实心按钮，用墨色（或主色）。
```html
<button class="xxd-btn" data-variant="primary">写入 X</button><button class="xxd-btn">保存草稿</button>
```
- 不好：每个按钮一种颜色：颜色失去了意义，强调也没了。

## 颜色只表意义：绿色只表示完成（§2）
- 好：完成的才是绿色，其余是中性灰。
```html
<span class="xxd-badge" data-tone="success">已写入</span><span class="xxd-badge">草稿</span>
```
- 不好：装饰性的绿色，让「完成」不再可信。

## 默认直角；语义上的圆永远是圆（§3）
- 好：矩形跟着圆角开关；单选、状态点、头像永远是圆。
```html
<button class="xxd-btn">保存</button><label class="xxd-choice"><input type="radio" class="xxd-radio" checked>单选</label><span class="xxd-dot" data-tone="success"></span>
```
- 不好：直角模式下的胶囊按钮、方形单选：语义被打乱。

## 一个框只有一个框（§4）
- 好：聚焦时边框变深一次就够。
```html
<input class="xxd-input" aria-label="示例输入框" style="width:200px;border-color:color-mix(in srgb,var(--action) 70%,var(--line-strong))" value="聚焦时边框变深">
```
- 不好：外面一圈光、里面一层框：框里套框。

## 一组选项是一个列表，不是一叠盒子（§4）
- 好：只在行之间画线，首行上、末行下不画。
```html
<ul class="xxd-list xxd-group__body" style="width:220px"><li class="xxd-list__item">长文发布</li><li class="xxd-list__item">批量存图</li><li class="xxd-list__item">今日待办</li></ul>
```
- 不好：每项一个盒子：线比内容还多。

## 卡片、行、按钮没有阴影（§5）
- 好：卡片靠一条细线分开；阴影只给浮起来的东西。
```html
<div class="xxd-card" style="width:180px"><div class="xxd-card__body"><p class="xxd-card__title">编辑式海报</p><span class="xxd-card__meta">xxd-panel-001</span></div></div>
```
- 不好：卡片也浮起来，浮层就分不出来了。

## 选中改颜色，不加粗（§6）
- 好：选中只改颜色和下划线，字宽不变。
```html
<div class="xxd-tabs" role="tablist" aria-label="示例" data-xxd-tabs style="width:220px"><button role="tab" aria-selected="true">写作</button><button role="tab">记录</button><button role="tab">设置</button></div>
```
- 不好：加粗让字变宽，旁边的 tab 跟着跳。

## 相关的字靠得更近（§6）
- 好：说明紧贴标题，两组之间空得多。
```html
<div style="display:grid;gap:20px;width:220px"><div class="xxd-text-pair"><b class="xxd-text" data-variant="heading3">圆角</b><span class="xxd-text" data-variant="caption">关闭时为直角</span></div><div class="xxd-text-pair"><b class="xxd-text" data-variant="heading3">主色</b><span class="xxd-text" data-variant="caption">按钮和选中用这个颜色</span></div></div>
```
- 不好：间距都一样：分不清哪句说明属于哪个标题。

## 分段控件：一个托盘，选中的像纸一样浮出（§4）
- 好：托盘没有边，选中段是纸。
```html
<div class="xxd-segmented" role="radiogroup" aria-label="类型" data-xxd-segmented><button role="radio" aria-checked="true">文本</button><button role="radio" aria-checked="false">图片</button><button role="radio" aria-checked="false">视频</button></div>
```
- 不好：托盘有框、选中段也有框：框里套框。

## 对话框：取消在前、安静；主操作最后（§10）
- 好：取消是内容宽度的安静按钮；主操作是最右的那个承诺，文字说清会发生什么。
```html
<div class="xxd-dialog__actions" style="width:300px;padding:0"><button class="xxd-btn ui-dialog-cancel">取消</button><button class="xxd-btn" data-variant="primary">写入为新文章</button></div>
```
- 不好：两个一样重的按钮，取消在最右，「确定」不知道确定什么。

## 图标：1.5 线宽、方角、斜接（§7）
- 好：直线和方角，只有本身是圆的才画圆。
```html
<i data-xxd-icon="Image" data-size="28"></i><i data-xxd-icon="Folder" data-size="28"></i><i data-xxd-icon="Settings" data-size="28"></i>
```
- 不好：粗线、圆角矩形、实心填充：和整套界面不是一个画法。

## 同心圆角：外 = 内 + 间距（§7½）
- 好：内圆角 = 外圆角 − 间距，弧线平行。
```html
<div class="xxd-concentric" style="--pad:6px;border:1px solid var(--line-strong);background:var(--wash)"><button class="xxd-btn">同心</button></div>
```
- 不好：内外一样的圆角：角上一边厚一边薄。

## 按钮文字说下一次点击会做什么（§9）
- 好：动词 + 对象，点之前就知道结果。
```html
<button class="xxd-btn" data-variant="primary">复制 24 个链接</button><button class="xxd-btn">改为新建一篇</button>
```
- 不好：「确定」「操作」：要先读上下文才知道会发生什么。
