OPay Android 现网 · 组件一致性治理 · 按钮

OPay 按钮一致性审查

在真机上逐页点过底部 5 个 Tab、首页全部 12 个入口、Add 充值、扫码、通知,以及交易详情、安全中心和 3 个弹窗,实测每个操作按钮的尺寸、填充、位置和状态,再对照 OPay App 2026 规范。

采集日期 2026-11-08 设备 荣耀 MBH-AN10 外屏,353dp 宽,1dp = 3px 范围 23 个页面,27 个页面状态 实现 原生、H5、React Native、EaseMoni 子应用 对照 主按钮 280×48,14 SemiBold,全圆胶囊
11种主按钮尺寸,宽 66–296dp,高 29–48dp
4种Go 按钮画法
6种卡片内小胶囊高度(23–29dp),填充 6 种写法
2处一屏多个实色主按钮(Fixed 一屏 5 个)
6种入口图标容器
5种"查看全部"文字链写法
3套底部导航激活态(主 App、EaseMoni、Shield Pay)

问题清单

按钮的形状是统一的,全部是全圆胶囊。但尺寸档位、填充写法和放置位置各业务自成一套,原生页、H5 页和子应用之间的差异最大。

主按钮

13 个主按钮样本出现了 11 种尺寸。高度分成 48、46、45、44、40、32、30、29 八档,同一流程类型里也没有统一。

页面按钮实现尺寸 dp位置状态与写法
规范主按钮—280×48页面底部实心绿,14 SemiBold,全圆
交易详情Report Issue原生273×48吸底实心绿
To BankNext原生273×48卡片内禁用 #BFE8D6
安全中心半屏Security Center原生134×48底部双钮右侧实心绿
Cards 提示弹窗Manage Online Merchant原生209×48弹窗内上下堆叠实心绿
SafeBox(Save)Deposit NowH5287×46吸底实心绿
Shield PayStart NowH5293×45吸底实心绿
EaseMoni(Loan)Get Funds子应用296×46卡片内实心绿,右上叠橙红标签
EaseMoni 首次进入Get Limit (59s)子应用296×46卡片内禁用,倒计时写在按钮文字里
EaseMoni 营销弹窗Claim & Borrow子应用230×44弹窗内渐变 + 投影 + 倒计时角标
AirtimePay原生88×32金额输入框右侧禁用,小胶囊
BettingPay原生70×30金额输入框右侧禁用,小胶囊
ElectricityPay原生66×29金额输入框右侧禁用,小胶囊
Add MoneyShare Details原生137×40卡片内,与次按钮并排实心绿,M 档,符合规范
交易详情页 Report Issue 按钮
交易详情 · Report Issue273×48 · 原生
SafeBox 页 Deposit Now 按钮
SafeBox · Deposit Now287×46 · H5
Shield Pay 页 Start Now 按钮
Shield Pay · Start Now293×45 · H5
EaseMoni Get Funds 按钮
EaseMoni · Get Funds296×46 · 子应用按钮上叠了橙红渐变标签
安全中心底部的 Emergency Lock 与 Security Center 按钮
安全中心 · 底部双按钮186×46 + 134×48左右两个按钮高度不同
EaseMoni 营销弹窗 Claim and Borrow 按钮
EaseMoni 弹窗 · Claim & Borrow230×44唯一带投影和立体渐变的主按钮
To Bank 禁用态 Next 按钮
To Bank · Next(禁用)273×48
Airtime 禁用态 Pay 按钮
Airtime · Pay(禁用)88×32
Betting 禁用态 Pay 按钮
Betting · Pay(禁用)70×30与 Airtime 同样的用法,尺寸不同
Electricity 禁用态 Pay 按钮
Electricity · Pay(禁用)66×29第三种内联 Pay 尺寸
Add Money 页 Copy Number 与 Share Details 主次按钮并排
Add Money · 主次并排(样板)137×40 ×2浅绿底次按钮 + 实心绿主按钮,符合规范
EaseMoni 禁用态 Get Limit 倒计时按钮
EaseMoni · Get Limit (59s)296×46 禁用
Cards 页提示弹窗,主次按钮上下堆叠
Cards 弹窗 · 主次按钮上下堆叠209×48 + 207×46规范新版是左右并排,各 110 宽

卡片内小胶囊

卡片和列表行里的小按钮有 6 种高度、6 种填充写法(实心绿、渐变、黑色、浅绿底、白底描边、绿底上的白胶囊)。规范的 S 档是高 28,Go 约 40×28。

页面按钮尺寸 dp填充问题
规范S 档 / 卡片 Go高 28,Go 约 40×28——
首页圣诞卡Go80×29实心绿代码里是文字,不能单独点
Rewards · Daily BonusGo60×28青→绿渐变与首页 Go 不同
Rewards · 券Use42×28黑色 #202423营销黑按钮,符合规范用法
WealthJoin50×28实心绿—
SafeBoxTurn on68×26实心绿与吸底主按钮同屏
FixedSave ×548×29实心绿一屏 5 个实色按钮
安全中心Activate71×24浅绿底绿字—
BettingGet(售罄)50×26禁用浅绿—
首页资产卡Add35×23绿底 + 浅绿描边符合规范实读值
EaseMoniLearn More约 80×27白底绿描边—
Loan CenterGO ▸ ×362×27白底绿描边,大写 + 三角第 4 种 Go
Loan CenterGet Funds79×27绿卡片上的白底绿字EaseMoni 同名按钮是 296×46 实心绿
Loan CenterUnlock79×27实心绿—
首页 Go 按钮
首页 · Go80×29 实心绿
Rewards Go 按钮
Rewards · Go60×28 渐变
Rewards Use 按钮
Rewards · Use42×28 黑色
Wealth Join 按钮
Wealth · Join50×28 实心绿
SafeBox Turn on 按钮
SafeBox · Turn on68×26 实心绿
安全中心 Activate 按钮
安全中心 · Activate71×24 浅绿底
首页资产卡 Add 按钮
资产卡 · Add35×23 描边
EaseMoni Learn More 按钮
EaseMoni · Learn More约 80×27 描边
Betting 禁用态 Get 按钮
Betting · Get(禁用)50×26
Loan Center 大写 GO 描边按钮
Loan Center · GO ▸62×27 白底描边第 4 种 Go
Loan Center 白底 Get Funds 按钮
Loan Center · Get Funds79×27 白底绿字与 EaseMoni 同名按钮样式不同
Loan Center Unlock 按钮
Loan Center · Unlock79×27 实心绿
Fixed 页每行一个实心绿 Save 按钮
Fixed · 每行一个实心 Save48×29 ×5列表行按规范应用 S 档浅底或描边

次按钮

次按钮有 4 种写法。规范画板写的是白底绿描边,现网主流是浅绿底,两种写法都在用,需要先定一个标准。

写法出现位置尺寸 dp备注
白底 + 绿描边 + 绿字Cards 弹窗 I Know;EaseMoni Learn More207×46;约 80×27规范画板的 Secondary 写法
浅绿底 + 绿字安全中心 Activate;Add Money Copy Number71×24;137×40规范的现网主流写法(#E2F5EB)
浅红底 + 红描边 + 红字安全中心 Emergency Lock186×46高风险操作,单独的危险样式,规范里没有定义
浅灰胶囊 + 灰字To OPay 的 View All ›;Me 的 Smart Assistant 话题79×20介于按钮和文字链之间

需要团队拍板:次按钮默认用浅绿底还是白底描边。建议浅绿底作为默认次按钮,白底描边只用在弹窗的"取消 / 稍后",危险操作单独定义一档红色样式并写进规范。

文字按钮与文字链

导航栏右侧的文字按钮有 3 种颜色,"查看全部"有 5 种写法,绿色和灰色文字链的分工没有规则。

原生页导航栏绿色 History
导航栏 · History原生,绿色
H5 页导航栏深灰 More
导航栏 · MoreH5,深灰
EaseMoni 导航栏白色 Live Chat
导航栏 · Live Chat子应用,白色带图标
Rewards View All 向下箭头
Rewards · View All ⌄深色,无底
To OPay View All 灰底胶囊
To OPay · View All ›灰底胶囊
SafeBox View All 灰字
SafeBox · View All ›灰字,无底
Betting All 深色文字链
Betting · All ›深色
Airtime More 灰色文字链
Airtime · More ›灰色
Fixed 卡片中深色和绿色两种文字链
Fixed · 同卡两种文字链Transactions › 深色 / 0 Active Plans › 绿色
通知页绿色 View 文字链
Notifications · View ›React Native,绿色
扫码页深色导航栏白色 Album
扫码 · Album深色页,白色文字深色场景用白字合理,规范未定义

入口图标

图标入口本身就是按钮,容器有 6 种:无底、实心绿圆、浅绿圆、浅绿圆角方、浅灰圆、浅橙圆。规范定义了宫格无底线性图标、金刚 48 实心绿圆和浅绿 #E2F5EB 入口底;浅灰圆和浅橙圆不在规范里,圆形和圆角方也没有使用规则。

首页金刚区实心绿圆
首页金刚48 实心绿圆符合规范
首页宫格无底线性图标
首页宫格无底,深墨绿线性符合规范
Wealth 入口浅绿圆
Wealth浅绿圆,绿色图标
Cards 入口浅绿圆
Cards浅绿圆,绿色实心图标
Me 入口浅绿圆角方
Me浅绿圆角方,深墨绿实心图标
All Service 入口浅灰圆
All Service浅灰圆,深色线性图标
EaseMoni 入口浅橙圆
EaseMoni浅橙圆,橙色图标暖色用在非奖励场景
Me 页右上角图标与状态栏重叠
Bug · Me 顶栏图标压住状态栏顶边 12dp,首页同类图标在 48dp

治理建议

先定档位和语义,再按影响面从大到小收敛。原生、H5 和子应用三套实现要共用同一份按钮 token,否则治理完还会再分叉。

1. 定 4 档按钮尺寸

  • L:280×48,页面底部主操作;需要通栏时用屏宽减 2×16
  • M:高 40,卡片内、空状态
  • S:高 28,列表行右侧、卡片 Go
  • XS:高 24,只用在资产卡这类高密度区域(如 Add)
  • 弹窗:单钮 200 宽,双钮左右各 110
影响:9 种主按钮尺寸 → 1 种;5 种小胶囊高度 → 2 种

2. "提交支付"统一用 L 档

  • Airtime、Betting 的 Pay 从输入框右侧的小胶囊改成 L 档,与 To Bank 的 Next 一致
  • 金额快捷块保留,提交按钮单独放在页面底部
影响:缴费类页面(Airtime、Data、Betting、TV、Electricity 等)

3. 落实"一屏一个实色主按钮"

  • Fixed 方案行的 Save 改为 S 档浅绿底
  • SafeBox 的 Turn on 改为 S 档浅绿底或开关
  • 加一条走查规则:一屏出现第二个实心绿按钮即不通过
影响:Fixed、SafeBox(均为 H5)

4. Go 做成一个组件

  • 工具类和财富类卡片:S 档实心绿
  • 渐变和立体投影只留给运营位,由运营组件承载,并写清使用边界
  • 修正首页圣诞卡 Go 的实现,让按钮本身可点
  • 同名按钮同样式:Loan Center 和 EaseMoni 的 Get Funds 统一
影响:首页、Rewards、Loan Center、EaseMoni

5. 文字按钮语义

  • 操作类(History、Ask them、Learn More):绿色 Medium
  • 浏览类(View All、More):统一为"灰字 + ›",不加底色
  • H5 容器导航栏右侧文字与原生一致,改为绿色
影响:5 种"查看全部"写法 → 1 种

6. 入口图标收敛为 2 级

  • 一级(首页宫格、全部服务):无底,深墨绿线性图标
  • 二级(Tab 首页的功能入口):40 浅绿圆底
  • 浅灰圆、圆角方、暖橙圆退出主流程
影响:Wealth、Cards、Me、All Service、EaseMoni

7. Tab 和底栏

  • 页内 Tab 选中态统一为绿字 + 绿色短下划线;同类页面用同一种排布
  • 子应用底栏激活态跟随主 App,或在规范里写明子应用例外
影响:To OPay、To Bank、TV、EaseMoni

8. 立即修复的 Bug

  • Me 页顶栏图标避让状态栏
  • Shield Pay 右侧悬浮 Help 被屏幕边缘截断,文字只露出一半
  • Available 卡的"金额 ›"补上单独的点击区域,与 Wealth 卡一致
影响:Me、Shield Pay、首页

范围与限制

这次只做浏览,不输入任何金额、账号和 PIN,也不点任何会产生交易或提交的按钮。下面这些没有覆盖到。

已覆盖实现已覆盖实现
首页(展开 / 收起)原生To OPay原生
Rewards原生To Bank原生
Wealth原生交易详情原生
Cards + 提示弹窗原生Airtime / Mobile Data / Betting / TV / Electricity原生
Me原生All Service原生
安全中心半屏原生SafeBox / Fixed / Shield PayH5
Loan Center原生EaseMoni(首次、营销弹窗、主页)子应用
Add Money / 扫码原生NotificationsReact Native