IvyLabs Design BostonIvy 爬山虎 v0.3.0

Tokens

53 个语义色 × 6 套主题,以及字体、间距、圆角、阴影等。单一来源是 bostonivy-tokens.json(W3C Design Tokens 2025.10),其余都由构建脚本生成。每组文字和底色的对比度见对比度报告。

下载

颜色

Token 与用途青藤 Clean · 亮青藤 Clean · 暗萌虎 Sticker · 亮萌虎 Sticker · 暗像素 Pixel · 亮像素 Pixel · 暗
bg-canvas主内容区背景。text-primary / text-secondary / text-muted 都可直接放在上面。#ffffff#0f1311#f2edff#1a1722#f3f5f1#0a0e0b
bg-sidebar侧栏、收起的导航条、顶栏。#f6f8f6#0b0e0c#ffe16a#2a2338#ffffff#0f1511
bg-surface卡片、输入框、任务行容器、弹层。#ffffff#151a17#ffffff#26222f#ffffff#0f1511
bg-sunken看板分栏、分组底色、代码块等下沉区域。#f2f5f3#121714#e9e2ff#201c29#e8ece6#131b16
bg-selected选中的任务行、当前项目、当前导航项。#e6f2ea#1a2c21#d9f6e2#24402f#d6f0df#15301f
bg-hover可点击行和按钮的悬停底色。#eef2ef#18201b#faf8ff#2e2939#edf1ec#121a15
scrim模态弹层后面的遮罩(带透明度)。#10181466#000000a6#1e1b1873#000000b3#0d1a1166#000000b3
border-default卡片和面板边框。贴纸风格里它就是 2.5px 的墨黑描边。#e3e8e4#232b26#1e1b18#ece6ff#cbd3cb#1e2a22
border-subtle列表行之间的分隔线,只做装饰,不承担识别控件的作用。#eef1ef#1b221e#d9d0f5#3a3348#e1e6e0#141d17
border-strong复选框、输入框等控件的边框;在 bg-surface / bg-canvas 上至少 3:1。#86928a#5c6a62#1e1b18#ece6ff#7d8b80#56695b
text-primary正文、任务标题;可放在所有 bg-* 上。#17201a#e7ede9#1e1b18#fbf7ee#0d1a11#d5e6d9
text-secondary次要正文、侧栏导航文字;可放在所有 bg-* 上。#3e4a42#c2ccc6#3b3640#e2dbea#2c3b30#a9bdae
text-muted元信息(编号、计数、时间);可放在 bg-canvas / sidebar / surface / sunken / selected 上。#5f6b64#8c9891#5e5866#b3aabf#526356#889c8d
accent品牌主色的填充:主按钮、选中指示、进度条、完成勾选。贴纸风格里填充一定配 border-strong 描边。#1e7f46#45c27a#7edc9c#7edc9c#0f7a3c#6ee7a0
on-accentaccent 填充上的文字和图标。#ffffff#07140c#1e1b18#1e1b18#ffffff#06210f
accent-text当文字用的品牌色(链接、当前视图名),放在 bg-canvas / bg-surface 上。#1b7540#45c27a#14703f#7edc9c#0f7a3c#6ee7a0
accent-soft品牌色浅底:选中的筛选条件、成功提示。#e3f2e8#173323#d9f6e2#24402f#d6f0df#15301f
on-accent-softaccent-soft 上的文字。#145c32#8fddb0#1e1b18#bdf0cd#0b5a2c#6ee7a0
danger紧急、逾期、删除的文字和图标。#b93f25#f07a57#b32a12#ff8a70#c22f1c#ff6b57
danger-soft紧急 / 逾期标记的底色。#fbe9e4#3a1d16#ff7a5c#ff7a5c#fbe3de#3a1712
on-danger-softdanger-soft 上的文字。#9a3119#f5a288#1e1b18#1e1b18#9a2415#ff8a7a
warning高优先级、今天到期的文字和图标。#9a5b0e#e3a64a#8a5200#ffc27a#855d00#ffc857
warning-soft高优先级 / 今天到期标记的底色。#fbf0dd#33270f#ffb45e#ffb45e#fbefcf#332808
on-warning-softwarning-soft 上的文字。#7a4709#edc17e#1e1b18#1e1b18#6b4b00#ffc857
info过滤器语句、链接分享、信息提示的文字。#2753b3#8fb0f2#2f5fb3#8fd3ff#0b6e8a#67d4f5
timer正在计时的时间数字和指示点。#1b7540#45c27a#9e2559#ff9dbb#0f7a3c#6ee7a0
timer-soft计时器胶囊和卡片的底色。#e3f2e8#173323#ff9dbb#ff9dbb#d6f0df#15301f
on-timer-softtimer-soft 上的文字。#145c32#8fddb0#1e1b18#1e1b18#0b5a2c#6ee7a0
focus-ring键盘焦点环,2px 实线外加 2px 偏移;在 bg-canvas / surface / sidebar 上至少 3:1。#2753b3#8fb0f2#5b3fd9#ffe16a#0b6e8a#ffc857
priority-low优先级「低」的图形标记。#7a8680#76837c#7a7383#8e8599#7d8b80#6f8475
priority-medium优先级「中」的图形标记。#3e6fb8#7fa2ea#2f5fb3#8fd3ff#2c3b30#a9bdae
priority-high优先级「高」的图形标记。#b86a12#e3a64a#b86200#ffb45e#8a6100#ffc857
priority-urgent优先级「紧急 / 立即」的图形标记。#c4462b#f07a57#d3401f#ff7a5c#c22f1c#ff6b57
label-blue蓝色标签的底色(用户给标签选的 7 种颜色之一)。#e6eefb#18243a#8fd3ff#8fd3ff#ddf0f6#0f2a33
on-label-blue蓝色标签上的文字。#2753b3#8fb0f2#1e1b18#1e1b18#0b6e8a#67d4f5
label-green绿色标签的底色(用户给标签选的 7 种颜色之一)。#e3f2e8#153122#7edc9c#7edc9c#d6f0df#15301f
on-label-green绿色标签上的文字。#1e6b3e#7fd3a0#1e1b18#1e1b18#0b5a2c#6ee7a0
label-orange橙色标签的底色(用户给标签选的 7 种颜色之一)。#fcebdd#3a2414#ffb45e#ffb45e#f8eccc#2e240a
on-label-orange橙色标签上的文字。#a4480c#f2a86e#1e1b18#1e1b18#7a5600#ffc857
label-violet紫色标签的底色(用户给标签选的 7 种颜色之一)。#f0e8fb#2a1e3d#c5b5ff#c5b5ff#e9e3fa#231c3a
on-label-violet紫色标签上的文字。#6a3ba8#c3a2f2#1e1b18#1e1b18#6745c7#b69cff
label-gray灰色标签的底色(用户给标签选的 7 种颜色之一)。#edefee#232a26#e5e0ec#e5e0ec#e8ece6#18211b
on-label-gray灰色标签上的文字。#4d5852#b2bdb6#1e1b18#1e1b18#3e4d42#a9bdae
label-pink粉色标签的底色(用户给标签选的 7 种颜色之一)。#fbe6ef#3a1a29#ff9dbb#ff9dbb#f9e1ec#33142a
on-label-pink粉色标签上的文字。#a42a5e#f29bc2#1e1b18#1e1b18#a32b66#ff8ac2
label-teal青色标签的底色(用户给标签选的 7 种颜色之一)。#dff3f1#123331#c6f36b#c6f36b#d8f1ee#0f2e2a
on-label-teal青色标签上的文字。#14665e#7fd6cc#1e1b18#1e1b18#1b6b60#6fe0cf
avatar-1成员头像底色第 1 号,按用户 id 取模分配。#24774a#24774a#7edc9c#7edc9c#0f7a3c#6ee7a0
avatar-2成员头像底色第 2 号,按用户 id 取模分配。#3563c9#3563c9#8fd3ff#8fd3ff#0b6e8a#67d4f5
avatar-3成员头像底色第 3 号,按用户 id 取模分配。#a84f0c#a84f0c#ffb45e#ffb45e#8a6100#ffc857
avatar-4成员头像底色第 4 号,按用户 id 取模分配。#7a45b8#7a45b8#c5b5ff#c5b5ff#6745c7#b69cff
avatar-5成员头像底色第 5 号,按用户 id 取模分配。#b3334f#b3334f#ff9dbb#ff9dbb#b0306e#ff8ac2
on-avatar头像字母的颜色,放在 avatar-1…5 上。#ffffff#ffffff#1e1b18#1e1b18#ffffff#06210f

字体

青藤 Clean

名称样例字号 / 行高 · 字重用途
clean-title后端 · Rust 重写22px / 28px · 700页面 / 项目标题。
clean-heading今天与逾期15px / 22px · 600分组标题、区块标题。
clean-task迁移 PostgreSQL schema 与索引14px / 20px · 500任务标题。
clean-body把旧版 schema 迁到 PostgreSQL 16,用 sqlx 管理迁移。14px / 22px · 400描述、评论、正文。
clean-caption#42 · 今天 18:00 · 评论 512px / 16px · 500元信息、标签、计数。
clean-timer00:42:1826px / 30px · 700计时器数字。

萌虎 Sticker

名称样例字号 / 行高 · 字重用途
sticker-title后端 · Rust 重写32px / 38px · 700页面 / 项目标题。
sticker-heading今天 & 逾期17px / 24px · 700分组标题、区块标题。
sticker-task迁移 PostgreSQL schema 与索引16px / 22px · 600任务标题。
sticker-body把旧版 schema 迁到 PostgreSQL 16,用 sqlx 管理迁移。15px / 22px · 500描述、评论、正文。
sticker-caption今天 18:00 · 评论 513px / 18px · 600元信息、标签、计数。
sticker-timer00:42:1840px / 44px · 700计时器数字。

像素 Pixel

名称样例字号 / 行高 · 字重用途
pixel-title迁移 PostgreSQL schema 与索引22px / 30px · 700页面 / 项目标题。
pixel-headingPROJECTS11px / 16px · 400分组标题、区块标题。
pixel-task迁移 PostgreSQL schema 与索引13px / 20px · 500任务标题。
pixel-body把旧版 schema 迁到 PostgreSQL 16。13px / 20px · 400描述、评论、正文。
pixel-caption#42 due 今天18:00 c:512px / 16px · 400元信息、标签、计数。
pixel-timer00:42:1824px / 28px · 400计时器数字。

间距

4px 基准,三种风格共用;风格之间的疏密差别由 size 里的行高和控件高度决定。

Token值用途
space-00px无间距。
space-14px图标与文字之间。
space-28px控件内边距、标签之间。
space-312px行内元素之间。
space-416px卡片内边距、列表左右边距(紧凑)。
space-520px侧栏内边距。
space-624px区块之间、页面左右边距。
space-832px大区块之间。
space-1040px空状态上下留白。
space-1248px页面顶部留白。
space-1664px品牌页留白。

圆角

每种风格一套圆角:青藤柔和、萌虎很圆、像素直角。

Token值用途
radius-clean-sm6px按钮、输入框、标签。(clean)
radius-clean-md8px卡片、任务行容器、弹层。(clean)
radius-clean-lg12px对话框、看板分栏、大卡片。(clean)
radius-sticker-sm10px按钮、输入框、标签。(sticker)
radius-sticker-md16px卡片、任务行容器、弹层。(sticker)
radius-sticker-lg24px对话框、看板分栏、大卡片。(sticker)
radius-pixel-sm0px按钮、输入框、标签。(pixel)
radius-pixel-md0px卡片、任务行容器、弹层。(pixel)
radius-pixel-lg0px对话框、看板分栏、大卡片。(pixel)
radius-pill9999px胶囊、圆形头像(三种风格共用)。

阴影

青藤用柔和投影,萌虎用硬阴影(暗色里是薄荷绿),像素只用 1px 描边,不用投影。

Token青藤 Clean · 亮青藤 Clean · 暗萌虎 Sticker · 亮萌虎 Sticker · 暗像素 Pixel · 亮像素 Pixel · 暗用途
shadow-card0 1px 2px 0 #1018140f0 1px 2px 0 #000000733px 3px 0 0 #1e1b183px 3px 0 0 #7edc9cnonenone静止的卡片、任务行容器。
shadow-raised0 1px 2px 0 #1018140f, 0 4px 16px 0 #1018140f0 8px 24px 0 #000000595px 5px 0 0 #1e1b185px 5px 0 0 #7edc9c0 0 0 1px #0f7a3c0 0 0 1px #6ee7a0悬停或拖动中的卡片、下拉菜单。
shadow-overlay0 12px 40px 0 #101814290 16px 48px 0 #000000808px 8px 0 0 #1e1b188px 8px 0 0 #7edc9c4px 4px 0 0 #0d1a11334px 4px 0 0 #00000099对话框、侧滑面板、命令面板。

描边

描边粗细决定风格气质:萌虎 2.5px。

Token值用途
border-clean1px卡片、输入框、按钮描边(clean)。
focus-clean2px焦点环粗细(clean)。
border-sticker2.5px卡片、输入框、按钮描边(sticker)。
focus-sticker3px焦点环粗细(sticker)。
border-pixel1px卡片、输入框、按钮描边(pixel)。
focus-pixel2px焦点环粗细(pixel)。

尺寸

密度:像素最紧凑,萌虎最宽松。触屏端控件最小 44px。

Token值用途
row-clean46px任务行最小高度。(clean)
control-clean32px按钮、输入框高度(触屏端最小 44)。(clean)
sidebar-clean248px桌面侧栏宽度。(clean)
row-sticker58px任务行最小高度。(sticker)
control-sticker40px按钮、输入框高度(触屏端最小 44)。(sticker)
sidebar-sticker264px桌面侧栏宽度。(sticker)
row-pixel32px任务行最小高度。(pixel)
control-pixel26px按钮、输入框高度(触屏端最小 44)。(pixel)
sidebar-pixel260px桌面侧栏宽度。(pixel)

图标描边

同一套 24px 线性图标,粗细和端点随风格变化:像素用直角端点。

Token值用途
icon-stroke-clean1.8图标描边粗细(clean,端点 round)。
icon-stroke-sticker2.2图标描边粗细(sticker,端点 round)。
icon-stroke-pixel2图标描边粗细(pixel,端点 square)。

时长

尊重 prefers-reduced-motion:开启时所有时长归零。

Token值用途
duration-instant80ms像素风格的状态切换、复选框。
duration-fast120ms悬停、按下、标签出现。
duration-base200ms面板展开、卡片移动。
duration-slow320ms模态和侧滑面板进入。

缓动

Token值用途
easing-standardcubic-bezier(0.2, 0, 0, 1)青藤:默认缓动。
easing-entercubic-bezier(0, 0, 0, 1)元素进入。
easing-exitcubic-bezier(0.3, 0, 1, 1)元素离开。
easing-popcubic-bezier(0.34, 1.56, 0.64, 1)贴纸:带一点回弹,用于完成勾选和贴纸落下。
easing-linearcubic-bezier(0, 0, 1, 1)像素:不做缓动,只用 instant 时长。

层级

Token值用途
z-sticky10吸顶表头、状态栏。
z-drawer20侧滑面板。
z-popover30下拉菜单、日期选择器。
z-modal40对话框。
z-toast50通知提示。