真正上线的主题系统不止有主色,还要有浅底、边框、正文和按钮状态等完整页面角色。
主题变量
CSS 变量主题映射器在线工具
把品牌主色映射成可直接落地的 CSS 变量主题,同时输出原始色阶和语义变量,适合官网、工具站、SaaS 页面和组件库主题收口。这个页面首屏优先完成主题角色映射。
实时映射
重点不是再生成一个 `brand-500`,而是把品牌色映射成页面真正需要的 `accent`、`surface`、`border`、`text` 这些角色变量。
主题映射器的重点不是单独导出一个主色,而是把品牌色板映射成 accent、surface、border、text 这些页面角色。
SaaS / Dashboard
主题角色已经映射成可直接落地的 CSS 变量
主色、浅底、边框和正文颜色已经拆开,不需要再把一个 `brand-500` 到处手填进组件里。
- 主题前缀
- brand
- 主题预设
- SaaS / Dashboard
- 色板模式
- 平衡型
- 主强调变量
- --color-accent
- 页面底色变量
- --color-surface
- 正文变量
- --color-text
brand.primary -> --brand-500 brand.hover -> --brand-600 brand.active -> --brand-700 brand.surface -> --brand-50 brand.border -> --brand-200 brand.strong -> --brand-800 accent -> --color-accent surface -> --color-surface text -> --color-text
{
"palette": {
"brand.50": "#F3F6FC",
"brand.100": "#E6ECF9",
"brand.200": "#CBD9F6",
"brand.300": "#A1BBF2",
"brand.400": "#6B95EF",
"brand.500": "#2563EB",
"brand.600": "#1254E2",
"brand.700": "#0D49C9",
"brand.800": "#0838A0",
"brand.900": "#062A7A"
},
"semantic": {
"accent": "#2563EB",
"accent-hover": "#1254E2",
"accent-active": "#0D49C9",
"accent-soft": "#F3F6FC",
"accent-strong": "#0838A0",
"accent-ring": "#A1BBF2",
"surface": "#F4F7FB",
"surface-soft": "#F4F7FB",
"surface-raised": "#FFFFFF",
"surface-tint": "#EFF3FA",
"border": "#D4E0F0",
"border-strong": "#C4D4EF",
"text": "#162033",
"text-muted": "#5B6B80",
"text-invert": "#FFFFFF"
}
}:root {
--brand-radius: 18px;
}
.page-shell {
background: var(--color-surface);
color: var(--color-text);
}
.panel {
background: var(--color-surface-raised);
border: 1px solid var(--color-border);
border-radius: var(--brand-radius);
}
.button-primary {
background: var(--color-accent);
color: var(--color-text-invert);
}
.button-primary:hover {
background: var(--color-accent-hover);
}适合已经确定品牌色、准备把它整理成站点主题变量的开发和设计协作场景。
主题变量生成后,仍要检查正文、说明文字和按钮在真实背景上的对比度是否稳定。
为什么主题变量不能只停留在品牌色板
色板解决的是颜色层级,主题变量解决的是页面角色。两者都需要,但不能互相替代。
- `brand-50 ~ 900` 更适合存原始色阶,`accent / surface / text / border` 更适合驱动组件。
- 如果页面里只有色阶,没有语义角色,组件一多就会回到人工找色、到处复制的问题。
- 主题变量的意义是让卡片、按钮、表单和说明区都能复用统一规则,而不是每页单独配色。
这个工具适合解决哪些问题
它更适合“已经有品牌方向,但还没沉淀成可维护主题”的阶段。
- 把品牌主色快速映射成工具站、官网或内容站可直接复用的变量体系。
- 为组件库、样式系统或主题文件补足浅底、边框、正文和反白文字变量。
- 为后续 Tailwind、CSS Modules、纯 CSS 或设计 token 提供同一套颜色骨架。
常见主题映射参考
下面这组静态参考更适合帮助你理解不同站型预设下,主题变量的关注重点会如何变化。
使用建议
如果你要把结果正式接进项目,建议按下面这条顺序收口,效率会更高。
- 先把品牌主色映射成主题变量,再回头做具体按钮、卡片和浅底模块的组件预览。
- 如果当前只确定了主色,建议先补完整品牌色板,再继续做主题变量映射。
- 如果最终会落到 Tailwind、JSON Token 或组件库,最好同步生成命名规则,避免只复制一次颜色值。
实际演示
示例输入输出
示例重点展示品牌主色如何被映射成主题变量,而不是只停留在原始色阶。
SaaS 蓝主题映射
适合把品牌蓝收口成官网或后台系统可直接复用的主题变量。
#2563EB
brand
SaaS / Dashboard
:root {
--brand-50: #F3F6FC;
--brand-100: #E6ECF9;
--brand-200: #CBD9F6;
--brand-300: #A1BBF2;
--brand-400: #6B95EF;
--brand-500: #2563EB;
--brand-600: #1254E2;
--brand-700: #0D49C9;
--brand-800: #0838A0;
--brand-900: #062A7A;
accent: #2563EB surface: #F4F7FB border: #D4E0F0 text: #162033
内容暖棕主题映射
适合把内容站主色整理成更克制的 surface、text 和 accent 组合。
#C97B45
editorial
Editorial / Content
:root {
--editorial-50: #FBFAF8;
--editorial-100: #F7F2EE;
--editorial-200: #F1E7DF;
--editorial-300: #E7D0C0;
--editorial-400: #DDB498;
--editorial-500: #C97B45;
--editorial-600: #B16835;
--editorial-700: #96582C;
--editorial-800: #774522;
--editorial-900: #583318;
accent: #C97B45 surface: #F7F1E8 border: #E8DBCC text: #2F241B
规则说明
CSS 变量主题映射器会先生成品牌色板,再把颜色映射成 accent、surface、border、text 这类页面角色变量。
- 原始色阶负责存颜色来源,语义变量负责给组件直接使用。
- 站型预设会影响浅底、正文和边框的收敛方式,不是简单换一个主色就结束。
- 真正可维护的主题系统,应该让按钮、卡片、表单和说明区都能共享同一套角色变量。
常见误区
很多项目的问题不是没有变量,而是变量只停留在 `brand-500` 这种原始层级,没有进入页面角色分工。
- 把一个主色同时拿去做按钮、浅背景和边框,通常会让页面层级越来越乱。
- 如果主题变量里没有 text 和 surface 这类角色,组件层依然会频繁手填颜色。
- 主题映射结果不是最终审美结论,仍然需要回到真实页面检查可读性和品牌气质。
结果解释
结果区会同时输出原始色阶、语义变量、JSON 映射和组件 CSS 示例,适合从颜色方向直接进入主题文件。
- 原始色阶适合保留为基础变量仓库。
- 语义变量更适合页面角色、组件样式和设计 token 映射。
- 组件示例可以帮助你快速验证当前主题变量是否已经足够支撑真实界面。
推荐处理链路
主题映射通常位于品牌色落地的后半段,前后都还有工具可以继续配合。
- 如果品牌主色还没稳定,先回到品牌色板和配色工具找方向。
- 如果变量结构已经有了,下一步更适合继续统一命名和可读性规则。
常见问题
常见问题
CSS 变量主题映射器 FAQ 主要解释为什么要把品牌色板继续映射成页面角色变量。
已经有 `brand-50 ~ 900` 色板了,为什么还要继续做主题映射?
因为色板只解决颜色层级,主题映射解决的是页面角色。真实项目还需要 `accent`、`surface`、`border`、`text` 这类变量来驱动组件复用。
工具生成的主题变量可以直接上线吗?
可以作为很好的起点,但正式上线前仍然建议回到真实页面核对正文、表单、按钮和提示块的可读性与品牌气质。
它和 Tailwind 主题预设组合有什么区别?
这里更偏通用 CSS 变量主题映射,适合 CSS Modules、原生 CSS、设计 token 或任意样式系统;Tailwind 主题预设会继续输出更偏 Tailwind 的配置和类名结构。
相关工具
你还可以继续使用其他已经可用的颜色转换和主题落地工具。