refactor(client): 抽公用 PangolinFieldBox 统一输入框 + 根治填充两色接缝

根因:主题 inputDecorationTheme 设了 filled:true/fillColor:bg,自定义容器里嵌
TextField 时内层自铺 bg 底,与容器底色(搜索框 bgSubtle / 登录 surface)不一致 →
两端一色中间另一色接缝(节点搜索框最明显,登录/兑换框也有隐患)。

- kBareInput 加 filled:false:内层 TextField 不再自铺底,底色统一交给外层容器。
- 新增 widgets/pangolin_field.dart:PangolinFieldBox(圆角容器 + 底色 + 可选描边/
  聚焦光环 + 标签 + 前置图标 + 后置 widget)+ bareInputDecoration() 助手。
- 三处输入框统一改用:节点搜索框、登录/注册字段(_field)、兑换码输入框。
- 重生成 auth_login(dark/light)+ desktop_redeem golden(均人工核对外观正确)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-29 12:29:53 +08:00
parent ccb7a9bfe7
commit 6249d5b2ea
8 changed files with 115 additions and 50 deletions
+4 -2
View File
@@ -33,10 +33,12 @@ export 'pangolin_tokens.gen.dart';
/// (登录/注册的邮箱·密码·验证码、节点页搜索框聚焦时左右各缺一截即此因)。
/// 聚焦指示交给外层容器自己负责(如 [Border.all(accent)])。
///
/// 注意:只压边框、不动 `filled`/`fillColor`——未聚焦态外观与改前完全一致(不动 golden),
/// 漏出的橙框只来自 `focusedBorder`(未聚焦态早已解析为无边框)。
/// `filled: false`:同时关掉主题的 `filled:true / fillColor:bg`。否则内层 TextField
/// 会用 `bg` 自铺一层底,与外层容器底色(如搜索框 `bgSubtle`)不一致——图标与左右
/// 内边距露出容器色、中间是 `bg`,出现两端一色中间另一色的接缝。底色统一交给外层容器。
const InputDecoration kBareInput = InputDecoration(
isCollapsed: true,
filled: false,
border: InputBorder.none,
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,