Loading...
Loading...
Compare original and translation side by side
| Concept Type | Optimal Format | Why |
|---|---|---|
| Transformation/Change | Morphing animation | Shows before→after as continuous process |
| Hierarchy/Structure | Zoomable treemap or nested diagram | Reveals layers through interaction |
| Process/Flow | Stepped animation with scrubber | User controls pace of revelation |
| Comparison | Side-by-side with synchronized animation | Parallel structure highlights differences |
| Accumulation/Growth | Building animation | Each element adds to previous |
| Relationship/Network | Force-directed graph | Reveals emergent structure |
| Distribution/Proportion | Animated unit chart or waffle | Makes quantities tangible |
| Cycle/Feedback | Looping animation with entry points | Shows perpetual motion of systems |
| Timeline/Sequence | Horizontal scroll with annotations | Natural reading direction |
| Spatial/Geographic | Annotated map with zoom | Grounds abstract in physical |
| Mental Model | Metaphor-based diagram | Connects abstract to familiar |
| Trade-off/Tension | Slider-controlled balance | Shows interdependence |
| 概念类型 | 推荐格式 | 原因 |
|---|---|---|
| 转化/变化 | 变形动画 | 将前后变化展示为连续过程 |
| 层级/结构 | 可缩放树形图或嵌套图表 | 通过交互展示层级关系 |
| 流程/流转 | 带进度控制的分步动画 | 用户可控制信息揭示的节奏 |
| 对比/比较 | 同步动画的并排展示 | 平行结构突出差异 |
| 积累/增长 | 构建式动画 | 每个元素在之前的基础上添加 |
| 关联/网络 | 力导向图 | 展示涌现式结构 |
| 分布/占比 | 动画化单位图或华夫图 | 让数量更具象 |
| 循环/反馈 | 带入口点的循环动画 | 展示系统的持续运转 |
| 时间线/序列 | 带注释的横向滚动条 | 符合自然阅读方向 |
| 空间/地理 | 可缩放标注地图 | 将抽象内容落地到物理空间 |
| 思维模型 | 基于隐喻的图表 | 将抽象概念与熟悉事物关联 |
| 权衡/张力 | 滑块控制的平衡图 | 展示相互依赖关系 |
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--text-hero: 2rem; /* Single key number or word */
--text-title: 1.25rem; /* Visual title */
--text-label: 0.875rem; /* Axis labels, annotations */
--text-micro: 0.75rem; /* Secondary details */font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;
--text-hero: 2rem; /* 单个关键数字或词汇 */
--text-title: 1.25rem; /* 视觉标题 */
--text-label: 0.875rem; /* 坐标轴标签、注释 */
--text-micro: 0.75rem; /* 次要细节内容 */--ink: #1a1a2e; /* Primary elements */
--ink-light: #4a4a68; /* Secondary elements */
--accent: #e94560; /* Single highlight */
--ground: #fafafa; /* Background */
--ground-alt: #f0f0f5; /* Alternate regions */--cat-1: #4e79a7; --cat-2: #f28e2c; --cat-3: #e15759;
--cat-4: #76b7b2; --cat-5: #59a14f; --cat-6: #af7aa1;--ink: #1a1a2e; /* 主要元素 */
--ink-light: #4a4a68; /* 次要元素 */
--accent: #e94560; /* 单个高亮元素 */
--ground: #fafafa; /* 背景色 */
--ground-alt: #f0f0f5; /* 交替区域背景色 */--cat-1: #4e79a7; --cat-2: #f28e2c; --cat-3: #e15759;
--cat-4: #76b7b2; --cat-5: #59a14f; --cat-6: #af7aa1;const EASE = {
standard: 'cubic-bezier(0.4, 0, 0.2, 1)', // Smooth, natural
enter: 'cubic-bezier(0, 0, 0.2, 1)', // Start fast, settle
exit: 'cubic-bezier(0.4, 0, 1, 1)', // Start slow, accelerate
bounce: 'cubic-bezier(0.34, 1.56, 0.64, 1)' // Slight overshoot
};
const DURATION = {
micro: 100, // Color, opacity
fast: 200, // Small movements
medium: 350, // Standard transitions
slow: 500, // Large movements
dramatic: 800 // Major reveals
};const EASE = {
standard: 'cubic-bezier(0.4, 0, 0.2, 1)', /* 流畅自然的动效 */
enter: 'cubic-bezier(0, 0, 0.2, 1)', /* 快速进入,平稳落地 */
exit: 'cubic-bezier(0.4, 0, 1, 1)', /* 缓慢启动,加速退出 */
bounce: 'cubic-bezier(0.34, 1.56, 0.64, 1)' /* 轻微过冲的弹性效果 */
};
const DURATION = {
micro: 100, /* 颜色、透明度变化 */
fast: 200, /* 小幅度移动 */
medium: 350, /* 标准过渡效果 */
slow: 500, /* 大幅度移动 */
dramatic: 800 /* 核心内容揭示 */
};| Complexity | Tool | Use When |
|---|---|---|
| Simple | Pure CSS | State transitions, hovers, basic transforms |
| Standard | Vanilla JS + CSS | Sequenced animations, scroll triggers, simple interactions |
| Complex | GSAP | Timeline sequences, physics, SVG morphing |
| Data-driven | D3.js | Force layouts, maps, data-bound transitions |
| 复杂度 | 工具 | 适用场景 |
|---|---|---|
| 简单 | 纯CSS | 状态切换、悬停效果、基础变换 |
| 标准 | Vanilla JS + CSS | 序列动画、滚动触发、简单交互 |
| 复杂 | GSAP | 时间线序列、物理动效、SVG变形 |
| 数据驱动 | D3.js | 力导向布局、地图、数据绑定过渡 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Visual: [Concept Name]</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { /* Design tokens */ }
/* Component styles */
</style>
</head>
<body>
<figure class="explainer-visual" role="img" aria-label="[Description]">
<!-- Visual content -->
<figcaption class="visually-hidden">[Accessible description]</figcaption>
</figure>
<script>
// Animation and interaction logic
</script>
</body>
</html><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Visual: [Concept Name]</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { /* 设计变量 */ }
/* 组件样式 */
</style>
</head>
<body>
<figure class="explainer-visual" role="img" aria-label="[Description]">
<!-- 视觉内容 -->
<figcaption class="visually-hidden">[无障碍描述]</figcaption>
</figure>
<script>
// 动画与交互逻辑
</script>
</body>
</html>.visually-hidden {
position: absolute; width: 1px; height: 1px;
padding: 0; margin: -1px; overflow: hidden;
clip: rect(0, 0, 0, 0); border: 0;
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}role="img" aria-label="...".visually-hiddenprefers-reduced-motion.visually-hidden {
position: absolute; width: 1px; height: 1px;
padding: 0; margin: -1px; overflow: hidden;
clip: rect(0, 0, 0, 0); border: 0;
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}role="img" aria-label="...".visually-hiddenprefers-reduced-motion