← 主页 · DESIGN SYSTEM · 永乐教育设计规范 v1.0

永乐教育 ·
设计系统

这是永乐教育全站的单一可信来源——颜色、字体、间距、组件、动效、模板,所有页面都从这里取规范。每次新建或迭代页面前先来这里对一遍,保证视觉一致性。

永乐教育 造物云 出品

01品牌内核

永乐教育的视觉语言来自这 3 个关键词。所有设计决策都应回到这里检验。

01 · MARK · 品牌标
永乐教育
02 · WORDMARK · 字标
让每一个孩子,
创造中找到热爱与价值
03 · MISSION · 使命
造物云 出品 · YONGLE EDUCATION
04 · SUB-BRAND · 副品牌署名
① 创造的喜悦
视觉应该让人感到"想做点什么",而不是被动接受。霓虹球 logo 的微动画、跳跃的金、留白呼吸——是品牌"有人在"的微互动锚点。
② AI 原生的判断力
AI 原生少年的眼睛已经见过太多"AI 风格化"的霓虹光效未来感。视觉要做相反方向——清晰、深思、有结构感。少一些感叹号,多一些"可以停下来想"的呼吸。
③ 永远的少年感
少年感不是把字号放大、把颜色调亮、印彩虹贴贴纸。是诚实地保留好奇——不浮夸、不说教、不端着企业感。让人一眼能感到"这里有人在认真做事"

02配色系统

所有颜色都已定义为 CSS 变量(--accent 等)。新页面只用这里列出的,不创新颜色。

背景色 BACKGROUND

主米色#F4EFE3--bg
次米色#EDE6D3--bg-2 / --paper-2
纸白#FBF8F0--paper
深空#06091A--night-0
夜蓝#0A1530--night-1
深蓝#1A2B5E--night-2

文字色 INK

主墨#1A1411--ink
次墨#3E342C--ink-soft
浅墨#7A6F60--ink-mute

品牌色 BRAND ACCENTS

主蓝#4A75E5--accent
深蓝#2D4FB3--accent-deep
#D4A858--gold
浅金#E8C97C--gold-light
#C8472C--red · 仅 logo
品牌红#E1361C--red-bright · 仅 logo
⚠ 品牌红降级:红色(#C8472C / #E1361C仅限于印刷头盔 logo、印章、Manifesto Deck 的「转折/警句」slide 主题。不作 UI 主色使用——它与全站冷调蓝金体系跳脱过大,禁止用于按钮、链接、CTA 等界面强调。需要"强调"用 --accent (#4A75E5);需要"警示"用 --gold (#D4A858)

语义用法 SEMANTIC

主蓝 #4A75E5 → 链接、强调、CTA hover、节点高亮
金 #E8C97C → 高光、深色背景中的强调、"造物云"署名
红 #C8472C仅 logo / 印章 / Deck 转折页。不作 UI 主色,需要强调用 --accent 或 --gold。
深空 #0A1530 → Hero、宣言、品味区等情绪性深色场景

03渐变系统

5 套签名渐变。Hero 用夜→晨,强调用蓝/金,IP 用彩虹环。不创新渐变——需要新方向先提议进规范。

深空 · NIGHTHero / 宣言 / 深色场景--grad-night
夜→晨 · DAWN首页 hero / 情绪过渡--grad-dawn
金箔 · GOLD海报 / 印章 / 高光块面--grad-gold
主蓝 · ACCENT按钮 / 链接强调 / CTA hover--grad-accent
彩虹环 · RAINBOW仅限 logo / IP 装饰--grad-rainbow

04字体系统

5 套字体 + 明确的使用场景。不要引入新字体——除非有强场景理由。

Noto Serif SC · 主标题/正文衬线

--serif · weight 400/500/600/700/900
永乐教育 · 让创造,从少年开始
用途:h1/h2/大标题、引用、衬线正文(letter)层级:

Noto Sans SC · 主 UI 字体

--sans · weight 300/400/500/600/700
少年 CEO · 三种核心能力 · 让创造从少年开始
用途:正文、按钮、导航、卡片标题层级:

Cormorant Garamond · 拉丁/英文斜体

--latin · italic 400/500/600
A Creativity Academy · 2026
用途:英文 tagline、章节副标题、章节编号层级:装饰

JetBrains Mono · 等宽 / Mono

--mono · weight 400/500
CHAPTER · 01 · MOTIVATION · DRIVEN
用途:标签、kicker、版权、英文小字层级:辅助

Ma Shan Zheng · 手写中文

--hand · weight 400
邱懿武 · 致家长
用途:签名、信件落款、温度感装饰层级:装饰,慎用

字号阶梯 TYPE SCALE · 全 SANS · 字重恒 500

规则:所有标题级别字重恒定 500,层级靠字号 + 颜色拉开(ink → ink-soft → ink-mute)。letter-spacing 反梯度——大字母 0、小字母正向(提升可读性 + 现代感)。不再用 Noto Serif SC 做标题(避免"古朴/教育老气")—— 衬线宋体只留给长文阅读体。

Display80-120PX
永乐教育
Sans · 50088PX · LH 1.05--ink
H156-72PX
让创造,从少年开始
Sans · 50064PX · LH 1.1--ink
H240-56PX
三种核心能力
Sans · 50044PX · LH 1.15--ink
H328-36PX
人机协作力
Sans · 50030PX · LH 1.25--ink-soft
H420-24PX
把不确定的灵感拆成系统
Sans · 50022PX · LH 1.4--ink-soft
Body LG17-18PX
在 AI 时代,少年最需要的不是知识,而是被激发动机驱动——会发现问题、会用工具、会自己想清楚。
Sans · 40017PX · LH 1.85--ink-soft
Body15-16PX
让每一个少年,在创造中找到自己的热爱与价值。
Sans · 40015PX · LH 1.8--ink-soft
Small12-13PX
把不确定的灵感拆成系统、模型、流程
Sans · 40013PX · LH 1.6--ink-mute
Caption10-11PX
CHAPTER · 01 · MOTIVATION DRIVEN
Mono · 40010.5PX · .18em--ink-mute
Kicker10-12PX
THREE CORE CAPABILITIES · 三种基础能力
Mono · 50011PX · .24em--accent

05品牌标

永乐的"脸"——RGB 霓虹小球,hover 时眨眼 + 微笑。这是线上正在使用的版本。10+ 种备选与完整 VI 规范见 Logo 实验室

主标 · ON LIGHT

SHIPPED · 线上
XL · 88px
Hero
LG · 46px
Card
M · 34px
Nav
SM · 24px
Inline
永乐教育造物云 出品
把光标移到 logo 上 → 眨眼 + 出现微笑。这是品牌"有人在"的微互动锚点。CSS 定义在 assets/css/site.css

反白 · ON DARK

Hero / Footer / 深色场景
XL · 88px
LG · 46px
M · 34px
永乐教育造物云 出品
深色场景下加 .on-dark 修饰符,光晕略亮。→ 实验室看完整方案

06"永乐教育" 字标对比

这 4 个字是品牌的面子。挑一个最匹配气质、最易识别的字体。下方推荐方案是综合考量后的首选。

永乐教育
Noto Sans SC · 600

略粗一档——深色背景或小尺寸下更稳,作为反白场景备用

永乐教育
Source Han Sans · 700

思源黑体粗体。海报、印刷、超大字号时备选——视觉分量足。

永乐教育
Noto Serif SC · 700 · 已弃用

衬线宋体——偏古朴、教育"老气",跟 AI 原生气质不符。已弃用为主字标。

永乐教育
Ma Shan Zheng · 手写

中文手写——温度感最强。不适合主字标(识别度弱),适合签名/家长信落款。

DECISION · 字标策略

全站统一用 Noto Sans SC 500–600(极简精确路线,不再搞"IP 字体")

主品牌字标(顶栏 / 底栏 / 名片 / lockup)用 Noto Sans SC 500,letter-spacing .08–.10em——干净、现代,跟"AI 原生时代"的气质对齐,避免衬线宋体的古朴/教育老气
深色 / 小尺寸场景切到 Noto Sans SC 600(多 100 字重换稳定性)。
长文正文(letter / 宣言体)仍保留 Noto Serif SC——那是阅读场景,衬线提升长文可读性,跟"字标"是两件事。
手写体 只用于"签名"和"温度感装饰"(如创始人信件落款的"邱懿武"),慎用

⚠ ZCOOL 庆科黄油体已弃用 —— 之前推荐的"IP 周边用 ZCOOL"已撤回。圆润手写体跟整体的精确/克制气质冲突,少年 IP 周边也用统一 sans / 配色来差异化,不靠字体玩耍

07间距系统

基于 8 的倍数。所有 padding/margin/gap 都从这里选,不要用 11px、17px 这种"中间值"。

--s-1
4px
--s-2
8px
--s-3
12px
--s-4
16px
--s-5
24px
--s-6
32px
--s-7
48px
--s-8
64px
--s-9
96px
--s-10
128px

08圆角 + 阴影

5 个圆角档位 + 4 个阴影档位。覆盖 99% 场景。

圆角 RADIUS

4px--r-sm · 小图标
8px--r-md · 按钮/标签
12px--r-lg · 卡片
18px--r-xl · 大块面
99px--r-pill · 胶囊/导航/按钮

阴影 SHADOW

--sh-1轻微浮起
--sh-2卡片 hover
--sh-3主要面板
--sh-4浮动模态

09组件 / Micro UI

高频小组件——徽章、标签、章节符、分割线。所有 letterspacing / 字号 / 颜色已对齐 --mono + 品牌色板。

BADGES · 徽章
SHIPPED 推荐 DEPRECATED PRO BETA
状态 / 推荐度 / 角色标识。.ds-badge.blue|gold|red|ink|outline
KICKERS · 章节符
CHAPTER · 01 · MOTIVATION THREE CORE CAPABILITIES · 三种基础能力 DECISION · 字标策略
章节上方的小标题,Mono + .24em letter-spacing,主色一般为 --accent
CHIPS · 标签 / Filter
全部 少年 CEO 作品集 理念
导航 TOC、筛选条、tab。激活态加 .on → 反白。
DIVIDERS · 分割线
实线 / 虚线 / 点线 / 渐隐。卡片内分隔用虚线,章节用渐隐。

10按钮系统

5 种按钮变体,覆盖所有 CTA 场景。

PRIMARY · 主CTA
class="btn primary"
SECONDARY · 蓝色
class="btn accent"
GHOST · 描边
class="btn ghost-ink"
GOLD · 金色高亮
class="btn gold"
FROSTED · 玻璃感
class="btn frosted"

11卡片模式

标准卡片结构 — 编号 + 标题 + 英文小字 + 正文。hover 上浮 + 蓝边。

01

能力 / 概念名

CAPABILITY / CONCEPT

15px 中文正文,line-height 1.7,颜色 --ink-soft。控制在 2-3 行最佳。

02

能力 / 概念名

CAPABILITY / CONCEPT

15px 中文正文,line-height 1.7,颜色 --ink-soft。控制在 2-3 行最佳。

03

能力 / 概念名

CAPABILITY / CONCEPT

15px 中文正文,line-height 1.7,颜色 --ink-soft。控制在 2-3 行最佳。

11.5表单 · 通知 · 弹窗

所有交互组件。全部 CSS 在 site.css 单点定义,HTML 只需 markup + class。

Forms · 表单 input / textarea / select / check / radio

LIVE PREVIEW
少年 CEO 项目针对 9–15 岁创新者
⚠ 邮箱格式不正确

规格

Class用途
.field字段容器 (label+input+help/err)
.input / .textarea / .select3 种文本输入基线
.input.sm / .lg两个尺寸变体
.check / .radio自绘选择控件
.field.has-error触发 err 显示 + 红色 border

状态

状态视觉
Defaultpaper bg · line border
Hover#fff bg · darker border
Focus-visibleaccent border + 3px halo
Disabledopacity .45 · cursor not-allowed
Errorred-bright border + .04 bg tint

代码

<div class="field has-error">
  <label>邮箱 <span class="req">*</span></label>
  <input class="input" value="abc@email">
  <div class="err">邮箱格式不正确</div>
</div>

Toasts · 通知 success / info / warn / error 4 变体

LIVE PREVIEW · 4 变体
已提交报名我们 24 小时内会回复
i
第二期招生中剩余 8 个名额
!
注意家长面谈需提前 3 天预约

变体

Class用途ARIA
.toast.success绿 icon · 操作成功role="status"
.toast.info蓝 icon · 信息提示role="status"
.toast.warn金 icon · 警告role="status"
.toast.error红 icon · 错误role="alert"

位置与行为

  • 容器 .toast-region fixed 在右上角(top:90px · 避开 nav)
  • 移动端 max-width 自动收紧(calc(100vw - 48px)
  • 入场 --t-base bounce ease,离场 --t-fast
  • 默认 4 秒自动消失(JS 控制),加 .leaving 触发离场动画
  • aria-live="polite" 加在 region;error 用 role="alert"

代码

<div class="toast-region" aria-live="polite">
  <div class="toast success" role="status">
    <span class="toast-ico">✓</span>
    <div class="toast-body">
      <strong>已提交</strong>副标题
    </div>
    <button class="toast-close">×</button>
  </div>
</div>

Modal · 弹窗 居中 / 移动端 bottom-sheet

LIVE PREVIEW · 静态展示

结构

Class作用
.modal-overlaybackdrop blur + 居中
.modal主卡片 · paper bg · 圆角 xl
.modal.sm / .lg380 / 720px 变体(默认 540px)
.modal-header标题 + 副标题 + × 关闭
.modal-body主内容(可滚动)
.modal-footer右对齐按钮组 + 可选 .modal-helper 左侧

a11y · 行为

  • .modal 必须有 role="dialog" + aria-modal="true" + aria-labelledby
  • 打开后焦点移入第一个可聚焦元素
  • Esc 关闭、Tab 在 modal 内循环
  • 点击 overlay(modal 外)触发关闭
  • 关闭时焦点返回触发按钮
  • 移动端自动变 bottom-sheet(从下方滑入)
  • 入场 bounce ease,出场加 .leaving 触发淡出

代码

<div class="modal-overlay" role="presentation">
  <div class="modal" role="dialog"
       aria-modal="true"
       aria-labelledby="m-title">
    <header class="modal-header">
      <div><div class="modal-title" id="m-title">标题</div>
        <div class="modal-sub">副标题</div></div>
      <button class="modal-close">×</button>
    </header>
    <div class="modal-body">正文…</div>
    <footer class="modal-footer">
      <button class="btn ghost-ink">取消</button>
      <button class="btn accent">确认</button>
    </footer>
  </div>
</div>

11.7次级组件 / Tertiary

8 个高频小组件——badge · chip · tabs · breadcrumbs · pager · tooltip · progress · divider。全部在 site.css 单点定义,所有页面 import 即用。

① BADGE · 状态徽标
DEFAULT 招生中 即将开放 BETA 已满
<span class="badge success dot">招生中</span>
② CHIP · 标签/筛选项
全部 × 少年 CEO 家长工作坊 教师认证
<span class="chip is-active">全部</span>
③ TABS · 选项卡
少年 CEO 是为 9-15 岁孩子设计的 12 周创造力实践营…
<button class="tab is-active" aria-selected="true">概述</button>
④ BREADCRUMBS · 面包屑
<nav class="crumbs">
  <a href="…">永乐</a><span class="sep">/</span>
  <span class="current">当前页</span>
</nav>
⑤ PAGINATION · 分页
1 2 3 12
<a href="?p=2" aria-current="page">2</a>
⑥ TOOLTIP · 悬浮提示

少年 CEO 采用 H³-TII 体系培养,每个学员产出 MVP 级真实作品。

<span class="tip" data-tip="解释文案">术语</span>
⑦ PROGRESS · 进度
<div class="progress"><div class="bar" style="width:68%"></div></div>
⑧ DIVIDER · 分隔线
上一段内容…
CHAPTER 02
下一段内容…
<div class="hr">CHAPTER 02</div>

12动效时长

3 档时长 + 2 种缓动曲线。每个交互最多用一种动效。禁止 1s+ 长动画(除非全屏过场)。

150ms · --t-fast微交互(颜色变化)
250ms · --t-base常规过渡(hover/卡片)
400ms · --t-slow大型动画(页面 reveal)
缓动曲线:
--ease-default: cubic-bezier(.4, 1, .6, 1) — 常规
--ease-bounce: cubic-bezier(.45, 1.5, .55, 1) — 弹性 overshoot(hover 上浮等场景)

13导航 + Logo

完整规范见 Logo 实验室 单独页面(10+ 方案对比 + 品牌应用规范)。

顶栏胶囊 · NAV PILL · DARK BG 真实磨砂玻璃 + Hover

规范:背景 rgba(14,18,32,.35) + backdrop-filter:saturate(180%) blur(30px) · 边框 rgba(255,255,255,.14) · 链接 hover 加 rgba(255,255,255,.10) 背景(鼠标移到链接试试)。

顶栏胶囊 · NAV PILL · LIGHT BG(滚动到非 hero 区后切换)

规范:主页滚出 hero 区后,加 .on-paper class 切换为浅色——背景 rgba(255,255,255,.55),文字 var(--ink)。过渡 250ms。

响应式 · 断点矩阵 2026-05 更新
DESKTOP · 横屏
≥ 1181px
完整水平 nav · 8 个链接 + CTA 全显示。所有 wordmark / by / 链接 / CTA 全部 white‑space:nowrap + flex‑shrink:0
TABLET · 竖屏 ✓
641 – 1480px
iPad / iPad Pro 竖屏 + 中等笔记本 — 仍然完整水平 nav,字号 12-12.5px / 间距收紧。2026-05-25 改:不再触发 burger。
MOBILE · 真手机
≤ 640px
Hamburger 全屏菜单。iPhone / Android 手机竖横屏。"造物云出品"小字隐藏,wordmark 字号 13.5px。
实际媒体查询(3 档):
/* 紧凑 nav(含平板竖屏)*/ @media (min-width:641px) and (max-width:1480px) { /* 字号收 13→12.5px · gap 1px · padding 收紧 */ } /* 更紧(641-900px):藏"造物云出品"badge */ @media (min-width:641px) and (max-width:900px) { /* font 12px · 让 8 链接 + CTA 全部容纳 */ } /* 真手机 → hamburger */ @media (max-width:640px) { /* burger + 全屏 mobile-menu */ }
三条防线:
  1. 所有 nav 链接加 white-space:nowrap——单条链接永远不竖排。
  2. 641-1480px 自动 compact(字号/gap/padding 缩小),让全 nav 在平板竖屏也能完整显示。
  3. ≤640px 才切 hamburger——只在真手机用,平板/笔记本永远显示完整菜单。
2026-05-25 重大改版:之前 burger 触发在 1180px / 竖屏 1280px — 平板竖屏全都变成 burger,体验差。改成纯 640px 真手机判定后,iPad 竖屏(768-1024px)、iPad Pro 竖屏(834-1024px)都保持完整 nav。
真手机 · HAMBURGER PILL ≤640px only

规范:nav links 和 nav-cta 隐藏(display:none),"造物云出品"小字隐藏,wordmark 字号收到 13.5px,加 flex-shrink:0 防止挤压。点 burger 弹出 .mobile-menu 全屏抽屉(参考 index.html 第 2069 行)。

完整 Token 表 · NAV TOKENS
属性 深底(hero 上) 浅底(.on-paper)
背景 rgba(14,24,55,.45) rgba(255,255,255,.7)
backdrop-filter saturate(180%) blur(30px) · 两态一致
border 1px rgba(255,255,255,.14) 1px rgba(14,18,24,.10)
阴影 0 8px 30px -10px rgba(0,0,0,.35) 0 8px 30px -10px rgba(0,0,0,.12)
wordmark 文字 #fff var(--ink)
"造物云出品" 副字 rgba(255,255,255,.55) var(--ink-mute)
nav links rgba(255,255,255,.72) var(--ink-soft)
link :hover bg rgba(255,255,255,.10) · #fff bg rgba(14,18,24,.06) · var(--ink)
link .current bg rgba(255,255,255,.14) · #fff bg rgba(14,18,24,.06) · var(--ink)
CTA 按钮 var(--accent) → :hover #3D60BD · #fff 文字 · 两态一致
过渡 color/background .25s ease · border-color .25s ease
深 ↔ 浅 切换机制 · SCROLL TRIGGER

原则:nav 默认深态,滚过 hero 区(或子页面的 page-hero)后加 .on-paper class 切到浅态。

触发条件:IntersectionObserver 观察 hero 元素。hero 离开视口顶部(intersection ratio = 0 且 boundingClientRect.top < 0)→ 加 .on-paper。反之移除。

const hero = document.getElementById('hero'); const nav = document.querySelector('nav.top'); new IntersectionObserver(([e]) => { nav.classList.toggle('on-paper', !e.isIntersecting); }, { rootMargin: '-70px 0px 0px 0px' }).observe(hero);

没有 hero 的页面(如 design-system / logo-lab)→ 永远保持 默认深态,不切。

→ 完整 Logo 实验室与品牌 VI

15子页面模板

所有子页面共享同一骨架:顶栏 → 面包屑 → Hero → 章节 N → CTA → 页脚。Hero 风格随主题切换(深空 / 米色 / 渐变),其余结构稳定。

顶栏 · NAV PILL · sticky · 滚动后 .on-paper
面包屑 · BREADCRUMB · ← 主页 · CHAPTER · 02
页面标题 · H1 clamp(40,5.4vw,72)
主导文 / Lede · 17px · max-width 780
章节 1 · 卡片网格
章节 2 · 时间线
章节 3 · 引言
章节 N · 大图 + 旁注
CTA · 主行动
CTA · 次行动
页脚 · FOOTER · 4 列
页面宽度
所有 section padding:80px 8vw · 内容 max-width:1320px · 居中
面包屑
.crumb · --mono · 11px · .22em · uppercase · 顶部 18px gap
H1
Sans 500/600 · clamp(40px,5.4vw,72px) · line-height 1.08 · 主导词用 em 着金/蓝色
Lede
17px · color --ink-soft · max-width 780 · line-height 1.85
章节
<section> · 80px 上下 padding · 之间用 border-bottom: 1px solid --line-soft
章节标题
H2 Serif 700 · clamp(32px,4.4vw,56px) · 编号用 .num (Cormorant italic · 主蓝)
章节副文
.sec-lede · 15px · color --ink-soft · max-width 760 · 章节标题下方 14px
移动端
≤900 → 单列 · ≤560 → padding 改 5vw · 字号收缩到 clamp 下限

真实案例 · 4 类子页面

同一骨架在不同主题下的呈现。点卡片在新标签打开完整页面。

16图表 / Charts

站内 10 类视觉表达:基础 4 种(柱状/折线/环形/轨道)+ 补充 6 种(迷你线/进度/仪表/热力/漏斗/雷达)。色板只用 --accent / --gold / --ink-mute,不引入第四个色——保证全站数据视觉风格统一。

柱状 · BAR

--accent + --gold
30
52
41
18
68
用于对比数值。主色 --accent,重点高亮用 --gold。柱宽 24-40px,圆角顶 --r-sm

折线 · LINE

渐变填充 + 节点
用于趋势 / 时间序列。线宽 2px,节点 4px,关键点改 --gold。下方填充为主色 25% 渐隐到 0。

环形 · DONUT

最多 3 段
3 / 9
用于占比 / 完成度最多 3 段(蓝 / 金 / 灰)——4 段以上换柱状。中心数字 --mono。

关系 / 轨道 · ORBIT

主页 H3 同款
CORE
用于多层关系 / 系统思维。两层轨道反向旋转(22s / 14s),节点亮色 + 发光。主页有同款

迷你折线 · SPARKLINE

行内嵌入
报名转化 +42%
用于行内嵌入的小趋势——admin 数据面板、文章节首。宽 60-120px,无坐标轴。终点节点高亮。

进度条 · PROGRESS

线性 / 阶段
报名进度68%
用于百分比完成度 / 步骤进度。条高 4-6px,圆角 pill。色阶 accent → gold(同 grad-gold)。阶段型用等宽段。

径向 · GAUGE

仪表盘式
7.8 / 10
用于单一评分 / KPI 健康度。半圆 180°,弧线 stroke 10px,中心 mono 数字。可用 conic-gradient 实现彩色分段。

热力图 · HEATMAP

GitHub-style 贡献格
用于密度 / 时间 × 类别矩阵——少年作品上传日历、文章发布频率。5 档透明度(0/.2/.4/.6/.8/1)映射数值。

漏斗 · FUNNEL

转化路径
访问10,420
了解项目7,830
填表咨询4,690
报名1,876
用于转化漏斗 / 流失分析——招生流程、用户旅程。每层宽度按比例,色阶从 accent 渐弱到底层 gold 高亮。

雷达 · RADAR

多维度对比
用于多维度能力画像——学员能力评估、创新五大构成。最多 6 轴(更多就乱)。填充 25% accent,高亮顶点改 gold。

17.5Mermaid 图表 / Flowcharts

用 Mermaid 文本生成流程图 / 时序图 / 状态机 / 甘特 / 思维导图。全部走永乐主题——节点 8px 圆角、边线 1.5px、字体 Sans,4 个语义色(默认 / accent / gold / dark)。

5 条铁律

  • 只用 4 种语义色:默认(白底 ink 边)· :::accent 蓝 · :::gold 金 · :::dark
  • 边线 1.5px,用 --ink-mute,不用默认黑色 2px
  • 节点圆角 8px--r-md),跟 .btn / .card 一致
  • 字体 --sans 13.5px,跟全站正文统一
  • 包在 .ds-mermaid,自带 paper 容器 + 右上角小标识

5 种常用图表 · live preview

flowchart LR
  A([识别问题]):::accent
  B([研究 + AI 协作])
  C{可行?}:::muted
  D([做 MVP])
  E([用户测试])
  F([成品]):::gold
  A --> B --> C
  C -- Yes --> D --> E --> F
  C -- No --> B

用途

  • 流程图是 90% 场景的默认选择
  • 用于:项目流程 / 决策树 / 系统架构 / 用户旅程
  • 方向:LR 横向 · TB 纵向
  • 关键节点:::accent(开始)或 :::gold(结果)
  • 决策点 {文}:::muted

代码

flowchart LR
  A([识别问题]):::accent
  B([研究])
  C{可行?}:::muted
  F([成品]):::gold
  A --> B --> C
  C -- Yes --> F
sequenceDiagram
  autonumber
  participant 家长
  participant 系统
  participant 老师
  家长->>系统: 提交报名
  系统-->>家长: 确认 + 面试时段
  家长->>老师: 视频面谈
  Note right of 老师: 评估
  老师-->>家长: 录取通知

用途

  • 时序图展示多方交互顺序
  • 用于:报名流程 · API 调用 · 用户与系统对话
  • autonumber 自动编号每条消息
  • 实线 ->> 同步 · 虚线 -->> 异步响应
  • 注释用 Note right of(金色高亮)

代码

sequenceDiagram
  participant 家长
  participant 系统
  家长->>系统: 提交
  系统-->>家长: 确认
stateDiagram-v2
  [*] --> 草稿
  草稿 --> 待审: 提交
  待审 --> 已发布: 通过
  待审 --> 草稿: 退回修改
  已发布 --> 归档: 6 个月
  归档 --> [*]

用途

  • 状态机表达对象生命周期
  • 用于:文章审核 · 学员状态 · 项目阶段
  • [*] 表示开始 / 结束
  • 转换标签用动词("提交" / "通过")

代码

stateDiagram-v2
  [*] --> 草稿
  草稿 --> 待审: 提交
  待审 --> 已发布: 通过
少年 CEO · 12 周培养排期
W01W02W03W04 W05W06W07W08 W09W10W11W12
探索期
EXPLORATION · W01-03
导师配对
w1
破冰 + 选题
w2-3 现在
建造期
BUILD · W04-09
用户研究 + 原型
w4-6
MVP 开发
w7-8
用户测试
w9
发布期
LAUNCH · W10-12
迭代 + 抛光
w10-11
路演 + 展示
w12

用途

  • 甘特图展示时间线 + 任务依赖
  • 用于:项目排期 · 课程周历 · 路线图
  • 4 种状态 .done / .default / .active / .crit 全部走 单 hue (accent 蓝) + 透明度分级,不混色
  • .active 加 gold-light 内描边表示"现在"
  • 关键路径 .crit 用 red-bright(唯一例外的红色)
  • 自研 CSS·零依赖(不用 mermaid gantt — 默认配色太花)

代码

<div class="ds-gantt" data-kind="GANTT · 排期">
  <div class="g-title">12 周排期</div>
  <div class="g-section">
    <div class="g-s-label">探索期</div>
    <div class="g-s-meta">EXPLORATION</div>
  </div>
  <div class="g-row">
    <div class="g-label">选题</div>
    <div class="g-track">
      <div class="g-bar active"
           style="left:8%;width:16%">现在</div>
    </div>
  </div>
</div>
科技 · 协作 · AI 协作 · 原型工具 艺术 · 视觉表达 · 叙事 人本 · 用户研究 · 情感共鸣 商业 · 模式设计 · 可持续 文化 · 跨学科 · 时代叙事 + 未来 · 留给下一代 创新 五大构成 FIVE PILLARS YONGLE · MINDMAP 01

用途

  • 思维导图展示 1 → N 层级分类
  • 用于:知识结构 · 课程纲要 · 价值观图谱
  • Root 实心 ink 圆(白字 serif 居中)· L1 outline pill(serif 14px)· L2 纯文字 mono(无框)
  • 连接 1px ink-mute 32% opacity(极淡 curve)
  • 自研 inline SVG·零依赖(不用 mermaid mindmap — 默认无层级感)

代码

<div class="ds-mindmap" data-kind="MINDMAP">
  <svg viewBox="0 0 920 540">
    <path class="mm-link" d="M…"/>
    <g transform="translate(80 110)">
      <rect class="mm-node-pill"
            width="180" height="60" rx="30"/>
      <text class="mm-node-text"
            x="90" y="36">科技</text>
      <text class="mm-leaf"
            x="90" y="92">· AI 协作</text>
    </g>
    <circle class="mm-root-circle"
            cx="460" cy="270" r="78"/>
  </svg>
</div>

如何在你的页面用 · USAGE

第 1 步 · 加进 head

<script type="module">
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
  import {yongleMermaidInit} from '/assets/js/mermaid-init.js';
  yongleMermaidInit(mermaid);
</script>

第 2 步 · 在页面里写图

<div class="ds-mermaid" data-kind="FLOWCHART · 报名流程">
  <pre class="mermaid">
    flowchart LR
      A([访问]):::accent --> B([咨询]) --> C([报名]):::gold
  </pre>
</div>

第 3 步 · 语义着色

Class颜色用途
:::accent蓝(--accent #4A75E5)起点 / 关键决策 / 主流程
:::gold金(--gold #D4A858)成果 / 终点 / 高亮里程碑
:::dark深(--ink)系统节点 / 不可变状态
:::muted纸色(--paper-2)支撑性节点 / 决策菱形
:::default白底 ink 边其他所有节点(默认)

⚠ 禁忌

  • 不要用 mermaid 自带主题(forest / dark / neutral)— 跟我们设计系统不咬合
  • 不要超过 4 种颜色 · 不要内联 style XXX fill:#aaa 硬编码颜色
  • 节点不要超过 12 个 · 超过就拆成多张图 / 改用 subgraph
  • 不要用 pie — 跟 charts 系统的 donut 重复,统一去 #charts 第 16 节
  • 边缘 label 不要写长句 · 一个动词或两字最佳("提交" / "通过" / "Yes / No")

17.6编辑级可视化 / Custom Viz

超出 Mermaid 能力 / 美感不够的场景,用下面 6 个自研模板。0 依赖 · 纯 CSS+HTML,跟设计 token 100% 咬合。

AI 时代之前 vs 之后
Before · 工业教育

记忆 + 服从

  • 统一答案 · 标准化测试
  • 知识在老师口袋里
  • "乖" 是最高赞美
SHIFT
After · 创造力教育

提问 + 创造

  • 开放问题 · 真实产出
  • 知识在 AI 里,判断在人脑
  • "动手做" 是最高赞美
第 02 期 · 录取数据
总申请
2 400+
中文 / 双语家庭
录取
120
9-15 岁少年
↗ 较第 01 期 +40%
录取率
5%
不为筛选 — 为保 1:8 师生比
家长 NPS
98%
"愿意推荐给朋友"
永乐教育 · 里程碑
2024
理念诞生
浙大设计学
2025
第 01 期开班
30 学员
2026 春
第 02 期
120 学员 · 现在
2026 秋
线上探索班
全国扩张
2027
家长共学
规模 1k+
课程优先级矩阵 · 紧急 × 重要
紧急 ←——————— 不紧急
重要 →
DO NOW · 立即做
真实用户测试
期末路演 · 学员作品上线 · 家长面谈
PLAN · 安排做
深度学习
技能精进 · 跨学科探索 · 长期项目
不重要 →
DELEGATE · 委托
行政事务
表格填写 · 报销 · 设备维护
DROP · 删掉
无效会议
"为了开而开" · 没有产出的对齐
少年 CEO · 4 周启动期
01

导师配对

按兴趣 + 性格匹配,1 导师带 8 学员,12 周不换。

W01 · 已完成
02

破冰共创

线下集训 3 天,混龄分组做"非典型作业",互相认识。

W02 · 已完成
03

选题立项

每个孩子提 3 个想做的真实问题,导师协助收敛到 1 个 12 周可落地的项目。

W03 · 进行中
04

用户研究

带孩子去做真实采访 / 田野观察,把"我想做的"翻成"用户要的"。

W04 · 即将开始
AI 不会偷走提问的人
它会放大那些真正在想的人。
邱懿武 · 永乐教育创始人 · 致家长信 02

什么时候用哪个

组件用途替代
.ds-vs对比 2 个状态 / 时代 / 方案替代"vs/对比"型 inline 文字
.ds-stats关键 KPI 数据墙(3-5 个)替代 chart bar
.ds-timeline里程碑 / 历史 / 路线图(5-7 个节点)替代 mermaid gantt 在"展示"场景
.ds-matrix2×2 决策(紧急/重要 / SWOT)替代 mermaid flowchart 在策略场景
.ds-steps3-5 步顺序流程,文字解释为主替代 mermaid flowchart 在"教学"场景
.ds-quote大引言 / 价值观陈述 callout替代普通 blockquote

17动画规范 / Animations

14 类标准动画 = 6 基础(fade/lift/meteor/text-swap/pulse/orbit)+ 8 补充(stagger/count/typewriter/blur/parallax/marquee/scroll-progress/morph)。每个页面最多用 3-4 种,避免动画过载。全部尊重 prefers-reduced-motion

Fade-in-up · 进场

600ms · ease-out
滚动到视口时触发(IntersectionObserver)。多个元素错开 delay 80-150msopacity 0→1 + translateY 12px→0

Hover Lift · 卡片上浮

250ms · ease-bounce
HOVER
所有卡片标配。translateY(0→-4|-6px) + 阴影从 sh-1 → sh-2。边框可改 --accent

Meteor · 流星

4-8s 一颗 · linear
仅 Hero 深空场景使用。JS 随机生成起点 / 角度 / 速度。opacity 0→1→0 + 长距离 translate。

Text Swap · 词替换

4s 循环
从少年开始的 创造力
Hero H1 标志性动画——金色高亮词每 4s 上下淡出替换("创造力" / "想象力" / "判断力")。

Pulse · 脉冲

2s · ease-in-out · infinite
CTA 焦点、状态点("招生中"绿点)、logo halo。opacity .6↔1 + scale 1↔1.15

Orbit · 轨道旋转

6-28s · linear · infinite
关系图 / 多层结构。外圈慢 (28s),内圈快 + 反向 (14-22s)。节点跟随圈旋转。

Stagger · 错位入场

列表项延迟级联
列表 / 网格元素,每项延迟 80-150ms 入场。比单一 fade 更有节奏感。JS 用 el.style.animationDelay = i * 80 + 'ms'

Number Count · 数字滚动

1500ms · ease-out
2,847
关键数据(学员数 / 项目数)进入视口时从 0 滚到目标值。JS requestAnimationFrame 插值,Math.floor 显示。用于落地页"成就墙"。

Typewriter · 打字机

40-80ms / 字
让每一个孩子|
英雄文案 / hero 引言。逐字显示,光标闪烁 1s steps(1)。完成后光标消失。慎用——阻塞用户阅读,长句体验差。

Blur Reveal · 模糊揭示

800ms · ease-out
创造
章节标题 / 关键词进场。filter:blur(12px)→0 + opacity 0→1,比纯 fade 更有"清晰浮现"的电影感。

Parallax Tilt · 视差倾斜

鼠标跟随
英雄卡片 / IP 立绘。鼠标位置驱动 rotateX/Y ±15°mouseleave 回正 400ms。仅桌面——触摸设备禁用(@media (hover:none))。

Marquee · 滚动横幅

25-60s · linear · infinite
· YONGLE · 永远快乐· LET CREATION BEGIN YOUNG· 造物云出品· YONGLE · 永远快乐· LET CREATION BEGIN YOUNG· 造物云出品
页脚 / 章节分隔 / 海报装饰。复制内容两份首尾相接,transform:translateX(-50%) 无缝循环。鼠标 hover 暂停。

Scroll Progress · 滚动条

页面顶部彩带
READING · 34%
长文章 / 长 deck。固定顶部 3px 条,宽度跟随 scrollY / pageHeight。提示阅读进度。色阶 accent → gold(同 grad-gold)。

Morph · 形变切换

400ms · cubic-bezier
tab 切换 / 状态变化 / 图标变形。border-radius / scale / background 同步过渡。SVG 用 d 属性 morph(GSAP MorphSVG 或 CSS clip-path)。
RULES · 动画铁律
  • 单个元素最多 1 种动画。多种叠加 = 视觉噪声。
  • 常规交互动画时长 ≤ 400ms(hover / cards)。
  • 页面级 reveal 动画 ≤ 800ms,禁止 1s+ 长动画。
  • 无限循环动画(meteor / pulse / orbit)必须有 @media (prefers-reduced-motion:reduce) 关闭。
  • 滚动触发动画一律走 IntersectionObserver,不监听 scroll 事件。
  • 动画属性只用 transform + opacity(GPU 友好),避免 width/height/top/left。

18幻灯片 / Deck

用前端 HTML 做 PPT —— 沉浸式、全屏、一页一画。"少年 CEO 宣言" 是该模式的样板。键盘 / 鼠标 / 触控全支持。设计上跟普通子页面完全不同:无导航条、无页脚、logo 只放一处

4 种 slide 主题 · 16:10

.slide.dark 深空 · 主导色 NIGHT · DEFAULT · 70%
.slide.paper 米色 · 长文/引言 PAPER · QUOTE · 15%
.slide.red 红 · 转折/警句 RED · ACCENT · 8%
.slide.gold 金 · 高光收尾 GOLD · FINALE · 7%

百分比 = 一套 deck 里建议的使用配比。深空 70% 打底,米色穿插长文,红/金保留给高潮时刻。

容器
<div class="deck"> → N 个 <section class="slide [theme] [center]">
.active 控制当前页显示。.center 让内容水平居中。
slide 内部
.slide-inner · max-width 1280 · padding 80px 8vw · 文字左对齐为默认。
主标题
Sans 500 / clamp(28px,4.2vw,52px) / line-height 1.15。重音用 <em> → 金色(深底)或蓝色(浅底)。
过渡
slide 切换 = opacity .45s ease(淡入淡出)。不要 slide 也不要 zoom — 太花。
交互
Space PageDown 下一页 PageUp 上一页
Home End 首/末页
+ 鼠标整页点击翻页(避开 a/button/ui-bar)
+ 触屏左右滑动
UI bar
.ui-bar 底部居中胶囊: page/total + 细金进度条。背景半透明黑 + backdrop-blur。
品牌锚点
只放一处:左上 .brand-home(logo + 永乐教育 + ← 返回)= clickable home。
禁止右上或右下再放 logo / 水印 — 双角 brand mark 视觉冗余。
无 nav / 无 footer
deck 是沉浸式页面nav.top<footer> 全不挂载。完整阅读体验由 deck 内部承担。
移动端
≤760px:slide padding 收到 80px 6vw 90px。.brand-home .back"← 返回"字隐藏,只留 logo + 品牌名。

实时 demo · 按 ← → 翻页或点击两侧

永乐教育 ← 返回

创造
从少年开始。

01 / 04
DESIGN PHILOSOPHY · 跟主页一致

幻灯片的视觉不重新发明 ——
跟主页 hero 同一种语言:星空 · 霓虹球 · 金色高光 · 深空蓝

深空底打底#06091A → #0A1530 → #1A2B5E 三段渐变,跟首页 hero 一字不差。
星点纹理:5–9 个 1px 白点 + radial-gradient mask,浅浅地铺在背景上 — 是品牌"仰望感"的核心载体。
金色 = 重点:所有"强调词"、kicker、数字、ring 都用 --gold-light #E8C97C,蓝色是默认次重要。
霓虹球作锚:每一套 deck 至少 1 张含 logo(封面或收尾),让品牌"有人在"的微互动出现。

25 种 slide 版式 · LAYOUT TEMPLATES

不要一套 deck 全是大字 — 用 25 种版式交替编排,节奏才丰富。L1-L8 文字型 · L9-L12 数据可视化型 · L13-L20 进阶型 · L21-L25 编辑设计型(杂志刊头 / 海报标语 / 便签 / 堆叠胶囊 / 中英双栏)。每种都有自己的 .slide.l-XXX class 标记。

L1
章节封面 · COVER
L2
创造
从少年开始。
大字宣言 · MEGA
L3
"
引言 · QUOTE
L4
双栏对比 · SPLIT
L5
图文 · FIG + CAPTION
L6
列表 · LIST · 3-5 项
L7
20+
YEARS AT ZJU
数字强调 · STAT
L8
FIN · 永乐教育
收尾签名 · FINALE
L9
数据图表 · CHART · 柱/线/环
L10
问题研究产品
流程图 · WORKFLOW · 3-5 步
L11
时间线 · TIMELINE · 里程碑
L12
卡片网格 · GRID · 团队/产品
L13
对比矩阵 · COMPARE · 2-3 列
L14
AGENDA
01
02
03
04
议程 · AGENDA · 章节目录
L15
const creator = '少年';
// AI-native education
if (creator.curious) {
create();
}
代码块 · CODE · 技术 deck
L16
少年作品 · 2026
满版图 · FULL-IMAGE · 视觉冲击
L17
Let creation
begin young.
— YONGLE 2026
标语 · TAGLINE · 单句 + 落款
L18
2,847
STUDENTS
98%
NPS
12k+
PROJECTS
20+
YEARS
KPI 仪表 · METRICS · 4 数据
L19
"AI 把所有⼈拉到同⼀起跑线"
— 邱懿武 · 创始人
人物对谈 · PORTRAIT-QUOTE
L20
Q & A
YOUR QUESTIONS, HERE.
Q&A · 留白互动
L21
第 02 期 · 2026 春
永乐
年鉴
A YEARBOOK
MASTHEAD · 杂志封面 / 双线刊头
L22
少年是
未来
的提问者
— YONGLE MANIFESTO
POSTER · 海报标语 / 一句话冲击
L23
"AI 不会偷走
提问的人。"
— Workshop 12, Hangzhou
PIN-NOTE · 便签 + 手写注 / 工作坊感
L24
少年 CEO · 12 周
STACK · 堆叠胶囊 / 系列展示
L25
让创造者
永远快乐
Let creators
be forever
joyful.
BILINGUAL · 中英双栏 / 国际场景
L21-L25 灵感来源:github.com/zarazhangrui/beautiful-html-templates(34 个 HTML deck 模板库)。我下载了 5 个模板(pin-and-paper / capsule / emerald-editorial / bold-poster / broadside)研究真实结构,把视觉语法(杂志双线刊头、便签倾斜、堆叠胶囊、中英双栏、海报标题)翻译成命名组件放进 site.css,用真实案例 demo 展示: → 永乐年鉴 · 第 02 期 demo

Deck 组件库 · NAMED COMPONENTS 按 class 复用

把 L21-L25 + 通用动画抽成 14 个命名组件,每个用 .ds- 前缀。HTML 直接套,不用从零写。

.ds-stage · 全屏 slide 容器
.ds-stage.dark
<section class="ds-stage dark">
  <span class="ds-slide-num">02 / 08</span>
  <div class="ds-stage-inner">
    内容…
  </div>
</section>

变体: .paper / .dark / .gold / .red,自带 star particles(dark)+ 右上 slide 编号槽

.ds-kicker · 章节标签
CHAPTER 01 · MANIFESTO
<div class="ds-kicker">CHAPTER 01</div>
.ds-masthead · 杂志双线刊头(L21)
第 02 期
永乐年鉴
<div class="ds-masthead">
  <div class="ds-rule thick"></div>
  <div class="ds-issue">第 02 期</div>
  <div class="ds-title">永乐<em>年鉴</em></div>
  <div class="ds-rule"></div>
</div>
.ds-pin-note · 便签 + 红胶带(L23)
"AI 不会偷走
提问的人。"
<div class="ds-pin-note">
  <div class="ds-pn-text">"引言…"</div>
  <div class="ds-pn-attr">— 来源</div>
</div>

变体: .right 正向旋转;hover 自动回正

.ds-pill-stack · 堆叠胶囊(L24)
少年 CEO
AI IP 创造营
家长共学
<div class="ds-pill-stack">
  <div class="ds-pill dark">少年 CEO</div>
  <div class="ds-pill accent">AI IP 营</div>
  <div class="ds-pill gold">家长共学</div>
</div>
.ds-poster · 海报标题(L22)
建造
从少年开始。
<div class="ds-poster">
  让<em>建造</em>,<br>从少年开始。
</div>
<div class="ds-poster-sub">Let creation…</div>
.ds-bilingual · 中英双栏(L25)
让创造者
永远快乐
Let creators
be forever
joyful.
<div class="ds-bilingual">
  <div class="ds-bi-cn">让创造者…</div>
  <div class="ds-bi-divider"></div>
  <div class="ds-bi-en">Let creators…</div>
</div>

变体: .dark;窄屏自动叠成单列

.ds-frame · 偏移阴影框(Neo-brutalist)
120 学员
98% NPS
<div class="ds-frame accent">
  内容
</div>

Slide 动画类 · ANIMATION CLASSES 5 套标准 enter

Class效果取自
.ds-anim-fadeupopacity 0→1 + translateY(28px→0)broadside · kFadeUp
.ds-anim-fade纯 opacity 0→1broadside · kFadeIn
.ds-anim-reveal-rclip-path 从右→左展开broadside · kRevealRight
.ds-anim-reveal-lclip-path 从左→右展开broadside · kRevealLeft
.ds-anim-scaleopacity + scale(.94→1)broadside · kScaleIn
stagger 错位入场:在元素上加 style="--i:1"(数字 0-9)自动 100ms 递增延迟。
JS 集成:进入新 slide 时,移除 → 强制 reflow → 重新加 class 重新触发动画。
SPEAKER NOTES · 演讲者注解

每张 slide 可挂一份 <aside class="notes">,默认隐藏。按 N 弹出 speaker view:当前 slide + 注解 + 下张预览 + 计时器。

公开 deck(manifesto.html)不放敏感 notes;内部 deck 才用。

SECTION DIVIDER · 章节分隔

每 5-7 张 slide 插一张全屏 .slide.divider — 大数字章节号 + 短语。给观众"换气"。

模板:CHAPTER 02 · 培养系统 横排,背景用 grad-night / grad-dawn 切换。

8 个完整 deck 版本 · DECK VARIANTS

用同一套规范预制好 8 套适用不同场景的整 deck 模板,做新 deck 时挑一个直接 fork,不必从零拼。宣言 · 极简授课 · 品牌发布 · 事件海报 · 课程报告 · 学术汇报 · 工作坊 · 杂志编辑

让创造,从少年开始

宣言 · MANIFESTO

SHIPPED

深空主导 70% + 红 8% + 金 7%。情绪起伏大,适合品牌宣言、价值观陈述、招生发布会开场

14 slides L1·L2·L3·L8
课程方法 · 第 03 章

极简授课 · MINIMAL

教学

米色 paper 主导 90%,深空仅章节封面。大段留白 + 编号列表 + 流程图。适合课程讲义、方法论拆解、技术细节

20+ slides L1·L3·L5·L6·L10
品牌发布 · Q3 2026

品牌发布 · BRAND

招商

深空 + 紫渐变。每页一个"hero 视觉元素"(霓虹球 / 头盔 / 数字 / 引言)。含数据图表、团队网格。适合融资路演、招商合作、对外发布

10-15 slides L2·L5·L7·L8·L9·L12
少年 CEO · 校友夜

事件海报 · POSTER

活动

少 5-8 张,每张色彩饱和、字号巨大、像海报。深→红→金的色彩升温叙事。适合校友夜、产品发布、节日特典

5-8 slides L2·L7·L8·L11
学员季度报告 · Q3

课程报告 · REPORT

数据型 ⭐

深空 + 米色交替。图表 / 流程 / 时间线 / 网格四种可视化轮番出场——少年作品产出、家长反馈数据、季度路线图。适合家长会、董事会、年终总结

15-25 slides L1·L7·L9·L10·L11·L12
第 2 章 · 方法论

学术汇报 · ACADEMIC

论文型

米色 paper 90% + 章节编号 + 衬线大字号 + 脚注引用。代码块、表格、参考文献规范化。适合学术会议、论文答辩、研究成果汇报、技术 talk

25-40 slides L1·L3·L4·L13·L15
15 分钟 · 你的创造

工作坊 · WORKSHOP

互动型

金/橙暖色主导 + 大计时器 + 任务卡 + Q&A 留白。每张含一个练习任务。适合家长工作坊、教师培训、少年破冰、训练营 day 1

8-12 slides L1·L7·L17·L20
永乐
年鉴 02

杂志编辑 · EDITORIAL

年鉴/季刊

米色 paper + 双线刊头 + 衬线大字号 + 引文卡 + 便签注解。像杂志。适合年终回顾、季度刊物、品牌年鉴、家长通讯

20-30 slides L21·L23·L24·L5·L13

缩略图总览面板 · OVERVIEW NAV

左上 .brand-home 旁挂一个 9 点 grid 圆按钮 — 点开左侧 slide 出全部缩略图列表,跳页快捷。每个缩略图带主题色色带和首行文字摘要,当前页加金色高亮。

所有页 · OVERVIEW
01 让创造,从少年开始
02 AI 时代的少年缺什么
03 "想做点什么"的能力
04 那一刻被点燃
05 三个核心能力
06 培养体系 H³-TII
07 永远快乐地创造
SLIDE 02 · CHAPTER 01
AI 时代的少年缺什么
不是知识 · 不是工具 — 是被点燃的那一刻
CONTINUE

规范:面板宽 340px / 移动端全宽 · 背景 rgba(8,15,38,.96) + blur 30px · 滑入 350ms ease · 半透明遮罩点击关闭 · Esc 关闭 · 每行缩略图左侧 3px 色带 = slide 主题(深空/米色/红/金)· 当前页加金色高亮 + 滚动居中 · 点击直接跳转那页并收起面板。

REFERENCE · 样板

少年 CEO 宣言 · Manifesto Deck

14 张 slide · 深空主导 · 红/金穿插 · 现已支持左上 9 点圆按钮 → 缩略图总览跳页。基于本规范实现的完整样板。

→ 打开 Manifesto Deck

18.5可迁移指南 / Migration Kit

这套设计系统可以直接 fork 给其他项目。下面是迁移到新品牌的标准步骤——理论上 30 分钟就能换品牌完毕。

🚀 5 步迁移流程

STEP 1 · 复制核心文件
cp assets/css/site.css       new-project/
cp llms.txt sitemap.xml      new-project/
cp robots.txt                new-project/

site.css 是单一可信源——所有 token、组件、a11y、动画都在这一个文件里。1300 行带完整注释。

STEP 2 · 改 5 组 token
:root{
  --accent:#YOUR;        /* 主品牌色 */
  --gold:#YOUR;          /* 高光色 */
  --night-0..3:#YOUR;    /* 深色场景 4 档 */
  --paper..paper-3:#YOUR;/* 米色场景 4 档 */
  --ink/--ink-soft/--ink-mute /* 文字 3 档 */
}

改这 5 组(约 20 个 hex),整站颜色全部更新。不要新增颜色,永远从这里选。

STEP 3 · 换 logo + 字体
/* logo 在 site.css 的 .yongle-logo 块 */
.yongle-logo{
  /* 改 conic-gradient 颜色环 */
  background:conic-gradient(...)
}
/* 字体在 :root */
--serif: 'YOUR_SERIF';
--sans:  'YOUR_SANS';

logo 改名 → 把 .yongle-logo 改成 .brand-logo,全局 grep 替换。

STEP 4 · 复制 nav + footer 模板
<nav class="top" role="navigation"
     aria-label="站点导航" id="topnav">
  <div class="wordmark">...</div>
  <ul>改你的 8 个菜单项</ul>
  <a class="nav-cta">CTA</a>
</nav>

alumni.html 复制 nav + footer + mobile-menu 三块标准模板,全站统一。

STEP 5 · 验证 a11y + SEO
  • 每页 role="navigation" + role="contentinfo"
  • 每页 head 加 <link rel="sitemap">
  • robots.txt 含 Sitemap: 声明
  • llms.txt 让 LLM 抓取友好
  • prefers-reduced-motion 全站尊重
STEP 6 · 跑 audit ✓
/design-system audit

用 Claude Code 的 /design-system audit 技能跑一次评分。目标 90+/100。常见扣分:硬编码颜色 / 重复 :root / `!important` / 缺 role。

📋 命名公约 · Naming Convention

CSS Class 命名规则

类型命名
原子组件.单数名词.btn / .field / .toast / .modal
变体.父.变体.btn.accent / .toast.success
尺寸.父.sm/.lg/.xl.input.lg / .modal.sm
状态.is-状态 或 [aria-*].is-active / aria-selected="true"
子部分.父-部分.modal-header / .toast-body
布局工具类.动词-名词.body-content / .preview-spec
系统专属.ds-前缀.ds-btn-demo / .ds-td-mono

Token 命名规则

分类前缀层级
颜色 · 品牌--accent / --gold无后缀 = 主,-deep -light 加深加亮
颜色 · 中性--ink / --paper / --line-soft -mute 减弱,-2 -3 数字层次
间距--s-1..--s-108 倍数阶梯(4/8/12/16/24/32/48/64/96/128)
圆角--r-sm/md/lg/xl/pill5 档:4/8/12/18/99
阴影--sh-1..--sh-44 档浮起强度
动效时长--t-fast/base/slow150/250/400ms 三档
字体--serif/sans/mono/latin/hand5 种用途
渐变--grad-night/dawn/gold/accent/rainbow5 套签名渐变

📁 文件结构 · File Anatomy

project-root/
├── assets/
│   └── css/
│       ├── site.css        ← 单一可信源(token + 通用组件 + nav + footer)
│       └── home.css        ← 首页专属(hero 动画 / 章节布局)
├── index.html              ← 首页
├── design-system.html      ← 这份文档(fork 时一并搬过去)
├── logo-lab.html           ← logo 实验场(可选)
├── manifesto.html          ← 旗舰 deck 示范
├── <子页面 ×N>             ← 内嵌 <style> 仅页面专属 CSS
│   └── 必须包含:
│       • <link site.css>
│       • <link rel="sitemap">
│       • <nav class="top" id="topnav">
│       • <footer class="site">
│       • mobile-menu drawer
├── llms.txt                ← LLM 爬虫提示
├── sitemap.xml             ← SEO 站点地图
└── robots.txt              ← 含 Sitemap: 声明

⚡ 新页面起始模板 · Starter Template

每次新建子页面,复制下面这段 head + nav + footer:

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>页面标题 · 品牌名</title>
<meta name="description" content="..." />
<link href="https://fonts.googleapis.com/css2?family=..." rel="stylesheet" />
<link rel="stylesheet" href="assets/css/site.css" />
<link rel="sitemap" type="application/xml" href="/sitemap.xml" />
<style>
  /* 仅此页面专属样式 — 通用样式去 site.css */
</style>
</head>
<body>

<nav class="top" role="navigation" aria-label="站点导航" id="topnav">
  <!-- 8 项菜单 + CTA -->
</nav>
<div class="mobile-menu" id="mobileMenu">...</div>

<main>
  <!-- 你的页面内容 -->
</main>

<footer class="site" role="contentinfo">
  <!-- 4 列 .ft-grid -->
</footer>

<script>
  /* burger toggle + scroll observer */
</script>
</body>
</html>

🎯 设计哲学 · Philosophy

  • 单一可信源 · CSS token 只在 site.css :root 定义一次,任何子页面不得新建 :root 覆盖。
  • 约束内的自由 · 颜色限定在 25 个 token、字号限定在 9 档、动画限定在 14 种。在框架内创新,不创新框架本身。
  • 命名预测性 · 看到 .toast.error 一眼知道是错误通知;看到 .is-active 一眼知道是状态。命名要让新人不查文档就能猜对。
  • 无 !important 铁律 · 用更精确的选择器解决优先级。logo-lab.html 把 9 处 !important 全删干净是好例子。
  • a11y 不是可选 · :focus-visible、prefers-reduced-motion、role/aria-label 必须有。残障用户体验 = 全员体验。
  • 移动优先 + 响应式必选 · 所有组件 grid 用 repeat(auto-fit,minmax(Xpx,1fr)),避免硬编码 1fr 1fr。
  • 写文档比写代码更重要 · 没文档的组件 = 不存在。每个新组件必须有 live preview + 状态表 + 代码示例 + a11y 说明。

19禁忌清单

这些事在设计或代码评审时无条件 reject

不用 规范外的颜色。需要新颜色先加进 --vars。
不用 规范外的字体。换字体前先评估必要性。
不用 非 8 倍数的 spacing(如 11px、17px)。
不用 多于 1 种动效叠加在同一元素上。
不在按钮 / 卡片上加 多层阴影 + 描边 + 渐变(视觉过载)。
不在 hero 之外用 背景视频 / 自动播放音频
不让正文行宽超过 720px(影响阅读)。
不忽略 移动端(≤480px 必须测过)。
不让 nav 双字标签("培养"、"导师")竖向堆叠成两行——必须 white-space:nowrap,竖屏 ≤1280px 走 hamburger。