Tree:
c3a3fa0eac
master
${ noResults }
2 Commits (c3a3fa0eac13509d01137045900817ce04ec0e14)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
c3a3fa0eac |
style: 全站卡片圆角统一 8px 并去除卡片阴影
依据 AGENTS.md 于 2026-09-20 14:12 新增的硬规则「整个项目所有卡片的圆角都必须是
8px,无阴影」,改造 147 处卡片圆角、删除 54 行卡片阴影。同一次 AGENTS.md 编辑还把
提交规则由「每天 17:50 提交」改为「提交并推送到远端」,本次 17:50 动作按新规执行
两步(commit → push),故本提交同时包含该 AGENTS.md 改动。
为什么不能直接 grep borderRadius 全量替换
项目没有「卡片」的样式键约定:同一屏内 card / box / panel / section 混用,且
cardBtn(48 高胶囊按钮)、cardTag(标签)、cardIcon(圆形图标底)共用 card 前缀。
直接全量替换会把胶囊按钮与圆形头像一并压成方角。
判定口径(本轮定义)
卡片:样式键为 card 或以 Card 结尾/内嵌;另经逐条读块复核,纳入 17 个非 card 命名
的「独立承载一组内容的面板」(emptyBox / emptyList / emptyHint / searchEmpty /
pathSummary / section / cardBase / cardOffer / salaryBox / draftBanner /
matchBox / aiTip)。
非卡片:CardBtn|CardBullet|CardDot|CardBadge|CardIcon|CardWrap|CardTag|CardChip,
以及按钮、标签、chip、输入框、Tab 项、列表行(row / *Item)、头像与圆点。
圆/胶囊排除:半径 × 2 ≥ min(字面量宽, 字面量高) 时判为圆或胶囊,不动
(如 cardBtn 48 高/r24、radioOuter 18×18/r9、countdownCard 60×60/r30、
Holland 结果页类型序号圆标)。
改动规模(git diff 实测)
圆角改为 8:147 处,分布 50 个 .tsx/.ts
删除阴影行(shadowColor/Offset/Opacity/Radius、elevation):54 行,7 个文件
其中 app/jobs/[id].tsx 删除模块级 const shadow 常量及其 ...shadow 展开点(共 7 行)
卡片类样式 167 个,其中仍非 8px:0
审计脚本自身的两个缺陷(差点改错别人的圆角,已在文档中如实记录)
① 单行样式块(modalCard: { …, borderRadius: 16, … },)被当普通块解析,会把下一个
样式块的值算作它自己的 —— 不是漏改,是取到邻居半径然后改到邻居头上。
② shadowOffset: { width, height } 被当成元素尺寸,导致所有带阴影的卡片都被判为
胶囊而整类静默跳过(带阴影的恰是最该改的)。
两处均为静默漏判而非崩溃,故本批不采信脚本输出,改用 git diff -U0 逐行反查证明:
147 行新增半径中,130 行在 card 命名样式内、17 行在人工复核白名单内、0 行在名单外。
范围边界(刻意不动,非遗漏)
components/onboarding/ui/SliderCaptcha.tsx:294-297 滑块阴影保留(控件非卡片,
去阴影会使滑块与轨道糊在一起);src/theme/colors.ts 的 shadow token 保留
(colors.test.ts:11 仍断言)。全库 elevation:/shadowOpacity: 现仅此一处。
另有 116 条「像卡片但不叫 card」的样式未动,逐类看过几乎全是按钮/标签/chip/输入框/
Tab/列表行/头像底,压成 8px 反而是错的 —— 这是本轮口径的边界,不是余数。
回归锁
新增 0 例测试;本批为纯样式常量改动,不改变任何数据逻辑,靠既有 365 例与新立的
圆角审计脚本(167 个卡片类样式非 8px = 0)看守。
真机实测(Android 模拟器 emulator-5554,截图核对,非代码走查)
jobs 列表、jobs/1 详情、profile 求职端、enterprise-overview(本轮删除阴影最多的页面,
4 张卡 15 行)| job-publish | tools/skill-cloud | holland-result | resume/export
—— 均确认 8px 直角、无阴影,且内部胶囊标签与圆形序号标未被误伤,
白底卡片与 pageBg #F6F8F9 仍可区分、未塌成一片。
未实测(仅代码级验证):components/resume/EditKit.tsx、components/onboarding/ui/
Modal.tsx、components/onboarding/screens/P3Identity.tsx、LegalDocScreen
—— 嵌在弹层/引导流/长文档中,深链直达需先走完前置流程。
已知缝隙
「8px」目前仍是各 StyleSheet 里的字面量,未如颜色那样收敛为 theme 常量,
新增卡片没有强制来源。是否立 theme 层面的圆角 token,留待下一批定夺。
门槛:npx tsc --noEmit 0 错误 · npx eslint . 0 error/0 warning · npm test 26 套件
365 例全绿 · node scripts/check-routes.mjs 0 失效跳转 · npm run check:affordances 0 处 ·
npm run check:icons 0 处无效字形(194 文件 / 1357 字形) ·
node scripts/check-backend-stubs.mjs 140 个接口函数 · git diff --check 通过
|
1 month ago |
|
|
00522d53f9 |
feat: 死控件清零并修复一键登录取号、重做引导页
一键登录(P2Q)取不到手机号的根因不在取号:页面读的是 data.phone,而该字段 只有短信通道才写入,且 loginByCarrier 返回的 phone 被直接丢弃,于是号码位恒为 占位「本机号码」。现改为进页面即预取(useCarrierPhone + fetchCarrierPhone), 失败时置灰按钮并给出「重新获取 / 改用验证码登录」,成功后把号码写回引导资料 (P2P/P2R 预填与 B3 联系人电话同源)。真实取号是运营商原生 SDK,Expo Go 跑不了, 接入路线图见新增文档《运营商一键登录接入方案.md》。 引导页重做四屏内容与配图,配图位走新增组件 ImageSlot:素材未到位时在页面上标注 「配图待补」+ 该放什么图,补图只改 assets.ts 的 source 一行;设置页补「查看引导页」 入口(此前只有首次启动能进,看过一次就再也进不去),并区分「首次启动」与 「已登录回顾」两种出口,避免把已登录用户甩回注册流程。 企业沟通 / 人才推荐两页的 Tab 与搜索真正生效:Tab 计数与待办数量改由列表推导 (原先写死的数字与示例数据对不上,会出现「Tab 写 3、列表 0 条」),无对应页面的 漏斗图标摘除,筛选复位不再只是弹提示;申诉举证接真实选图,候选人详情「发起沟通」 跳会话页,面试评分支持本地草稿与恢复,入职清单勾选落库并可增删自定义待办、导出文本, 薪资计算器「更多工具」改指真实路由(原先三项都指回自己),技能词云接搜索与学习路径生成。 测试新增 3 个文件 51 例(共 219 例全绿),存储 mock 由「恒返回 null」改为带状态 Map, 使「存了要能读回来」这类行为真正被验证;tsc / eslint / 三个审计脚本(0 失效跳转、 0 死控件、137 个接口预留)均 0 问题。 另:package-lock.json(本项目统一用 yarn.lock)与本地调试截图加入 .gitignore。 |
1 month ago |