Skip to content

样式指南

本文档定义了 Birdpaper UI 的样式规范,涵盖字体、尺寸、圆角、阴影、间距、动效等基础 Token,确保组件间的视觉一致性。所有 Token 均以 CSS 变量形式提供,支持主题定制和深色模式适配。


字体

字体族

css
font-family: Inter, -apple-system, BlinkMacSystemFont, PingFang SC,
  Hiragino Sans GB, Noto Sans, Microsoft YaHei,
  Helvetica Neue, Helvetica, Arial, sans-serif;

优先使用系统字体栈(System Font Stack),保证各平台最佳的渲染效果和加载性能。西文优先使用 Inter,中文回退到各平台原生字体(PingFang SC / Noto Sans / Microsoft YaHei)。

字号

字号体系提供 4 个层级,覆盖从辅助文本到大标题的完整场景。

辅助文本12px1.4注释、时间戳、标签
正文 / 表单14px1.6段落、表单、表格内容
小标题16px1.5卡片标题、区块标题
大标题20px1.4页面标题、弹窗标题

提示:正文统一使用 14px,避免在同一页面混用过多字号层级。

字重

Regular400正文、描述文本
Medium500标题、强调文本
Semibold600大标题、关键信息

提示:Regular(400)为默认字重,Medium(500)用于小标题和强调,Semibold(600)仅用于页面级标题和关键信息,避免过度使用。


尺寸

组件提供 4 级尺寸体系,影响高度、字号、水平内边距和圆角。Button、Input、Select 等表单类组件均遵循此规范。

Mini--bp-size-height-mini22px12px10px3px
Small--bp-size-height-small28px13px14px4px
Default--bp-size-height-default32px14px20px6px
Large--bp-size-height-large36px14px26px8px

指南:同一表单区域内统一使用同一尺寸;Mini 适用于紧凑型表格操作列,Large 适用于独立的主操作按钮。


圆角

圆角与尺寸体系联动,不同尺寸的组件使用对应的圆角值,保持视觉节奏一致。

小圆角3pxMini 尺寸组件
默认圆角6pxDefault 尺寸组件
大圆角8pxLarge 尺寸组件、卡片、弹层
全圆角40pxPill 形按钮、胶囊标签

指南:卡片和弹层统一使用 8px 大圆角;Pill 形元素(如胶囊标签)使用 40px 全圆角;不要在同一页面混用多种圆角值。


阴影

分层级的阴影体系,用于表达元素的空间层级关系。

浅阴影0 2px 8px rgba(0, 0, 0, 0.06)卡片 hover 态
默认阴影0 4px 12px rgba(0, 0, 0, 0.1)弹出层、气泡
深阴影0 4px 16px rgba(0, 0, 0, 0.15)浮层、下拉菜单

指南:hover 态使用浅阴影,弹出层使用默认阴影,浮层使用深阴影;阴影层级应与 z-index 层级对应,越高层级使用越深的阴影。


间距

基于 4px 网格的间距体系,确保元素间的空间关系可预测、可复用。

紧凑4px图标与文字间距
小间距8px表单项内部
中间距12px列表项间距
默认间距16px区块间距
大间距24px页面区域间距

指南:优先使用预设间距 Token,避免随意使用非标值;紧凑(4px)仅用于图标与文字等紧邻元素;页面区域间使用大间距(24px)分隔。


边框

统一的边框规范,确保输入框、分割线、状态反馈的视觉一致性。

输入框、分割线1px solid var(--bp-gray-2)
聚焦态1px solid var(--bp-primary-6)
错误态1px solid var(--bp-danger-6)
禁用态1px solid var(--bp-gray-3)

指南:边框颜色使用语义化 CSS 变量,深色模式下自动适配;聚焦态边框颜色与品牌色一致;仅在表单校验失败时使用危险色边框。


层级 (z-index)

使用 CSS 变量统一管理 z-index,避免硬编码数值导致的层叠冲突。

--z-index-base2000Trigger、Tooltip
--z-index-modal2000Modal 对话框
--z-index-drawer2001Drawer 抽屉
--z-index-message2003Message 消息提示

指南:业务侧如需自定义层级,建议基于 --z-index-base 做偏移(如 calc(var(--z-index-base) + 10)),避免直接使用魔数。


动效

统一的过渡时间和缓动函数,确保交互反馈的节奏感一致。

颜色 / 透明度变化0.2sease
弹出 / 收起0.25sease-in-out
布局变化0.3sease
加载旋转1.2slinear (infinite)

指南:弹出类动效使用 ease-in-out(先慢后快再慢),消隐类动效使用 ease(自然减速);避免使用超过 0.3s 的过渡时长,保持界面响应感。