Parse CSS

css的生成逻辑思维导图

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Parse CSS por Mind Map: Parse CSS

1. 选择单个元素

1.1. 判断元素节点类型,不同类型能获取到的样式属性不同

1.1.1. InstanceNode实例节点

1.1.1.1. 从设计稿库中拖出来的单个实例,如果修改了涉及稿源组件,实例也会跟随变化

1.1.1.2. 可以用Figma API 提供方法,通过styleId来获取其对应的css属性,如阴影: figma.getStyleById(node.effectStyleId),其中的effectStyle对应figma面板efect配置, 自定义修改其值时,FigmaJSON获取不到其effectStyleId,这个id应该是在设计稿库文件中定义好的,具有唯一id

1.1.2. Component组件节点

1.1.2.1. 具备StyleById 可以用getStyleById API方法

1.1.3. ComponentSetNode 组件集 (variant) 节点

1.1.3.1. 几乎不会用到这个类型做解析,此为多个类似的组件,创建成集合后可切换显示不同的样式,如不同状态的button

1.1.4. Frame/Group Node

1.1.4.1. Mapping style data

1.1.4.1.1. fills

1.1.4.1.2. height/ width

1.1.4.1.3. effect shadow

1.1.4.1.4. backgrounds

1.1.4.1.5. border-box

1.1.4.1.6. auto-layout

1.1.4.1.7. padding

1.1.4.1.8. opacity

1.1.4.1.9. stroke border

1.1.4.2. computed position X/Y

1.1.4.2.1. originPointX : absoluteRenderBounds.x originPointY : absoluteRenderBounds.y

1.1.4.2.2. ParentX: absoluteBoundingBox.x ParentY: absoluteBoundingBox.y

1.1.4.2.3. childrenX:absoluteBoundingBox.x - originPointX childrenY: absoluteBoundingBox.y -originPointY

1.1.4.2.4. position: relative

1.1.5. 部分组件有多层容器结构 染时Jutro会将metadata.josn5中配置的className渲染在多个层级的位置 导致样式多重渲染,子元素定位偏差

1.1.5.1. 查看文档、是否有特殊配置?

1.1.5.2. 动态引入对特殊组组件的特殊css处理 CSS选择器,找到对应组件className下 子元素,定位恢复成原点

1.1.5.2.1. Dropdown组件

1.1.5.2.2. close Icon Button

2. 没有选择元素

2.1. 报错提示

3. 同理,判断组合中每个子元素的类型

4. 选择多个元素

4.1. 用户必须将多个元素创建为一个Frame/Group 形成一个整体 才能拿到子元素在父容器中的相对坐标 通过figma API 自动帮用户完成组合

4.1.1. const component = figma.createComponent()

4.1.1.1. FigmaAPI Doc没有提供解除component的方法

4.1.1.1.1. 调用复制节点副本,组合成组件,解析生成,再删除副本

4.1.2. group(nodes: ReadonlyArray<BaseNode>, parent: BaseNode & ChildrenMixin, index?: number): GroupNode figma.group(figma.currentPage.selection, parent)

4.1.2.1. ungroup(node: SceneNode & ChildrenMixin): Array<SceneNode>