Files
wxapp_escort/pages/home/index.wxss
T
2026-10-02 13:52:32 +08:00

515 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ===== 首页 · 暖白纸面 × 单一暖橙(按参考图设计语言重做) =====
参考图要点:
- 暖白纸面 + 纯白圆角卡片 + 米色发丝边,阴影极轻,几乎只靠留白分层
- 单一暖橙主色:实心按钮/标识走深一档,浅橙衬底承载图标与标签
- 大量圆角方形衬底 + 彩色线图标
- 大字号标题直接落在纸面上,不用整块色面板压首屏 */
page {
/* 暖橙主色阶:strong 是实心块/按钮(白字需 ≥4.5:1、白图标需 ≥3:1),
soft 是衬底,ink 是浅衬底上的文字与线图标 */
--brand: #F97316; /* 主色:仅装饰性小色块 */
--brand-strong: #C2410C; /* 实心按钮 / 选中态:白字 4.69:1,过 AA 正文 */
--brand-soft: #FFF4E8; /* 图标衬底、标签底 */
--brand-line: #FFE0C2; /* 浅橙衬底的描边 */
--brand-ink: #9A3412; /* 浅橙衬底上的文字/图标:6.8:1,过 AA */
/* 状态色:全页唯一的冷色,只用在「待服务订单」提醒条上。
作用是制造唯一焦点——整页暖橙平铺时需要一个"该看这里"的落点 */
--status-soft: #ECF7F4;
--status-line: #C7E5DF;
--status-ink: #0F766E; /* #ECF7F4 上 5.0:1,过 AA 正文 */
/* 中性:暖灰阶,与暖白纸面同温(冷灰会让白卡边缘发青) */
--ink: #2B2521;
--ink-2: #4A4038;
--muted: #7A7068; /* 白底 4.8:1,过 AA 正文 */
--faint: #A79C92; /* 仅用于非文字装饰 */
--line: #F0E9E0; /* 米色发丝边 */
--paper: #FAF6F0; /* 暖白纸面 */
--white: #FFFFFF;
--shadow-card: 0 2rpx 10rpx rgba(63, 43, 25, 0.04);
--shadow-cta: 0 6rpx 16rpx rgba(194, 65, 12, 0.22);
}
.page-bg {
min-height: 100vh;
background: var(--paper);
}
.container {
padding: 0 32rpx 40rpx;
}
/* ===== 顶部品牌行 ===== */
.topbar {
display: flex;
align-items: center;
justify-content: space-between;
padding: 120rpx 0 0;
}
.brand {
display: flex;
align-items: center;
}
/* 品牌印记:实心暖橙圆角方块 + 白色品牌 Logo。
Logo 是白色线稿(心形 + 圆点)、透明底,必须压在有色底上才可见,
40rpx 是经真机像素验证后仍能辨认轮廓的最小尺寸 */
.brand-mark {
width: 56rpx;
height: 56rpx;
border-radius: 16rpx;
background: var(--brand-strong);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4rpx 12rpx rgba(194, 65, 12, 0.22);
}
.brand-logo {
width: 40rpx;
height: 40rpx;
}
.brand-name {
font-size: 34rpx;
font-weight: 700;
color: var(--ink);
margin-left: 16rpx;
letter-spacing: 1rpx;
}
/* ===== ① 头部:大字标题直接落在纸面上 ===== */
.hero {
padding: 44rpx 0 0;
}
.hero-title {
display: block;
/* 居中:与下方居中的信任条、通栏 CTA 共用一条视觉中轴,首屏呈海报式对称 */
text-align: center;
/* 52rpx(26px) 仍在 WCAG"大字"门槛(18pt/24px)之上:
深墨 #2B2521 压暖白纸面实测 13:1+,无论字重都稳过 AA */
font-size: 52rpx;
font-weight: 700;
letter-spacing: 2rpx;
line-height: 1.36;
}
/* 不用逗号断句:靠「暖橙强调 + 深墨正文」的色差切分两个短句。
两段合计 11 字 × (52rpx + 2rpx 字距) + 10rpx 间隔 ≈ 604rpx,
小于容器内宽 686rpx(750 - 32×2 页边距),不会折行 */
.hero-title-accent {
color: var(--brand-strong); /* 暖白纸面上 5.0:1,过 AA */
}
.hero-title-main {
color: var(--ink);
margin-left: 10rpx;
}
/* 场景行:三项核心场景两行排布(场景词 + 补充),纯展示不点击。
场景词走暖陶土 --brand-ink 做暖色标签,与标题深墨半句靠色相拉开层级,
避免两条深色带叠在一起;补充走 muted 保持安静 */
.scene-row {
display: flex;
align-items: center;
margin-top: 28rpx;
}
.scene-item {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
}
.scene-name {
font-size: 30rpx;
font-weight: 700;
/* 暖陶土 --brand-ink:与标题深墨半句「让就医更省心」同屏时靠色相拉开层级,
避免两段 ink+700 连排成"两条深色带";比标题的 --brand-strong 低一档分量,
标题仍是首屏唯一的亮橙焦点。纸面上 6.8:1,过 AA */
color: var(--brand-ink);
letter-spacing: 1rpx;
}
.scene-desc {
margin-top: 6rpx;
font-size: 24rpx;
color: var(--muted);
letter-spacing: 1rpx;
}
/* 竖分隔线:仅装饰,不承载信息。
比 --line 加深一档,保证暖白纸面上仍可见 */
.scene-sep {
width: 2rpx;
height: 44rpx;
background: #E5DACC;
flex-shrink: 0;
}
/* 主行动按钮:通栏胶囊,直达服务列表 */
.hero-cta {
display: flex;
align-items: center;
justify-content: center;
margin-top: 36rpx;
padding: 26rpx;
border-radius: 999rpx;
background: var(--brand-strong);
box-shadow: var(--shadow-cta);
transition: transform 0.15s ease;
}
.hero-cta:active {
transform: scale(0.98);
}
.hero-cta-text {
font-size: 30rpx;
font-weight: 600;
color: var(--white);
letter-spacing: 2rpx;
margin-right: 6rpx;
}
/* ===== ② 陪诊服务:服务宫格 + 品类介绍卡 ===== */
/* 介绍卡:整卡走浅橙衬底,位于宫格下方,是本区块的尾部视觉锚点;
宫格保持白卡安静语言、紧贴标题。
纯内容展示卡(不可点),指南入口在区块标题行右侧 */
.intro-card {
display: flex;
flex-direction: column;
padding: 28rpx 26rpx;
/* 位于宫格下方,改为上间距;比原 20rpx 略大,与宫格拉开层级 */
margin-top: 24rpx;
border-radius: 28rpx;
background: var(--brand-soft);
border: 2rpx solid var(--brand-line);
}
/* 介绍正文:26rpx 行高 1.6,两行左右读完「陪诊是什么」 */
.intro-desc {
font-size: 26rpx;
line-height: 1.6;
color: var(--ink-2);
}
/* 信任行:三项可验证事实单行小字,从首屏下沉至此,
在用户开始了解服务时补上信任背书 */
.intro-trust {
display: flex;
align-items: center;
margin-top: 16rpx;
}
.intro-trust-item {
font-size: 24rpx;
font-weight: 600;
color: var(--brand-ink); /* 浅橙底 6.8:1,过 AA */
letter-spacing: 1rpx;
}
.intro-trust-sep {
width: 2rpx;
height: 20rpx;
background: var(--brand-line);
margin: 0 16rpx;
flex-shrink: 0;
}
/* ===== 通用区块 ===== */
.section {
margin-top: 56rpx;
}
.section-head {
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 22rpx;
}
/* 区块标识:单竖条。原「实心橙方块 + 白图标」在页面上已是第三、四个橙色实心块,
与顶部品牌印记撞语言,且 26rpx 的白图标过小看不清;改竖条后视觉更轻,
把重心让给下方的服务宫格与功能卡。条高与 34rpx 标题齐平,避免细条显单薄 */
.section-bar {
width: 8rpx;
height: 34rpx;
border-radius: 4rpx;
background: var(--brand-strong);
flex-shrink: 0;
}
.section-title {
margin-left: 16rpx;
font-size: 34rpx;
font-weight: 700;
color: var(--ink);
letter-spacing: 1rpx;
}
/* 标题行右侧入口(如「服务指南」):靠 margin-left:auto 右对齐。
走 muted 而非暖橙,把橙色焦点留给 hero 标题;24rpx 白底 4.8:1 过 AA */
.section-link {
margin-left: auto;
display: flex;
align-items: center;
flex-shrink: 0;
}
.section-link:active {
opacity: 0.7;
}
.section-link-text {
font-size: 24rpx;
color: var(--muted);
letter-spacing: 1rpx;
}
/* 服务宫格:8 项服务白卡(区块主体,紧贴标题) */
.assist-card {
padding: 16rpx 8rpx 20rpx;
border-radius: 28rpx;
background: var(--white);
border: 2rpx solid var(--line);
box-shadow: var(--shadow-card);
}
.assist-grid {
display: flex;
flex-wrap: wrap;
}
/* 8 项服务:4 列 × 2 行正好排满 */
.assist-item {
width: 25%;
display: flex;
flex-direction: column;
align-items: center;
padding: 26rpx 0;
transition: transform 0.15s ease;
}
.assist-item:active {
transform: scale(0.94);
}
/* 纤细线图标:24x24 网格、stroke-width 1.5、暖橙 #C2410C,base64 内嵌避免引入图标字体。
60rpx(30px) 是过 WCAG 非文本 3:1 后兼顾真机清晰度、减少白卡空荡感的尺寸。
图标直接落在白卡上、不加衬底方块:衬底层级已让给上方主推卡,小宫格保持安静 */
.assist-icon {
width: 60rpx;
height: 60rpx;
margin-bottom: 20rpx;
background-repeat: no-repeat;
background-position: center;
background-size: 100% 100%;
}
/* 1 全天陪诊:整圈表盘 + 指针 */
.assist-icon-1 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzI0MTBDIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4LjUiLz48cGF0aCBkPSJNMTIgNi42VjEybDMuOCAyLjIiLz48L3N2Zz4=");
}
/* 2 半天陪诊:整圈表盘 + 右半实心填充,与 1 的"空心全圈"形成"全 / 半"对照,
避免原半月形在小尺寸下被误读为字母 D */
.assist-icon-2 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzI0MTBDIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4LjUiLz48cGF0aCBkPSJNMTIgMy41YTguNSA4LjUgMCAwIDEgMCAxN1oiIGZpbGw9IiNDMjQxMEMiIHN0cm9rZT0ibm9uZSIvPjwvc3ZnPg==");
}
/* 3 代问诊:对话气泡 + 医疗十字 */
.assist-icon-3 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzI0MTBDIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjAgMTQuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVIOGwtNCAzLjVWNmEyLjUgMi41IDAgMCAxIDIuNS0yLjVoMTFBMi41IDIuNSAwIDAgMSAyMCA2WiIvPjxwYXRoIGQ9Ik0xMiA3LjZ2NS4yTTkuNCAxMC4yaDUuMiIvPjwvc3ZnPg==");
}
/* 4 检查预约:日历 + 对勾 */
.assist-icon-4 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzI0MTBDIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIzLjUiIHk9IjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNS41IiByeD0iMi41Ii8+PHBhdGggZD0iTTggM3Y0TTE2IDN2NE0zLjUgOS41aDE3Ii8+PHBhdGggZD0ibTkuNCAxNSAxLjkgMS45IDMuNy00Ii8+PC9zdmc+");
}
/* 5 出入院代办:医院楼 + 地面 + 十字 */
.assist-icon-5 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzI0MTBDIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNC41IDIwLjVWNi41YTIgMiAwIDAgMSAyLTJoMTFhMiAyIDAgMCAxIDIgMnYxNCIvPjxwYXRoIGQ9Ik0yLjUgMjAuNWgxOSIvPjxwYXRoIGQ9Ik0xMiA4LjZ2NU05LjUgMTEuMWg1Ii8+PC9zdmc+");
}
/* 6 跑腿服务:包裹箱 */
.assist-icon-6 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzI0MTBDIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjAuNSA4LjJ2Ny42YTEuNiAxLjYgMCAwIDEtLjg0IDEuNDJsLTYuOSAzLjhhMS42IDEuNiAwIDAgMS0xLjUyIDBsLTYuOS0zLjhBMS42IDEuNiAwIDAgMSAzLjUgMTUuOFY4LjJhMS42IDEuNiAwIDAgMSAuODQtMS40Mmw2LjktMy44YTEuNiAxLjYgMCAwIDEgMS41MiAwbDYuOSAzLjhBMS42IDEuNiAwIDAgMSAyMC41IDguMloiLz48cGF0aCBkPSJNMy45IDcuMyAxMiAxMS43bDguMS00LjRNMTIgMTEuN1YyMSIvPjwvc3ZnPg==");
}
/* 7 陪诊套餐:礼盒 */
.assist-icon-7 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzI0MTBDIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIzIiB5PSI3LjUiIHdpZHRoPSIxOCIgaGVpZ2h0PSI0LjUiIHJ4PSIxLjIiLz48cGF0aCBkPSJNNC41IDEydjcuNUExLjUgMS41IDAgMCAwIDYgMjFoMTJhMS41IDEuNSAwIDAgMCAxLjUtMS41VjEyIi8+PHBhdGggZD0iTTEyIDcuNVYyMSIvPjxwYXRoIGQ9Ik0xMiA3LjVIOS4yYTIuMyAyLjMgMCAxIDEgMC00LjZDMTAuNyAyLjkgMTIgNy41IDEyIDcuNVoiLz48cGF0aCBkPSJNMTIgNy41aDIuOGEyLjMgMi4zIDAgMSAwIDAtNC42QzEzLjMgMi45IDEyIDcuNSAxMiA3LjVaIi8+PC9zdmc+");
}
/* 8 买药套餐:45° 斜置胶囊 + 中缝,避免原横置胶囊被误读为"链接"图标 */
.assist-icon-8 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQzI0MTBDIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSI0LjIiIHk9IjguMiIgd2lkdGg9IjE1LjYiIGhlaWdodD0iNy42IiByeD0iMy44IiB0cmFuc2Zvcm09InJvdGF0ZSgtNDUgMTIgMTIpIi8+PHBhdGggZD0iTTkuMyA5LjNsNS40IDUuNCIvPjwvc3ZnPg==");
}
/* 宫格项名统一走 28rpx 标题档(与 .quick-name 同级)。
4 列布局列宽 ≈ 167rpx,5 字项名「出入院代办」= 140rpx,不折行 */
.assist-name {
font-size: 28rpx;
font-weight: 600;
color: var(--ink-2);
}
/* ===== ④ 常用功能 ===== */
/* 全页唯一的状态色:这是唯一"需要用户行动"的信息,用它把视线钉住 */
.order-tip {
display: flex;
align-items: center;
padding: 22rpx 24rpx;
margin-bottom: 16rpx;
border-radius: 20rpx;
background: var(--status-soft);
border: 2rpx solid var(--status-line);
}
.order-tip:active {
opacity: 0.75;
}
.order-dot {
width: 12rpx;
height: 12rpx;
border-radius: 50%;
background: var(--status-ink);
margin-right: 14rpx;
flex-shrink: 0;
}
.order-tip-text {
flex: 1;
font-size: 28rpx;
font-weight: 600;
color: var(--status-ink);
}
/* 双列卡片 + 图标左、文字右的横排结构;
第三张通栏卡靠换行落到第二行 */
.quick-list {
display: flex;
flex-wrap: wrap;
gap: 20rpx;
}
/* 图标左、文字右的横排结构 */
.quick-item {
flex: 1;
min-width: 0;
display: flex;
flex-direction: row;
align-items: center;
padding: 24rpx;
border-radius: 28rpx;
background: var(--white);
border: 2rpx solid var(--line);
box-shadow: var(--shadow-card);
transition: transform 0.15s ease;
}
.quick-item:active {
transform: scale(0.98);
}
/* 通栏卡(联系我们):两列网格 2+1 排布,第三张占满第二行。
必须显式 border-box:全局只有 .container 设了它,否则 width:100%
会再叠加自身 padding(24rpx×2) + 描边(2rpx×2),整卡溢出容器 */
.quick-item-full {
width: 100%;
flex: none;
box-sizing: border-box;
}
.quick-icon {
width: 68rpx;
height: 68rpx;
border-radius: 20rpx;
background: var(--brand-soft);
display: flex;
align-items: center;
justify-content: center;
margin-right: 16rpx;
flex-shrink: 0;
}
.quick-info {
display: flex;
flex-direction: column;
min-width: 0;
}
.quick-name {
font-size: 28rpx;
font-weight: 600;
color: var(--ink);
}
.quick-desc {
font-size: 24rpx;
color: var(--muted);
margin-top: 6rpx;
}
/* 通栏卡右侧箭头:填补右半空白并提示可点 */
.quick-arrow {
margin-left: auto;
flex-shrink: 0;
display: flex;
align-items: center;
}
/* ===== ⑤ 页脚 ===== */
.page-footer {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 64rpx;
padding-top: 32rpx;
border-top: 2rpx solid var(--line);
}
/* B 端合作文字链:低调但可读,点击转服务电话 */
.footer-links {
display: flex;
align-items: center;
margin-bottom: 20rpx;
}
.footer-link {
font-size: 24rpx;
color: var(--muted); /* 暖白底 4.83:1,过 AA 正文 */
letter-spacing: 1rpx;
}
.footer-link:active {
color: var(--brand-strong);
}
/* 细竖线分隔:替代原中点字符,避免一行多点 */
.footer-sep {
width: 2rpx;
height: 20rpx;
background: var(--faint); /* 仅作装饰分隔,不承载信息 */
margin: 0 24rpx;
}
.footer-note {
font-size: 24rpx;
color: var(--muted);
letter-spacing: 2rpx;
}
/* 自定义 tabBar 是 fixed 脱离文档流的,这里补足它的高度,否则页脚会被盖住 */
.footer-space {
height: calc(140rpx + env(safe-area-inset-bottom));
}