Appearance
系统组件留白与区域分配
参考图的使用范围
仓库中的五张参考图是原始 PNG,文件尺寸均为 1368 × 2432 像素。Read Pico 的竖屏基准画布为 684 × 1216 物理像素;这组图按宽、高各 2 倍导出。只在读取原始 PNG 文件的像素坐标时,将 x、y、宽、高分别除以 2:例如原图中的矩形 (200, 400, 96, 80) 对应基准画布的 (100, 200, 48, 40)。
聊天窗口、浏览器或文档页面可能再次缩放图片;屏幕上看到的显示尺寸不是原始 PNG 像素,不能直接套用“除以 2”。量取位置时应打开原始文件并以它的像素坐标为准。此换算只统一计量单位,不要求逐像素照搬参考图;本页的布局数值仍按组件约束和可用空间计算。
图中可参考的结构包括:统一左右内容线、当前阅读与最近阅读之间的分组留白、独立排序行、固定宫格单元、整行设置项、底部分页区域,以及少量内容下方的整片空白。本文推荐值是按既有 Token 和可用空间重新计算的布局例子,不宣称已逐像素复原截图。
封面灰底、小字、标题字重和分隔线仍按视觉规范及分隔线例外评审。参考图中的“会员”、应用名、开关和排序项只表达界面结构,不证明产品功能已实现。
区域与留白的职责
| 概念 | 含义 | 负责方 |
|---|---|---|
| 系统保留区 | 系统栏及其独占交互范围 | 系统 |
| 应用画布 | 系统分配的完整绘制矩形 | 系统分配,应用绘制 |
| 页面外留白 | 内容线与系统交互区之间的页面布局空间 | 应用布局或系统页面容器 |
| 组件内留白 | 图标、文字、控件与组件边界之间的距离 | 组件 |
| 组件间距 | 两个同层组件之间的间隔 | 父容器 |
| 内容组间距 | 两个不同信息组之间的间隔 | 页面布局 |
| 容量余量 | 为完整条目、行高或固定槽位留下的剩余空白 | 排版结果 |
同一段间距只由一处管理。例如标题容器已提供 16 px 到内容的间隔,内容容器不要再添加同名的 16 px。组件报告自身完整尺寸,父容器据此计算分页,不只报告图标或文字的可见尺寸。
留白以布局框之间的距离计算。字体字面与行框、图标路径与图标槽位之间还可能有内部空白;不能通过裁掉行高或放大图标来强行消除它们。
三栏齐全时建议内容区仍为 (36, 120, 612, 1000),系统几何见系统栏与应用画布。应用画布从 y=104 开始,建议内容从 y=120 开始;底部内容止于 y=1120,为系统底栏热区留出空间。这里的上下留白不改变系统分配的画布,也不在屏幕底部再次叠加安全区。
推荐留白表(补充建议)
以下数值用于常规组件,实际排版可按字号、内容与系统返回区域调整。动态均分所得的列宽、间距和余量可以是其他整数,不把它们新增为全局 Token。
| 场景 | 推荐值 | 使用说明 |
|---|---|---|
| 正文内容线 | 左右各 36 px | 页面容器提供;子组件不重复扣减 |
| 组内主标签与副信息 | 8–12 px | 相同信息组保持关联,不随页面高度拉大 |
| 图标与标签 | 12–16 px(上下)、24–32 px(左右) | 使用统一槽位,避免每行文字起点漂移 |
| 列表行内上下留白 | 各 16–24 px | 与文字行高共同决定完整行高 |
| 普通内容组之间 | 24–32 px | 不同时叠加两个容器的边距 |
| 大区块之间 | 48–64 px | 只用于明显分组,不在每条列表项间使用 |
| 工具 / 排序行到列表或宫格 | 24 px 起 | 工具行自身热区另算,不能只看文字高度 |
| 宫格列间距 | 默认 24 px,或按封面尺寸动态计算 | 同页一致,余数差不超过 1 px |
| 宫格行间距 | 24–32 px | 单元内部图标与名称的间隔另算 |
| 内容到分页控件 | 16–32 px | 先给分页控件预留完整槽位 |
| 小组件标题到内容 | 16 px | 沿用宿主基准布局,不由小组件再加一次 |
标题栏后默认按建议内容区保留 16 px。页面需要额外呼吸空间时,可在内容区内选择 24 或 48 px 的顶部留白;这应参与容量计算,而不是把所有应用的系统画布整体下移。
设置行与分页列表
参考图 4 和图 5 展示同一设置列表语言:有图标时,主标签使用统一的文字起点;无图标的详情页从 x=36 内容线开始。尾部箭头、开关或当前值靠右对齐,并给标签保留明确的宽度。
Read Pico 当前设置根页与阅读设置页的行槽均为 96 px,高度之外另留 16 px 项间距,因此相邻行起点相距 112 px。其他列表仍应按字形与内容计算完整行高,不把这一组坐标推广为所有 PagedList 的固定值。
| 部分 | Read Pico 当前设置行布局 |
|---|---|
| 根页前导图标 | 48 × 48 px,行内垂直居中,左边沿 x=36 |
| 图标到主文字 | 36 px;主文字从 x=120 开始 |
| 主标签 | 36 px、44 px 行框、Medium 500 |
| 根页副信息 | 24 px、32 px 行框、Regular 400 |
| 主副信息位置 | 两行分别从行顶 8 px 和 54 px 开始,两个行框之间留 2 px |
| 阅读设置尾部箭头 | 36 × 36 px,左边沿 x=612;根页分类行没有该箭头 |
根页行从 x=36 到 x=648,前导图标占 x=36…84,文字从 x=120 开始;当前绘制给文字组 457 px 宽,不能把“图标到文字 36 px”误算成旧示例的 32 px。阅读设置二级页没有前导图标,文字从 x=36 开始,尾部箭头另占 x=612…648;长标签须在中间剩余宽度内处理。
根页有副信息时,主标签行框覆盖行内 y=8…52,副信息行框覆盖 y=54…86,行内最后留 10 px。只有主标签时,它从行顶 30 px 开始。两种条目均保持 96 px 行槽与 16 px 项间距,不因内容少就把条目拉散。
图 5 只有三个条目,保持正常行高并从上向下排列,剩余空间留白;不要把三项均匀分散到整屏,不把最后一项推到页面底端。可交互的整行区域包含其内留白;列表结束后的空白不成为最后一项的热区。
宫格、排序与分页区域
图 2 和图 3 都将排序行、内容宫格、分页控件分开。建议先分配这些区域,再计算完整行数;不能先塞入宫格,最后把页码压进底栏或临时缩小字号。
图标宫格示例(补充建议)
完整 612 px 宽度、3 列、列间距 24 时,每列宽 188 px。每个单元中的图标与名称共同居中,名称预留最多两行的统一高度,不能因单行名称较短就把同页的图标中心移位。
下面是一种能容纳 3×4 的区域分配,数值是布局推导结果:
| 区域 | y 范围 | 高度 |
|---|---|---|
| 排序工具行 | 120…168 | 48 |
| 工具行后间隔 | 168…192 | 24 |
| 图标宫格 | 192…1024 | 832 |
| 宫格后间隔 | 1024…1040 | 16 |
| 可点击分页控件 | 1040…1120 | 80 |
宫格按 4 行、行间距 32 分配,单元高为 (832 − 3 × 32) / 4 = 184 px。示例内容可采用 64 px 图标槽、12 px 图文间距、两行 32 px 名称行高、上下各 16 px 内留白,总需 172 px;剩余 12 px 在单元内分配。64 px 图标只是宫格示例,不改变 App Bar 与底栏的 48 px 图标规范。
长名称、字号放大或不同字体导致单元放不下时,减少完整行数并重新分页;不得裁掉第二行或侵入分页区域。
封面宫格示例(补充建议)
为保留图 2 的三列封面与较宽列间留白,可采用 170 px 宽封面槽,列间距为 (612 − 3 × 170) / 2 = 51 px,槽左边缘为 x=36、257、478。51 px 是此布局的动态计算结果,不是新的通用间距 Token。
一个完整 3×3 页可分配为:排序行 48、间隔 24、封面宫格 808、间隔 32、分页区 80、末尾余量 8,总计 1000 px。宫格行间距 32 时,槽高为 (808 − 2 × 32) / 3 = 248 px。
因此宫格从 y=192 到 1000,分页区从 y=1032 到 1112,末尾余量到 1120。封面在 170×248 槽内按比例完整适配;这是容器尺寸,不要求把所有封面拉伸成同一个比例。不能在此尺寸上再机械增加“3×4 第四行”。
分页控件的留白
纯圆点属于非交互指示器,可按原规范预留较小槽位。图 2 和图 3 的“上一页 / 当前页 / 下一页”包含可点击箭头,建议预留完整 80 px 高的交互槽;箭头可见框和页码在槽内对齐,左右按钮热区不覆盖页码或相互重叠。
80 px 已包含上下热区,不在它外面再重复加一个 80 px。组件只占据自己的分页区域,不能侵入 y=1120 起的系统底栏保留区。单页隐藏指示器时可回收它的槽位,但应重新计算本页容量,不能把既有内容随意拉伸填满。
当前阅读与首页小组件
首页沿用首页与小组件中的基准分区:当前阅读高 300、区块间隔 24、小组件标题行高 48、标题到内容间隔 16、小组件内容高 600。
当前阅读内部可采用 170 px 封面槽、48 px 图文间隔、394 px 文字组,合计 612 px。封面按比例完整适配,在 300 px 高度内居中;文字组按“书名 / 作者 / 阅读进度 / 元信息 / 操作提示”组织,组内优先 8–16 px,书名可用 12–24 px 与其他信息区分。标题变为两行时先重算总高度,必要时减少非必要摘要或进入详情。
这里的 48 px 图文间隔是新增推荐,不等同于原 CSS 的 72 px 历史数值。需要其他值时记录理由并计算文字剩余宽度,不凭截图估算硬编码更宽文字框。
宿主已经提供左右 36 px 外边距,小组件的本地宽度是 612 px。标题行的内留白由宿主管理;小组件不再添加统一的 36 px 边距。内部确需留白时,根据自身内容采用 8–24 px,并报告完整尺寸。
图 1 中连续的最近阅读条目可以优先使用 24–32 px 的条目间隔。确有必要使用分隔线时,按有限例外评审,线本身不替代文字组之间的留白,也不改变小组件的 600 px 固定内容高度。
菜单、空状态与容量余量
底部菜单仍最多占屏幕下半部,高度不超过 608 px。建议上下内留白各 16 px;已有底部 16 px 计入菜单容器,不再加一层。按完整条目、条目间距和操作槽计算菜单高度;放不下时分页或进入独立设置页。
空、加载、错误状态放在预先分配的内容区内,可在自身区域居中或沿原内容线排布。建议保留稳定的标题、提示与一个后续动作;不能因为内容变少把控件推入系统保留区,也不通过放大留白把三个状态元素散布到整屏。
剩余空间是完整分页的合法结果。除非明确选择有一致规则的宫格均分,不使用整屏 space-between 拉开正文组内间距;不要用占位卡片、装饰线或循环动画填补空白。
留白与热区验收(补充建议)
- 同一间隔只有一个管理方,未重复添加页面、宿主与组件的边距。
- 每个布局计算都包括工具行、完整组件、间距、分页槽和余量。
- 图标槽、文字行框与命中区分别记录,未用裁字或缩放来消除内部空白。
- 同组文字保持关联;少量条目从上向下排列,下方空白保持非交互。
- 宫格名称多行时同页高度一致;封面比例、字号和热区均完整。
- 分页热区包含在自己的槽位内,未侵占系统底栏或其他按钮。
- 字号放大、无副信息、末页变短和隐藏分页指示器后重新计算容量。
- 参考图换算使用原始 2 倍尺寸,新增推荐值未冒充截图精确测量或实机结果。
参考图
以下原图保持原始像素内容。展示尺寸由浏览器缩放,规范计算以基准画布为准。
图 1:首页——阅读信息分组与宿主小组件

图 2:书库——排序行、封面宫格与独立分页区

图 3:应用——图标名称单元与宫格行距

图 4:设置——图文对齐与完整行槽

图 5:阅读设置——少量条目与下方空白
