Figma:用变量+组件属性做一套可切换主题的按钮系统(实操教程)

你将完成什么

最终你会得到一套按钮组件:支持 Primary/Secondary/Text 三种层级、S/M/L 三种尺寸、默认/悬停/按下/禁用四种状态,并且可以一键切换浅色/深色主题。

准备:建立颜色变量(Variables)

1)创建变量集合:打开 Variables 面板,新建集合 Theme,创建两种 Mode:LightDark

2)按语义命名变量:不要用 #FFFFFF 这类物理颜色命名,推荐这些语义变量:

-- bg/surface
-- bg/brand
-- fg/primary
-- fg/onBrand
-- border/default
-- border/focus

3)分别给 Light/Dark 填值:在 Light 模式填浅色值,在 Dark 模式填深色值,保持同名变量在两种模式都有值。

制作按钮基础样式( )

1)画一个按钮容器:使用 Auto Layout(横向),内边距建议:S=10/14,M=12/18,L=14/22(左右/上下可按你的字号微调)。

2)加入文字层:文字对齐居中,字号建议:S=12,M=14,L=16;行高用 1.4 倍或固定 20/24/28。

3)绑定变量:给按钮填充/文字/描边分别绑定语义变量(例如 Primary:填充绑定 bg/brand,文字绑定 fg/onBrand)。

做成组件,并定义组件属性(Component properties)

1)创建组件:选中按钮 Frame,Create component。

2)建立 Variant 维度:在组件属性里创建三组 Variant:

Type:Primary / Secondary / Text

Size:S / M / L

State:Default / Hover / Pressed / Disabled

3)快速生成变体:用 Combine as variants 生成矩阵,再逐个调整不同 Type/State 下的变量绑定(例如 Hover 只改变填充变量或增加 2% 透明度)。

让主题切换真正生效

1)在组件层级统一绑定:确保按钮各层样式都是“绑定变量”,不要直接填死颜色。

2)在页面切换 Mode:在 Variables 面板切换 Theme 的 Mode(Light/Dark),你会看到所有绑定的组件一起变化。

3)常见坑

• 某个层没绑定变量 → 切换主题时不变

• 变体里覆盖了本地样式 → 优先检查每个 Variant 的 Fill/Text 是否仍绑定变量

• Disabled 颜色建议用同一语义变量加透明度,而不是再造一堆新色

交付与复用建议

把这套按钮发布到团队 Library,并在说明里写清:Type/Size/State 的用法、何时用 Secondary/Text、以及主题切换依赖 Theme 变量集合。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

暂无评论,快来抢沙发吧~

操作成功