First Commit
This commit is contained in:
323
有维项目/.qoder/repowiki/zh/content/用户界面设计/仪表盘布局/统计卡片设计.md
Normal file
323
有维项目/.qoder/repowiki/zh/content/用户界面设计/仪表盘布局/统计卡片设计.md
Normal file
@@ -0,0 +1,323 @@
|
||||
# 统计卡片设计
|
||||
|
||||
<cite>
|
||||
**本文引用的文件**
|
||||
- [index.html](file://index.html)
|
||||
</cite>
|
||||
|
||||
## 目录
|
||||
1. [简介](#简介)
|
||||
2. [项目结构](#项目结构)
|
||||
3. [核心组件](#核心组件)
|
||||
4. [架构总览](#架构总览)
|
||||
5. [详细组件分析](#详细组件分析)
|
||||
6. [依赖关系分析](#依赖关系分析)
|
||||
7. [性能考虑](#性能考虑)
|
||||
8. [故障排查指南](#故障排查指南)
|
||||
9. [结论](#结论)
|
||||
10. [附录](#附录)
|
||||
|
||||
## 简介
|
||||
本设计文档聚焦于“有维项目”的统计卡片系统,围绕统计卡片网格布局、响应式断点与视觉层次组织展开;同时对三类卡片设计模式(数据展示卡片、指标统计卡片、状态指示卡片)进行规范说明,并系统阐述交互设计(悬停、点击反馈、动画过渡、视觉引导)、颜色系统与图标设计、数据可视化原则、定制化指南、数据绑定与动态更新机制,以及性能优化、懒加载策略与内存管理建议。文档旨在为设计师与开发者提供统一、可落地的设计参考与实现指南。
|
||||
|
||||
## 项目结构
|
||||
本项目采用单页应用结构,统计卡片主要位于仪表盘页面的“平台概览”Tab中,采用CSS Grid实现网格布局,并通过媒体查询在不同屏幕尺寸下自适应调整列数与间距。
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
A["index.html<br/>主入口"] --> B["仪表盘页面<br/>.dashboard-page"]
|
||||
B --> C["Tab导航<br/>.tab-nav"]
|
||||
C --> D["平台概览Tab<br/>.tab-content#overview"]
|
||||
D --> E["统计卡片网格<br/>.stats-grid"]
|
||||
E --> F["统计卡片<br/>.stat-card"]
|
||||
F --> G["图标容器<br/>.stat-icon"]
|
||||
F --> H["数值展示<br/>.stat-value"]
|
||||
F --> I["标签说明<br/>.stat-label"]
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [index.html:1626-1741](file://index.html#L1626-L1741)
|
||||
|
||||
章节来源
|
||||
- [index.html:1626-1741](file://index.html#L1626-L1741)
|
||||
|
||||
## 核心组件
|
||||
- 统计卡片网格(.stats-grid)
|
||||
- 使用CSS Grid实现,初始为4列,通过媒体查询在小屏设备上减少列数,保证信息密度与可读性。
|
||||
- 统计卡片(.stat-card)
|
||||
- 卡片容器,包含图标、数值与标签三要素,具备悬停提升与阴影增强的交互反馈。
|
||||
- 图标容器(.stat-icon)
|
||||
- 固定尺寸圆角矩形,内置图标,按主题色区分不同业务域。
|
||||
- 数值展示(.stat-value)
|
||||
- 大号粗体数字,强调关键指标。
|
||||
- 标签说明(.stat-label)
|
||||
- 小号辅助文本,解释数值含义。
|
||||
|
||||
章节来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
## 架构总览
|
||||
统计卡片系统由“布局层(Grid)—卡片层(Card)—内容层(Icon/Value/Label)”三层构成,配合CSS变量与媒体查询实现主题与响应式一致性。
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "布局层"
|
||||
S1[".stats-grid<br/>Grid容器"]
|
||||
end
|
||||
subgraph "卡片层"
|
||||
C1[".stat-card<br/>卡片容器"]
|
||||
C2[".stat-card:hover<br/>悬停态"]
|
||||
end
|
||||
subgraph "内容层"
|
||||
I1[".stat-icon<br/>图标容器"]
|
||||
V1[".stat-value<br/>数值"]
|
||||
L1[".stat-label<br/>标签"]
|
||||
end
|
||||
S1 --> C1
|
||||
C1 --> I1
|
||||
C1 --> V1
|
||||
C1 --> L1
|
||||
C1 -.-> C2
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
## 详细组件分析
|
||||
|
||||
### 统计卡片网格布局
|
||||
- 初始布局:4列等宽网格,列间距与行间距均为固定像素值,确保视觉对齐。
|
||||
- 响应式断点:
|
||||
- 宽度小于等于1200px:网格改为2列,适配中屏设备。
|
||||
- 宽度小于等于768px:网格改为1列,保证移动端阅读体验。
|
||||
- 视觉层次:卡片具备圆角、浅阴影与悬停提升效果,形成层级感与交互反馈。
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Start(["进入平台概览Tab"]) --> Init["初始化统计网格<br/>4列布局"]
|
||||
Init --> CheckWidth{"屏幕宽度"}
|
||||
CheckWidth --> |<= 768px| OneCol["1列网格"]
|
||||
CheckWidth --> |<= 1200px & > 768px| TwoCol["2列网格"]
|
||||
CheckWidth --> |> 1200px| FourCol["4列网格"]
|
||||
OneCol --> Render["渲染卡片"]
|
||||
TwoCol --> Render
|
||||
FourCol --> Render
|
||||
Render --> Hover["悬停提升与阴影增强"]
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [index.html:1469-1545](file://index.html#L1469-L1545)
|
||||
- [index.html:1677-1699](file://index.html#L1677-L1699)
|
||||
|
||||
章节来源
|
||||
- [index.html:1469-1545](file://index.html#L1469-L1545)
|
||||
- [index.html:1677-1699](file://index.html#L1677-L1699)
|
||||
|
||||
### 数据展示卡片
|
||||
- 设计要点
|
||||
- 图标:使用语义明确的表情符号或图标,颜色与业务域一致。
|
||||
- 数值:采用大字号与高权重字体,突出关键信息。
|
||||
- 标签:简洁描述数值含义,避免冗长。
|
||||
- 交互反馈:悬停时卡片轻微上移并增强阴影,提供触控与视觉反馈。
|
||||
- 颜色系统:图标背景色与主题色保持一致,确保品牌一致性。
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class StatCard {
|
||||
+图标容器(.stat-icon)
|
||||
+数值(.stat-value)
|
||||
+标签(.stat-label)
|
||||
+悬停效果(.stat-card : hover)
|
||||
}
|
||||
class Icon {
|
||||
+固定尺寸
|
||||
+圆角背景
|
||||
+主题色系
|
||||
}
|
||||
class Value {
|
||||
+大字号
|
||||
+高权重
|
||||
}
|
||||
class Label {
|
||||
+小字号
|
||||
+辅助说明
|
||||
}
|
||||
StatCard --> Icon : "包含"
|
||||
StatCard --> Value : "包含"
|
||||
StatCard --> Label : "包含"
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
章节来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
### 指标统计卡片
|
||||
- 设计要点
|
||||
- 数值单位与格式:如“2000+”等聚合指标,需在标签中明确单位或范围。
|
||||
- 可视化原则:优先使用清晰的数字与简短标签,避免复杂图表。
|
||||
- 交互设计:悬停提升与阴影变化,增强点击预期。
|
||||
- 响应式适配:在窄屏下保持紧凑布局,必要时隐藏次要信息。
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as "用户"
|
||||
participant C as ".stat-card"
|
||||
participant G as ".stats-grid"
|
||||
U->>C : "鼠标悬停"
|
||||
C->>C : "transform : translateY(-4px)"
|
||||
C->>C : "box-shadow : var(--shadow-md)"
|
||||
U->>G : "屏幕尺寸变化"
|
||||
G->>G : "媒体查询切换列数"
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
- [index.html:1469-1545](file://index.html#L1469-L1545)
|
||||
|
||||
章节来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
- [index.html:1469-1545](file://index.html#L1469-L1545)
|
||||
|
||||
### 状态指示卡片
|
||||
- 设计要点
|
||||
- 使用语义化图标与颜色表达状态(如成功、警告、错误),但本项目未直接出现状态卡片示例。
|
||||
- 若扩展状态卡片,建议结合图标、颜色与标签共同传达状态含义。
|
||||
- 交互设计:与数据展示卡片一致,保持统一的悬停与阴影反馈。
|
||||
|
||||
(本节为概念性说明,不直接分析具体源码)
|
||||
|
||||
### 交互设计
|
||||
- 悬停效果:卡片轻微上移与阴影增强,提供触控与视觉反馈。
|
||||
- 点击反馈:卡片具备可点击区域,结合Tab切换与页面跳转实现导航。
|
||||
- 动画过渡:使用CSS transition实现平滑的位移与阴影变化。
|
||||
- 视觉引导:通过阴影与提升效果引导用户关注当前交互元素。
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as "用户"
|
||||
participant S as "统计卡片"
|
||||
U->>S : "鼠标悬停"
|
||||
S-->>U : "transform : translateY(-4px)"
|
||||
S-->>U : "box-shadow : var(--shadow-md)"
|
||||
U->>S : "鼠标离开"
|
||||
S-->>U : "恢复默认状态"
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
章节来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
### 颜色系统与图标设计
|
||||
- 颜色系统
|
||||
- 主题色:紫色、绿色、蓝色、橙色等,用于图标背景与强调色。
|
||||
- 背景色:卡片背景为白色,网格背景为浅灰,确保对比度与可读性。
|
||||
- 阴影:采用多级阴影变量,营造立体感。
|
||||
- 图标设计
|
||||
- 使用表情符号或简洁图标,与业务域对应,保持风格统一。
|
||||
- 图标容器为固定尺寸与圆角背景,确保视觉平衡。
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
Theme["主题色系<br/>紫色/绿色/蓝色/橙色"] --> IconBg["图标背景色"]
|
||||
CardBg["卡片背景色<br/>白色"] --> Contrast["对比度保障"]
|
||||
Shadow["阴影变量<br/>多级阴影"] --> Depth["层次感"]
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [index.html:14-31](file://index.html#L14-L31)
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
章节来源
|
||||
- [index.html:14-31](file://index.html#L14-L31)
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
### 数据可视化原则
|
||||
- 简洁优先:统计卡片以数字与简短标签为主,避免复杂图表。
|
||||
- 语义明确:图标与标签共同传达含义,减少歧义。
|
||||
- 层次清晰:通过字号、权重与颜色区分主次信息。
|
||||
- 响应式适配:在窄屏下保持信息密度与可读性。
|
||||
|
||||
(本节为通用设计原则说明)
|
||||
|
||||
### 定制化指南
|
||||
- 结构定制
|
||||
- 可通过修改统计网格列数与间距,适配不同业务场景。
|
||||
- 卡片内容可替换为新的图标、数值与标签组合。
|
||||
- 样式定制
|
||||
- 使用CSS变量统一管理主题色与阴影,便于全局替换。
|
||||
- 通过伪类与hover状态实现交互反馈。
|
||||
- 数据绑定与动态更新
|
||||
- 在现有结构基础上,可通过脚本动态更新数值与标签内容,保持与后端数据同步。
|
||||
- 建议采用轻量的数据绑定库或原生DOM操作,避免过度依赖框架。
|
||||
|
||||
章节来源
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
- [index.html:2448-2732](file://index.html#L2448-L2732)
|
||||
|
||||
## 依赖关系分析
|
||||
统计卡片系统依赖于:
|
||||
- CSS Grid:实现网格布局与响应式列数切换。
|
||||
- CSS变量:统一颜色与阴影,便于主题定制。
|
||||
- 媒体查询:在不同断点下调整网格列数与间距。
|
||||
- JavaScript:页面切换、用户交互与动态内容更新(与统计卡片联动)。
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
CSS["CSS Grid/变量/媒体查询"] --> Layout["统计网格布局"]
|
||||
JS["JavaScript<br/>页面切换/交互"] --> Interact["用户交互"]
|
||||
Layout --> Render["渲染统计卡片"]
|
||||
Interact --> Render
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [index.html:1469-1545](file://index.html#L1469-L1545)
|
||||
- [index.html:2448-2732](file://index.html#L2448-L2732)
|
||||
|
||||
章节来源
|
||||
- [index.html:1469-1545](file://index.html#L1469-L1545)
|
||||
- [index.html:2448-2732](file://index.html#L2448-L2732)
|
||||
|
||||
## 性能考虑
|
||||
- 渲染性能
|
||||
- 使用CSS Grid与transform属性进行布局与动画,避免频繁重排与重绘。
|
||||
- 控制阴影与透明度的使用数量,减少GPU压力。
|
||||
- 响应式性能
|
||||
- 媒体查询仅影响布局列数,不引入额外脚本逻辑,降低复杂度。
|
||||
- 交互性能
|
||||
- 悬停动画使用transition,帧率稳定且开销较小。
|
||||
- 内存管理
|
||||
- 统计卡片为静态内容,无需复杂状态管理;若引入动态数据,建议采用轻量数据绑定与及时清理事件监听。
|
||||
|
||||
(本节为通用性能建议说明)
|
||||
|
||||
## 故障排查指南
|
||||
- 卡片未按预期换列
|
||||
- 检查媒体查询断点是否正确,确认容器宽度是否达到断点阈值。
|
||||
- 悬停效果异常
|
||||
- 检查hover状态样式是否被覆盖,确认transition属性是否生效。
|
||||
- 数值显示错位
|
||||
- 检查字体大小与行高设置,确保在不同字号下仍保持垂直居中。
|
||||
- 颜色不一致
|
||||
- 检查CSS变量定义与引用,确保主题色与图标背景色一致。
|
||||
|
||||
章节来源
|
||||
- [index.html:1469-1545](file://index.html#L1469-L1545)
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
|
||||
## 结论
|
||||
本统计卡片系统以简洁、清晰为核心设计目标,通过CSS Grid实现灵活的网格布局,借助媒体查询在多终端上保持一致的视觉体验。卡片采用统一的颜色与图标体系,配合悬停与阴影反馈,形成良好的交互体验。建议在后续扩展中遵循本文档的设计原则与定制化指南,确保系统在功能扩展与性能优化上的可持续发展。
|
||||
|
||||
## 附录
|
||||
- 响应式断点一览
|
||||
- 1200px:2列网格
|
||||
- 768px:1列网格
|
||||
- 主题色与图标背景
|
||||
- 紫色、绿色、蓝色、橙色等主题色用于图标背景,保持品牌一致性。
|
||||
|
||||
章节来源
|
||||
- [index.html:1469-1545](file://index.html#L1469-L1545)
|
||||
- [index.html:586-633](file://index.html#L586-L633)
|
||||
Reference in New Issue
Block a user