Skip to content

breaking(theme): 统一 Token 并对齐 TabBar 组件 - #1146

Draft
RSS1102 wants to merge 36 commits into
developfrom
rss1102/breaking/tabbar-release-readiness
Draft

RSS1102 wants to merge 36 commits into
developfrom
rss1102/breaking/tabbar-release-readiness

Conversation

@RSS1102

@RSS1102 RSS1102 commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

🤔 这个 PR 的性质是?

勾选规则:
1.只要有新增参数,就勾选”新特性提交“
2.只修改内部bug,未新增参数,才勾选”日常 bug 修复“
3.其他选项视具体改动判断

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

关联已关闭的设计对齐 Issue #1027;Token 标准化无关联 Issue。原 #1147 的提交历史已并入本 PR。

💡 需求背景和解决方案

  • 以小程序全局 Token 的命名和默认值为基准统一 Flutter Token / Theme;圆角按已确认的全局规范为 small 3dp、default 6dp、large 9dp、extraLarge 12dp、round 999dp,radiusCircle 保留 Flutter 的 9999dp 几何表达。逐项差异见 Token Spec。
  • 组件视觉值按真实使用场景分别归于组件 Theme 的子树默认或实例样式,功能、尺寸和形态选择归于实例 API,删除同义双入口。公开字段迁移见 组件 Theme 迁移清单。Tag 的 danger、success 基础色与 success 浅色填充可分别通过组件 Theme 控制;方形 Tag 默认读取全局 radiusSmall。
  • TabBar 对齐组件布局与九个公开示例:新增 iconTextLayout: TTabBarIconTextLayout.inline(默认仍为 stacked);点击项显示“第 N 项”。移除 centerDistance、showTopBorder、topBorder、placeholder,将背景、栏高、分隔线和选中背景等视觉值交由 TTabBarThemeData 唯一控制。调用方需按迁移清单修改旧参数。
  • 本轮代码将 TText 的单实例视觉统一为 style,保留 font 作为 TDesign 字体 Token 预设,删除 fontWeight/fontFamily/textColor/isTextThrough/lineThroughColor 分散参数;子树默认仍由 TTextThemeData.textStyle 提供。SwipeCell 逐项外观归 TSwipeCellAction、Theme 只保留共享 actionPadding;builder 与全部内置视觉参数互斥,release 构建也会拒绝冲突配置,避免无效配置被静默忽略。Popup 蒙层 alpha 归颜色,动画时长归单次 Options。上述公开 API 迁移属于 breaking。本地 Flutter 3.32.0/3.47.0 组件及 Example 严格分析均 0 issue,两版相关功能测试各 249/249,3.32.0 全部非 Golden 文件 2736/2736;固定 Linux 3.32.0 临时副本中相关组件 Golden 7/7 与 Text/SwipeCell/Popup Demo 40/40 无更新通过。前一 head 8b96bb12 的远端双版本分析与功能测试、Linux Golden、APK/iOS/Web 构建、Autofix、预览及扫描均已通过;不能将其直接视为当前 head 的结果。补充的 SwipeCell 互斥修复在本地 3.32.0/3.47.0 各通过 27 项聚焦测试与严格分析,3.32.0 的组件清单测试 31/31、生产源码覆盖率 96.21%。PR 仍为 Draft;CLA 因 autofix-ci[bot] 未签署而 Pending,RSS1102 已签署。
  • AvatarGroup 依据设计稿调整全部成员的描边、阴影与内容裁剪;组内未显式设置的成员继承可见成员确定的组尺寸,隐藏成员不影响布局,公开 Demo 同步修正头像顺序、+2 与叠放方向。固定 Linux 3.32.0 的 Avatar 浅/暗 Golden 2/2 无更新通过;Flutter 3.32.0/3.47.0 的 Avatar 组件测试各 39/39、Demo 测试各 4/4,生产源码覆盖率 197/202 = 97.52%。组件回归调度器自测 19/19 已通过;当前 head 2cc14e43 的远端 CI 结果以本次运行的检查项为准。
  • 行为契约与当前范围:TabBar Spec、Token Spec、组件 Theme Spec 与差异报告、聚焦 Golden 所有权 Spec。全局 Token 216 项的静态键和值已核对;组件变量 804 项已建静态映射,但 682 项尚未完成最终绘制消费审查。TText 分散文字参数、SwipeCell 重复 Theme 字段和 Popup 透明度入口已收敛;组件变量仍有 682 项最终绘制消费待审,真实第三方调用方的 breaking 编译迁移尚未验收,不能宣称全组件 Token 或全组件 API 已验收。Golden 是当前代码的回归基线,不等同全部组件的 Figma 像素验收。

Linux / Flutter 3.32.0 公开 Demo 快照(TabBar/Tag/Text 沿用 7023eb03;Avatar 来自 0ee62d67):

页面 亮色 暗色
Avatar Avatar 亮色 Avatar 暗色
TabBar TabBar 亮色 TabBar 暗色
Tag Tag 亮色 Tag 暗色
Text Text 亮色 Text 暗色

📝 更新日志

  • breaking(theme): 调整全局语义 Token 的名称与默认颜色、字体、间距和圆角;依赖旧默认视觉或旧 Token 名称的应用需复核主题配置。

  • breaking(components): 移除多个组件实例与 Theme 的同义配置入口;现有调用须按迁移清单改为唯一实例参数或组件 Theme 字段。

  • breaking(TText): 未指定字体时,默认正文由 16dp/24dp 改为 14dp/22dp。

  • breaking(TText): 移除实例 fontWeight/fontFamily/textColor/isTextThrough/lineThroughColor;单实例文字样式改用 style: TextStyle(...),font 仍选择字体 Token 预设。

  • breaking(TTag): 调整默认填充、描边、方形圆角和关闭图标的 Token 来源;方形圆角默认读取 radiusSmall。

  • feat(TTag): 支持在组件 Theme 中分别定制 danger、success 基础色和 success 浅色填充。

  • breaking(TTabBar): 调整默认图标与项布局,移除 centerDistance、showTopBorder、topBorder、placeholder 及重复的实例视觉参数。

  • feat(TTabBar): 新增 iconTextLayout,支持图标与文字左右排列。

  • breaking(TAvatar, TPopover): 移除重复的视觉配置入口,单实例定制改用局部组件 Theme。

  • breaking(TAvatarGroup): 调整头像组默认描边、阴影及可见成员的尺寸继承;依赖旧头像缩放或描边效果的应用需复核显示。

  • breaking(TSideBar): 移除组件 Theme 的 selectedColor;改用 selectedTextStyle: TextStyle(color: ...) 统一设置选中文字、图标和指示线。

  • breaking(TSwipeCell): 移除操作项外观的重复 Theme 字段,逐项使用 TSwipeCellAction 配置;spacing 改名为 iconLabelSpacing,builder 与内置视觉参数混用会报错。

  • breaking(TPopup): 移除独立蒙层透明度和 Theme 动画时长;透明度写入颜色 alpha,动画时长使用 TPopupOptions.animationDuration。

  • 本条 PR 不需要纳入 Changelog

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项。⚠️

  • 标题遵循 Conventional Commits 格式:type(<scope>?): 修改描述。
    示例:fix(TBottomTabBar): 修复 iconText 模式底部溢出
  • “相关 Issue”处带上修复的 Issue 链接或无关联 Issue
  • 已添加对应的 Spec 链接,或已由 Review 确认本次改动无需 Spec
  • 相关文档已补充或无须补充

@github-actions

github-actions Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

完成

Web Demo

APK 下载

@RSS1102
RSS1102 marked this pull request as ready for review September 26, 2026 21:20
@RSS1102
RSS1102 marked this pull request as draft September 29, 2026 10:45
@tencent-adm

Copy link
Copy Markdown
Member

CLA assistant check
Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ RSS1102
❌ autofix-ci[bot]
You have signed the CLA already but the status is still pending? Let us recheck it.

@RSS1102 RSS1102 changed the title breaking(tabbar): 对齐组件布局与公开示例 breaking(theme): 统一 Token 并对齐 TabBar 组件 Sep 29, 2026
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.

2 participants