8000 refactor: 设置卡片缩进归外壳、行节奏归列表 by qqqqqf-q · Pull Request #44 · felinics/ui · GitHub
[go: up one dir, main page]

Skip to content

refactor: 设置卡片缩进归外壳、行节奏归列表 - #44

Merged
qqqqqf-q merged 2 commits into
mainfrom
refactor/memoh-269-settings-card-responsibilities
Nov 6, 2026
Merged

qqqqqf-q merged 2 commits into
mainfrom
refactor/memoh-269-settings-card-responsibilities

Conversation

@qqqqqf-q
@qqqqqf-q qqqqqf-q commented Nov 5, 2026 •
Copy link
Copy Markdown
Member

Summary

设置卡片里的左右 16px 缩进原先写在每一行上:SettingsRow、ExpandableSettingsRow、InlineLoadingRow card-row、ModelListRow 各自带 mx-4,卡片本身不留边。因此:

  • 行一旦放到卡片之外(例如弹窗正文),就会比弹窗里的其他内容多缩进 16px。外观设置的 Advanced 弹窗和 Bot 网络的 Advanced 弹窗都有这个问题。
  • 调用方想用 mx-0 覆盖也不生效。Tailwind v4 按样式表顺序而不是 class 顺序决定冲突结果,mx-0 排在 mx-4 之前,会被静默覆盖。
  • 卡片里的非行内容(段落、表格、图表、分页条)只能各自手写 px-4,宿主页面里有约 30 处这样的写法。

本 PR 按层重新划分职责:

层 负责
卡片外壳(SettingsSection) 左右留白,新 token --settings-inset(16px)
列表(卡片本身,或新增的 SettingsList) 行高、上下内边距、行间细线。规则写在 style.css 的 @layer components,按 [data-settings-list] [data-settings-row] 挂载
行(SettingsRow 等) 只声明 data-settings-row,只排内容
需要贴边的内容(新增 SettingsBleed) 以同一个 token 反向拉出,用于整行点击目标、表格、画布、满宽分页条

改动明细:

  • SettingsSection:卡片加 px-(--settings-inset) 和 data-settings-list;#footer 细线不再自带 mx-4。
  • SettingsSection #actions:组件把工具区包成一个靠右的 gap-2 按钮组。原先多个按钮会被 justify-between 摊开,例如 Import Models 漂在标题和 Add Model 中间;无标题时单个按钮会靠左。
  • SettingsRow、ExpandableSettingsRow、InlineLoadingRow surface="card-row":去掉 mx-4、border-b、行高,改为声明 data-settings-row;:divider="false" 通过 data-divider="false" 交给列表规则处理。
  • ModelListRow:按钮包进 SettingsBleed,悬停底色仍横跨整卡;文字用 px-(--settings-inset) 补回对齐。因为贴边依赖卡片提供的缩进,它只能放在设置卡片里,文档与注释已注明。
  • DetailPane 骨架屏随之去掉手写缩进;SurfaceCard 只更新了 padding 的说明。
  • 新增 SettingsList、SettingsBleed,从 settings barrel 导出。
  • 文档:AGENTS.md 归属表补充行节奏的例外说明;skills/ui-owners 更新 SettingsRow 几何、新原语与选型表;skills/ui-patterns 更新间距阶梯、分割线、折叠行示例与降级对照表。

宿主侧的迁移在 Memoh PR(见下),本 PR 需要先合并。

Related

Validation

以下为 Agent 自检,不是真人 QA。

  • pnpm type-check(vue-tsc --build)通过。
  • Memoh 主仓 scripts/check-ui-contract.mjs 通过,3 条警告改动前就已存在。
  • 在 Memoh 宿主中用 Playwright 对设置相关页面做改动前后截图对比(浅色、深色各一遍,pixelmatch 逐像素),覆盖设置各页、服务商详情、Bot 详情全部标签页、压缩日志弹窗与网络 Advanced 弹窗。差异只出现在预期位置,详见 Memoh PR。
  • showcase 的 SettingsPageExample 与 ControlsPanel 只组合 SettingsSection + SettingsRow,与宿主中已验证的组合相同,未单独启动 showcase 截图。

Screenshots

外观 Advanced 弹窗(左为 main,右为本 PR):

外观 Advanced 弹窗改动前后

宿主组件墙上的两个新原语(浅色、深色):

SettingsList 与 SettingsBleed 示例

Human QA

  • Human QA passed

卡片内的左右 16px 缩进原先写在每一行上(SettingsRow、ExpandableSettingsRow、
InlineLoadingRow card-row、ModelListRow 各自带 mx-4),卡片本身不留边。行一旦
放到卡片之外(例如弹窗正文)就多缩进一截;调用方用 mx-0 覆盖也不生效,因为
Tailwind v4 按样式表顺序而不是 class 顺序决定冲突结果。

职责重新划分:
- SettingsSection 卡片以新 token --settings-inset(16px)统一提供左右留白;
- 行节奏(行高、上下内边距、行间细线)由列表提供,规则写在 style.css 的
  @layer components,按 [data-settings-list] [data-settings-row] 挂载;
- 行只声明 data-settings-row,只排内容;
- 新增 SettingsList:卡片之外的一组行,只提供行节奏;
- 新增 SettingsBleed:卡片内需要贴边的内容(整行点击目标、表格、画布、
  满宽分页条)以同一个 token 反向拉出。

同时修正 SettingsSection #actions:组件把工具区包成一个靠右的按钮组。原先
多个按钮会被 justify-between 摊开,无标题时单个按钮靠左。

文档同步:AGENTS.md 归属表与例外说明,ui-owners 的 SettingsRow 几何、新原语
与选型表,ui-patterns 的间距阶梯、分割线、折叠行示例与降级对照表。

Linear: MEMOH-269
@chatgpt-codex-connector
chatgpt-codex-connector Bot commented Nov 5, 2026 •
Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-05T07:59:20.951474Z 7ffc481 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

- 行节奏对卡片内任意层级的行生效,不限于直接子元素。
- ModelListRow 的整行按钮经 SettingsBleed 贴边,只能放在设置卡片里。
- 宿主侧的转发文件已不存在,来源路径改为 formerly。
@qqqqqf-q
qqqqqf-q merged commit 13b5a16 into main Nov 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0