【免费下载链接】desigma
Free Figma alternative made on Rust
desigma 是一款用 Rust 编写的免费开源设计工具,它的组件与变体(Components & Variants)系统是维持设计系统同步的核心:修改一次主组件,所有实例自动更新,同时保留各自的覆写(override)。本文面向新手,用 5 个核心技巧帮你快速上手 desigma 组件与变体实战。
技巧一:一键创建主组件(Ctrl+Alt+K)
组件同步的起点是"主组件"。选中画布上的任意 Frame、分组、Section 或形状,按Ctrl+Alt+K(或右键选择 Create component),即可把它变成主组件 🎯。
几个细节值得注意:
- 纯形状会自动包装:直接选中一个矩形或文本时,desigma 会自动为它创建一个同尺寸的组件容器,保证组件始终有 Frame 属性(如裁切、自动布局)。
- 实例也会被转换:对已有实例执行该操作,会先"分离"再转成组件。
- 创建后即可复用:主组件会出现在左侧 Assets 面板中,按页面和容器分组,直接拖到画布上就能放置实例。
创建组件的编辑器操作位于 comp_ops.rs,底层转换逻辑在 components.rs 的create_component函数中实现。
技巧二:Combine as variants 组织变体网格
按钮的"主按钮/次按钮/大/小",输入框的"默认/悬停/禁用"——这些状态用变体组件集管理最清晰。
- 把同一组件的不同状态各做成一个主组件,命名采用
属性=值格式,例如Type=Primary, Size=Large、Type=Secondary, Size=Small; - 多选这些组件,按Ctrl+Shift+K(右键菜单 Combine as variants);
- desigma 会自动把它们收进一个组件集(Component Set),按网格排列,并根据命名自动生成变体属性(如
Type、Size),每个属性的选项来自所有变体的取值; - 没有规范命名的组件会被自动归入
Property 1=<名称>,之后可在 inspector 里重命名。
技巧三:用实例属性驱动层,而不是一一覆写
变体解决"状态切换",组件属性(Properties)解决"内容差异"。在组件或组件集的 inspector 中可添加三种属性:
| 属性类型 | 作用 | 典型用法 |
|---|---|---|
| Boolean | 开关某层的可见性 | Show icon控制图标显隐 |
| Text | 替换某文本层的内容 | Label让按钮文字各不相同 |
| Instance swap | 整体替换某个子实例 | 切换图标、切换头像组件 |
用法:在组件内部选中某一层,把它的Visibility或Characters绑定到某个属性,之后每个实例的 inspector 上就会出现对应的开关或输入框。以 desigma 内置示例中的 Button 组件为例:勾选Show icon切换图标,修改Label改变按钮文字,而Type、Size下拉框则直接切换整个变体——三种机制在同一面板内协同工作,这就是截图顶部展示的效果。
文本属性变化后,自动适配大小的文本会自动重新排版;清空某个属性值会立即回退到主组件的默认状态。
技巧四:理解同步机制,善用"重置"与"分离"
desigma 的同步模型很明确:编辑主组件 → 所有实例在同一个撤销步骤内更新,且各自的覆写保持不变。
- 改主组件的背景色、圆角、文案,实例跟着变;但某个实例上改过的文字(override)不会被冲掉;
- 主组件里新增/删除子层,实例的子层也会同步增删,同名节点的覆写会保留;
- 嵌套实例同样生效:卡片组件里嵌了按钮实例,改按钮主组件时,卡片内那个嵌套实例及其副本都会更新,两层同步互不干扰。
配套操作都在实例上右键即可(快捷键列于 context.rs):
| 操作 | 快捷键 | 场景 |
|---|---|---|
| Go to main component | — | 从实例跳回主组件,自动切换页面并缩放定位 |
| Reset all changes | — | 清掉一个实例的全部覆写和属性值 |
| Detach instance | Ctrl+Alt+B | 彻底断开链接变成普通 Frame(嵌套实例仍保持链接) |
| Swap instance | — | 实例头部的下拉框直接换成别的组件,位置不变 |
顺带一提,组件之外设计系统的另一根支柱是变量:颜色和数值变量可以绑定到填充、圆角、间距上,切换 Light/Dark 模式整页跟随,相关模型在 variables.rs。
技巧五:用共享库让多个文件的设计系统保持同步
单个文件内的同步靠组件链接,跨文件的同步靠共享库(Shared Libraries):
- 把承载组件、样式、变量的文件(如 "Design system" 文件)发布为库,带版本号和变更日志;
- 其他文件在库面板中启用该库,组件就会出现在 Assets 面板的库分区,拖出来即用——使用的是库组件的副本,占位在同一撤销步骤内完成;
- 库发布新版本后,使用方会收到审核提示,可先对比变更再决定是否更新,避免设计系统被静默改动。
共享库的完整流程(发布、启用、版本审核)实现在 libraries/mod.rs,组件数据的同步逻辑在 desigma-library。这样,团队里移动端、Web 端、白板稿各自打开不同文件,却能共享同一套 Button、Tag、Avatar 组件集——改一次,处处同步。
小结:5个技巧速查
Ctrl+Alt+K创建主组件,形状会被自动包装;- 命名
属性=值后Ctrl+Shift+K合并为变体,选项自动生成; - 用 Boolean/Text/Instance swap 属性绑定层,代替手工覆写;
- 牢记"主组件改一次、实例全更新、覆写不丢",需要独立时用
Ctrl+Alt+B分离; - 把组件文件发布为共享库,跨文件保持设计系统单一数据源。
掌握这 5 个技巧,desigma 的组件与变体系统就能支撑起一套真正"改一次、处处生效"的设计系统。
【免费下载链接】desigma
Free Figma alternative made on Rust
相关推荐
5个技巧让CustomTkinter界面设计更专业:图像与字体系统实战指南
5个技巧让CustomTkinter界面设计更专业:图像与字体系统实战指南 CustomTkinter是一个基于Tkinter的现代化Python UI库,它提
UI组件桌面应用Leantime核心组件:通知系统的设计与实现
Leantime核心组件:通知系统的设计与实现 Leantime通知系统作为项目协作的关键枢纽,负责在团队成员间传递任务更新、@提及和系统公告等关键信息。该系统
后端前端企业应用项目管理u-root实战:构建嵌入式Linux系统的5个核心技巧
u root实战:构建嵌入式Linux系统的5个核心技巧 u root是一个完全用Go语言编写的用户空间工具集,能够创建包含BusyBox风格工具的单二进制根文
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考