更新了AI页和我的页,一级页面都重构完成。
This commit is contained in:
+168
-33
@@ -14,49 +14,179 @@ page {
|
||||
padding: 0 32rpx calc(140rpx + env(safe-area-inset-bottom));
|
||||
}
|
||||
|
||||
/* 头部:头像 + 昵称,直接落在纸面上(与首页 hero 同一语言) */
|
||||
/* 顶部身份行:头像、昵称、出口三项左对齐浮在纸面上,与下方三个区块
|
||||
共用同一条 32rpx 左基线,并复现首页 hero 的「纸面上 + 主 CTA」语言。
|
||||
刻意不做成白卡——身份行与功能卡不是一类东西,
|
||||
按硬约束 3「需区分时先改结构,不要加颜色」,这里用"去卡"而非换色区分;
|
||||
若改用暖橙框,会与全站浅橙卡"区块收口"的语义打架,
|
||||
且未登录时浅橙底上再叠实心橙胶囊属暖色叠暖色,故不加色。
|
||||
微信胶囊底沿约落在 152rpx,上距现取 176rpx(余量 24rpx)。
|
||||
这是安全距不是设计留白:下限约 160rpx,再小就会与胶囊挤在一起。
|
||||
纵向 32rpx 内距给身份行本身留出上下呼吸,
|
||||
同时把整行热区从 128rpx 撑到 192rpx(含内距),未登录点整行也更好点中 */
|
||||
.header-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 120rpx 0 40rpx;
|
||||
margin: 176rpx 0 24rpx;
|
||||
padding: 32rpx 0;
|
||||
}
|
||||
|
||||
/* 无框行的按下反馈:与首页 .section-link:active 同一手法(整体淡出),
|
||||
不引入新色值;仅已登录时可点,未登录时 hover-class 传 'none' */
|
||||
.header-card-hover {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 128rpx;
|
||||
height: 128rpx;
|
||||
border-radius: 32rpx;
|
||||
margin-right: 28rpx;
|
||||
/* 圆角方形而非正圆,与微信「我」页头像同形 */
|
||||
border-radius: 24rpx;
|
||||
flex-shrink: 0;
|
||||
/* 默认头像底座要把 t-icon 居中,位图头像不受影响 */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
/* 默认头像底座带 2rpx 描边,border-box 保证尺寸仍是 128rpx 不被撑到 132rpx */
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* 默认头像底座:浅橙衬底 + 暖陶土线标,走项目既有的「图标衬底」档
|
||||
(同 .quick-icon 一类),而不是首页 .brand-mark 的实心橙档。
|
||||
理由是面积:128rpx 实心橙是 .brand-mark(56rpx) 的 5.2 倍,
|
||||
已从"小体量印记"跨到"色块",而它承载的只是"头像待设置"这一低价值信息;
|
||||
且 --brand-strong 在本项目的语义是主操作/选中态,让占位头像占用它会误导。
|
||||
浅橙块按既有规矩靠 2rpx --brand-line 描边托形、不加阴影;
|
||||
--brand-ink 落 --brand-soft 上 5.96:1,比白字压 #B8520A 的 4.94:1 更高 */
|
||||
.avatar-default {
|
||||
background: var(--brand-soft);
|
||||
border: 2rpx solid var(--brand-line);
|
||||
}
|
||||
|
||||
/* 文字块:主行昵称与副行账号分别贴近头像的上、下沿(各内收 12rpx),
|
||||
中间的空隙交给 space-between 撑开——它随头像高度自适应,
|
||||
比写死 margin 稳。align-self: stretch 让文字块撑满 128rpx 头像高度。
|
||||
min-width 归零,长昵称/长账号才能在右侧出口前收成省略号 */
|
||||
.header-info {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
align-self: stretch;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
/* 两行各向内收 12rpx:与头像边缘严格齐平时读起来"被撑满了",
|
||||
略微内收后间隙从 57rpx 收到约 33rpx,视觉上更聚拢 */
|
||||
padding: 12rpx 0;
|
||||
}
|
||||
|
||||
/* 未登录时只有昵称一行,space-between 会把它顶到最上,故改回居中 */
|
||||
.header-info-single {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* 行高收到 1.15(约半行距 3rpx):1.3 的半行距会把字形从块边缘推进 5.5rpx,
|
||||
"顶部对齐"就会变成"看着差一点"。1.15 把视觉边缘压到与头像边缘相差 3rpx 内,
|
||||
同时仍留一点余量,不至于配合 overflow: hidden 把字形切掉 */
|
||||
.user-name {
|
||||
margin-top: 24rpx;
|
||||
font-size: 36rpx;
|
||||
font-weight: 700;
|
||||
color: var(--ink);
|
||||
line-height: 1.15;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* 菜单组:首页「白卡」语言——白面 + 2rpx 发丝边 + 紧阴影 */
|
||||
.menu-section + .menu-section {
|
||||
/* 副行账号:muted,比主行小两档,与微信副行同层级。
|
||||
与主行的间距不再用 margin——已由 .header-info 的 space-between 撑开 */
|
||||
.user-account {
|
||||
font-size: 26rpx;
|
||||
color: var(--muted);
|
||||
line-height: 1.15;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* 身份行右侧 chevron:与菜单行的 .menu-arrow 同形同色,
|
||||
整行因此读成"菜单里的一行",点击暗示不必再添文字 */
|
||||
.header-arrow {
|
||||
flex-shrink: 0;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
/* 未登录时的登录胶囊:右对齐的一枚小胶囊。
|
||||
它是本页唯一的实心暖橙块,独占「全页同类实心块不超过一处」的额度;
|
||||
登录成功后整枚换成 chevron,「我的服务」区块随之出现 */
|
||||
.login-btn {
|
||||
width: 176rpx;
|
||||
margin: 0;
|
||||
padding: 18rpx 0;
|
||||
border: none;
|
||||
border-radius: 999rpx;
|
||||
background: var(--brand-strong);
|
||||
box-shadow: var(--shadow-cta);
|
||||
color: var(--white);
|
||||
font-size: 28rpx;
|
||||
font-weight: 700;
|
||||
letter-spacing: 2rpx;
|
||||
line-height: 1.4;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.login-btn::after {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* 区块间距:卡片改通栏、去掉区块抬头后,组与组之间只靠三样东西分界——
|
||||
上一块的 2rpx 下边线、这 24rpx 纸面留白、下一块的 2rpx 上边线。
|
||||
留白与身份行的下距同值,全页只有这一种竖向节奏。
|
||||
这是全页唯一收窄过的一处:纸面与白面的填充差只有 1.05:1,
|
||||
分界其实全靠这一条纸面缝在看,所以不能收到贴边,24rpx(12px)是下限。
|
||||
原「单竖条 + 标题」的抬头样式(.section-head/.section-bar/.section-title)
|
||||
已随标题一并删除,不留死代码 */
|
||||
.section + .section {
|
||||
margin-top: 24rpx;
|
||||
}
|
||||
|
||||
.menu-list {
|
||||
/* 通栏白卡:左右顶到屏幕两侧,做法与 itemlist 的服务分组同源
|
||||
(margin 负向抵消容器 32rpx 内距)。圆角必须为 0,
|
||||
否则满宽块的圆角会切在屏幕边上;上、下各一条 2rpx 发丝线托形。
|
||||
行内容靠 .menu-item 自己的 32rpx 内距回到同一左基线,
|
||||
组内分隔线(.menu-item::after)则左缩进到文字左缘,不压到图标 */
|
||||
margin: 0 -32rpx;
|
||||
background: var(--white);
|
||||
border: 2rpx solid var(--line);
|
||||
border-radius: 28rpx;
|
||||
border-top: 2rpx solid var(--line);
|
||||
border-bottom: 2rpx solid var(--line);
|
||||
box-shadow: var(--shadow-card);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
/* 给内嵌分隔线(::after)做定位参照 */
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 32rpx;
|
||||
border-bottom: 2rpx solid var(--line);
|
||||
}
|
||||
|
||||
.menu-item:last-child {
|
||||
border-bottom: none;
|
||||
/* 组内分隔线不横跨整行:左端从文字左缘起,避开图标和它的右侧间距;
|
||||
右端仍通到卡片边缘。
|
||||
左缩进 = 行内距 32 + 图标 40 + 图标右距 24 = 96rpx */
|
||||
.menu-item::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 96rpx;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 2rpx;
|
||||
background: var(--line);
|
||||
}
|
||||
|
||||
.menu-item:last-child::after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu-item-hover {
|
||||
@@ -72,8 +202,9 @@ page {
|
||||
.menu-text {
|
||||
flex: 1;
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
color: var(--ink);
|
||||
font-weight: 400;
|
||||
/* 比标题层的 --ink 轻一档的暖墨,弱化"导航项"的视觉重量 */
|
||||
color: var(--ink-2);
|
||||
}
|
||||
|
||||
.menu-arrow {
|
||||
@@ -81,27 +212,31 @@ page {
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
/* 登录按钮:与首页主 CTA 同语言(实心暖橙胶囊 + 白字 + CTA 阴影) */
|
||||
.login-section {
|
||||
padding: 32rpx 0;
|
||||
/* 退出登录:单独一个通栏白块(与 .menu-list 同法、同语言),
|
||||
但只有一行、居中、无图标无 chevron——动作与导航的区分交给结构,
|
||||
不交给颜色(状态色不得用于按钮,见 DESIGN.md §三)。
|
||||
上距 24rpx 沿用全页唯一的那一种竖向节奏 */
|
||||
.logout-block {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 24rpx -32rpx 0;
|
||||
padding: 32rpx;
|
||||
background: var(--white);
|
||||
border-top: 2rpx solid var(--line);
|
||||
border-bottom: 2rpx solid var(--line);
|
||||
box-shadow: var(--shadow-card);
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
width: 100%;
|
||||
padding: 28rpx;
|
||||
border: none;
|
||||
border-radius: 999rpx;
|
||||
background: var(--brand-strong);
|
||||
box-shadow: var(--shadow-cta);
|
||||
color: var(--white);
|
||||
/* 按下反馈与 .menu-item-hover 同源,不引入新色值 */
|
||||
.logout-block-hover {
|
||||
background: var(--brand-soft);
|
||||
}
|
||||
|
||||
/* 字色走 --muted:退出是次要动作,不给它主色,也不用状态色 */
|
||||
.logout-text {
|
||||
font-size: 30rpx;
|
||||
font-weight: 700;
|
||||
letter-spacing: 2rpx;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.login-btn::after {
|
||||
border: none;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
/* 页脚:B 端合作文字链 + 版本信息,低调可读 */
|
||||
|
||||
Reference in New Issue
Block a user