name: haha-admin-mp description: AI 智能零售柜运营管理端,与 haha-mp 消费者端共享暖金黄品牌语言 colors: amber-primary: "#FFC107" amber-light: "#FFE082" amber-dark: "#FFA000" amber-bg: "#FFF8E1" orange-accent: "#f97316" orange-accent-bg: "#fff7ed" sky-info: "#0ea5e9" sky-info-bg: "#f0f9ff" green-success: "#10b981" green-success-bg: "#ecfdf5" amber-warning: "#f59e0b" amber-warning-bg: "#fffbeb" red-error: "#ef4444" red-error-bg: "#fef2f2" slate-text-primary: "#1e293b" slate-text-secondary: "#475569" slate-text-tertiary: "#64748b" slate-text-muted: "#94a3b8" slate-text-placeholder: "#cbd5e1" ash-page-bg: "#f8fafc" white-card-bg: "#ffffff" ash-secondary-bg: "#f1f5f9" ash-border: "#e2e8f0" ash-border-light: "#f1f5f9" typography: body:
fontFamily: "-apple-system, BlinkMacSystemFont, PingFang SC, Helvetica Neue, system-ui, sans-serif"
fontSize: "28rpx"
fontWeight: 400
lineHeight: 1.6
title:
fontWeight: 600
fontSize: "28rpx"
headline:
fontWeight: 600
fontSize: "30rpx"
display:
fontWeight: 700
fontSize: "32rpx"
label:
fontWeight: 500
fontSize: "22rpx"
letterSpacing: "0.02em"
rounded: xs: "4rpx" sm: "8rpx" base: "12rpx" md: "16rpx" lg: "20rpx" xl: "24rpx" full: "9999rpx" spacing: "1": "8rpx" "2": "16rpx" "3": "24rpx" "4": "32rpx" "5": "40rpx" "6": "48rpx" "7": "56rpx" "8": "64rpx" components: button-primary:
backgroundColor: "{colors.amber-primary}"
textColor: "{colors.slate-text-primary}"
rounded: "{rounded.xl}"
padding: "28rpx 48rpx"
button-primary-hover:
backgroundColor: "{colors.amber-dark}"
button-secondary:
backgroundColor: "{colors.ash-secondary-bg}"
textColor: "{colors.slate-text-primary}"
rounded: "{rounded.base}"
card-surface:
backgroundColor: "{colors.white-card-bg}"
rounded: "{rounded.md}"
status-tag-success:
backgroundColor: "{colors.green-success-bg}"
textColor: "{colors.green-success}"
rounded: "{rounded.sm}"
padding: "8rpx 16rpx"
status-tag-warning:
backgroundColor: "{colors.amber-warning-bg}"
textColor: "{colors.amber-warning}"
rounded: "{rounded.sm}"
padding: "8rpx 16rpx"
status-tag-error:
backgroundColor: "{colors.red-error-bg}"
textColor: "{colors.red-error}"
rounded: "{rounded.sm}"
padding: "8rpx 16rpx"
Creative North Star: "The Warm Workshop"
haha-admin-mp 是 AI 智能零售柜系统的运营管理端。品牌语言与 haha-mp 消费者端一脉相承——琥珀暖金作为身份色,大面积留白托底,轻阴影赋予卡片可触感。设计不追求传统后台的功能堆砌,而是在移动端上呈现清晰、温暖、高效的信息结构。
暖金不是装饰色,是信号色。它在关键操作(主按钮、激活态、扫码入口)上集中出现,其余区域用冷灰中性色后退,让操作者凭色彩就能感知界面优先级。物理场景锚定:运营人员在自然光或室内照明下使用手机,需要快速扫读——对比度、间距和字体层级比装饰更重要。
PRODUCT.md 的反参考体系直接生效:纯黑纯白被禁用,所有中性色向暖金方向偏移 0.01 chroma;无传统 ERP 的密集表格和多级菜单;无 ThemeForest 式的过度阴影和杂色装饰。
Key Characteristics:
暖金与冷灰的双轨系统。琥珀色系承担品牌身份和功能信号,石板灰色系承担文字层级和背景区分。功能色(绿/红/橙/蓝)各司其职,不混用。
The Golden Signal Rule. 暖金仅在交互关键点出现:主按钮、选中态、激活 Tab。其稀缺性制造信号效应。切勿将暖金用于大面积装饰或非交互内容。
The Tinted Neutral Rule. 所有中性色向暖金方向偏移 0.005-0.01 chroma。纯黑 #000000 和纯白 #ffffff 被禁用。视频背景使用 --bg-secondary 而非 #000。
The Financial Data Rule. 金额、统计数字永远使用 slate-text-primary,不使用红色或绿色。颜色仅携带语义状态(成功/失败),不携带价值判断。
Body Font: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', system-ui, sans-serif
系统字体栈,利用各平台的优化渲染。中文优先使用苹方,西文和数字使用 SF Pro / Segoe UI。不引入外部 Web Font,避免小程序加载开销。
Character: 工具感中性无衬线。字号层次通过 weight 和 size 的 ≥1.25 比例拉开,避免扁平淡薄。
The 28rpx Anchor Rule. 正文基线和主要控件字号均锚定在 28rpx。向上取 30/32/36rpx 做标题,向下取 22/24rpx 做辅助。绝不使用 26rpx——它作为无意义的中间值被禁用。
The One Font Rule. 整个系统使用单一字体栈。层次差异通过字号和 weight 表达,不通过字体切换表达。
Subtle lift 策略。所有可交互的卡片和表面在静止态带有统一的微阴影 0 2rpx 12rpx rgba(0,0,0,0.05),暗示可点击性和信息块边界。阴影的角色是结构的而非装饰的——区分表面层次,而非制造浮动效果。
固定元素(底部操作栏、TabBar)使用方向性阴影指向上方 0 -2rpx 12rpx rgba(0,0,0,0.05)。
box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.05)): 所有卡片、列表卡片在静止态。最常用的层级。box-shadow: 0 2rpx 8rpx rgba(0,0,0,0.04)): 原阴影去除了 elevation,active 态通过 opacity: 0.7 补充反馈。box-shadow: 0 -2rpx 12rpx rgba(0,0,0,0.05)): 固定在底部的操作栏。box-shadow: 0 6rpx 20rpx rgba(255,193,7,0.4)): 仅用于扫码 FAB 按钮。唯一的彩色阴影——暖金散射,强调该按钮的首要地位。#f8fafc 无阴影。通过色值与白色卡片自然区分。The Shadows-As-State Rule. 阴影在静止态统一微弱,在交互态通过 opacity 而非 elevation 变化反馈。不做悬浮升起动画。FAB 的暖金 glow shadow 是唯一的例外,其存在理由是该按钮是整个 TabBar 的视觉锚点。
#FFC107,文字 #1e293b 60% weight,padding 28rpx 48rpx。Active 态 opacity 降至 0.8。用于页面级主操作(保存、退款、确认)。#f1f5f9 填充,无边框,padding 8-16rpx。用于卡片内的次级操作(查看详情、筛选、复制)。0 6rpx 20rpx rgba(255,193,7,0.4) 暖金辉光阴影。Tap 时缩至 0.92x。#ef4444,置于页面底部,与主按钮间用间距分隔。#ffffff0 2rpx 12rpx rgba(0,0,0,0.05)opacity: 0.7(可点击卡片)#f1f5f9 填充背景,1rpx solid #e2e8f0 边框,12rpx 圆角#cbd5e1#FFC107#cbd5e1 色,1.2s ease-in-out 序列脉冲动画 (0s / 0.2s / 0.4s 延迟)。用于页面级加载和骨架屏。#e2e8f0 底色 + #FFC107 顶色,1s 线性旋转。用于列表加载更多和按钮异步反馈。#f1f5f9 背景,24rpx 圆角)+ 28rpx 标题 #475569 + 24rpx 描述 #94a3b8$spacing-N / $radius-* / $font-size-* SCSS token,不硬编码数值。opacity: 0.7。height: 100vh + flex column 布局,scroll-view 用 flex: 1; height: 0 填充剩余空间。env(safe-area-inset-bottom) 留出安全区域。$font-stack 变量。#000000 或 #ffffff。中性色向暖金方向偏移 0.005-0.01 chroma。#1e293b。border-left 或 border-right 大于 1px 做彩色侧边条纹装饰。background-clip: text)。<button> 组件 + &::after { border: none } hack。用 <view> 构建按钮。v-if 按数据可用性控制。#000(如视频区)。使用 $bg-color-secondary。min-height: 100vh 做页面布局。用 height: 100vh + flex column + flex:1 scroll-view。