📚 知识库 / 设计开发/ CSS 变量(自定义属性)实战:主题切换与设计令牌
📄
设计开发

CSS 变量(自定义属性)实战:主题切换与设计令牌

CSS 变量是现代样式开发的核心技术,本文介绍在模板中的实战用法。

一、基础语法

定义变量

:root {
--primary: #4f46e5;
--bg: #f6f7fb;
--text: #1f2430;
--radius: 14px;
--shadow: 0 6px 24px rgba(31,36,48,.08);
}

使用变量

.button {
background: var(--primary);
color: #fff;
border-radius: var(--radius);
box-shadow: var(--shadow);
}

二、主题切换

暗黑模式

:root {
--bg: #ffffff;
--text: #1f2430;
--card: #ffffff;
--border: #e6e8ef;
}

[data-theme="dark"] {
--bg: #0f172a;
--text: #e2e8f0;
--card: #1e293b;
--border: #334155;
}

JS 切换:
document.documentElement.setAttribute('data-theme', 'dark');

多主题

[data-theme="blue"] { --primary: #2563eb; }
[data-theme="green"] { --primary: #059669; }
[data-theme="purple"] { --primary: #7c3aed; }

三、设计令牌系统

颜色体系

:root {
/* 品牌色 */
--color-primary: #4f46e5;
--color-primary-dark: #4338ca;
--color-primary-light: #818cf8;

/* 语义色 */
--color-success: #10b981;
--color-warning: #f59e0b;
--color-danger: #ef4444;
--color-info: #3b82f6;

/* 中性色 */
--color-bg: #f6f7fb;
--color-surface: #ffffff;
--color-text: #1f2430;
--color-muted: #6b7280;
--color-border: #e6e8ef;
}

间距体系

:root {
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 24px;
--space-xl: 40px;
--space-2xl: 64px;
}

字体体系

:root {
--font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-mono: 'Fira Code', monospace;
--text-xs: 12px;
--text-sm: 14px;
--text-base: 16px;
--text-lg: 18px;
--text-2xl: 24px;
--text-3xl: 30px;
}

四、响应式变量

:root {
--container-padding: 16px;
}
@media (min-width: 768px) {
:root { --container-padding: 24px; }
}
@media (min-width: 1024px) {
:root { --container-padding: 32px; }
}

.container {
padding: 0 var(--container-padding);
}

五、浏览器兼容

CSS 变量兼容性已达 96%+,可放心使用。如需兼容 IE 可使用 PostCSS 插件 postcss-custom-properties 降级。

💬
🤖
模板演示 ×
新窗口打开