Figma 学习笔记 – Component
参考
Figma Tutorial: Components - The Basics (Youtube)
定义与用途
Figma 的 Component 有点 Class 和 Instance 的关系. Component 就是 Class, 通过 copy paste from Component 就得到了 Component 的 Instance.
当修改 Component 样式时, 所有的 Instance 都会同步. 这就是它的主要作用了.
创建
创建 Component 的方式是在一个元素上按 Ctrl + Alt + K, 或者点击中上方的菱形 icon

完成后,原本的元素就变成了 Component, 它的框会变成紫色的, 还有一个菱形 icon

要创建 Component 的 Instance 只需要 copy paste 或者 Alt + 拖拉就可以了.

Instance 也是紫色的边框但是它没有菱形 icon, 从右边的 Layer 可以看到, Instance 是空心的菱形 icon. 我们可以用这些特性快速区分 Component 和 Instance.
同步效果

Instance Override 样式
如果说所有 Instance 都必须完全和 Component 一模一样, 那么它的复用范围就很小了, 因为绝大多数情况不会出现 100% 一样的元素.
所以 Figma 允许我们做一定程度的 Override. 但是要记住哦, Override 是矛盾的, 因为元素之所以被转换成 Component 是因为它们有共同特性,如果 Override 过多则表示它们其实并没有那么多共同特性, 也许根本不应该使用 Component 做管理.
不是所有的样式都可以 Override 的.
可修改的样式

不可修改的样式

涉及到 Layout 的基本上都是不可以改的, 能改的都是一些 Paint 的东西.
如果某一个 Instance 的某个样式被 override 以后, 这个 Instance 的那个样式就不在和 Component 保持同步了. (其它 Instance, 其它样式一样会被同步)
Reset Override 样式
Figma 会记入 Instance 修改过那些样式, 我们也可以通过右侧的工具栏快速 reset 掉这些 override 的样式. 这样它就会恢复和 Component 的同步了.

Override 注意事项:
Instance 最外层的 dimension 是可以 override 的, 子元素的 dimension 则不可以
子元素的 Resizing 是可以 override 的, 但是它不会被特别记入起来, 只能通过 Reset all 重置

Detach Instance & Undo Component
有时候我们只是想 copy paste 组件, 然后完全切断链接. 这种情况就可以使用 detech instance 了.

此外它还有一个神奇的功能, 就是删除 Component. 比如我们不小心把一个元素变成了 Component.
Figma 并没有任何方法可以直接把它变回普通元素, 唯一可以做的方式是做一个 Instance 然后 detech instance 再把 Component 移除掉 (这个是官方给的方式哦).
Swap Instance
Figma 还有一个神奇的功能叫 swap instance, 意思是在一个 instance 中的子 instance 是可以替换掉的.

比如我想把 "小 component 1" 换成 "小 component 2"

注意, 子元素是不能替换的,只有子 instance 可以替换.
虽然替换成功了, 但是我们发现 dimension 视乎被锁死了, 它并没有变成新 instance 的 width.
这是一个 Figma 的 Issue 来的, 目前的解决方法是, 在 “小 component” 做一层 wrapper + auto layout hug contents
只要是可能被替换的 Component 我们都必须这样子搞哦.

多了一层 container 负责具体的 dimension, 原先的 Component 设置 Auto Layout + Hug contents

Transclude(ngTransclude), Slot(Web Component), Content projection(ng-content)
通过这个 swap instance 就可以实现 slot 的效果, 做一个 replace component

Figma 学习笔记 – Component的更多相关文章
- angular2 学习笔记 ( Component 组件)
refer : https://angular.cn/docs/ts/latest/guide/template-syntax.html https://angular.cn/docs/ts/late ...
- Ionic2学习笔记(2):自定义Component
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5536298.html 上一篇提到,Ionic2提供了很多Co ...
- Solr学习笔记之5、Component(组件)与Handler(处理器)学习
Solr学习笔记之5.Component(组件)与Handler(处理器)学习 一.搜索篇 拼写检查(spellCheck) 作用:用来检查用户输入的检索内容是否存在,如果不存在则给它提示出相近或相似 ...
- AngularJs学习笔记--Understanding the Model Component
原版地址:http://docs.angularjs.org/guide/dev_guide.mvc.understanding_model 在angular文档讨论的上下文中,术语“model”可以 ...
- AngularJs学习笔记--Understanding the Controller Component
原版地址:http://docs.angularjs.org/guide/dev_guide.mvc.understanding_model 在angular中,controller是一个javasc ...
- amazeui学习笔记二(进阶开发2)--Web组件简介Web Component
amazeui学习笔记二(进阶开发2)--Web组件简介Web Component 一.总结 1.amaze ui:amaze ui是一个web 组件, 由模板(hbs).样式(LESS).交互(JS ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- Ionic2学习笔记(10):扫描二维码
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5575843.html 时间:6/11/2016 说明: 在本文发表的时候(2016-06-1 ...
- [原创]java WEB学习笔记108:Spring学习---基于配置文件的形式实现AOP
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记107:Spring学习---AOP切面的优先级,重用切点表达式
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- [oeasy]python0007-Guido的简历
执行 esc 退回到正常模式 编辑 esc退出插入模式 准备底行命令模式运行当前py文件 保存执行 :w|!python3 % 保存并用 python3 解释当前程序(%) 编辑 可以 ...
- 02-springboot配置
目录 1,前言 2,YAML介绍 3,获取yml配置文件内容 4,springboot的配置文件 5,springboot使用@Value实现映射 6,@PropertySource.@ImportR ...
- 使用ventoy安装windows10
使用ventoy安装windows10 在ventoy中选择windows10镜像 进入Windows安装界面 下一步,选择现在安装 稍等片刻 选择我没有产品密钥 根据需求选择对应版本 下一步,接受许 ...
- 【FTP】小米手机FTP传输
设置方法 打开[文件管理],右上角按钮选择[远程管理] 点击设置按钮 默认保持唤醒状态 设置FTP账户的用户名密码 Windows访问: 然后开启服务即可: 手机和电脑连接同一个网络内访问 每次接入网 ...
- 【WSDL】01 JAX-WS 入门案例
去年这个时候工作遇见时暂时总结的笔记: https://www.cnblogs.com/mindzone/p/14777493.html 当时也不是很清楚,直到最近前同事又遇上了这项技术, 除了WSD ...
- 【SpringMVC】10 对Ajax的应用
编写一个AjaxController package cn.dai.controller; import org.springframework.web.bind.annotation.GetMapp ...
- 【Vue】Re03 computed属性计算和ES6的一些补充
一.Computed属性计算 四种计算处理的方式方法 <!DOCTYPE html> <html lang="en"> <head> <m ...
- 【转载】 Ring Allreduce (深度神经网络的分布式计算范式 -------------- 环形全局规约)
作者:初七123链接:https://www.jianshu.com/p/8c0e7edbefb9来源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. ----------- ...
- 面向分布式强化学习的经验回放框架——Reverb: A Framework for Experience Replay
论文题目: Reverb: A Framework for Experience Replay 地址: https://arxiv.org/pdf/2102.04736.pdf 框架代码地址: htt ...
- MD5签名生成,字典排序,实际生产
1.背景 作用:防止请求参数篡改,限制请求时效性: 常用方式:md5签名 关键:签名Key 常用签名原串排列:字母顺序.key1=value1&key2=value2....key (注意:签 ...