Files
hms/apps/miniprogram/src/styles/elder-mode.scss
iven 95e219ad5a refactor(mp): CSS 变量主题 + 登录页改造 — UI 优化 Phase 0-2
Phase 0: 建立 design token 体系
- tokens.scss 新增 --tk-pri/--tk-pri-l/--tk-pri-d/--tk-shadow-btn/--tk-shadow-tab
- .doctor-mode 覆盖为靛蓝色系,.elder-mode 非线性放大字号
- variables.scss 新增医生端色彩 + 阴影变量

Phase 1: 组件库 + 页面全局替换
- 75 个页面 SCSS $pri → var(--tk-pri) 全量替换
- 11 个新 UI 组件(PrimaryButton/TabFilter/FormInput/ProgressRing 等)
- 8 个现有组件 SCSS 更新
- 18 个医生端页面 useElderClass → useDoctorClass
- PageHeader 匹配原型 NavBar 规格

Phase 2: 登录页重写
- Logo: 方形+ → 圆形渐变 H
- 登录方式: 纯微信 → 账号密码 + 微信一键登录
- 新增 credentialLogin API + store action
- 字号/间距严格匹配原型 mp-01-login.html
2026-05-16 21:29:13 +08:00

125 lines
2.4 KiB
SCSS
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.
// 关怀模式 CSS 覆写(仅保留结构性调整)
// 字号 / 颜色 / 间距由 tokens.scss 的 .elder-mode 块自动级联处理
// 此文件仅保留无法通过 CSS 变量表达的布局覆写
.elder-mode {
line-height: var(--tk-line-height);
// ─── 全局触控放大 ───
.vital-card,
.checkin-card,
.reminder-item,
.menu-item,
.session-card,
.consult-card,
.notify-card,
.msg-segment-tab,
.vital-tab,
.period-btn,
.device-card,
.article-entry {
min-height: var(--tk-touch-min);
}
.action-btn,
.save-btn,
.consultation-create-btn,
.guest-login-btn {
height: var(--tk-btn-primary-h);
}
// ─── 体征网格2 列 → 1 列(解决溢出核心改动)───
.vitals-grid {
grid-template-columns: 1fr;
gap: var(--tk-gap-md);
}
// ─── 页面间距放大 ───
.home-page,
.guest-page,
.health-page,
.messages-page,
.consultation-body {
padding: var(--tk-card-padding-lg) var(--tk-gap-xl) var(--tk-tabbar-space);
}
.profile-page {
padding: var(--tk-card-padding-lg) var(--tk-gap-xl) var(--tk-tabbar-space);
}
.menu-item {
padding: var(--tk-card-padding) var(--tk-gap-xl);
}
.session-list,
.msg-list {
gap: var(--tk-gap-sm);
}
.checkin-card {
padding: var(--tk-card-padding-lg);
}
.reminder-card {
padding: var(--tk-card-padding);
}
.session-card,
.consult-card,
.notify-card {
padding: var(--tk-section-gap);
}
.vital-tabs,
.period-group {
gap: var(--tk-gap-xs);
}
// ─── 组件布局调整 ───
// EmptyState
.empty-state-action {
padding: var(--tk-section-gap) 56px;
}
// ErrorState
.error-state-retry {
padding: var(--tk-section-gap) 56px;
}
// Loading
.loading-spinner {
width: var(--tk-btn-primary-h);
height: var(--tk-btn-primary-h);
}
// StepIndicator
.step-dot {
width: var(--tk-btn-primary-h);
height: var(--tk-btn-primary-h);
}
.step-line {
height: var(--tk-gap-2xs);
top: calc(var(--tk-btn-primary-h) / 2);
}
// ─── 登录页布局调整 ───
.login-page {
padding: calc(var(--tk-gap-2xl) * 2) var(--tk-gap-2xl) var(--tk-gap-2xl);
}
.login-brand {
margin-bottom: var(--tk-gap-2xl);
}
.login-logo {
width: 112px;
height: 112px;
}
.guest-login-btn {
height: var(--tk-input-height);
}
}