diff --git a/.idea/.idea.HALLUCINATE/.idea/workspace.xml b/.idea/.idea.HALLUCINATE/.idea/workspace.xml
index 6596c14b..e7858031 100644
--- a/.idea/.idea.HALLUCINATE/.idea/workspace.xml
+++ b/.idea/.idea.HALLUCINATE/.idea/workspace.xml
@@ -6,6 +6,10 @@
+
+
+
+
@@ -13,7 +17,6 @@
-
@@ -25,6 +28,7 @@
+
@@ -160,6 +164,7 @@
+
@@ -169,6 +174,7 @@
+
diff --git a/Assets/Scove/UITesting.unity b/Assets/Scove/UITesting.unity
index 594fb148..0001a4a2 100644
--- a/Assets/Scove/UITesting.unity
+++ b/Assets/Scove/UITesting.unity
@@ -447,6 +447,75 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
+--- !u!1 &1218059261
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1218059262}
+ - component: {fileID: 1218059264}
+ - component: {fileID: 1218059263}
+ m_Layer: 0
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1218059262
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1218059261}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 4687.4375, y: -0.00017, z: 5715.602}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1218059263
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1218059261}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -688943309, guid: 178891466f3f1d447aa5cfbf83d7a8b5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UXImporterUnityUiToolKit.dll::FigmaToUnityUiToolKit.DataHubRoot
+ _dataHub: {fileID: 0}
+--- !u!114 &1218059264
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1218059261}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.dll::UnityEngine.UIElements.UIDocument
+ m_PanelSettings: {fileID: 0}
+ m_ParentUI: {fileID: 0}
+ sourceAsset: {fileID: 0}
+ m_SortingOrder: 0
+ m_Position: 0
+ m_WorldSpaceSizeMode: 1
+ m_WorldSpaceWidth: 1920
+ m_WorldSpaceHeight: 1080
+ m_PivotReferenceSize: 0
+ m_Pivot: 0
+ m_WorldSpaceCollider: {fileID: 0}
--- !u!1 &1234188887
GameObject:
m_ObjectHideFlags: 0
@@ -586,6 +655,14 @@ PrefabInstance:
propertyPath: m_Name
value: Game_UI
objectReference: {fileID: 0}
+ - target: {fileID: 4705652128730820444, guid: dbc10f9802034f443bd0ac18329875c5, type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4705652128730820444, guid: dbc10f9802034f443bd0ac18329875c5, type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 0
+ objectReference: {fileID: 0}
- target: {fileID: 5704081308080066381, guid: dbc10f9802034f443bd0ac18329875c5, type: 3}
propertyPath: m_Pivot.x
value: 0
@@ -800,3 +877,4 @@ SceneRoots:
- {fileID: 1234188889}
- {fileID: 671850023}
- {fileID: 705824387}
+ - {fileID: 1218059262}
diff --git a/Assets/Temp.meta b/Assets/Temp.meta
new file mode 100644
index 00000000..17603306
--- /dev/null
+++ b/Assets/Temp.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d120eab0fb2b73041b12a7af764c2966
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Temp/Section_1.json b/Assets/Temp/Section_1.json
new file mode 100644
index 00000000..55a0d3c9
--- /dev/null
+++ b/Assets/Temp/Section_1.json
@@ -0,0 +1,2111 @@
+{
+ "flattenLayers": [
+ {
+ "id": "2022:2",
+ "name": "Section 1",
+ "type": "SECTION",
+ "parentID": "0:1",
+ "parentName": "Game_UI",
+ "childrenNames": [
+ {
+ "id": "2008:2",
+ "name": "Panel_GlobalSettings",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "2008:3",
+ "name": "Modal_PauseMenu",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "2008:4",
+ "name": "Canvas_GameplayHUD",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "2008:5",
+ "name": "Modal_Login",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "2008:6",
+ "name": "Panel_ProfileMenu",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "2008:7",
+ "name": "Panel_Lobby",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "2008:8",
+ "name": "Panel_MainMenu",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "2013:81",
+ "name": "osu_2026-05-13_22-06-22 1",
+ "type": "RECTANGLE",
+ "parentID": "2022:2",
+ "parentName": "Section 1"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_SectionNode": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.2666666805744171,
+ "g": 0.2666666805744171,
+ "b": 0.2666666805744171
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "opaqueNodeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "dimensionAndPositionMixin": {
+ "width": 18907,
+ "height": 4839,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ }
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "2008:2",
+ "name": "Panel_GlobalSettings",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1929,
+ "height": 1080,
+ "tx": 16452,
+ "ty": 1195,
+ "x": 16452,
+ "y": 1195
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": -180,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2008:3",
+ "name": "Modal_PauseMenu",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1929,
+ "height": 1080,
+ "tx": 13796,
+ "ty": 1195,
+ "x": 13796,
+ "y": 1195
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": -180,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2008:4",
+ "name": "Canvas_GameplayHUD",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1929,
+ "height": 1080,
+ "tx": 11140,
+ "ty": 1195,
+ "x": 11140,
+ "y": 1195
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": -180,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2008:5",
+ "name": "Modal_Login",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1929,
+ "height": 1080,
+ "tx": 8484,
+ "ty": 1195,
+ "x": 8484,
+ "y": 1195
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": -180,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2008:6",
+ "name": "Panel_ProfileMenu",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1929,
+ "height": 1080,
+ "tx": 5828,
+ "ty": 1195,
+ "x": 5828,
+ "y": 1195
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": -180,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2008:7",
+ "name": "Panel_Lobby",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1929,
+ "height": 1080,
+ "tx": 3172,
+ "ty": 1195,
+ "x": 3172,
+ "y": 1195
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": -180,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2008:8",
+ "name": "Panel_MainMenu",
+ "type": "FRAME",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [
+ {
+ "id": "2013:128",
+ "name": "Osu_Button_Container",
+ "type": "FRAME",
+ "parentID": "2008:8",
+ "parentName": "Panel_MainMenu"
+ },
+ {
+ "id": "2013:123",
+ "name": "Background_Container",
+ "type": "INSTANCE",
+ "parentID": "2008:8",
+ "parentName": "Panel_MainMenu"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1920,
+ "height": 1080,
+ "tx": 525,
+ "ty": 1195,
+ "x": 525,
+ "y": 1195
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 10,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 10
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:128",
+ "name": "Osu_Button_Container",
+ "type": "FRAME",
+ "parentID": "2008:8",
+ "parentName": "Panel_MainMenu",
+ "childrenNames": [
+ {
+ "id": "2013:129",
+ "name": "Osu_Button_Bottom",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container"
+ },
+ {
+ "id": "2013:130",
+ "name": "Osu_Button_Inner",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container"
+ },
+ {
+ "id": "2013:131",
+ "name": "Osu_Button_Text",
+ "type": "FRAME",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container"
+ },
+ {
+ "id": "2013:133",
+ "name": "Osu_Button_Stoke",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 648,
+ "height": 648,
+ "tx": 636,
+ "ty": -329,
+ "x": 636,
+ "y": -329
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 10,
+ "paddingRight": 10,
+ "paddingTop": 10,
+ "paddingBottom": 10,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 10,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 648,
+ "y": 648
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:129",
+ "name": "Osu_Button_Bottom",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 628,
+ "height": 628,
+ "tx": 10,
+ "ty": 10,
+ "x": 10,
+ "y": 10
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 628,
+ "y": 628
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:130",
+ "name": "Osu_Button_Inner",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.9647058844566345,
+ "g": 0.3843137323856354,
+ "b": 0.6470588445663452
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 628,
+ "height": 628,
+ "tx": 10,
+ "ty": 10,
+ "x": 10,
+ "y": 10
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 566,
+ "y": 566
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:131",
+ "name": "Osu_Button_Text",
+ "type": "FRAME",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container",
+ "childrenNames": [
+ {
+ "id": "2013:132",
+ "name": "B4B4 Y4G4",
+ "type": "TEXT",
+ "parentID": "2013:131",
+ "parentName": "Osu_Button_Text"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 388,
+ "height": 330,
+ "tx": 130,
+ "ty": 159,
+ "x": 130,
+ "y": 159
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 10,
+ "paddingRight": 10,
+ "paddingTop": 10,
+ "paddingBottom": 10,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 10,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 10,
+ "paddingRight": 10,
+ "paddingTop": 10,
+ "paddingBottom": 10,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 10
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:132",
+ "name": "B4B4 Y4G4",
+ "type": "TEXT",
+ "parentID": "2013:131",
+ "parentName": "Osu_Button_Text",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 368,
+ "height": 310,
+ "tx": 10,
+ "ty": 10,
+ "x": 10,
+ "y": 10
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 128,
+ "fontName": {
+ "family": "Inter",
+ "style": "Black Italic"
+ },
+ "fontWeight": 900,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "unit": "AUTO"
+ },
+ "characters": "B4B4\nY4G4"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "CENTER",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": ""
+ }
+ },
+ {
+ "id": "2013:133",
+ "name": "Osu_Button_Stoke",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 0
+ }
+ ]
+ },
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 34,
+ "strokeAlign": "OUTSIDE",
+ "strokeJoin": "MITER"
+ }
+ },
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 566,
+ "height": 566,
+ "tx": 41,
+ "ty": 41,
+ "x": 41,
+ "y": 41
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 566,
+ "y": 566
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:123",
+ "name": "Background_Container",
+ "type": "INSTANCE",
+ "parentID": "2008:8",
+ "parentName": "Panel_MainMenu",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1920,
+ "height": 1080,
+ "tx": 0,
+ "ty": 329,
+ "x": 0,
+ "y": 329
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "BG": "BG3"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "2013:81",
+ "name": "osu_2026-05-13_22-06-22 1",
+ "type": "RECTANGLE",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1920,
+ "height": 1080,
+ "tx": 590,
+ "ty": 2438,
+ "x": 590,
+ "y": 2438
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 1920,
+ "y": 1080
+ }
+ }
+ }
+ }
+ ],
+ "visualNode": [
+ {
+ "id": "2013:129",
+ "name": "Osu_Button_Bottom",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 628,
+ "height": 628,
+ "tx": 10,
+ "ty": 10,
+ "x": 10,
+ "y": 10
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 628,
+ "y": 628
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:130",
+ "name": "Osu_Button_Inner",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.9647058844566345,
+ "g": 0.3843137323856354,
+ "b": 0.6470588445663452
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 628,
+ "height": 628,
+ "tx": 10,
+ "ty": 10,
+ "x": 10,
+ "y": 10
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 566,
+ "y": 566
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:133",
+ "name": "Osu_Button_Stoke",
+ "type": "ELLIPSE",
+ "parentID": "2013:128",
+ "parentName": "Osu_Button_Container",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 0
+ }
+ ]
+ },
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 34,
+ "strokeAlign": "OUTSIDE",
+ "strokeJoin": "MITER"
+ }
+ },
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 566,
+ "height": 566,
+ "tx": 41,
+ "ty": 41,
+ "x": 41,
+ "y": 41
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 566,
+ "y": 566
+ }
+ }
+ }
+ },
+ {
+ "id": "2013:123",
+ "name": "Background_Container",
+ "type": "INSTANCE",
+ "parentID": "2008:8",
+ "parentName": "Panel_MainMenu",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1920,
+ "height": 1080,
+ "tx": 0,
+ "ty": 329,
+ "x": 0,
+ "y": 329
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "BG": "BG3"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "2013:81",
+ "name": "osu_2026-05-13_22-06-22 1",
+ "type": "RECTANGLE",
+ "parentID": "2022:2",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1920,
+ "height": 1080,
+ "tx": 590,
+ "ty": 2438,
+ "x": 590,
+ "y": 2438
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 1920,
+ "y": 1080
+ }
+ }
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Assets/Temp/Section_1.json.meta b/Assets/Temp/Section_1.json.meta
new file mode 100644
index 00000000..d281c475
--- /dev/null
+++ b/Assets/Temp/Section_1.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 27b1b7c76d74f1a4b823e2cea76aa62c
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Temp/images.meta b/Assets/Temp/images.meta
new file mode 100644
index 00000000..584f3373
--- /dev/null
+++ b/Assets/Temp/images.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7b94eafedddb0c04d974ba1c8fa25843
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Temp/images/2013_123.png b/Assets/Temp/images/2013_123.png
new file mode 100644
index 00000000..7c8cefe3
Binary files /dev/null and b/Assets/Temp/images/2013_123.png differ
diff --git a/Assets/Temp/images/2013_123.png.meta b/Assets/Temp/images/2013_123.png.meta
new file mode 100644
index 00000000..656c7d7b
--- /dev/null
+++ b/Assets/Temp/images/2013_123.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: e3f5cc198f705e84a80152d1d3c18ec3
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Temp/images/2013_129.png b/Assets/Temp/images/2013_129.png
new file mode 100644
index 00000000..086469fa
Binary files /dev/null and b/Assets/Temp/images/2013_129.png differ
diff --git a/Assets/Temp/images/2013_129.png.meta b/Assets/Temp/images/2013_129.png.meta
new file mode 100644
index 00000000..c7cccf1a
--- /dev/null
+++ b/Assets/Temp/images/2013_129.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: d0d24ca34a852eb40ac7a722a0004fb7
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Temp/images/2013_130.png b/Assets/Temp/images/2013_130.png
new file mode 100644
index 00000000..0a9434f5
Binary files /dev/null and b/Assets/Temp/images/2013_130.png differ
diff --git a/Assets/Temp/images/2013_130.png.meta b/Assets/Temp/images/2013_130.png.meta
new file mode 100644
index 00000000..d8c07836
--- /dev/null
+++ b/Assets/Temp/images/2013_130.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: 8e67c60a36198d04485cb81643e360b1
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Temp/images/2013_133.png b/Assets/Temp/images/2013_133.png
new file mode 100644
index 00000000..3b7b6294
Binary files /dev/null and b/Assets/Temp/images/2013_133.png differ
diff --git a/Assets/Temp/images/2013_133.png.meta b/Assets/Temp/images/2013_133.png.meta
new file mode 100644
index 00000000..0d183b28
--- /dev/null
+++ b/Assets/Temp/images/2013_133.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: a382aca638da8b64ca42bad0b839d00c
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Temp/images/2013_81.png b/Assets/Temp/images/2013_81.png
new file mode 100644
index 00000000..1f3dc703
Binary files /dev/null and b/Assets/Temp/images/2013_81.png differ
diff --git a/Assets/Temp/images/2013_81.png.meta b/Assets/Temp/images/2013_81.png.meta
new file mode 100644
index 00000000..9987c1f9
--- /dev/null
+++ b/Assets/Temp/images/2013_81.png.meta
@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: 067507b989868c64084dabb40d85ab19
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UXImporterUnityUiToolKit.meta b/Assets/UXImporterUnityUiToolKit.meta
new file mode 100644
index 00000000..9e001cce
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9c962719e2f05ae47bdc320ee7ff2e54
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UXImporterUnityUiToolKit/.gemini-workspace-history/active-context.md b/Assets/UXImporterUnityUiToolKit/.gemini-workspace-history/active-context.md
new file mode 100644
index 00000000..5b572ad1
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/.gemini-workspace-history/active-context.md
@@ -0,0 +1 @@
+No previous session history found for this workspace.
\ No newline at end of file
diff --git a/Assets/UXImporterUnityUiToolKit/.gemini-workspace-history/session-2026-05-18-01-26.json.gz b/Assets/UXImporterUnityUiToolKit/.gemini-workspace-history/session-2026-05-18-01-26.json.gz
new file mode 100644
index 00000000..312b794c
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/.gemini-workspace-history/session-2026-05-18-01-26.json.gz differ
diff --git a/Assets/UXImporterUnityUiToolKit/CHANGELOG.md b/Assets/UXImporterUnityUiToolKit/CHANGELOG.md
new file mode 100644
index 00000000..5aaa434b
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/CHANGELOG.md
@@ -0,0 +1,6 @@
+# Changelog
+
+## [0.1.6] - 2025-12-29
+### Fixed
+- Fixed a bug where `unity-text-align` was output instead of `-unity-text-align`.
+- Fixed an issue where Addressable Group Schemas were incorrectly instantiated using `new`.
\ No newline at end of file
diff --git a/Assets/UXImporterUnityUiToolKit/CHANGELOG.md.meta b/Assets/UXImporterUnityUiToolKit/CHANGELOG.md.meta
new file mode 100644
index 00000000..fb0abbe7
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/CHANGELOG.md.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 2198b75ff830ac24396d1481f8817f55
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/CHANGELOG.md
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Editor.meta b/Assets/UXImporterUnityUiToolKit/Editor.meta
new file mode 100644
index 00000000..938e4fb9
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2b1e9d8f8b3babc4e92a9dcd30d5d6a4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/JsonDiffPatchDotNet.dll b/Assets/UXImporterUnityUiToolKit/Editor/JsonDiffPatchDotNet.dll
new file mode 100644
index 00000000..e248c861
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Editor/JsonDiffPatchDotNet.dll differ
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/JsonDiffPatchDotNet.dll.meta b/Assets/UXImporterUnityUiToolKit/Editor/JsonDiffPatchDotNet.dll.meta
new file mode 100644
index 00000000..bd6cbb28
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/JsonDiffPatchDotNet.dll.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: db12bd705fb15ce4888fb9e049cb5359
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Editor/JsonDiffPatchDotNet.dll
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset.meta b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset.meta
new file mode 100644
index 00000000..7110b5b0
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: df91b23b175eb104589b3f0c20c4668a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uss b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uss
new file mode 100644
index 00000000..21359113
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uss
@@ -0,0 +1,48 @@
+/* ヘッダー */
+.header {
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ padding: 5px;
+ background-color: rgb(56, 56, 56);
+}
+
+.title {
+ -unity-font-style: bold;
+ font-size: 14px;
+ color: white;
+}
+
+ScrollView {
+ background-color: #383838;
+ border-width: 1px;
+ border-color: #2b2b2b;
+ border-radius: 4px;
+ padding: 10px;
+}
+
+Button {
+ margin-top: 10px;
+}
+
+.label-fixed-width .unity-label {
+ min-width: 220px;
+ max-width: 220px;
+}
+
+#exportButton {
+ height: 30px;
+ width: 90%;
+ font-size: 14px;
+ align-self: center;
+ border-width: 1px;
+ border-color: white;
+}
+
+#cancelImportButton {
+ height: 30px;
+ width: 90%;
+ font-size: 14px;
+ align-self: center;
+ margin-top: 5px;
+}
\ No newline at end of file
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uss.meta b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uss.meta
new file mode 100644
index 00000000..c55535a2
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uss.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 163109c4175a61c4a893aa85977bce79
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+ disableValidation: 0
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uss
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uxml b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uxml
new file mode 100644
index 00000000..53a512f4
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uxml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uxml.meta b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uxml.meta
new file mode 100644
index 00000000..e3fe70d7
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uxml.meta
@@ -0,0 +1,17 @@
+fileFormatVersion: 2
+guid: 5c5ecbe294d46374b83b27654f8e8ffe
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Editor/ToolAsset/UXImporterToUITK.uxml
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/UIAsset.meta b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset.meta
new file mode 100644
index 00000000..2e6d2cce
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 25e9b1edf68820246aa2c364dccef6c3
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uss b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uss
new file mode 100644
index 00000000..14c9ee26
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uss
@@ -0,0 +1,58 @@
+/* ヘッダー */
+.header {
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0 5px 5px 5px;
+ border-bottom: 1px solid rgb(56, 56, 56);
+ margin-bottom: 5px;
+}
+
+
+
+/* Inspector全体のコンテナ */
+.root-container {
+ padding: 5px;
+}
+
+.title {
+ -unity-font-style: bold;
+ font-size: 14px;
+ color: white;
+}
+
+/* 警告メッセージのラベル */
+.warning-label {
+ font-size: 14px;
+ padding: 10px 5px;
+ white-space: normal; /* テキストの折り返しを許可 */
+}
+
+/* 区切り線 */
+.separator {
+ height: 1px;
+ background-color: rgb(56, 56, 56);
+ margin: 5px 0;
+}
+
+/* テーブルリストのセクション */
+.tables-section {
+ padding: 10px 5px;
+}
+
+/* テーブルリストのタイトル */
+.title-label {
+ -unity-font-style: bold;
+ font-size: 14px;
+ margin-bottom: 5px;
+ white-space: normal; /* テキストの折り返しを許可 */
+}
+
+/* テーブル名リストのコンテナ */
+.list-container {}
+
+/* 個々のテーブル名のラベル */
+.table-name-label {
+ margin-left: 15px; /* リスト項目をインデント */
+ padding: 1px 0;
+}
\ No newline at end of file
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uss.meta b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uss.meta
new file mode 100644
index 00000000..edd0e317
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uss.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 71de67d97a4bd4345a4a2ef330ca58fb
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+ disableValidation: 0
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uss
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uxml b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uxml
new file mode 100644
index 00000000..60695109
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uxml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uxml.meta b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uxml.meta
new file mode 100644
index 00000000..d618e78f
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uxml.meta
@@ -0,0 +1,17 @@
+fileFormatVersion: 2
+guid: 7c99c36ae4294b54b9012a7074087582
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Editor/UIAsset/DataHubEditor.uxml
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/UXImporterUnityUiToolKit.Editor.dll b/Assets/UXImporterUnityUiToolKit/Editor/UXImporterUnityUiToolKit.Editor.dll
new file mode 100644
index 00000000..a37a9d98
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Editor/UXImporterUnityUiToolKit.Editor.dll differ
diff --git a/Assets/UXImporterUnityUiToolKit/Editor/UXImporterUnityUiToolKit.Editor.dll.meta b/Assets/UXImporterUnityUiToolKit/Editor/UXImporterUnityUiToolKit.Editor.dll.meta
new file mode 100644
index 00000000..ea5c4d74
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Editor/UXImporterUnityUiToolKit.Editor.dll.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 570e536497cc67846b92166e0bbd644e
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Editor/UXImporterUnityUiToolKit.Editor.dll
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/README.md b/Assets/UXImporterUnityUiToolKit/README.md
new file mode 100644
index 00000000..496c7ede
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/README.md
@@ -0,0 +1,68 @@
+# UX Importer for Unity UI Toolkit
+
+## Description
+
+**UX Importer for Unity UI Toolkit** is a toolset for converting UI designs created in **external design platforms** into Unity's UI Toolkit format (UXML and USS). It consists of the **UX Exporter plugin** and a Unity editor extension, smoothing the collaboration between designers and developers.
+
+
+Export a JSON file with all scene information and necessary asset files as a ZIP using the **UX Exporter plugin**. Simply import that ZIP file into your Unity project to faithfully reproduce the layout from the original design.
+
+
+Please obtain the UX Exporter plugin here.
+https://bamboo-up.app/
+
+## Workflow
+
+1. **Design Creation**:
+ * The designer creates the UI design in the external design platform.
+
+2. **Design Export**:
+ * Use the **UX Exporter plugin** (available for download at [https://bamboo-up.app/](https://bamboo-up.app/)) to export the design as a **ZIP file containing the JSON data and required image assets**.
+
+3. **Placement in Unity Project**:
+ * **Unzip** the exported ZIP file and place its contents (the JSON file and assets) into any folder within your Unity project (e.g., `Assets/DesignExports/`).
+
+4. **Scene Setup (DataHub Root)**:
+ * In your Unity scene, add a new GameObject and attach the **`DataHub Root` component** to it. This component is essential for centralizing references to Addressables and Localization data, and it will serve as the **parent object for the generated UI structure**.
+
+5. **UXML/USS Automatic Generation**:
+ * After Unity recognizes the JSON file, launch the tool from the editor menu: `Window/BambooUp studio/UX Importer for UUIT`.
+ * Within the tool, specify the JSON file to automatically generate the **UXML and USS stylesheets** ready for use with the UI Toolkit.
+
+## Tool Configuration
+
+The following settings must be configured within the GUI of the "UX Importer for Unity UI Toolkit" import tool.
+
+### 1. Input Settings
+
+| Item | Description |
+| :--- | :--- |
+| **JSON File** | Specify the JSON file containing the design information exported by the UX Exporter plugin. |
+
+### 2. Output Settings
+
+| Item | Description |
+| :--- | :--- |
+| **Output Folder** | Specify the project folder where the generated **UXML files**, **USS stylesheets**, and **DataHub files** will be saved. |
+| **DataHub Root Reference** | Specify the **`DataHub Root` component** placed in your scene. The generated UI will be structured as a child of this root. |
+
+### 3. Localization Settings
+
+| Item | Description |
+| :--- | :--- |
+| **Localization Asset Folder** | Specify the folder where **assets like String Tables** generated by the Unity Localization package will be stored. |
+
+### 4. Font Settings
+
+| Item | Description |
+| :--- | :--- |
+| **Default Font** | Specify a default font asset to be used as a substitute if a font utilized in the original design cannot be found in the Unity project. |
+
+***
+
+## Operations (Import and Undo)
+
+| Operation | Description |
+| :--- | :--- |
+| **Execute Import** | Reads the JSON file based on the settings above and generates the UXML/USS and associated assets. |
+| **Undo Import** | Reverts (deletes) the results of the last executed import operation (UXML/USS and DataHub files, etc.) from the specified output folder. |
\ No newline at end of file
diff --git a/Assets/UXImporterUnityUiToolKit/README.md.meta b/Assets/UXImporterUnityUiToolKit/README.md.meta
new file mode 100644
index 00000000..62263f45
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/README.md.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 16b2182b71b79594e844b2633b67893c
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/README.md
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Runtime.meta b/Assets/UXImporterUnityUiToolKit/Runtime.meta
new file mode 100644
index 00000000..424a217e
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a7654789c6e0fd743adf5c5b63f14613
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UXImporterUnityUiToolKit/Runtime/UXImporterUnityUiToolKit.dll b/Assets/UXImporterUnityUiToolKit/Runtime/UXImporterUnityUiToolKit.dll
new file mode 100644
index 00000000..39c75844
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Runtime/UXImporterUnityUiToolKit.dll differ
diff --git a/Assets/UXImporterUnityUiToolKit/Runtime/UXImporterUnityUiToolKit.dll.meta b/Assets/UXImporterUnityUiToolKit/Runtime/UXImporterUnityUiToolKit.dll.meta
new file mode 100644
index 00000000..7ffb5436
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Runtime/UXImporterUnityUiToolKit.dll.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 178891466f3f1d447aa5cfbf83d7a8b5
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Runtime/UXImporterUnityUiToolKit.dll
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/Section_1.json b/Assets/UXImporterUnityUiToolKit/Samples~/Section_1.json
new file mode 100644
index 00000000..e92859ed
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/Section_1.json
@@ -0,0 +1,15610 @@
+{
+ "flattenLayers": [
+ {
+ "id": "1:3",
+ "name": "Section 1",
+ "type": "SECTION",
+ "parentID": "0:1",
+ "parentName": "Page 1",
+ "childrenNames": [
+ {
+ "id": "1:4",
+ "name": "logo_all 1",
+ "type": "RECTANGLE",
+ "parentID": "1:3",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "81:258",
+ "name": "Footer",
+ "type": "FRAME",
+ "parentID": "1:3",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "1:2820",
+ "name": "Panel Image Content Reverse",
+ "type": "INSTANCE",
+ "parentID": "1:3",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "1:2838",
+ "name": "bamboo-shoots-7181496_1280 1",
+ "type": "RECTANGLE",
+ "parentID": "1:3",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "4:240",
+ "name": "Group 1",
+ "type": "GROUP",
+ "parentID": "1:3",
+ "parentName": "Section 1"
+ },
+ {
+ "id": "1:1330",
+ "name": "Menu",
+ "type": "INSTANCE",
+ "parentID": "1:3",
+ "parentName": "Section 1"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_SectionNode": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "opaqueNodeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "dimensionAndPositionMixin": {
+ "width": 1920,
+ "height": 1080,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ }
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "1:4",
+ "name": "logo_all 1",
+ "type": "RECTANGLE",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 412.69921875,
+ "height": 117,
+ "tx": 1423,
+ "ty": 894,
+ "x": 1423,
+ "y": 894
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MAX",
+ "vertical": "MAX"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 1806,
+ "y": 512
+ }
+ }
+ }
+ },
+ {
+ "id": "81:258",
+ "name": "Footer",
+ "type": "FRAME",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [
+ {
+ "id": "81:271",
+ "name": "Text Link List",
+ "type": "INSTANCE",
+ "parentID": "81:258",
+ "parentName": "Footer"
+ },
+ {
+ "id": "81:272",
+ "name": "Text Link List",
+ "type": "INSTANCE",
+ "parentID": "81:258",
+ "parentName": "Footer"
+ },
+ {
+ "id": "81:273",
+ "name": "Text Link List",
+ "type": "INSTANCE",
+ "parentID": "81:258",
+ "parentName": "Footer"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 0,
+ "strokeAlign": "INSIDE",
+ "strokeJoin": "MITER"
+ }
+ },
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1200,
+ "height": 468,
+ "tx": 129,
+ "ty": 746,
+ "x": 129,
+ "y": 746
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 0,
+ "strokeLeftWeight": 0,
+ "strokeRightWeight": 0
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "WRAP",
+ "paddingLeft": 32,
+ "paddingRight": 32,
+ "paddingTop": 32,
+ "paddingBottom": 160,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 16,
+ "counterAxisSpacing": 16,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 32,
+ "paddingRight": 32,
+ "paddingTop": 32,
+ "paddingBottom": 160,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 16
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "81:271",
+ "name": "Text Link List",
+ "type": "INSTANCE",
+ "parentID": "81:258",
+ "parentName": "Footer",
+ "childrenNames": [
+ {
+ "id": "I81:271;2162:7479",
+ "name": "Title",
+ "type": "FRAME",
+ "parentID": "81:271",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:271;2153:7976",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:271;2153:7978",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:271;2153:7980",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:271;2153:7982",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:271;2153:7984",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:271;2153:7986",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:271;2153:7988",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 276,
+ "tx": 32,
+ "ty": 32,
+ "x": 32,
+ "y": 32
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 12,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 12
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Density": "Default"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2162:7479",
+ "name": "Title",
+ "type": "FRAME",
+ "parentID": "81:271",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:271;2162:6389",
+ "name": "Text Strong",
+ "type": "INSTANCE",
+ "parentID": "I81:271;2162:7479",
+ "parentName": "Title"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 38,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 16,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 10,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 16,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 10
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I81:271;2162:6389",
+ "name": "Text Strong",
+ "type": "INSTANCE",
+ "parentID": "I81:271;2162:7479",
+ "parentName": "Title",
+ "childrenNames": [
+ {
+ "id": "I81:271;2162:6389;2087:8468",
+ "name": "Text Strong",
+ "type": "TEXT",
+ "parentID": "I81:271;2162:6389",
+ "parentName": "Text Strong"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2162:6389;2087:8468",
+ "name": "Text Strong",
+ "type": "TEXT",
+ "parentID": "I81:271;2162:6389",
+ "parentName": "Text Strong",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 80,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Semi Bold"
+ },
+ "fontWeight": 600,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Use cases"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:e21b16ffb31d9ee1ff2a4792765537ea77c7b80e,716:147"
+ }
+ },
+ {
+ "id": "I81:271;2153:7976",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:271;2153:7976;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7976",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 50,
+ "x": 0,
+ "y": 50
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 17,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2153:7976;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7976",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 72,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "UI design"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:271;2153:7978",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:271;2153:7978;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7978",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 22,
+ "tx": 0,
+ "ty": 84,
+ "x": 0,
+ "y": 84
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 184,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2153:7978;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7978",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 78,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "UX design"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:271;2153:7980",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:271;2153:7980;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7980",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 118,
+ "x": 0,
+ "y": 118
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2153:7980;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7980",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 92,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Wireframing"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:271;2153:7982",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:271;2153:7982;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7982",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 152,
+ "x": 0,
+ "y": 152
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2153:7982;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7982",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 100,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Diagramming"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:271;2153:7984",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:271;2153:7984;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7984",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 186,
+ "x": 0,
+ "y": 186
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2153:7984;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7984",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 105,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Brainstorming"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:271;2153:7986",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:271;2153:7986;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7986",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 220,
+ "x": 0,
+ "y": 220
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2153:7986;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7986",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 138,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Online whiteboard"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:271;2153:7988",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:271",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:271;2153:7988;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7988",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 254,
+ "x": 0,
+ "y": 254
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:271;2153:7988;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:271;2153:7988",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 144,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Team collaboration"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "81:272",
+ "name": "Text Link List",
+ "type": "INSTANCE",
+ "parentID": "81:258",
+ "parentName": "Footer",
+ "childrenNames": [
+ {
+ "id": "I81:272;2162:7479",
+ "name": "Title",
+ "type": "FRAME",
+ "parentID": "81:272",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:272;2153:7976",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:272;2153:7978",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:272;2153:7980",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:272;2153:7982",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:272;2153:7984",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:272;2153:7986",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:272;2153:7988",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 242,
+ "tx": 310,
+ "ty": 32,
+ "x": 310,
+ "y": 32
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 12,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 12
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Density": "Default"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2162:7479",
+ "name": "Title",
+ "type": "FRAME",
+ "parentID": "81:272",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:272;2162:6389",
+ "name": "Text Strong",
+ "type": "INSTANCE",
+ "parentID": "I81:272;2162:7479",
+ "parentName": "Title"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 38,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 16,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 10,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 16,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 10
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I81:272;2162:6389",
+ "name": "Text Strong",
+ "type": "INSTANCE",
+ "parentID": "I81:272;2162:7479",
+ "parentName": "Title",
+ "childrenNames": [
+ {
+ "id": "I81:272;2162:6389;2087:8468",
+ "name": "Text Strong",
+ "type": "TEXT",
+ "parentID": "I81:272;2162:6389",
+ "parentName": "Text Strong"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2162:6389;2087:8468",
+ "name": "Text Strong",
+ "type": "TEXT",
+ "parentID": "I81:272;2162:6389",
+ "parentName": "Text Strong",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 59,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Semi Bold"
+ },
+ "fontWeight": 600,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Explore"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:e21b16ffb31d9ee1ff2a4792765537ea77c7b80e,716:147"
+ }
+ },
+ {
+ "id": "I81:272;2153:7976",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:272;2153:7976;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7976",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 50,
+ "x": 0,
+ "y": 50
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 36,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2153:7976;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7976",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 53,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Design"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:272;2153:7978",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:272;2153:7978;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7978",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 84,
+ "x": 0,
+ "y": 84
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2153:7978;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7978",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Prototyping"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:272;2153:7980",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:272;2153:7980;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7980",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 118,
+ "x": 0,
+ "y": 118
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2153:7980;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7980",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 167,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Development features"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:272;2153:7982",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:272;2153:7982;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7982",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 152,
+ "x": 0,
+ "y": 152
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2153:7982;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7982",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 120,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Design systems"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:272;2153:7984",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:272;2153:7984;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7984",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 186,
+ "x": 0,
+ "y": 186
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2153:7984;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7984",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 168,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Collaboration features"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:272;2153:7986",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:272;2153:7986;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7986",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 220,
+ "x": 0,
+ "y": 220
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2153:7986;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7986",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 117,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Design process"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:272;2153:7988",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:272",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:272;2153:7988;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7988",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": false,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 254,
+ "x": 0,
+ "y": 254
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 34,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:272;2153:7988;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:272;2153:7988",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 55,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "FigJam"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "81:273",
+ "name": "Text Link List",
+ "type": "INSTANCE",
+ "parentID": "81:258",
+ "parentName": "Footer",
+ "childrenNames": [
+ {
+ "id": "I81:273;2162:7479",
+ "name": "Title",
+ "type": "FRAME",
+ "parentID": "81:273",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:273;2153:7976",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:273;2153:7978",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:273;2153:7980",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:273;2153:7982",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:273;2153:7984",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:273;2153:7986",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List"
+ },
+ {
+ "id": "I81:273;2153:7988",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 276,
+ "tx": 588,
+ "ty": 32,
+ "x": 588,
+ "y": 32
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 12,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 12
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Density": "Default"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2162:7479",
+ "name": "Title",
+ "type": "FRAME",
+ "parentID": "81:273",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:273;2162:6389",
+ "name": "Text Strong",
+ "type": "INSTANCE",
+ "parentID": "I81:273;2162:7479",
+ "parentName": "Title"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 38,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 16,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 10,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 16,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 10
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I81:273;2162:6389",
+ "name": "Text Strong",
+ "type": "INSTANCE",
+ "parentID": "I81:273;2162:7479",
+ "parentName": "Title",
+ "childrenNames": [
+ {
+ "id": "I81:273;2162:6389;2087:8468",
+ "name": "Text Strong",
+ "type": "TEXT",
+ "parentID": "I81:273;2162:6389",
+ "parentName": "Text Strong"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 262,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2162:6389;2087:8468",
+ "name": "Text Strong",
+ "type": "TEXT",
+ "parentID": "I81:273;2162:6389",
+ "parentName": "Text Strong",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 82,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Semi Bold"
+ },
+ "fontWeight": 600,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Resources"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:e21b16ffb31d9ee1ff2a4792765537ea77c7b80e,716:147"
+ }
+ },
+ {
+ "id": "I81:273;2153:7976",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:273;2153:7976;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7976",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 50,
+ "x": 0,
+ "y": 50
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 55,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2153:7976;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7976",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 34,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Blog"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:273;2153:7978",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:273;2153:7978;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7978",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 84,
+ "x": 0,
+ "y": 84
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2153:7978;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7978",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 109,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Best practices"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:273;2153:7980",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:273;2153:7980;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7980",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 118,
+ "x": 0,
+ "y": 118
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 40,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2153:7980;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7980",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 49,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Colors"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:273;2153:7982",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:273;2153:7982;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7982",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 152,
+ "x": 0,
+ "y": 152
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2153:7982;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7982",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 90,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Color wheel"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:273;2153:7984",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:273;2153:7984;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7984",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 186,
+ "x": 0,
+ "y": 186
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 28,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2153:7984;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7984",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 61,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Support"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:273;2153:7986",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:273;2153:7986;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7986",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 220,
+ "x": 0,
+ "y": 220
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 3,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2153:7986;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7986",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 86,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Developers"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I81:273;2153:7988",
+ "name": "Text Link List Item",
+ "type": "INSTANCE",
+ "parentID": "81:273",
+ "parentName": "Text Link List",
+ "childrenNames": [
+ {
+ "id": "I81:273;2153:7988;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7988",
+ "parentName": "Text Link List Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 89,
+ "height": 22,
+ "tx": 0,
+ "ty": 254,
+ "x": 0,
+ "y": 254
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I81:273;2153:7988;2153:7955",
+ "name": "List item",
+ "type": "TEXT",
+ "parentID": "I81:273;2153:7988",
+ "parentName": "Text Link List Item",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 123,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Resource library"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "1:2820",
+ "name": "Panel Image Content Reverse",
+ "type": "INSTANCE",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [
+ {
+ "id": "I1:2820;348:15124",
+ "name": "Text Content Flow",
+ "type": "FRAME",
+ "parentID": "1:2820",
+ "parentName": "Panel Image Content Reverse"
+ },
+ {
+ "id": "I1:2820;348:15128",
+ "name": "Image",
+ "type": "FRAME",
+ "parentID": "1:2820",
+ "parentName": "Panel Image Content Reverse"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 0.800000011920929,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 1200,
+ "height": 479,
+ "tx": 100,
+ "ty": 30,
+ "x": 100,
+ "y": 30
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 64,
+ "paddingRight": 64,
+ "paddingTop": 64,
+ "paddingBottom": 64,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 48,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 64,
+ "paddingRight": 64,
+ "paddingTop": 64,
+ "paddingBottom": 64,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 48
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Platform": "Desktop"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:2820;348:15124",
+ "name": "Text Content Flow",
+ "type": "FRAME",
+ "parentID": "1:2820",
+ "parentName": "Panel Image Content Reverse",
+ "childrenNames": [
+ {
+ "id": "I1:2820;348:15125",
+ "name": "Text Content Heading",
+ "type": "INSTANCE",
+ "parentID": "I1:2820;348:15124",
+ "parentName": "Text Content Flow"
+ },
+ {
+ "id": "I1:2820;348:15126",
+ "name": "Text",
+ "type": "INSTANCE",
+ "parentID": "I1:2820;348:15124",
+ "parentName": "Text Content Flow"
+ },
+ {
+ "id": "I1:2820;348:15127",
+ "name": "Text",
+ "type": "INSTANCE",
+ "parentID": "I1:2820;348:15124",
+ "parentName": "Text Content Flow"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 351,
+ "minWidth": 300,
+ "tx": 64,
+ "ty": 64,
+ "x": 64,
+ "y": 64
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 24,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 24
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:2820;348:15125",
+ "name": "Text Content Heading",
+ "type": "INSTANCE",
+ "parentID": "I1:2820;348:15124",
+ "parentName": "Text Content Flow",
+ "childrenNames": [
+ {
+ "id": "I1:2820;348:15125;2144:3861",
+ "name": "Heading",
+ "type": "TEXT",
+ "parentID": "I1:2820;348:15125",
+ "parentName": "Text Content Heading"
+ },
+ {
+ "id": "I1:2820;348:15125;2144:3862",
+ "name": "Subheading",
+ "type": "TEXT",
+ "parentID": "I1:2820;348:15125",
+ "parentName": "Text Content Heading"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 64,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 8,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 8
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Align": "Start"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:2820;348:15125;2144:3861",
+ "name": "Heading",
+ "type": "TEXT",
+ "parentID": "I1:2820;348:15125",
+ "parentName": "Text Content Heading",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 38,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 32,
+ "fontName": {
+ "family": "Inter",
+ "style": "Semi Bold"
+ },
+ "fontWeight": 600,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": -2,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 120.00000476837158,
+ "unit": "PERCENT"
+ },
+ "characters": "UX Importer for Unity UI Toolkit"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": ""
+ }
+ },
+ {
+ "id": "I1:2820;348:15125;2144:3862",
+ "name": "Subheading",
+ "type": "TEXT",
+ "parentID": "I1:2820;348:15125",
+ "parentName": "Text Content Heading",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.4588235318660736,
+ "g": 0.4588235318660736,
+ "b": 0.4588235318660736
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 18,
+ "tx": 0,
+ "ty": 46,
+ "x": 0,
+ "y": 46
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 15,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 120.00000476837158,
+ "unit": "PERCENT"
+ },
+ "characters": "Stop Recreating UIs. Start Development Immediately."
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "CENTER",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": ""
+ }
+ },
+ {
+ "id": "I1:2820;348:15126",
+ "name": "Text",
+ "type": "INSTANCE",
+ "parentID": "I1:2820;348:15124",
+ "parentName": "Text Content Flow",
+ "childrenNames": [
+ {
+ "id": "I1:2820;348:15126;2087:8469",
+ "name": "Text",
+ "type": "TEXT",
+ "parentID": "I1:2820;348:15126",
+ "parentName": "Text"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 56,
+ "tx": 0,
+ "ty": 88,
+ "x": 0,
+ "y": 88
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:2820;348:15126;2087:8469",
+ "name": "Text",
+ "type": "TEXT",
+ "parentID": "I1:2820;348:15126",
+ "parentName": "Text",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 56,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 20,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Seamlessly transfer your Figma designs to Unity in just a few simple steps."
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": ""
+ }
+ },
+ {
+ "id": "I1:2820;348:15127",
+ "name": "Text",
+ "type": "INSTANCE",
+ "parentID": "I1:2820;348:15124",
+ "parentName": "Text Content Flow",
+ "childrenNames": [
+ {
+ "id": "I1:2820;348:15127;2087:8469",
+ "name": "Text",
+ "type": "TEXT",
+ "parentID": "I1:2820;348:15127",
+ "parentName": "Text"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 476,
+ "tx": 0,
+ "ty": 168,
+ "x": 0,
+ "y": 168
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:2820;348:15127;2087:8469",
+ "name": "Text",
+ "type": "TEXT",
+ "parentID": "I1:2820;348:15127",
+ "parentName": "Text",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 476,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 20,
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "This tool serves as the “starting point” for developing UI designs created in web-based design tools using the Unity UI Toolkit.\n\nIt frees you from the inefficient task of manually assembling UI while “referencing” designs created by designers.\n\nIt recreates layouts with high precision, eliminating most tedious manual adjustments. It outputs data to reproduce designs —including rounded-corner images and masked images—to JSON, supporting complex visual elements.\n\nYou can focus on UI logic and feature implementation. Use it as your development foundation."
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": ""
+ }
+ },
+ {
+ "id": "I1:2820;348:15128",
+ "name": "Image",
+ "type": "FRAME",
+ "parentID": "1:2820",
+ "parentName": "Panel Image Content Reverse",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": false,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 484,
+ "height": 350,
+ "tx": 596,
+ "ty": 64.5,
+ "x": 596,
+ "y": 64.5
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 4,
+ "strokeBottomWeight": 4,
+ "strokeLeftWeight": 4,
+ "strokeRightWeight": 4
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "1:2838",
+ "name": "bamboo-shoots-7181496_1280 1",
+ "type": "RECTANGLE",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 745,
+ "height": 496,
+ "tx": 734,
+ "ty": 114,
+ "x": 734,
+ "y": 114
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 60
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 60,
+ "topRightRadius": 60,
+ "bottomLeftRadius": 60,
+ "bottomRightRadius": 60
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 1280,
+ "y": 852
+ }
+ }
+ }
+ },
+ {
+ "id": "4:240",
+ "name": "Group 1",
+ "type": "GROUP",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true
+ },
+ "nodeParameters_GroupNode": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 828,
+ "height": 460,
+ "tx": 886,
+ "ty": 434,
+ "x": 886,
+ "y": 434
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "1:1330",
+ "name": "Menu",
+ "type": "INSTANCE",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [
+ {
+ "id": "I1:1330;280:15938",
+ "name": "Menu Header",
+ "type": "FRAME",
+ "parentID": "1:1330",
+ "parentName": "Menu"
+ },
+ {
+ "id": "I1:1330;9762:722",
+ "name": "Menu Separator",
+ "type": "INSTANCE",
+ "parentID": "1:1330",
+ "parentName": "Menu"
+ },
+ {
+ "id": "I1:1330;83:33577",
+ "name": "Menu Section",
+ "type": "FRAME",
+ "parentID": "1:1330",
+ "parentName": "Menu"
+ },
+ {
+ "id": "I1:1330;9762:724",
+ "name": "Menu Separator",
+ "type": "INSTANCE",
+ "parentID": "1:1330",
+ "parentName": "Menu"
+ },
+ {
+ "id": "I1:1330;83:33611",
+ "name": "Menu Section",
+ "type": "FRAME",
+ "parentID": "1:1330",
+ "parentName": "Menu"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 1,
+ "strokeAlign": "INSIDE",
+ "strokeJoin": "MITER"
+ }
+ },
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 301,
+ "height": 454,
+ "tx": 1478.3368209302425,
+ "ty": 124.83776313066483,
+ "x": 1385,
+ "y": 80
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": -30.00000044529205,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 8,
+ "paddingRight": 8,
+ "paddingTop": 8,
+ "paddingBottom": 8,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 8,
+ "paddingRight": 8,
+ "paddingTop": 8,
+ "paddingBottom": 8,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;280:15938",
+ "name": "Menu Header",
+ "type": "FRAME",
+ "parentID": "1:1330",
+ "parentName": "Menu",
+ "childrenNames": [
+ {
+ "id": "I1:1330;280:15946",
+ "name": "Heading",
+ "type": "TEXT",
+ "parentID": "I1:1330;280:15938",
+ "parentName": "Menu Header"
+ },
+ {
+ "id": "I1:1330;280:15944",
+ "name": "Heading",
+ "type": "TEXT",
+ "parentID": "I1:1330;280:15938",
+ "parentName": "Menu Header"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 54,
+ "tx": 8,
+ "ty": 8,
+ "x": 8,
+ "y": 8
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 8,
+ "paddingBottom": 4,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 8,
+ "paddingBottom": 4,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;280:15946",
+ "name": "Heading",
+ "type": "TEXT",
+ "parentID": "I1:1330;280:15938",
+ "parentName": "Menu Header",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.4588235318660736,
+ "g": 0.4588235318660736,
+ "b": 0.4588235318660736
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 253,
+ "height": 20,
+ "tx": 16,
+ "ty": 8,
+ "x": 16,
+ "y": 8
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 14,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Heading"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:dd16ffab542d022b9a2d78275ed222c2cb4646b4,3017:75"
+ }
+ },
+ {
+ "id": "I1:1330;280:15944",
+ "name": "Heading",
+ "type": "TEXT",
+ "parentID": "I1:1330;280:15938",
+ "parentName": "Menu Header",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 253,
+ "height": 22,
+ "tx": 16,
+ "ty": 28,
+ "x": 16,
+ "y": 28
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Semi Bold"
+ },
+ "fontWeight": 600,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Heading"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:e21b16ffb31d9ee1ff2a4792765537ea77c7b80e,716:147"
+ }
+ },
+ {
+ "id": "I1:1330;9762:722",
+ "name": "Menu Separator",
+ "type": "INSTANCE",
+ "parentID": "1:1330",
+ "parentName": "Menu",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:722;9762:732",
+ "name": "Rule",
+ "type": "RECTANGLE",
+ "parentID": "I1:1330;9762:722",
+ "parentName": "Menu Separator"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 17,
+ "tx": 8,
+ "ty": 62,
+ "x": 8,
+ "y": 62
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 8,
+ "paddingBottom": 8,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 8,
+ "paddingBottom": 8,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;9762:722;9762:732",
+ "name": "Rule",
+ "type": "RECTANGLE",
+ "parentID": "I1:1330;9762:722",
+ "parentName": "Menu Separator",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 253,
+ "height": 1,
+ "tx": 16,
+ "ty": 8,
+ "x": 16,
+ "y": 8
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33577",
+ "name": "Menu Section",
+ "type": "FRAME",
+ "parentID": "1:1330",
+ "parentName": "Menu",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33578",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33577",
+ "parentName": "Menu Section"
+ },
+ {
+ "id": "I1:1330;83:33579",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33577",
+ "parentName": "Menu Section"
+ },
+ {
+ "id": "I1:1330;83:33580",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33577",
+ "parentName": "Menu Section"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 210,
+ "tx": 8,
+ "ty": 79,
+ "x": 8,
+ "y": 79
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33578",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33577",
+ "parentName": "Menu Section",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33578;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33578",
+ "parentName": "Menu Item"
+ },
+ {
+ "id": "I1:1330;83:33578;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33578",
+ "parentName": "Menu Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 70,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 12,
+ "counterAxisSpacing": 12,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 12
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "State": "Default"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33578",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33578;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33578;9762:746",
+ "parentName": "Star"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 20,
+ "height": 20,
+ "tx": 16,
+ "ty": 12,
+ "x": 16,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 1.666666865348816,
+ "paddingRight": 1.666667103767395,
+ "paddingTop": 1.666666865348816,
+ "paddingBottom": 2.483332633972168,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Size": "20"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33578;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33578",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33578;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33578;321:1231",
+ "parentName": "Body"
+ },
+ {
+ "id": "I1:1330;83:33578;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33578;321:1231",
+ "parentName": "Body"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 46,
+ "tx": 48,
+ "ty": 12,
+ "x": 48,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33578;321:1231",
+ "parentName": "Body",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33578;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33578;321:1232",
+ "parentName": "Row"
+ },
+ {
+ "id": "I1:1330;83:33578;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33578;321:1232",
+ "parentName": "Row"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33578;321:1232",
+ "parentName": "Row",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 193,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu Label"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33578;321:1232",
+ "parentName": "Row",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33578;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33578;321:1234",
+ "parentName": "Menu Shortcut"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 193,
+ "ty": 3,
+ "x": 193,
+ "y": 3
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33578;321:1234",
+ "parentName": "Menu Shortcut",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 100,
+ "unit": "PERCENT"
+ },
+ "characters": "⇧A"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cd8fb7890d02bb365020e6d4d9dc37dd932bbf3b,715:129"
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33578;321:1231",
+ "parentName": "Body",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.4588235318660736,
+ "g": 0.4588235318660736,
+ "b": 0.4588235318660736
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 20,
+ "tx": 0,
+ "ty": 26,
+ "x": 0,
+ "y": 26
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 14,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu description."
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:dd16ffab542d022b9a2d78275ed222c2cb4646b4,3017:75"
+ }
+ },
+ {
+ "id": "I1:1330;83:33579",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33577",
+ "parentName": "Menu Section",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33579;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33579",
+ "parentName": "Menu Item"
+ },
+ {
+ "id": "I1:1330;83:33579;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33579",
+ "parentName": "Menu Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 70,
+ "tx": 0,
+ "ty": 70,
+ "x": 0,
+ "y": 70
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 12,
+ "counterAxisSpacing": 12,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 12
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "State": "Default"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33579",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33579;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33579;9762:746",
+ "parentName": "Star"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 20,
+ "height": 20,
+ "tx": 16,
+ "ty": 12,
+ "x": 16,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 1.666666865348816,
+ "paddingRight": 1.666667103767395,
+ "paddingTop": 1.666666865348816,
+ "paddingBottom": 2.483332633972168,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Size": "20"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33579;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33579",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33579;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33579;321:1231",
+ "parentName": "Body"
+ },
+ {
+ "id": "I1:1330;83:33579;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33579;321:1231",
+ "parentName": "Body"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 46,
+ "tx": 48,
+ "ty": 12,
+ "x": 48,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33579;321:1231",
+ "parentName": "Body",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33579;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33579;321:1232",
+ "parentName": "Row"
+ },
+ {
+ "id": "I1:1330;83:33579;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33579;321:1232",
+ "parentName": "Row"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33579;321:1232",
+ "parentName": "Row",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 193,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu Label"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33579;321:1232",
+ "parentName": "Row",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33579;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33579;321:1234",
+ "parentName": "Menu Shortcut"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 193,
+ "ty": 3,
+ "x": 193,
+ "y": 3
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33579;321:1234",
+ "parentName": "Menu Shortcut",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 100,
+ "unit": "PERCENT"
+ },
+ "characters": "⇧A"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cd8fb7890d02bb365020e6d4d9dc37dd932bbf3b,715:129"
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33579;321:1231",
+ "parentName": "Body",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.4588235318660736,
+ "g": 0.4588235318660736,
+ "b": 0.4588235318660736
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 20,
+ "tx": 0,
+ "ty": 26,
+ "x": 0,
+ "y": 26
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 14,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu description."
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:dd16ffab542d022b9a2d78275ed222c2cb4646b4,3017:75"
+ }
+ },
+ {
+ "id": "I1:1330;83:33580",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33577",
+ "parentName": "Menu Section",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33580;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33580",
+ "parentName": "Menu Item"
+ },
+ {
+ "id": "I1:1330;83:33580;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33580",
+ "parentName": "Menu Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 70,
+ "tx": 0,
+ "ty": 140,
+ "x": 0,
+ "y": 140
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 12,
+ "counterAxisSpacing": 12,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 12
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "State": "Default"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33580",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33580;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33580;9762:746",
+ "parentName": "Star"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 20,
+ "height": 20,
+ "tx": 16,
+ "ty": 12,
+ "x": 16,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 1.666666865348816,
+ "paddingRight": 1.666667103767395,
+ "paddingTop": 1.666666865348816,
+ "paddingBottom": 2.483332633972168,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Size": "20"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33580;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33580",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33580;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33580;321:1231",
+ "parentName": "Body"
+ },
+ {
+ "id": "I1:1330;83:33580;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33580;321:1231",
+ "parentName": "Body"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 46,
+ "tx": 48,
+ "ty": 12,
+ "x": 48,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;83:33580;321:1231",
+ "parentName": "Body",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33580;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33580;321:1232",
+ "parentName": "Row"
+ },
+ {
+ "id": "I1:1330;83:33580;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33580;321:1232",
+ "parentName": "Row"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33580;321:1232",
+ "parentName": "Row",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 193,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu Label"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33580;321:1232",
+ "parentName": "Row",
+ "childrenNames": [
+ {
+ "id": "I1:1330;83:33580;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33580;321:1234",
+ "parentName": "Menu Shortcut"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 193,
+ "ty": 3,
+ "x": 193,
+ "y": 3
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33580;321:1234",
+ "parentName": "Menu Shortcut",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 100,
+ "unit": "PERCENT"
+ },
+ "characters": "⇧A"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cd8fb7890d02bb365020e6d4d9dc37dd932bbf3b,715:129"
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;83:33580;321:1231",
+ "parentName": "Body",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.4588235318660736,
+ "g": 0.4588235318660736,
+ "b": 0.4588235318660736
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 20,
+ "tx": 0,
+ "ty": 26,
+ "x": 0,
+ "y": 26
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 14,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu description."
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:dd16ffab542d022b9a2d78275ed222c2cb4646b4,3017:75"
+ }
+ },
+ {
+ "id": "I1:1330;9762:724",
+ "name": "Menu Separator",
+ "type": "INSTANCE",
+ "parentID": "1:1330",
+ "parentName": "Menu",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:724;9762:732",
+ "name": "Rule",
+ "type": "RECTANGLE",
+ "parentID": "I1:1330;9762:724",
+ "parentName": "Menu Separator"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 17,
+ "tx": 8,
+ "ty": 289,
+ "x": 8,
+ "y": 289
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 8,
+ "paddingBottom": 8,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 8,
+ "paddingBottom": 8,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;9762:724;9762:732",
+ "name": "Rule",
+ "type": "RECTANGLE",
+ "parentID": "I1:1330;9762:724",
+ "parentName": "Menu Separator",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 253,
+ "height": 1,
+ "tx": 16,
+ "ty": 8,
+ "x": 16,
+ "y": 8
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33611",
+ "name": "Menu Section",
+ "type": "FRAME",
+ "parentID": "1:1330",
+ "parentName": "Menu",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:726",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33611",
+ "parentName": "Menu Section"
+ },
+ {
+ "id": "I1:1330;9762:727",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33611",
+ "parentName": "Menu Section"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 140,
+ "tx": 8,
+ "ty": 306,
+ "x": 8,
+ "y": 306
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:726",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33611",
+ "parentName": "Menu Section",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:726;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;9762:726",
+ "parentName": "Menu Item"
+ },
+ {
+ "id": "I1:1330;9762:726;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;9762:726",
+ "parentName": "Menu Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 70,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 12,
+ "counterAxisSpacing": 12,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 12
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "State": "Default"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;9762:726",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:726;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;9762:726;9762:746",
+ "parentName": "Star"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 20,
+ "height": 20,
+ "tx": 16,
+ "ty": 12,
+ "x": 16,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 1.666666865348816,
+ "paddingRight": 1.666667103767395,
+ "paddingTop": 1.666666865348816,
+ "paddingBottom": 2.483332633972168,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Size": "20"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;9762:726;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;9762:726",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:726;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;9762:726;321:1231",
+ "parentName": "Body"
+ },
+ {
+ "id": "I1:1330;9762:726;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:726;321:1231",
+ "parentName": "Body"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 46,
+ "tx": 48,
+ "ty": 12,
+ "x": 48,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;9762:726;321:1231",
+ "parentName": "Body",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:726;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:726;321:1232",
+ "parentName": "Row"
+ },
+ {
+ "id": "I1:1330;9762:726;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;9762:726;321:1232",
+ "parentName": "Row"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:726;321:1232",
+ "parentName": "Row",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 193,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu Label"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;9762:726;321:1232",
+ "parentName": "Row",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:726;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:726;321:1234",
+ "parentName": "Menu Shortcut"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 193,
+ "ty": 3,
+ "x": 193,
+ "y": 3
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:726;321:1234",
+ "parentName": "Menu Shortcut",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 100,
+ "unit": "PERCENT"
+ },
+ "characters": "⇧A"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cd8fb7890d02bb365020e6d4d9dc37dd932bbf3b,715:129"
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:726;321:1231",
+ "parentName": "Body",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.4588235318660736,
+ "g": 0.4588235318660736,
+ "b": 0.4588235318660736
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 20,
+ "tx": 0,
+ "ty": 26,
+ "x": 0,
+ "y": 26
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 14,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu description."
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:dd16ffab542d022b9a2d78275ed222c2cb4646b4,3017:75"
+ }
+ },
+ {
+ "id": "I1:1330;9762:727",
+ "name": "Menu Item",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;83:33611",
+ "parentName": "Menu Section",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:727;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;9762:727",
+ "parentName": "Menu Item"
+ },
+ {
+ "id": "I1:1330;9762:727;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;9762:727",
+ "parentName": "Menu Item"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 285,
+ "height": 70,
+ "tx": 0,
+ "ty": 70,
+ "x": 0,
+ "y": 70
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 12,
+ "counterAxisSpacing": 12,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 16,
+ "paddingRight": 16,
+ "paddingTop": 12,
+ "paddingBottom": 12,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 12
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "State": "Default"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;9762:746",
+ "name": "Star",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;9762:727",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:727;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;9762:727;9762:746",
+ "parentName": "Star"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 1,
+ "g": 1,
+ "b": 1
+ },
+ "visible": false,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 20,
+ "height": 20,
+ "tx": 16,
+ "ty": 12,
+ "x": 16,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "NONE",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "MIN",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 1.666666865348816,
+ "paddingRight": 1.666667103767395,
+ "paddingTop": 1.666666865348816,
+ "paddingBottom": 2.483332633972168,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "CENTER",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": true,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": {
+ "Size": "20"
+ }
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;9762:727;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;321:1231",
+ "name": "Body",
+ "type": "FRAME",
+ "parentID": "I1:1330;9762:727",
+ "parentName": "Menu Item",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:727;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;9762:727;321:1231",
+ "parentName": "Body"
+ },
+ {
+ "id": "I1:1330;9762:727;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:727;321:1231",
+ "parentName": "Body"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 46,
+ "tx": 48,
+ "ty": 12,
+ "x": 48,
+ "y": 12
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "VERTICAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "FIXED",
+ "primaryAxisAlignItems": "MIN",
+ "counterAxisAlignItems": "MIN",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;321:1232",
+ "name": "Row",
+ "type": "FRAME",
+ "parentID": "I1:1330;9762:727;321:1231",
+ "parentName": "Body",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:727;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:727;321:1232",
+ "parentName": "Row"
+ },
+ {
+ "id": "I1:1330;9762:727;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;9762:727;321:1232",
+ "parentName": "Row"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_FrameNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 4,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "FIXED",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "SPACE_BETWEEN",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 4
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;321:1233",
+ "name": "Label",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:727;321:1232",
+ "parentName": "Row",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 193,
+ "height": 22,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 1,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu Label"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:cebee1b62ea594fa8f97b0b247fd163730736f2a,716:123"
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;321:1234",
+ "name": "Menu Shortcut",
+ "type": "INSTANCE",
+ "parentID": "I1:1330;9762:727;321:1232",
+ "parentName": "Row",
+ "childrenNames": [
+ {
+ "id": "I1:1330;9762:727;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:727;321:1234",
+ "parentName": "Menu Shortcut"
+ }
+ ],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_InstanceNode": {
+ "defaultFrameMixin": {
+ "baseFrameMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "cornerMixin": {
+ "cornerRadius": 8
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 8,
+ "topRightRadius": 8,
+ "bottomLeftRadius": 8,
+ "bottomRightRadius": 8
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 193,
+ "ty": 3,
+ "x": 193,
+ "y": 3
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "layoutWrap": "NO_WRAP",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "counterAxisAlignContent": "AUTO",
+ "itemSpacing": 0,
+ "counterAxisSpacing": 0,
+ "itemReverseZIndex": false,
+ "strokesIncludedInLayout": false
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "inferredAutoLayout": {
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "autoLayoutMixin": {
+ "layoutMode": "HORIZONTAL",
+ "paddingLeft": 0,
+ "paddingRight": 0,
+ "paddingTop": 0,
+ "paddingBottom": 0,
+ "primaryAxisSizingMode": "AUTO",
+ "counterAxisSizingMode": "AUTO",
+ "primaryAxisAlignItems": "MAX",
+ "counterAxisAlignItems": "CENTER",
+ "itemSpacing": 0
+ }
+ },
+ "layoutGrids": [],
+ "gridStyleId": "",
+ "clipsContent": false,
+ "guides": []
+ }
+ },
+ "variantMixin": {
+ "variantProperties": null
+ },
+ "button": false
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;321:1234;321:1466",
+ "name": "⇧A",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:727;321:1234",
+ "parentName": "Menu Shortcut",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 28,
+ "height": 16,
+ "tx": 0,
+ "ty": 0,
+ "x": 0,
+ "y": 0
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 16,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 100,
+ "unit": "PERCENT"
+ },
+ "characters": "⇧A"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "WIDTH_AND_HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": true,
+ "textStyleId": "S:cd8fb7890d02bb365020e6d4d9dc37dd932bbf3b,715:129"
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;321:1235",
+ "name": "Description",
+ "type": "TEXT",
+ "parentID": "I1:1330;9762:727;321:1231",
+ "parentName": "Body",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": false
+ },
+ "nodeParameters_TextNode": {
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.4588235318660736,
+ "g": 0.4588235318660736,
+ "b": 0.4588235318660736
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 221,
+ "height": 20,
+ "tx": 0,
+ "ty": 26,
+ "x": 0,
+ "y": 26
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "nonResizableTextMixin": {
+ "paragraphIndent": 0,
+ "listSpacing": 0,
+ "hangingPunctuation": false,
+ "hangingList": false,
+ "fontSize": 14,
+ "fontName": {
+ "family": "Inter",
+ "style": "Regular"
+ },
+ "fontWeight": 400,
+ "textCase": "ORIGINAL",
+ "textDecoration": "NONE",
+ "textDecorationStyle": null,
+ "letterSpacing": {
+ "value": 0,
+ "unit": "PERCENT"
+ },
+ "lineHeight": {
+ "value": 139.9999976158142,
+ "unit": "PERCENT"
+ },
+ "characters": "Menu description."
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ },
+ "textAlignHorizontal": "LEFT",
+ "textAlignVertical": "TOP",
+ "textAutoResize": "HEIGHT",
+ "textTruncation": "DISABLED",
+ "maxLines": null,
+ "autoRename": false,
+ "textStyleId": "S:dd16ffab542d022b9a2d78275ed222c2cb4646b4,3017:75"
+ }
+ }
+ ],
+ "visualNode": [
+ {
+ "id": "1:4",
+ "name": "logo_all 1",
+ "type": "RECTANGLE",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 412.69921875,
+ "height": 117,
+ "tx": 1423,
+ "ty": 894,
+ "x": 1423,
+ "y": 894
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MAX",
+ "vertical": "MAX"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 1806,
+ "y": 512
+ }
+ }
+ }
+ },
+ {
+ "id": "1:2838",
+ "name": "bamboo-shoots-7181496_1280 1",
+ "type": "RECTANGLE",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 745,
+ "height": 496,
+ "tx": 734,
+ "ty": 114,
+ "x": 734,
+ "y": 114
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 60
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 60,
+ "topRightRadius": 60,
+ "bottomLeftRadius": 60,
+ "bottomRightRadius": 60
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": {
+ "x": 1280,
+ "y": 852
+ }
+ }
+ }
+ },
+ {
+ "id": "4:240",
+ "name": "Group 1",
+ "type": "GROUP",
+ "parentID": "1:3",
+ "parentName": "Section 1",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true
+ },
+ "nodeParameters_GroupNode": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 828,
+ "height": 460,
+ "tx": 886,
+ "ty": 434,
+ "x": 886,
+ "y": 434
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:722;9762:732",
+ "name": "Rule",
+ "type": "RECTANGLE",
+ "parentID": "I1:1330;9762:722",
+ "parentName": "Menu Separator",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 253,
+ "height": 1,
+ "tx": 16,
+ "ty": 8,
+ "x": 16,
+ "y": 8
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33578;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33578;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33579;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33579;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;83:33580;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;83:33580;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:724;9762:732",
+ "name": "Rule",
+ "type": "RECTANGLE",
+ "parentID": "I1:1330;9762:724",
+ "parentName": "Menu Separator",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {
+ "fills": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.8509804010391235,
+ "g": 0.8509804010391235,
+ "b": 0.8509804010391235
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ]
+ },
+ "minimalStrokesMixin": {},
+ "strokeCap": "NONE",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 253,
+ "height": 1,
+ "tx": 16,
+ "ty": 8,
+ "x": 16,
+ "y": 8
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "STRETCH",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "MIN",
+ "vertical": "MIN"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "rectangleCornerMixin": {
+ "topLeftRadius": 0,
+ "topRightRadius": 0,
+ "bottomLeftRadius": 0,
+ "bottomRightRadius": 0
+ },
+ "individualStrokesMixin": {
+ "strokeTopWeight": 1,
+ "strokeBottomWeight": 1,
+ "strokeLeftWeight": 1,
+ "strokeRightWeight": 1
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:726;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;9762:726;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ },
+ {
+ "id": "I1:1330;9762:727;9762:746;7758:12316",
+ "name": "Icon",
+ "type": "VECTOR",
+ "parentID": "I1:1330;9762:727;9762:746",
+ "parentName": "Star",
+ "childrenNames": [],
+ "nodeParameters_VisualNode": {
+ "isVisualNode": true,
+ "defaultShapeMixin": {
+ "sceneNodeMixin": {
+ "visible": true,
+ "locked": false
+ },
+ "blendMixin": {
+ "minimalBlendMixin": {
+ "opacity": 1,
+ "blendMode": "PASS_THROUGH"
+ },
+ "isMask": false
+ },
+ "geometryMixin": {
+ "minimalFillsMixin": {},
+ "minimalStrokesMixin": {
+ "stroke": {
+ "strokes": [
+ {
+ "type": "SOLID",
+ "indexInFigma": 0,
+ "color": {
+ "r": 0.11764705926179886,
+ "g": 0.11764705926179886,
+ "b": 0.11764705926179886
+ },
+ "visible": true,
+ "opacity": 1
+ }
+ ],
+ "strokeWeight": 2,
+ "strokeAlign": "CENTER",
+ "strokeJoin": "ROUND"
+ }
+ },
+ "strokeCap": "ROUND",
+ "strokeMiterLimit": 4
+ },
+ "layoutMixin": {
+ "dimensionAndPositionMixin": {
+ "width": 16.66666603088379,
+ "height": 15.850000381469727,
+ "tx": 1.666666865348816,
+ "ty": 1.666666865348816,
+ "x": 1.666666865348816,
+ "y": 1.666666865348816
+ },
+ "autoLayoutChildrenMixin": {
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ },
+ "rotation": 0,
+ "layoutAlign": "INHERIT",
+ "layoutGrow": 0,
+ "layoutPositioning": "AUTO"
+ }
+ },
+ "constraintMixin": {
+ "horizontal": "SCALE",
+ "vertical": "SCALE"
+ },
+ "cornerMixin": {
+ "cornerRadius": 0
+ },
+ "aspectRatioLockMixin": {
+ "targetAspectRatio": null
+ }
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/Section_1.json.meta b/Assets/UXImporterUnityUiToolKit/Samples~/Section_1.json.meta
new file mode 100644
index 00000000..bf73cdd1
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/Section_1.json.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 9144bda9da4042e46b218021a2cb1fc6
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/Section_1.json
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images.meta
new file mode 100644
index 00000000..90a64b82
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0c31d5a1c107d84449b8cdf9df232c74
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/1_2838.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/1_2838.png
new file mode 100644
index 00000000..989195cf
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/1_2838.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/1_2838.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/1_2838.png.meta
new file mode 100644
index 00000000..4dd82a42
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/1_2838.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: 73df4b0258a57fb4b855b1c40d10f007
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 8296603484774243167
+ second: 1_2838_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: 1_2838_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 745
+ height: 496
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: f5b9c3089e4732370800000000000000
+ internalID: 8296603484774243167
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ 1_2838_0: 8296603484774243167
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/1_2838.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/1_4.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/1_4.png
new file mode 100644
index 00000000..38822ee3
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/1_4.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/1_4.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/1_4.png.meta
new file mode 100644
index 00000000..35ffd9a4
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/1_4.png.meta
@@ -0,0 +1,566 @@
+fileFormatVersion: 2
+guid: 07a2ddb3d22d81941933030cb6104e84
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 8701536793483841217
+ second: 1_4_0
+ - first:
+ 213: 4028147025107103418
+ second: 1_4_1
+ - first:
+ 213: 1696690814626827625
+ second: 1_4_2
+ - first:
+ 213: -9177709588812855905
+ second: 1_4_3
+ - first:
+ 213: -4406997876285760549
+ second: 1_4_4
+ - first:
+ 213: 769531209855814171
+ second: 1_4_5
+ - first:
+ 213: 1721244276369096483
+ second: 1_4_6
+ - first:
+ 213: -764220898350697420
+ second: 1_4_7
+ - first:
+ 213: -1995208836754739062
+ second: 1_4_8
+ - first:
+ 213: -919976197542032215
+ second: 1_4_9
+ - first:
+ 213: -2493183070980483332
+ second: 1_4_10
+ - first:
+ 213: 3001159265717173800
+ second: 1_4_11
+ - first:
+ 213: 8503814912390575643
+ second: 1_4_12
+ - first:
+ 213: 4375764953586769622
+ second: 1_4_13
+ - first:
+ 213: -5658511782964457158
+ second: 1_4_14
+ - first:
+ 213: 7118892559982389784
+ second: 1_4_15
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: 1_4_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 102
+ height: 117
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 1ce88976c9112c870800000000000000
+ internalID: 8701536793483841217
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_1
+ rect:
+ serializedVersion: 2
+ x: 120
+ y: 45
+ width: 33
+ height: 44
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: abe2e86906ad6e730800000000000000
+ internalID: 4028147025107103418
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_2
+ rect:
+ serializedVersion: 2
+ x: 240
+ y: 44
+ width: 33
+ height: 45
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 96d00837e4bdb8710800000000000000
+ internalID: 1696690814626827625
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_3
+ rect:
+ serializedVersion: 2
+ x: 342
+ y: 45
+ width: 34
+ height: 44
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: f950d1b21c932a080800000000000000
+ internalID: -9177709588812855905
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_4
+ rect:
+ serializedVersion: 2
+ x: 363
+ y: 85
+ width: 28
+ height: 25
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: bdb1612e7c237d2c0800000000000000
+ internalID: -4406997876285760549
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_5
+ rect:
+ serializedVersion: 2
+ x: 154
+ y: 45
+ width: 30
+ height: 33
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: b1a4807ee8cedaa00800000000000000
+ internalID: 769531209855814171
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_6
+ rect:
+ serializedVersion: 2
+ x: 189
+ y: 46
+ width: 48
+ height: 32
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 32f77a0cc8613e710800000000000000
+ internalID: 1721244276369096483
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_7
+ rect:
+ serializedVersion: 2
+ x: 276
+ y: 45
+ width: 28
+ height: 33
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 43470e75421f465f0800000000000000
+ internalID: -764220898350697420
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_8
+ rect:
+ serializedVersion: 2
+ x: 307
+ y: 44
+ width: 31
+ height: 35
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: a80738052289f44e0800000000000000
+ internalID: -1995208836754739062
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_9
+ rect:
+ serializedVersion: 2
+ x: 379
+ y: 34
+ width: 34
+ height: 47
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 9ac41b7c5869b33f0800000000000000
+ internalID: -919976197542032215
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_10
+ rect:
+ serializedVersion: 2
+ x: 228
+ y: 22
+ width: 10
+ height: 14
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: cf6d036d43f666dd0800000000000000
+ internalID: -2493183070980483332
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_11
+ rect:
+ serializedVersion: 2
+ x: 239
+ y: 22
+ width: 11
+ height: 14
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 82eb17b837246a920800000000000000
+ internalID: 3001159265717173800
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_12
+ rect:
+ serializedVersion: 2
+ x: 252
+ y: 22
+ width: 12
+ height: 14
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: b16b5b09b9e930670800000000000000
+ internalID: 8503814912390575643
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_13
+ rect:
+ serializedVersion: 2
+ x: 267
+ y: 22
+ width: 13
+ height: 14
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 6de942f9a07d9bc30800000000000000
+ internalID: 4375764953586769622
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_14
+ rect:
+ serializedVersion: 2
+ x: 281
+ y: 22
+ width: 6
+ height: 14
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: a319a03738de871b0800000000000000
+ internalID: -5658511782964457158
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: 1_4_15
+ rect:
+ serializedVersion: 2
+ x: 289
+ y: 21
+ width: 14
+ height: 15
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 81aebe7d0136bc260800000000000000
+ internalID: 7118892559982389784
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ 1_4_0: 8701536793483841217
+ 1_4_1: 4028147025107103418
+ 1_4_10: -2493183070980483332
+ 1_4_11: 3001159265717173800
+ 1_4_12: 8503814912390575643
+ 1_4_13: 4375764953586769622
+ 1_4_14: -5658511782964457158
+ 1_4_15: 7118892559982389784
+ 1_4_2: 1696690814626827625
+ 1_4_3: -9177709588812855905
+ 1_4_4: -4406997876285760549
+ 1_4_5: 769531209855814171
+ 1_4_6: 1721244276369096483
+ 1_4_7: -764220898350697420
+ 1_4_8: -1995208836754739062
+ 1_4_9: -919976197542032215
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/1_4.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/4_240.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/4_240.png
new file mode 100644
index 00000000..3fc28a90
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/4_240.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/4_240.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/4_240.png.meta
new file mode 100644
index 00000000..e3686acc
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/4_240.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: 726af7a59cc5da648b0c0a2e9400116a
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 484115968324611160
+ second: 4_240_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: 4_240_0
+ rect:
+ serializedVersion: 2
+ x: 37
+ y: 0
+ width: 764
+ height: 460
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 85c251288ece7b600800000000000000
+ internalID: 484115968324611160
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ 4_240_0: 484115968324611160
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/4_240.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33578__9762_746__7758_12316.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33578__9762_746__7758_12316.png
new file mode 100644
index 00000000..d0682dbd
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33578__9762_746__7758_12316.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33578__9762_746__7758_12316.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33578__9762_746__7758_12316.png.meta
new file mode 100644
index 00000000..8d4694bf
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33578__9762_746__7758_12316.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: 09b8e72e7c2b7f04796fb6dea00d3356
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 704234606320403687
+ second: I1_1330__83_33578__9762_746__7758_12316_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: I1_1330__83_33578__9762_746__7758_12316_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 19
+ height: 18
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 7e4c34ca4a1f5c900800000000000000
+ internalID: 704234606320403687
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ I1_1330__83_33578__9762_746__7758_12316_0: 704234606320403687
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33578__9762_746__7758_12316.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33579__9762_746__7758_12316.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33579__9762_746__7758_12316.png
new file mode 100644
index 00000000..d0682dbd
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33579__9762_746__7758_12316.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33579__9762_746__7758_12316.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33579__9762_746__7758_12316.png.meta
new file mode 100644
index 00000000..2171075b
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33579__9762_746__7758_12316.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: 271ce3adde56b234e86c262cd7e2aed0
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -3760533499996953978
+ second: I1_1330__83_33579__9762_746__7758_12316_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: I1_1330__83_33579__9762_746__7758_12316_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 19
+ height: 18
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 682a9b6b4b6efcbc0800000000000000
+ internalID: -3760533499996953978
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ I1_1330__83_33579__9762_746__7758_12316_0: -3760533499996953978
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33579__9762_746__7758_12316.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33580__9762_746__7758_12316.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33580__9762_746__7758_12316.png
new file mode 100644
index 00000000..d0682dbd
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33580__9762_746__7758_12316.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33580__9762_746__7758_12316.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33580__9762_746__7758_12316.png.meta
new file mode 100644
index 00000000..44b17821
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33580__9762_746__7758_12316.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: 8b7299ebe46957f409013901e5c7a85e
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 2947235425828576907
+ second: I1_1330__83_33580__9762_746__7758_12316_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: I1_1330__83_33580__9762_746__7758_12316_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 19
+ height: 18
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: b8e95f1310fa6e820800000000000000
+ internalID: 2947235425828576907
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ I1_1330__83_33580__9762_746__7758_12316_0: 2947235425828576907
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__83_33580__9762_746__7758_12316.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_722__9762_732.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_722__9762_732.png
new file mode 100644
index 00000000..53b10f0e
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_722__9762_732.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_722__9762_732.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_722__9762_732.png.meta
new file mode 100644
index 00000000..19d86a9c
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_722__9762_732.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: 05a53a2351583654d8950b6b0c27e910
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 4274827260775113426
+ second: I1_1330__9762_722__9762_732_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: I1_1330__9762_722__9762_732_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 253
+ height: 1
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 2d228a2aebc335b30800000000000000
+ internalID: 4274827260775113426
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ I1_1330__9762_722__9762_732_0: 4274827260775113426
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_722__9762_732.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_724__9762_732.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_724__9762_732.png
new file mode 100644
index 00000000..53b10f0e
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_724__9762_732.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_724__9762_732.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_724__9762_732.png.meta
new file mode 100644
index 00000000..d10b8217
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_724__9762_732.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: 82eb76f6bec1e0440a1b8e30f261a7e2
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -3417417015144878424
+ second: I1_1330__9762_724__9762_732_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: I1_1330__9762_724__9762_732_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 253
+ height: 1
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 8aee9eab455e290d0800000000000000
+ internalID: -3417417015144878424
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ I1_1330__9762_724__9762_732_0: -3417417015144878424
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_724__9762_732.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_726__9762_746__7758_12316.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_726__9762_746__7758_12316.png
new file mode 100644
index 00000000..d0682dbd
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_726__9762_746__7758_12316.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_726__9762_746__7758_12316.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_726__9762_746__7758_12316.png.meta
new file mode 100644
index 00000000..7ac3db10
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_726__9762_746__7758_12316.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: c235b3f6e154e6747a1a0759aea9dc1d
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -3182997598918515724
+ second: I1_1330__9762_726__9762_746__7758_12316_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: I1_1330__9762_726__9762_746__7758_12316_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 19
+ height: 18
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 4f36a8b4c88b3d3d0800000000000000
+ internalID: -3182997598918515724
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ I1_1330__9762_726__9762_746__7758_12316_0: -3182997598918515724
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_726__9762_746__7758_12316.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_727__9762_746__7758_12316.png b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_727__9762_746__7758_12316.png
new file mode 100644
index 00000000..d0682dbd
Binary files /dev/null and b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_727__9762_746__7758_12316.png differ
diff --git a/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_727__9762_746__7758_12316.png.meta b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_727__9762_746__7758_12316.png.meta
new file mode 100644
index 00000000..bca93ba5
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_727__9762_746__7758_12316.png.meta
@@ -0,0 +1,176 @@
+fileFormatVersion: 2
+guid: 23e35d2cae0fb9343969156ae3486fee
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -7639577035823877502
+ second: I1_1330__9762_727__9762_746__7758_12316_0
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites:
+ - serializedVersion: 2
+ name: I1_1330__9762_727__9762_746__7758_12316_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 19
+ height: 18
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 2827c718925caf590800000000000000
+ internalID: -7639577035823877502
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ I1_1330__9762_727__9762_746__7758_12316_0: -7639577035823877502
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Samples~/images/I1_1330__9762_727__9762_746__7758_12316.png
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/Third Party Notices.md b/Assets/UXImporterUnityUiToolKit/Third Party Notices.md
new file mode 100644
index 00000000..539e9883
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Third Party Notices.md
@@ -0,0 +1,17 @@
+This package contains third-party software components governed by the license(s) indicated below:
+
+---
+
+Component(s): Newtonsoft.Json, JsonDiffPatch.NET
+License: MIT License
+
+MIT License Text:
+
+Copyright (c) 2007 James Newton-King (for Newtonsoft.Json)
+Copyright (c) 2016 William Bishop (for JsonDiffPatch.NET)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Assets/UXImporterUnityUiToolKit/Third Party Notices.md.meta b/Assets/UXImporterUnityUiToolKit/Third Party Notices.md.meta
new file mode 100644
index 00000000..5a54bbb0
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/Third Party Notices.md.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 0c7110fc190671e48967d4a9ee98e397
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/Third Party Notices.md
+ uploadId: 840350
diff --git a/Assets/UXImporterUnityUiToolKit/package.json b/Assets/UXImporterUnityUiToolKit/package.json
new file mode 100644
index 00000000..b79291af
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "app.bamboo-up.uximporterforuitoolkit",
+ "version": "0.1.6",
+ "displayName": "UX Importer for UI Toolkit",
+ "description": "Import UX into the Unity UI Toolkit to establish your UI development starting point. Directly loading exported JSON design data streamlines the manual UI construction process.",
+ "unity": "6000.2",
+ "unityRelease": "7f1",
+ "dependencies": {
+ "com.unity.localization": "1.5.8",
+ "com.unity.addressables": "2.7.3"
+ },
+ "keywords": [
+ "UI Toolkit",
+ "Unity",
+ "Editor",
+ "UX",
+ "Importer",
+ "Design",
+ "Workflow"
+ ],
+ "author": {
+ "name": "BambooUp studio",
+ "email": "support@bamboo-up.app",
+ "url": "https://bamboo-up.app/"
+ },
+ "documentationUrl": "https://bamboo-up.app/"
+}
\ No newline at end of file
diff --git a/Assets/UXImporterUnityUiToolKit/package.json.meta b/Assets/UXImporterUnityUiToolKit/package.json.meta
new file mode 100644
index 00000000..d2e09c19
--- /dev/null
+++ b/Assets/UXImporterUnityUiToolKit/package.json.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 38dddf94641f3ca4bab21ebe510b4be7
+PackageManifestImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 337438
+ packageName: UX Importer for UI Toolkit
+ packageVersion: 0.1.6
+ assetPath: Assets/UXImporterUnityUiToolKit/package.json
+ uploadId: 840350
diff --git a/Packages/app.rive.rive-unity/Demo.meta b/Packages/app.rive.rive-unity/Demo.meta
new file mode 100644
index 00000000..4381f4ec
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Demo.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 34c8d14f407404c2780aed613bcf201b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/app.rive.rive-unity/Demo/RiveFiles.meta b/Packages/app.rive.rive-unity/Demo/RiveFiles.meta
new file mode 100644
index 00000000..7dc42553
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Demo/RiveFiles.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f0a21ae66d8a641dcb38c6131b9158a4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/app.rive.rive-unity/Demo/RiveFiles/quick_start_health_bar.riv b/Packages/app.rive.rive-unity/Demo/RiveFiles/quick_start_health_bar.riv
new file mode 100644
index 00000000..4eecefdd
Binary files /dev/null and b/Packages/app.rive.rive-unity/Demo/RiveFiles/quick_start_health_bar.riv differ
diff --git a/Packages/app.rive.rive-unity/Demo/RiveFiles/quick_start_health_bar.riv.meta b/Packages/app.rive.rive-unity/Demo/RiveFiles/quick_start_health_bar.riv.meta
new file mode 100644
index 00000000..7ef8ab1a
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Demo/RiveFiles/quick_start_health_bar.riv.meta
@@ -0,0 +1,17 @@
+fileFormatVersion: 2
+guid: 0232d39243ce848a8bc545f81d0bef78
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 043c4b240e8f94f828b8b81fa436f7f0, type: 3}
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Demo/RiveFiles/quick_start_health_bar.riv
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor.meta b/Packages/app.rive.rive-unity/Editor.meta
new file mode 100644
index 00000000..e793805d
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 90a80d7fd4f5a41eda0b319cbf0dd947
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/app.rive.rive-unity/Editor/AssetEditor.cs b/Packages/app.rive.rive-unity/Editor/AssetEditor.cs
new file mode 100644
index 00000000..ffd275f4
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/AssetEditor.cs
@@ -0,0 +1,632 @@
+using UnityEngine;
+using UnityEngine.Rendering;
+using UnityEditor;
+using UnityEngine.UIElements;
+using UnityEditor.UIElements;
+using System.Linq;
+using Rive.EditorTools;
+using System;
+
+namespace Rive
+{
+ [CustomEditor(typeof(Asset))]
+ public class AssetEditor : Editor
+ {
+ File m_file;
+ private Artboard m_artboard;
+ private StateMachine m_stateMachine;
+ private double m_lastTime = 0.0;
+ public override bool HasPreviewGUI() => true;
+
+ public override bool RequiresConstantRepaint()
+ {
+ return true;
+ }
+
+ private enum AssetReferenceType
+ {
+ Embedded = 0,
+ Referenced = 1
+ }
+
+
+
+ public override VisualElement CreateInspectorGUI()
+ {
+ var root = new VisualElement();
+ var riveAsset = (Asset)target;
+
+ // File Assets Section
+ var embeddedFoldout = new Foldout { text = "File Assets", value = false };
+ root.Add(embeddedFoldout);
+
+ foreach (var embeddedAsset in riveAsset.EmbeddedAssets)
+ {
+ var assetContainer = new VisualElement();
+ assetContainer.style.paddingBottom = 30;
+
+ embeddedFoldout.Add(assetContainer);
+
+ // Asset Type
+ var enumField = new EnumField("Type:", embeddedAsset.AssetType);
+ enumField.SetEnabled(false);
+ assetContainer.Add(enumField);
+
+ // Asset Name
+ var nameField = new TextField("Name:") { value = embeddedAsset.Name };
+ // For text fields, make them readonly instead of using SetEnabled(false) to allow for copying the text
+ StyleAsReadonly(nameField);
+ nameField.isReadOnly = true;
+ assetContainer.Add(nameField);
+
+ // Asset ID
+ var idField = new TextField("ID:") { value = embeddedAsset.Id.ToString() };
+ StyleAsReadonly(idField);
+ idField.isReadOnly = true;
+ assetContainer.Add(idField);
+
+ // Asset Reference Type
+ var referenceType = embeddedAsset.InBandBytesSize > 0 ? AssetReferenceType.Embedded : AssetReferenceType.Referenced;
+ var referenceTypeField = new EnumField("Reference Type:", referenceType);
+ referenceTypeField.SetEnabled(false);
+ assetContainer.Add(referenceTypeField);
+
+ // Asset Data
+ if (referenceType == AssetReferenceType.Embedded)
+ {
+ var embeddedField = new TextField("Embedded Size:")
+ {
+ value = FormatBytes(embeddedAsset.InBandBytesSize),
+ tooltip = "The size of the asset data embedded in the Rive file."
+ };
+ StyleAsReadonly(embeddedField);
+ embeddedField.isReadOnly = true;
+ assetContainer.Add(embeddedField);
+ }
+ else
+ {
+ var assetField = new ObjectField("Referenced Asset")
+ {
+ objectType = GetAssetType(embeddedAsset.AssetType),
+ value = embeddedAsset.OutOfBandAsset,
+ };
+
+ // Allow referenced assets to be updated in the editor
+ assetField.RegisterValueChangedCallback(evt =>
+ {
+
+ var newValue = evt.newValue as OutOfBandAsset;
+
+ Asset asset = target as Asset;
+
+ if (asset == null)
+ {
+ return;
+ }
+
+ Undo.RecordObject(this, "Updated Referenced Asset");
+
+ AssetImporter.SetOobAssetReference((Asset)target, embeddedAsset.Id, newValue);
+
+ });
+ assetContainer.Add(assetField);
+ }
+ }
+
+
+ // Artboard Metadata
+ if (riveAsset.EditorOnlyMetadata != null && riveAsset.EditorOnlyMetadata.Artboards.Count > 0)
+ {
+ var contentsFoldout = new Foldout { text = "Artboard Metadata", value = false };
+ root.Add(contentsFoldout);
+
+ for (int i = 0; i < riveAsset.EditorOnlyMetadata.Artboards.Count; i++)
+ {
+ bool isDefaultArtboard = i == 0;
+ var artboard = riveAsset.EditorOnlyMetadata.Artboards[i];
+
+ // Create a foldout for each artboard
+ string artboardLabel = artboard.Name + (isDefaultArtboard ? " (Default)" : "");
+ var artboardFoldout = new Foldout { text = artboardLabel, value = false };
+ artboardFoldout.style.paddingLeft = 8;
+ artboardFoldout.style.paddingRight = 8;
+ contentsFoldout.Add(artboardFoldout);
+
+ var artboardContainer = new VisualElement();
+ artboardFoldout.Add(artboardContainer);
+
+
+ AddCopyToClipboardMenu(artboardFoldout, artboard.Name, "Copy Artboard Name");
+
+
+ // Artboard Size
+ var sizeContainer = new VisualElement();
+ sizeContainer.style.flexDirection = FlexDirection.Row;
+ sizeContainer.style.marginLeft = 15;
+ sizeContainer.style.marginTop = 5;
+ artboardContainer.Add(sizeContainer);
+
+ var sizeLabel = new Label("Size:");
+ sizeLabel.style.marginRight = 8;
+ sizeContainer.Add(sizeLabel);
+
+ var sizeValueLabel = new Label($"{artboard.Width} x {artboard.Height}");
+ sizeContainer.Add(sizeValueLabel);
+
+
+
+ // State Machines Container
+ var stateMachinesContainer = new VisualElement();
+ stateMachinesContainer.style.marginLeft = 15;
+ stateMachinesContainer.style.marginTop = 10;
+ artboardContainer.Add(stateMachinesContainer);
+
+ foreach (var stateMachine in artboard.StateMachines)
+ {
+ var smContainer = new VisualElement();
+ smContainer.style.marginBottom = 10;
+
+ // State Machine Header
+ var smHeader = new VisualElement();
+ smHeader.style.flexDirection = FlexDirection.Row;
+ smHeader.style.alignItems = Align.Center;
+ smContainer.Add(smHeader);
+
+ var smLabel = new Label("State Machine:");
+ smLabel.style.marginRight = 8;
+ smHeader.Add(smLabel);
+
+ var smNameField = new TextField();
+ smNameField.value = stateMachine.Name;
+ StyleAsReadonly(smNameField);
+ smNameField.isReadOnly = true;
+ smNameField.SetEnabled(true);
+ smNameField.style.flexGrow = 1;
+ smHeader.Add(smNameField);
+
+ // Inputs
+ if (stateMachine.Inputs.Count > 0)
+ {
+ var inputsContainer = new VisualElement();
+ inputsContainer.style.marginLeft = 15;
+ inputsContainer.style.marginTop = 5;
+ smContainer.Add(inputsContainer);
+
+ var inputsLabel = new Label("Inputs:");
+ inputsLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
+ inputsLabel.style.marginBottom = 5;
+ inputsContainer.Add(inputsLabel);
+
+ foreach (var input in stateMachine.Inputs)
+ {
+ var inputContainer = new VisualElement();
+ inputContainer.style.flexDirection = FlexDirection.Row;
+ inputContainer.style.alignItems = Align.Center;
+ inputContainer.style.marginBottom = 2;
+
+ var typeLabel = new Label(input.Type);
+ typeLabel.style.marginRight = 8;
+ typeLabel.style.width = 60;
+
+ var nameField = new TextField();
+ nameField.value = input.Name;
+ StyleAsReadonly(nameField);
+ nameField.isReadOnly = true;
+ nameField.SetEnabled(true);
+ nameField.style.flexGrow = 1;
+
+ inputContainer.Add(typeLabel);
+ inputContainer.Add(nameField);
+ inputsContainer.Add(inputContainer);
+ }
+ }
+
+ stateMachinesContainer.Add(smContainer);
+ }
+
+ if (artboard.DefaultViewModel != null && !String.IsNullOrEmpty(artboard.DefaultViewModel.Name))
+ {
+ var defaultVMContainer = new VisualElement();
+ defaultVMContainer.style.flexDirection = FlexDirection.Row;
+ defaultVMContainer.style.alignItems = Align.Center;
+
+ defaultVMContainer.style.marginLeft = 15;
+ defaultVMContainer.style.marginBottom = 5;
+ artboardContainer.Add(defaultVMContainer);
+
+ var defaultVMLabel = new Label("Default View Model:");
+ defaultVMLabel.style.marginRight = 8;
+ defaultVMContainer.Add(defaultVMLabel);
+
+ var defaultVMNameField = new TextField();
+ defaultVMNameField.value = artboard.DefaultViewModel.Name;
+ StyleAsReadonly(defaultVMNameField);
+ defaultVMNameField.isReadOnly = true;
+ defaultVMNameField.SetEnabled(true);
+ defaultVMNameField.style.flexGrow = 1;
+ defaultVMContainer.Add(defaultVMNameField);
+ }
+ }
+ }
+
+ // View Models Section
+
+ if (riveAsset.EditorOnlyMetadata != null && riveAsset.EditorOnlyMetadata.ViewModels.Count > 0)
+ {
+ var viewModelsFoldout = new Foldout { text = "View Models", value = false };
+
+ root.Add(viewModelsFoldout);
+
+ foreach (var viewModel in riveAsset.EditorOnlyMetadata.ViewModels)
+ {
+ var viewModelFoldout = new Foldout { text = viewModel.Name, value = false };
+ viewModelFoldout.style.paddingLeft = 8;
+ viewModelFoldout.style.paddingRight = 8;
+ viewModelsFoldout.Add(viewModelFoldout);
+ AddCopyToClipboardMenu(viewModelFoldout, viewModel.Name, "Copy View Model Name");
+
+ // Properties
+ if (viewModel.Properties.Count > 0)
+ {
+ var propertiesContainer = new VisualElement();
+ propertiesContainer.style.marginLeft = 15;
+ propertiesContainer.style.marginTop = 5;
+ viewModelFoldout.Add(propertiesContainer);
+
+ var propertiesLabel = new Label("Properties:");
+ propertiesLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
+ propertiesLabel.style.marginBottom = 5;
+ propertiesContainer.Add(propertiesLabel);
+
+ foreach (var property in viewModel.Properties)
+ {
+ var propertyContainer = new VisualElement();
+ propertyContainer.style.flexDirection = FlexDirection.Row;
+ propertyContainer.style.alignItems = Align.Center;
+ propertyContainer.style.marginBottom = 2;
+
+ var typeLabel = new Label(GetViewModelPropertyTypeLabel(property));
+ typeLabel.style.marginRight = 8;
+ typeLabel.style.minWidth = 60;
+
+ var nameField = new TextField();
+ nameField.value = property.Name;
+ StyleAsReadonly(nameField);
+ nameField.isReadOnly = true;
+ nameField.SetEnabled(true);
+ nameField.style.flexGrow = 1;
+
+ propertyContainer.Add(typeLabel);
+ propertyContainer.Add(nameField);
+ propertiesContainer.Add(propertyContainer);
+ }
+ }
+
+ // Instance Names
+ if (viewModel.InstanceNames.Count > 0)
+ {
+ var instancesContainer = new VisualElement();
+ instancesContainer.style.marginLeft = 15;
+ instancesContainer.style.marginTop = 10;
+ instancesContainer.style.marginBottom = 10;
+ viewModelFoldout.Add(instancesContainer);
+
+ var instancesLabel = new Label("Instances:");
+ instancesLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
+ instancesLabel.style.marginBottom = 5;
+ instancesContainer.Add(instancesLabel);
+
+ foreach (var instanceName in viewModel.InstanceNames)
+ {
+ var instanceField = new TextField();
+ instanceField.value = instanceName;
+ StyleAsReadonly(instanceField);
+ instanceField.isReadOnly = true;
+ instanceField.SetEnabled(true);
+ instancesContainer.Add(instanceField);
+ }
+ }
+ }
+ }
+
+
+ // Enums Section
+
+ if (riveAsset.EditorOnlyMetadata.Enums.Count > 0)
+ {
+ var enumsFoldout = new Foldout { text = "Enums", value = false };
+ root.Add(enumsFoldout);
+
+ foreach (var enumData in riveAsset.EditorOnlyMetadata.Enums)
+ {
+ // Create a foldout for each enum type
+ var enumFoldout = new Foldout { text = enumData.Name, value = false };
+ enumFoldout.style.paddingLeft = 8;
+ enumFoldout.style.paddingRight = 8;
+ enumsFoldout.Add(enumFoldout);
+ AddCopyToClipboardMenu(enumFoldout, enumData.Name, "Copy Enum Name");
+
+ // Values
+ var valuesContainer = new VisualElement();
+ valuesContainer.style.marginLeft = 15;
+ valuesContainer.style.marginTop = 5;
+ valuesContainer.style.marginBottom = 10;
+ enumFoldout.Add(valuesContainer);
+
+ var valuesLabel = new Label("Values:");
+ valuesLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
+ valuesLabel.style.marginBottom = 5;
+ valuesContainer.Add(valuesLabel);
+
+ foreach (var value in enumData.Values)
+ {
+ var valueField = new TextField();
+ valueField.value = value;
+ StyleAsReadonly(valueField);
+ valueField.isReadOnly = true;
+ valueField.SetEnabled(true);
+ valuesContainer.Add(valueField);
+ }
+ }
+ }
+
+
+
+ return root;
+ }
+
+
+ private void AddCopyToClipboardMenu(Foldout foldout, string textToCopy, string itemLabel = null)
+ {
+ if (string.IsNullOrEmpty(textToCopy))
+ {
+ return;
+ }
+
+ itemLabel = itemLabel ?? $"Copy \"{foldout.text}\"";
+
+ foldout.AddManipulator(new ContextualMenuManipulator((ContextualMenuPopulateEvent evt) =>
+ {
+ evt.menu.AppendAction(itemLabel, (action) =>
+ {
+ GUIUtility.systemCopyBuffer = textToCopy;
+ });
+ }));
+
+ }
+
+
+
+ private string GetViewModelPropertyTypeLabel(FileMetadata.ViewModelPropertyMetadata property)
+ {
+ // We want to display the type of the property, and if it's a ViewModel type, we also want to display the nested ViewModel name.
+ if (property.Type == ViewModelDataType.ViewModel)
+ {
+ return $"{property.Type.ToString()} ({property.NestedViewModelName})";
+ }
+ else if (property.Type == ViewModelDataType.Enum && !string.IsNullOrEmpty(property.EnumTypeName))
+ {
+ return $"{property.Type.ToString()} ({property.EnumTypeName})";
+ }
+
+ return $"{property.Type.ToString()}";
+ }
+
+ private void StyleAsReadonly(VisualElement element)
+ {
+ element.style.opacity = 0.5f;
+ }
+
+ private System.Type GetAssetType(EmbeddedAssetType assetType)
+ {
+ switch (assetType)
+ {
+ case EmbeddedAssetType.Font:
+ return typeof(FontOutOfBandAsset);
+ case EmbeddedAssetType.Image:
+ return typeof(ImageOutOfBandAsset);
+ case EmbeddedAssetType.Audio:
+ return typeof(AudioOutOfBandAsset);
+ default:
+ return typeof(System.Object);
+ }
+ }
+
+
+ public override Texture2D RenderStaticPreview(
+ string assetPath,
+ UnityEngine.Object[] subAssets,
+ int width,
+ int height
+ )
+ {
+ RenderTexture prev = RenderTexture.active;
+ var rect = new Rect(0, 0, width, height);
+ RenderTexture rt = Render(rect, true);
+
+ if (rt != null)
+ {
+ RenderTexture sourceForRead = rt;
+ RenderTexture temp = null;
+
+ // Static preview: use the runtime decode material (Rive/UI/Default) in Linear color space.
+ // This decodes gamma to linear, which works correctly with ReadPixels→Texture2D path.
+ // We DON'T use the pass-through shader here because the blit+ReadPixels seems to cause issues, and leads to nothing rendering for the static preview.
+ // TODO: Remove this once we have a proper way to display the texture in Linear color space.
+ if (Rive.TextureHelper.ProjectNeedsColorSpaceFix)
+ {
+ var mat = Rive.TextureHelper.GammaToLinearUIMaterial;
+ if (mat != null)
+ {
+ temp = RenderTexture.GetTemporary(rt.width, rt.height, 0, RenderTextureFormat.ARGB32);
+ Graphics.Blit(rt, temp, mat);
+ sourceForRead = temp;
+ }
+ }
+
+ RenderTexture.active = sourceForRead;
+
+ Texture2D tex = new Texture2D(width, height);
+ tex.ReadPixels(rect, 0, 0);
+ tex.Apply(true);
+
+ RenderTexture.active = prev;
+ if (temp != null)
+ {
+ RenderTexture.ReleaseTemporary(temp);
+ }
+ RenderTexture.ReleaseTemporary(rt);
+ return tex;
+ }
+ return null;
+ }
+
+ RenderTexture Render(Rect rect, bool isStatic = false)
+ {
+ int width = (int)rect.width;
+ int height = (int)rect.height;
+
+ var descriptor = Rive.TextureHelper.Descriptor(width, height);
+ RenderTexture rt = RenderTexture.GetTemporary(descriptor);
+
+ var cmb = new CommandBuffer();
+
+ cmb.SetRenderTarget(rt);
+
+ if (m_file == null)
+ {
+ var riveAsset = (Rive.Asset)target;
+ m_file = Rive.File.Load(riveAsset);
+ m_artboard = m_file?.Artboard(0);
+ m_stateMachine = m_artboard?.StateMachine();
+ }
+
+ if (m_artboard != null)
+ {
+ var rq = new RenderQueue(
+ UnityEngine.SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal
+ ? null
+ : rt
+ );
+ var renderer = rq.Renderer();
+ renderer.Align(Fit.Contain, Alignment.Center, m_artboard);
+ renderer.Draw(m_artboard);
+ renderer.AddToCommandBuffer(cmb);
+ if (!isStatic)
+ {
+ var now = EditorApplication.timeSinceStartup;
+ double time = now - m_lastTime;
+ m_stateMachine?.Advance((float)(now - m_lastTime));
+ m_lastTime = now;
+ }
+ else
+ {
+ m_stateMachine?.Advance(0.0f);
+ }
+ }
+ var prev = RenderTexture.active;
+ Graphics.ExecuteCommandBuffer(cmb);
+ GL.InvalidateState();
+ cmb.Clear();
+
+ if (isStatic && FlipY())
+ {
+ RenderTexture temp = RenderTexture.GetTemporary(
+ width,
+ height,
+ 0,
+ RenderTextureFormat.Default,
+ RenderTextureReadWrite.Default
+ );
+ temp.Create();
+
+ Graphics.Blit(rt, temp, new Vector2(1, -1), new Vector2(0, 1));
+ RenderTexture.ReleaseTemporary(rt);
+ rt = temp;
+ }
+
+ // Caller releases the temporary RT
+ return rt;
+ }
+
+ public override void OnPreviewGUI(Rect rect, GUIStyle background)
+ {
+ if (Event.current.type == EventType.Repaint)
+ {
+ RenderTexture rt = Render(rect);
+
+ var drawRect = FlipY()
+ ? new Rect(rect.x, rect.y + rect.height, rect.width, -rect.height)
+ : rect;
+
+ // Live preview: use a simple pass-through shader in Linear color space.
+ // Rive outputs gamma values, and it looks like EditorGUI.DrawPreviewTexture expects sRGB input.
+ // We DON'T use the decode material here because it would decode to linear, causing burnt/dark colors.
+ // The pass-through shader (Hidden/Rive/Editor/SRGBEncodePreview) just returns the texture unchanged.
+ // TODO: Remove this once we have a proper way to display the texture in Linear color space.
+ var mat = (Rive.TextureHelper.ProjectNeedsColorSpaceFix ? GetEncodePreviewMaterial() : null);
+ UnityEditor.EditorGUI.DrawPreviewTexture(drawRect, rt, mat);
+ RenderTexture.ReleaseTemporary(rt);
+ }
+ }
+
+ private static Material s_encodePreviewMaterial;
+ private static Material GetEncodePreviewMaterial()
+ {
+ if (s_encodePreviewMaterial != null) return s_encodePreviewMaterial;
+ var shader = Shader.Find("Hidden/Rive/Editor/SRGBEncodePreview");
+ if (shader == null) return null;
+ s_encodePreviewMaterial = new Material(shader)
+ {
+ name = "Rive_Editor_SRGBEncodePreview",
+ hideFlags = HideFlags.HideAndDontSave
+ };
+ return s_encodePreviewMaterial;
+ }
+
+ private void UnloadPreview()
+ {
+ m_stateMachine = null;
+ m_artboard = null;
+ if (m_file != null)
+ {
+ m_file.Dispose();
+ m_file = null;
+ }
+ }
+
+ public void OnDisable()
+ {
+ var riveAsset = (Rive.Asset)target;
+ UnloadPreview();
+ }
+
+ private static bool FlipY()
+ {
+ switch (UnityEngine.SystemInfo.graphicsDeviceType)
+ {
+ case GraphicsDeviceType.Metal:
+ case GraphicsDeviceType.Vulkan:
+ case GraphicsDeviceType.Direct3D11:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ static string FormatBytes(uint byteCount)
+ {
+ string[] sizes = { "B", "KB", "MB", "GB", "TB" };
+ int order = 0;
+ while (byteCount >= 1024 && order < sizes.Length - 1)
+ {
+ order++;
+ byteCount /= 1024;
+ }
+
+ // Adjust the format string to your preferences. For example "{0:0.#}{1}" would
+ // show a single decimal place, and no space.
+ return string.Format("{0:0.##} {1}", byteCount, sizes[order]);
+ }
+ }
+}
diff --git a/Packages/app.rive.rive-unity/Editor/AssetEditor.cs.meta b/Packages/app.rive.rive-unity/Editor/AssetEditor.cs.meta
new file mode 100644
index 00000000..ba44cbdf
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/AssetEditor.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: c0c0086d5bb044ad3ad1fd3d80d1a5e4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/AssetEditor.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/AssetImporter.cs b/Packages/app.rive.rive-unity/Editor/AssetImporter.cs
new file mode 100644
index 00000000..a6c7a963
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/AssetImporter.cs
@@ -0,0 +1,308 @@
+using UnityEngine;
+using System.Collections.Generic;
+using UnityEditor.AssetImporters;
+using UnityEditor;
+using System;
+using System.Linq;
+using Rive.Utils;
+
+namespace Rive
+{
+ [ScriptedImporter(version: 2, ext: "riv")]
+ public class AssetImporter : ScriptedImporter
+ {
+
+ [System.Serializable]
+ private class OobReferenceData
+ {
+ ///
+ /// ID of the referenced asset in Rive
+ ///
+ public uint assetIdInRiv;
+
+ ///
+ /// GUID of the referenced asset in Unity
+ ///
+ public string assetGuid;
+ }
+
+ [System.Serializable]
+ private class UserDataContainer
+ {
+ ///
+ /// List of stored OOB references to override OutOfBandAsset references on the generated Asset
+ ///
+ public List oobReferences = new List();
+
+
+ ///
+ /// Remove a stored OOB reference from the list
+ ///
+ /// ID of the referenced asset in Rive
+ public void RemoveOobReference(uint assetId)
+ {
+ oobReferences.RemoveAll(r => r.assetIdInRiv == assetId);
+ }
+
+ ///
+ /// Add a new OOB reference to the list
+ ///
+ /// ID of the referenced asset in Rive
+ /// GUID of the referenced asset in Unity
+ public void AddOobReference(uint assetId, string assetGuid)
+ {
+
+ // Remove any existing reference with the same ID
+ RemoveOobReference(assetId);
+
+ oobReferences.Add(new OobReferenceData
+ {
+ assetIdInRiv = assetId,
+ assetGuid = assetGuid
+ });
+ }
+ }
+
+ delegate void Callback();
+
+ void AfterUpdate(Callback call)
+ {
+ void callback()
+ {
+ if (!EditorApplication.isCompiling && !EditorApplication.isUpdating)
+ {
+ call();
+ EditorApplication.update -= callback;
+ }
+ }
+
+ EditorApplication.update += callback;
+ }
+
+ public static string[] fontExtensions = FontOobAssetExtensions.FontExtensions;
+ public static string[] imageExtensions = ImageOobAssetExtensions.ImageExtensions;
+ public static string[] audioExtensions = AudioOobAssetExtensions.AudioExtensions;
+
+ private EmbeddedAssetDataLoader embeddedAssetDataLoader = new EmbeddedAssetDataLoader();
+
+
+
+ public override void OnImportAsset(AssetImportContext ctx)
+ {
+ bool isFirstImport = importSettingsMissing;
+ var assetPath = ctx.assetPath;
+ byte[] bytes = System.IO.File.ReadAllBytes(assetPath);
+
+ // Deserialize stored references from userData
+ // The Asset class is recreated on every import, so changes made to the Asset class will be lost on reimport. To get around this, we store reference information about oob asset overrides in the importer userData to keep them between imports.
+ // This lets us keep track of the custom assets provided by the user. The userData is stored in the meta file.
+ var userDataContainer = string.IsNullOrEmpty(userData)
+ ? new UserDataContainer()
+ : JsonUtility.FromJson(userData);
+
+ int oobAssetCount = 0;
+
+ List assets = new List();
+
+ foreach (var embeddedAsset in embeddedAssetDataLoader.LoadEmbeddedAssetDataFromRiveFileBytes(bytes))
+ {
+ // Check if we have a stored reference
+ var storedReference = userDataContainer.oobReferences
+ .FirstOrDefault(r => r.assetIdInRiv == embeddedAsset.Id);
+
+ // If the asset at the index is not a referenced asset, then we clear the stored reference as we only want to store references to oob assets set to `Referenced`
+ if (embeddedAsset.InBandBytesSize > 0)
+ {
+ userDataContainer.RemoveOobReference(embeddedAsset.Id);
+
+ storedReference = null;
+ }
+
+ if (storedReference != null)
+ {
+ var oobAssetPath = AssetDatabase.GUIDToAssetPath(storedReference.assetGuid);
+ if (!string.IsNullOrEmpty(assetPath))
+ {
+ var referencedAsset = AssetDatabase.LoadAssetAtPath(oobAssetPath);
+ if (referencedAsset != null)
+ {
+ embeddedAsset.OutOfBandAsset = referencedAsset;
+ ctx.DependsOnArtifact(oobAssetPath);
+ }
+ }
+ }
+ else
+ {
+ var basePath = System.IO.Path.GetDirectoryName(assetPath);
+
+ switch (embeddedAsset.AssetType)
+ {
+ case EmbeddedAssetType.Font:
+ HandleAsset(embeddedAsset, basePath, fontExtensions, typeof(FontOutOfBandAsset), ctx, ref oobAssetCount);
+ break;
+ case EmbeddedAssetType.Image:
+ HandleAsset(embeddedAsset, basePath, imageExtensions, typeof(ImageOutOfBandAsset), ctx, ref oobAssetCount);
+ break;
+ case EmbeddedAssetType.Audio:
+ HandleAsset(embeddedAsset, basePath, audioExtensions, typeof(AudioOutOfBandAsset), ctx, ref oobAssetCount);
+ break;
+ }
+ }
+
+ assets.Add(embeddedAsset);
+ }
+
+ var file = Asset.Create(bytes, assets.ToArray());
+
+ ctx.AddObjectToAsset("rive", file);
+
+ if (oobAssetCount != 0 && isFirstImport)
+ {
+ // The file seems to have out of band assets, try to resolve
+ // them. We only do this on first import so the user can go
+ // manually change auto-detected OOB assets to use a different
+ // importer if they want.
+ AfterUpdate(() =>
+ {
+ ImportOutOfBandAssets(assetPath);
+ });
+ }
+ ctx.SetMainObject(file);
+
+ }
+
+ internal static void SetOobAssetReference(Asset targetRiveAsset, uint assetId, OutOfBandAsset oobAsset)
+ {
+ var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(targetRiveAsset)) as AssetImporter;
+
+ if (importer == null)
+ {
+ DebugLogger.Instance.LogError("Could not get AssetImporter for target Rive asset");
+ return;
+ }
+
+ string userDataToApply = importer.userData;
+
+
+ var container = string.IsNullOrEmpty(userDataToApply)
+ ? new UserDataContainer()
+ : JsonUtility.FromJson(userDataToApply);
+
+ container.RemoveOobReference(assetId);
+
+ // If the asset is null, we still want to store the reference as the user might have set it to null on purpose.
+ // If we don't store it, the importer will try to auto-detect a matching asset in the directory on the next import.
+ var path = oobAsset != null ? AssetDatabase.GetAssetPath(oobAsset) : null;
+ var guid = path != null ? AssetDatabase.AssetPathToGUID(path) : null;
+
+ container.AddOobReference(assetId, guid);
+
+ // Clear out any items in the list that are no longer valid (e.g assetIdInRiv is no longer in the file)
+ container.oobReferences.RemoveAll(r => targetRiveAsset.EmbeddedAssets.All(e => e.Id != r.assetIdInRiv));
+
+ userDataToApply = JsonUtility.ToJson(container);
+
+ importer.userData = userDataToApply;
+
+ importer.SaveAndReimport();
+ }
+
+
+ private void HandleAsset(EmbeddedAssetData embeddedAsset, string basePath, string[] extensions, Type assetType, AssetImportContext ctx, ref int oobAssetCount)
+ {
+ // If this is a reimport and the asset already has a valid OutOfBandAsset, keep it
+ if (embeddedAsset.OutOfBandAsset != null)
+ {
+ ctx.DependsOnArtifact(AssetDatabase.GetAssetPath(embeddedAsset.OutOfBandAsset));
+ oobAssetCount++;
+ return;
+ }
+
+ // Only try to auto-detect assets if there isn't one already assigned
+ foreach (var path in AssetPaths(basePath, embeddedAsset.Name, embeddedAsset.Id, extensions))
+ {
+ if (System.IO.File.Exists(path))
+ {
+ oobAssetCount++;
+ ctx.DependsOnArtifact(path);
+ if (!String.IsNullOrEmpty(AssetDatabase.AssetPathToGUID(path)))
+ {
+ var referencedAsset = AssetDatabase.LoadAssetAtPath(path, assetType);
+ if (referencedAsset != null)
+ {
+ embeddedAsset.OutOfBandAsset = referencedAsset as OutOfBandAsset;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+
+ // Pre-import any out of band assets.
+
+ private void ImportOutOfBandAssets(string assetPath)
+ {
+ var bytes = System.IO.File.ReadAllBytes(assetPath);
+ var basePath = System.IO.Path.GetDirectoryName(assetPath);
+
+
+ foreach (var embeddedAsset in embeddedAssetDataLoader.LoadEmbeddedAssetDataFromRiveFileBytes(bytes))
+ {
+
+ switch (embeddedAsset.AssetType)
+ {
+ case EmbeddedAssetType.Font:
+ ImportAssetGeneric(embeddedAsset, basePath, fontExtensions);
+ break;
+ case EmbeddedAssetType.Image:
+ ImportAssetGeneric(embeddedAsset, basePath, imageExtensions);
+ break;
+ case EmbeddedAssetType.Audio:
+ ImportAssetGeneric(embeddedAsset, basePath, audioExtensions);
+ break;
+ }
+ }
+
+
+ }
+
+ private void ImportAssetGeneric(EmbeddedAssetData embeddedAsset, string basePath, string[] extensions) where T : ScriptedImporter
+ {
+ foreach (var path in AssetPaths(basePath, embeddedAsset.Name, embeddedAsset.Id, extensions))
+ {
+ if (System.IO.File.Exists(path) && AssetDatabase.GetImporterOverride(path) == null)
+ {
+ AssetDatabase.SetImporterOverride(path);
+ AssetDatabase.ImportAsset(path);
+ break;
+ }
+ }
+ }
+
+ string[] AssetPaths(string basePath, string name, uint id, string[] extensions)
+ {
+ List paths = new List();
+ foreach (var extension in extensions)
+ {
+ paths.Add(
+ basePath
+ + System.IO.Path.DirectorySeparatorChar
+ + System.IO.Path.GetFileNameWithoutExtension(name)
+ + "-"
+ + id
+ + "."
+ + extension
+ );
+ paths.Add(
+ basePath
+ + System.IO.Path.DirectorySeparatorChar
+ + System.IO.Path.GetFileNameWithoutExtension(name)
+ + "."
+ + extension
+ );
+ }
+ return paths.ToArray();
+ }
+ }
+}
diff --git a/Packages/app.rive.rive-unity/Editor/AssetImporter.cs.meta b/Packages/app.rive.rive-unity/Editor/AssetImporter.cs.meta
new file mode 100644
index 00000000..5bfdd9d0
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/AssetImporter.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 043c4b240e8f94f828b8b81fa436f7f0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {fileID: 2800000, guid: df0df084c4eaa4149a9c988c71b85313, type: 3}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/AssetImporter.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/AudioAssetImporter.cs b/Packages/app.rive.rive-unity/Editor/AudioAssetImporter.cs
new file mode 100644
index 00000000..4d18c1dc
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/AudioAssetImporter.cs
@@ -0,0 +1,28 @@
+using UnityEngine;
+using UnityEditor.AssetImporters;
+
+namespace Rive
+{
+
+ internal static class AudioOobAssetExtensions
+ {
+ public const string WAV = "wav";
+ public const string MP3 = "mp3";
+ public const string FLAC = "flac";
+
+ public static readonly string[] AudioExtensions = new[] { WAV, MP3, FLAC };
+ }
+
+ [ScriptedImporter(1, null, new string[] { AudioOobAssetExtensions.WAV, AudioOobAssetExtensions.MP3, AudioOobAssetExtensions.FLAC })]
+ public class AudioAssetImporter : ScriptedImporter
+ {
+ public override void OnImportAsset(AssetImportContext ctx)
+ {
+ byte[] bytesToAssign = System.IO.File.ReadAllBytes(ctx.assetPath);
+ AudioOutOfBandAsset file = OutOfBandAsset.Create(bytesToAssign);
+
+ ctx.AddObjectToAsset("rive-audio", file);
+ ctx.SetMainObject(file);
+ }
+ }
+}
diff --git a/Packages/app.rive.rive-unity/Editor/AudioAssetImporter.cs.meta b/Packages/app.rive.rive-unity/Editor/AudioAssetImporter.cs.meta
new file mode 100644
index 00000000..086ff20b
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/AudioAssetImporter.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 20badb765cb0b4f4dadbcd748172bc88
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/AudioAssetImporter.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components.meta b/Packages/app.rive.rive-unity/Editor/Components.meta
new file mode 100644
index 00000000..3eee6f87
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f4f0a0d3cb1c74b528f162c21da5d57b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/app.rive.rive-unity/Editor/Components/AtlasRenderTextureStrategyInspector.cs b/Packages/app.rive.rive-unity/Editor/Components/AtlasRenderTextureStrategyInspector.cs
new file mode 100644
index 00000000..675f5bc2
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/AtlasRenderTextureStrategyInspector.cs
@@ -0,0 +1,10 @@
+using Rive.Components;
+using UnityEditor;
+
+namespace Rive.EditorTools
+{
+ [CustomEditor(typeof(AtlasRenderTargetStrategy), true)]
+ internal class AtlasRenderTextureStrategyInspector : RiveBaseEditor
+ {
+ }
+}
diff --git a/Packages/app.rive.rive-unity/Editor/Components/AtlasRenderTextureStrategyInspector.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/AtlasRenderTextureStrategyInspector.cs.meta
new file mode 100644
index 00000000..1a94cc7f
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/AtlasRenderTextureStrategyInspector.cs.meta
@@ -0,0 +1,20 @@
+fileFormatVersion: 2
+guid: b0622d49537654134954a8e5d3817d74
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences:
+ - m_styleSheet: {fileID: 7433441132597879392, guid: cc66ac87f8ecb4e3c91384370163ee7b,
+ type: 3}
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/AtlasRenderTextureStrategyInspector.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CanvasPanelRendererEditor.cs b/Packages/app.rive.rive-unity/Editor/Components/CanvasPanelRendererEditor.cs
new file mode 100644
index 00000000..ce9d34da
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CanvasPanelRendererEditor.cs
@@ -0,0 +1,25 @@
+using Rive.Components;
+using UnityEditor;
+
+namespace Rive.EditorTools
+{
+ [CustomEditor(typeof(RiveCanvasRenderer), true)]
+ internal class CanvasPanelRendererEditor : PanelRendererInspector
+ {
+ protected override void OnEnable()
+ {
+ base.OnEnable();
+
+ if (PanelRenderer.RivePanel == null)
+ {
+ RivePanel existingPanel = PanelRenderer.GetComponent();
+
+ if (existingPanel != null)
+ {
+ PanelRenderer.RivePanel = existingPanel;
+ }
+ }
+ }
+
+ }
+}
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CanvasPanelRendererEditor.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/CanvasPanelRendererEditor.cs.meta
new file mode 100644
index 00000000..af29b05b
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CanvasPanelRendererEditor.cs.meta
@@ -0,0 +1,20 @@
+fileFormatVersion: 2
+guid: 6cf302e24face493783124060035fb4c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences:
+ - m_styleSheet: {fileID: 7433441132597879392, guid: cc66ac87f8ecb4e3c91384370163ee7b,
+ type: 3}
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/CanvasPanelRendererEditor.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements.meta b/Packages/app.rive.rive-unity/Editor/Components/CustomElements.meta
new file mode 100644
index 00000000..a1dde2c4
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 43b94ffc302e04258ab481523df9abaa
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/AlignmentPropertyDrawer.cs b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/AlignmentPropertyDrawer.cs
new file mode 100644
index 00000000..379d4de0
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/AlignmentPropertyDrawer.cs
@@ -0,0 +1,83 @@
+using System;
+using System.Linq;
+using UnityEditor;
+using UnityEngine;
+
+#if !UNITY_2022_1_OR_NEWER
+using UnityEditor.UIElements; // Required for Unity 2021
+#endif
+using UnityEngine.UIElements;
+
+namespace Rive.EditorTools
+{
+ ///
+ /// We don't directly use the property drawer for the Alignment class, but we keep it as a way to create the dropdown field in the inspector for RiveBaseEditor.
+ /// We do this because the RiveBaseEditor class supports a bunch of the custom attributes we've created and having multiple drawers for the same class can cause conflicts so we do it all in the RiveBaseEditor class.
+ ///
+ //[CustomPropertyDrawer(typeof(Alignment))]
+ internal class AlignmentPropertyDrawer : PropertyDrawer
+ {
+ private static readonly (string display, Alignment value)[] OPTIONS = new[]
+ {
+ ("Top Left", Alignment.TopLeft),
+ ("Top Center", Alignment.TopCenter),
+ ("Top Right", Alignment.TopRight),
+ ("Center Left", Alignment.CenterLeft),
+ ("Center", Alignment.Center),
+ ("Center Right", Alignment.CenterRight),
+ ("Bottom Left", Alignment.BottomLeft),
+ ("Bottom Center", Alignment.BottomCenter),
+ ("Bottom Right", Alignment.BottomRight)
+ };
+
+
+
+ public override VisualElement CreatePropertyGUI(SerializedProperty property)
+ {
+ var container = new VisualElement();
+
+ var xProp = property.FindPropertyRelative(Alignment.BindingPath_Xfield);
+ var yProp = property.FindPropertyRelative(Alignment.BindingPath_Yfield);
+
+ // Default to Center if we can't get the values
+ var centerIndex = Array.FindIndex(OPTIONS, o => o.value.Equals(Alignment.Center));
+ var currentIndex = centerIndex;
+
+ if (xProp != null && yProp != null)
+ {
+ var currentAlignment = new Alignment(xProp.floatValue, yProp.floatValue);
+ currentIndex = Array.FindIndex(OPTIONS, o => o.value.Equals(currentAlignment));
+ if (currentIndex < 0) currentIndex = centerIndex;
+ }
+
+ var choices = OPTIONS.Select(o => o.display).ToList();
+
+ var dropdown = new PopupField(
+ property.displayName,
+ choices,
+ currentIndex
+ );
+
+ dropdown.RegisterValueChangedCallback(evt =>
+ {
+ var index = choices.IndexOf(evt.newValue);
+ if (index >= 0 && xProp != null && yProp != null)
+ {
+ var selectedAlignment = OPTIONS[index].value;
+ xProp.floatValue = selectedAlignment.X;
+ yProp.floatValue = selectedAlignment.Y;
+ property.serializedObject.ApplyModifiedProperties();
+ }
+ });
+
+ dropdown.AddToClassList(StyleHelper.CLASS_FIELD);
+
+ // This ensures that the dropdown is aligned with other fields in the inspector
+ dropdown.AddToClassList(BaseField.alignedFieldUssClassName);
+ container.Add(dropdown);
+ return container;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/AlignmentPropertyDrawer.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/AlignmentPropertyDrawer.cs.meta
new file mode 100644
index 00000000..614cf0ab
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/AlignmentPropertyDrawer.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 114c8e3b6a625400a8497c76cf6af315
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/CustomElements/AlignmentPropertyDrawer.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/DropdownDrawer.cs b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/DropdownDrawer.cs
new file mode 100644
index 00000000..2a9144ec
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/DropdownDrawer.cs
@@ -0,0 +1,144 @@
+using System.Collections.Generic;
+using System.Reflection;
+using System.Linq;
+using UnityEditor;
+using UnityEditor.UIElements;
+using UnityEngine.UIElements;
+using Rive.Utils;
+
+namespace Rive.EditorTools
+{
+ [CustomPropertyDrawer(typeof(DropdownAttribute))]
+ internal class DropdownDrawer : PropertyDrawer
+ {
+ private PopupOrTextField dropdown;
+ private SerializedProperty property;
+ private object target;
+ private DropdownAttribute dropdownAttr;
+ private MemberInfo optionsMember;
+
+ public override VisualElement CreatePropertyGUI(SerializedProperty property)
+ {
+ this.property = property;
+ dropdownAttr = attribute as DropdownAttribute;
+ target = property.serializedObject.targetObject;
+ var targetType = target.GetType();
+
+ // Try to find member (field, property, or method)
+ optionsMember = targetType.GetField(dropdownAttr.OptionsMemberName,
+ BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
+
+ if (optionsMember == null)
+ {
+ optionsMember = targetType.GetProperty(dropdownAttr.OptionsMemberName,
+ BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
+ }
+
+ if (optionsMember == null)
+ {
+ optionsMember = targetType.GetMethod(dropdownAttr.OptionsMemberName,
+ BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
+ }
+
+ if (optionsMember == null)
+ {
+ var errorContainer = new VisualElement();
+ errorContainer.Add(new HelpBox($"Member {dropdownAttr.OptionsMemberName} not found", HelpBoxMessageType.Error));
+ errorContainer.Add(new PropertyField(property));
+ return errorContainer;
+ }
+
+ dropdown = CreateDropdown();
+
+ // Only register for updates if TrackChanges is enabled
+ if (dropdownAttr.TrackChanges)
+ {
+ EditorApplication.update += UpdateDropdownOptions;
+
+ dropdown.RegisterCallback(evt =>
+ {
+ EditorApplication.update -= UpdateDropdownOptions;
+ });
+ }
+ else
+ {
+ // For non-tracked dropdowns, we still want to update when the panel is attached
+ dropdown.RegisterCallback(evt =>
+ {
+ UpdateDropdownOptions();
+ });
+ }
+
+ return dropdown;
+ }
+
+ private PopupOrTextField CreateDropdown()
+ {
+ var options = GetCurrentOptions();
+ var currentValue = property.stringValue;
+
+ var label = ReflectionUtils.GetPropertyLabel(property);
+ var dropdown = new PopupOrTextField(options, currentValue,
+ label);
+
+ dropdown.BindProperty(property);
+
+ var inspectorFieldAttr = fieldInfo.GetCustomAttribute();
+ if (inspectorFieldAttr != null)
+ {
+ dropdown.AddToClassList(StyleHelper.CLASS_FIELD);
+ }
+
+ return dropdown;
+ }
+
+ private List GetCurrentOptions()
+ {
+ object options = null;
+
+ switch (optionsMember)
+ {
+ case FieldInfo field:
+ options = field.GetValue(target);
+ break;
+ case PropertyInfo prop:
+ options = prop.GetValue(target);
+ break;
+ case MethodInfo method:
+ options = method.Invoke(target, null);
+ break;
+ }
+
+ if (options is IEnumerable enumerable)
+ {
+ return enumerable.ToList();
+ }
+
+ return new List();
+ }
+
+ private void UpdateDropdownOptions()
+ {
+ if (dropdown?.panel == null) return;
+
+ var newOptions = GetCurrentOptions();
+ if (!AreOptionsEqual(dropdown.Choices, newOptions))
+ {
+ dropdown.Choices = newOptions;
+
+ }
+
+
+ }
+
+ private bool AreOptionsEqual(List a, List b)
+ {
+ if (a.Count != b.Count) return false;
+ for (int i = 0; i < a.Count; i++)
+ {
+ if (a[i] != b[i]) return false;
+ }
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/DropdownDrawer.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/DropdownDrawer.cs.meta
new file mode 100644
index 00000000..3ee8a251
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/DropdownDrawer.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 55ad3672c80b042f288de391c21e3bf9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/CustomElements/DropdownDrawer.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/MaterialPropertiesDrawer.cs b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/MaterialPropertiesDrawer.cs
new file mode 100644
index 00000000..e7fd56e4
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/MaterialPropertiesDrawer.cs
@@ -0,0 +1,237 @@
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UIElements;
+using UnityEditor.UIElements;
+using System.Collections.Generic;
+using System.Linq;
+using Rive.Utils;
+#if UNITY_6000_3_OR_NEWER
+using MaterialShaderPropertyType = UnityEngine.Rendering.ShaderPropertyType;
+#else
+using MaterialShaderPropertyType = UnityEditor.ShaderUtil.ShaderPropertyType;
+#endif
+
+namespace Rive.EditorTools
+{
+ ///
+ /// Draws a list of properties from a material on a component as a dropdown. This is useful if you want to display a list of properties from a material on a component in the inspector.
+ ///
+ [CustomPropertyDrawer(typeof(MaterialPropertiesAttribute))]
+ internal class MaterialPropertiesDrawer : PropertyDrawer
+ {
+ private VisualElement m_root;
+ private List m_availablePropertyNames = new List();
+ private SerializedObject m_serializedObject;
+
+ private Material[] GetMaterialsFromSource(object target, string sourceName)
+ {
+ // Try to get materials directly
+ if (ReflectionUtils.TryGetValue(target, sourceName, out var materials))
+ {
+ return materials;
+ }
+
+ // If we got a renderer instead, get its materials
+ if (ReflectionUtils.TryGetValue(target, sourceName, out var renderer))
+ {
+ return renderer?.sharedMaterials;
+ }
+
+ return null;
+ }
+
+ public override VisualElement CreatePropertyGUI(SerializedProperty property)
+ {
+ var attr = attribute as MaterialPropertiesAttribute;
+ m_root = new VisualElement();
+ m_serializedObject = property.serializedObject;
+
+ var target = property.serializedObject.targetObject;
+ var materials = GetMaterialsFromSource(target, attr.MaterialsSourceName);
+
+ if (materials == null)
+ {
+ m_root.Add(new HelpBox($"Could not find materials source: {attr.MaterialsSourceName}", HelpBoxMessageType.Error));
+ return m_root;
+ }
+
+ UpdateUI(property, materials, attr.PropertyType);
+ return m_root;
+ }
+
+ private void UpdateUI(SerializedProperty property, Material[] materials, MaterialShaderPropertyType propertyType)
+ {
+ m_root.Clear();
+ UpdateAvailablePropertyNames(materials, propertyType);
+
+ var keysProperty = property.FindPropertyRelative(SerializedDictionary.BindingPath_Keys);
+ var valuesProperty = property.FindPropertyRelative(SerializedDictionary.BindingPath_Values);
+
+ // Pre-create property holders for all materials
+ EnsurePropertyHoldersExist(keysProperty, valuesProperty, materials.Length);
+
+ for (int i = 0; i < materials.Length; i++)
+ {
+ var material = materials[i];
+ if (material == null) continue;
+
+ var materialFoldout = new Foldout { text = $"Material {i}: {material.name}" };
+ m_root.Add(materialFoldout);
+
+ var propertyListHolder = FindPropertyListHolder(keysProperty, valuesProperty, i);
+ if (propertyListHolder != null)
+ {
+ var propertyList = propertyListHolder.FindPropertyRelative(Components.RiveTextureRenderer.PropertyNameListHolder.BindingPath_PropertyNames);
+ if (propertyList != null && propertyList.serializedObject != null)
+ {
+ var listView = CreateListView(propertyList);
+ materialFoldout.Add(listView);
+ }
+ }
+ }
+
+ // Apply any changes made during setup
+ property.serializedObject.ApplyModifiedProperties();
+ }
+
+ private void EnsurePropertyHoldersExist(SerializedProperty keysProperty, SerializedProperty valuesProperty, int materialCount)
+ {
+ // First, create a list of existing material indices
+ var existingIndices = new HashSet();
+ for (int i = 0; i < keysProperty.arraySize; i++)
+ {
+ existingIndices.Add(keysProperty.GetArrayElementAtIndex(i).intValue);
+ }
+
+ // Create missing property holders
+ for (int i = 0; i < materialCount; i++)
+ {
+ if (!existingIndices.Contains(i))
+ {
+ keysProperty.InsertArrayElementAtIndex(keysProperty.arraySize);
+ keysProperty.GetArrayElementAtIndex(keysProperty.arraySize - 1).intValue = i;
+
+ valuesProperty.InsertArrayElementAtIndex(valuesProperty.arraySize);
+ }
+ }
+ }
+
+ private SerializedProperty FindPropertyListHolder(SerializedProperty keysProperty, SerializedProperty valuesProperty, int materialIndex)
+ {
+ for (int i = 0; i < keysProperty.arraySize; i++)
+ {
+ if (keysProperty.GetArrayElementAtIndex(i).intValue == materialIndex)
+ {
+ return valuesProperty.GetArrayElementAtIndex(i);
+ }
+ }
+ return null;
+ }
+
+ private ListView CreateListView(SerializedProperty propertyList)
+ {
+ var listView = new ListView()
+ {
+ reorderable = true,
+ showAddRemoveFooter = true,
+ showBorder = true,
+ showFoldoutHeader = false,
+ showBoundCollectionSize = false,
+ virtualizationMethod = CollectionVirtualizationMethod.DynamicHeight
+ };
+
+ // Delay binding until the next frame to ensure proper initialization
+ m_root.schedule.Execute(() =>
+ {
+ listView.bindingPath = propertyList.propertyPath;
+ listView.BindProperty(propertyList.serializedObject);
+ });
+
+ listView.makeItem = () => new PopupOrTextField(m_availablePropertyNames, "");
+ listView.bindItem = (element, index) =>
+ {
+ var popupOrTextField = element as PopupOrTextField;
+ popupOrTextField.Choices = m_availablePropertyNames;
+
+ if (propertyList != null && propertyList.serializedObject != null)
+ {
+ var itemProperty = propertyList.GetArrayElementAtIndex(index);
+ popupOrTextField.BindProperty(itemProperty);
+ }
+ };
+
+ listView.itemsAdded += (indexes) =>
+ {
+ if (propertyList != null && propertyList.serializedObject != null)
+ {
+ foreach (int index in indexes)
+ {
+ var itemProperty = propertyList.GetArrayElementAtIndex(index);
+ if (string.IsNullOrEmpty(itemProperty.stringValue))
+ {
+ itemProperty.stringValue = m_availablePropertyNames.FirstOrDefault() ?? "";
+ propertyList.serializedObject.ApplyModifiedProperties();
+ }
+ }
+ }
+ listView.Rebuild();
+ };
+
+ return listView;
+ }
+
+ private static int GetPropertyCount(Shader shader)
+ {
+#if UNITY_6000_3_OR_NEWER
+ return shader.GetPropertyCount();
+#else
+ return ShaderUtil.GetPropertyCount(shader);
+#endif
+ }
+
+ private static MaterialShaderPropertyType GetPropertyType(Shader shader, int index)
+ {
+#if UNITY_6000_3_OR_NEWER
+ return shader.GetPropertyType(index);
+#else
+ return ShaderUtil.GetPropertyType(shader, index);
+#endif
+ }
+
+ private static string GetPropertyName(Shader shader, int index)
+ {
+#if UNITY_6000_3_OR_NEWER
+ return shader.GetPropertyName(index);
+#else
+ return ShaderUtil.GetPropertyName(shader, index);
+#endif
+ }
+
+ private void UpdateAvailablePropertyNames(Material[] materials, MaterialShaderPropertyType propertyType)
+ {
+ m_availablePropertyNames.Clear();
+
+ foreach (var material in materials)
+ {
+ if (material != null)
+ {
+ var shader = material.shader;
+ for (int i = 0; i < GetPropertyCount(shader); i++)
+ {
+ if (GetPropertyType(shader, i) == propertyType)
+ {
+ string propertyName = GetPropertyName(shader, i);
+ if (!m_availablePropertyNames.Contains(propertyName))
+ {
+ m_availablePropertyNames.Add(propertyName);
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/MaterialPropertiesDrawer.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/MaterialPropertiesDrawer.cs.meta
new file mode 100644
index 00000000..356fc4b0
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/MaterialPropertiesDrawer.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 13ea997b79c3b4e1b82a9adeabd70082
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/CustomElements/MaterialPropertiesDrawer.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/PopupOrTextField.cs b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/PopupOrTextField.cs
new file mode 100644
index 00000000..99cfe8ae
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/PopupOrTextField.cs
@@ -0,0 +1,445 @@
+using UnityEngine.UIElements;
+using System.Collections.Generic;
+using System;
+using UnityEditor;
+using UnityEngine;
+using UnityEditor.UIElements;
+using Rive.Utils;
+
+namespace Rive.EditorTools
+{
+ ///
+ /// A visual element that allows the user to select from a list of choices or enter a custom value.
+ ///
+ internal class PopupOrTextField : VisualElement, INotifyValueChanged
+ {
+ private PopupField popupField;
+ private TextField textField;
+ private Button switchModeButton;
+ private bool isCustomValue;
+ private bool isUserEditing;
+ private bool isProgrammaticChange;
+ private SerializedProperty boundProperty;
+ private SerializedObject serializedObject;
+ private UnityEngine.Object targetObject;
+
+ private string m_Value;
+ public string value
+ {
+ get => m_Value;
+ set
+ {
+ if (m_Value != value)
+ {
+ using (var changeEvent = ChangeEvent.GetPooled(m_Value, value))
+ {
+ changeEvent.target = this;
+ SetValueWithoutNotify(value);
+ SendEvent(changeEvent);
+ }
+ }
+ }
+ }
+
+ public List Choices
+ {
+ get => popupField.choices;
+ set
+ {
+ popupField.choices = value;
+ bool valueIsInChoices = value.Contains(m_Value);
+
+ // Handle transition from Popup to Custom
+ if (!isCustomValue && !valueIsInChoices)
+ {
+ isCustomValue = true;
+ isProgrammaticChange = true;
+ SetValueWithoutNotify(m_Value);
+ isProgrammaticChange = false;
+ }
+ // Handle transition from Custom to Popup
+ else if (valueIsInChoices && isCustomValue)
+ {
+ isCustomValue = false;
+ isProgrammaticChange = true;
+ SetValueWithoutNotify(m_Value);
+ isProgrammaticChange = false;
+ }
+
+ UpdateVisibility();
+ }
+ }
+
+ public string Label
+ {
+ get => popupField.label;
+ set
+ {
+ popupField.label = value;
+ textField.label = value;
+ }
+ }
+
+ public PopupOrTextField() : this(new List(), "") { }
+
+ public PopupOrTextField(List choices, string currentValue, string labelText = null)
+ {
+ popupField = new PopupField(choices, 0);
+ textField = new TextField();
+ switchModeButton = new Button(ToggleMode)
+ {
+ text = "✎",
+ tooltip = "Switch to text input"
+ };
+
+ SetupUI();
+ SetupCallbacks();
+ SetInitialState(currentValue);
+
+ if (labelText != null)
+ {
+ Label = labelText;
+ }
+
+ RegisterCallback(OnSerializedPropertyChange);
+ }
+
+ private void SetupUI()
+ {
+ var container = new VisualElement();
+ container.style.flexDirection = FlexDirection.Row;
+ container.style.width = new StyleLength(Length.Percent(100));
+ container.Add(popupField);
+ container.Add(textField);
+ container.Add(switchModeButton);
+
+ SetupFieldStyles(popupField);
+ SetupFieldStyles(textField);
+ SetupButtonStyles(switchModeButton);
+
+ textField.style.display = DisplayStyle.None;
+ textField.visible = false;
+ popupField.style.display = DisplayStyle.Flex;
+ popupField.visible = true;
+
+ Add(container);
+ }
+
+ private void SetupFieldStyles(VisualElement field)
+ {
+ // This keeps inspector positioned around the same point as other unity fields. Otherwise the popup fills the whole row, when it should stop in the middle.
+ field.AddToClassList(BaseField.alignedFieldUssClassName); // Same as using "unity-base-field__aligned" in UXML
+
+
+ field.style.flexGrow = 1;
+ field.style.marginRight = 20;
+ field.style.paddingBottom = 0;
+ field.style.paddingTop = 0;
+ field.style.paddingLeft = 0;
+ field.style.marginBottom = 0;
+ field.style.marginTop = 0;
+ field.style.marginLeft = 0;
+ }
+
+ private void SetupButtonStyles(Button button)
+ {
+ button.style.position = Position.Absolute;
+ button.style.right = 0;
+ button.style.width = 20;
+ button.style.height = popupField.style.height;
+ button.style.marginRight = 0;
+ button.style.marginLeft = 0;
+ button.style.marginTop = 0;
+ button.style.marginBottom = 0;
+ button.style.paddingBottom = 0;
+ button.style.paddingTop = 0;
+ button.style.paddingLeft = 0;
+ button.style.paddingRight = 0;
+ }
+
+
+ private void SetupCallbacks()
+ {
+ popupField.RegisterValueChangedCallback(evt =>
+ {
+ if (isProgrammaticChange)
+ return; // Ignore programmatic changes to prevent recursive calls
+
+ value = evt.newValue;
+ });
+
+ textField.RegisterCallback(evt => isUserEditing = true);
+ textField.RegisterCallback(evt =>
+ {
+ isUserEditing = false;
+ UpdateVisualState();
+ });
+
+ textField.RegisterValueChangedCallback(evt =>
+ {
+ if (isProgrammaticChange)
+ return;
+
+ value = evt.newValue;
+ });
+ }
+
+ private void SetInitialState(string initialValue)
+ {
+ m_Value = initialValue;
+ isCustomValue = !Choices.Contains(initialValue);
+
+ if (!isCustomValue)
+ {
+ popupField.SetValueWithoutNotify(initialValue);
+ }
+ else
+ {
+ textField.SetValueWithoutNotify(initialValue);
+ }
+
+ UpdateVisibility();
+ }
+
+ private void ToggleMode()
+ {
+ if (targetObject != null)
+ {
+ Undo.RecordObject(targetObject, "Toggle PopupOrTextField Mode");
+ }
+
+ var initialValue = m_Value;
+ isCustomValue = !isCustomValue;
+
+ if (isCustomValue)
+ {
+ textField.SetValueWithoutNotify(m_Value);
+ }
+ else
+ {
+ if (Choices.Contains(m_Value))
+ {
+ popupField.SetValueWithoutNotify(m_Value);
+ }
+ else if (Choices.Count > 0)
+ {
+ SetValueWithoutNotify(Choices[0]);
+ }
+ else
+ {
+ popupField.SetValueWithoutNotify(string.Empty);
+ }
+ }
+
+ UpdateVisibility();
+
+ if (targetObject != null)
+ {
+ EditorUtility.SetDirty(targetObject);
+ }
+
+ if (initialValue != m_Value)
+ {
+ using (var changeEvent = ChangeEvent.GetPooled(initialValue, m_Value))
+ {
+ changeEvent.target = this;
+ SendEvent(changeEvent);
+ }
+ }
+ }
+
+ private void UpdateVisualState()
+ {
+ bool valueInChoices = Choices.Contains(m_Value);
+
+ if (valueInChoices)
+ {
+ if (!isCustomValue)
+ {
+ // We make sure the popupField reflects the current value
+ popupField.SetValueWithoutNotify(m_Value);
+ }
+
+ if (isCustomValue && !isUserEditing)
+ {
+ isCustomValue = false;
+ UpdateVisibility();
+ }
+ }
+ else
+ {
+ textField.SetValueWithoutNotify(m_Value);
+ if (!isCustomValue)
+ {
+ isCustomValue = true;
+ UpdateVisibility();
+ }
+ }
+ }
+
+ private void UpdateVisibility()
+ {
+ if (isCustomValue)
+ {
+ popupField.style.display = DisplayStyle.None;
+ popupField.visible = false;
+
+ textField.style.display = DisplayStyle.Flex;
+ textField.visible = true;
+
+ switchModeButton.text = "▼";
+ switchModeButton.tooltip = "Switch to dropdown";
+ }
+ else
+ {
+ textField.style.display = DisplayStyle.None;
+ textField.visible = false;
+
+ popupField.style.display = DisplayStyle.Flex;
+ popupField.visible = true;
+
+ switchModeButton.text = "✎";
+ switchModeButton.tooltip = "Switch to text input";
+ }
+
+ this.MarkDirtyRepaint();
+ }
+
+ public void SetValueWithoutNotify(string newValue)
+ {
+ if (serializedObject != null)
+ {
+ serializedObject.Update();
+ }
+
+ m_Value = newValue;
+
+ // Force check if value is in choices and update mode accordingly
+ bool valueInChoices = Choices.Contains(newValue);
+
+ if (valueInChoices && (!isUserEditing || isProgrammaticChange))
+ {
+ isCustomValue = false;
+ isProgrammaticChange = true;
+ popupField.SetValueWithoutNotify(newValue);
+ isProgrammaticChange = false;
+ }
+ else
+ {
+ if (!valueInChoices)
+ {
+ isCustomValue = true;
+ }
+ isProgrammaticChange = true;
+ textField.SetValueWithoutNotify(newValue);
+ isProgrammaticChange = false;
+ }
+
+ UpdateVisibility();
+
+ if (boundProperty != null)
+ {
+ boundProperty.stringValue = newValue;
+ serializedObject.ApplyModifiedProperties();
+ }
+ }
+
+ private void OnSerializedPropertyChange(SerializedPropertyChangeEvent evt)
+ {
+ if (evt.changedProperty == boundProperty)
+ {
+ isProgrammaticChange = true;
+ SetValueWithoutNotify(boundProperty.stringValue);
+ isProgrammaticChange = false;
+ }
+ }
+
+ public void BindProperty(SerializedProperty property)
+ {
+ UnbindProperty();
+
+ if (property != null && property.propertyType == SerializedPropertyType.String)
+ {
+ boundProperty = property;
+ serializedObject = property.serializedObject;
+ targetObject = serializedObject.targetObject;
+ SetInitialState(property.stringValue);
+ EditorApplication.update += UpdateFromSerializedProperty;
+ }
+ else
+ {
+ DebugLogger.Instance.LogError("PopupOrTextField: Attempted to bind to a null or non-string property.");
+ }
+
+ this.RegisterCallback(OnAttachToPanel);
+ this.RegisterCallback(OnDetachFromPanel);
+ }
+
+ private void OnAttachToPanel(AttachToPanelEvent evt)
+ {
+ if (serializedObject != null && boundProperty != null)
+ {
+ serializedObject.Update();
+ SetInitialState(boundProperty.stringValue);
+ }
+ }
+
+ private void OnDetachFromPanel(DetachFromPanelEvent evt)
+ {
+ UnbindProperty();
+ }
+
+ private void UpdateFromSerializedProperty()
+ {
+ try
+ {
+ if (serializedObject == null || boundProperty == null)
+ {
+ UnbindProperty();
+ return;
+ }
+
+ // Check if the serializedObject is still valid
+ if (serializedObject.targetObject == null)
+ {
+ UnbindProperty();
+ return;
+ }
+
+ serializedObject.Update();
+
+ // Double-check everything is still valid after the update
+ if (boundProperty == null || boundProperty.serializedObject == null || boundProperty.serializedObject.targetObject == null)
+ {
+ UnbindProperty();
+ return;
+ }
+
+ if (boundProperty.propertyType == SerializedPropertyType.String)
+ {
+ string newValue = boundProperty.stringValue;
+ if (m_Value != newValue && !isUserEditing)
+ {
+ SetValueWithoutNotify(newValue);
+ }
+ }
+ else
+ {
+ DebugLogger.Instance.LogWarning($"PopupOrTextField: Bound property is not a string. Property path: {boundProperty.propertyPath}");
+ }
+ }
+ catch (Exception)
+ {
+ UnbindProperty();
+ }
+ }
+
+ private void UnbindProperty()
+ {
+ boundProperty = null;
+ serializedObject = null;
+ targetObject = null;
+ EditorApplication.update -= UpdateFromSerializedProperty;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/PopupOrTextField.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/PopupOrTextField.cs.meta
new file mode 100644
index 00000000..2a9fad2b
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/PopupOrTextField.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 226b35944e5bc4908b226f5fb91d99d2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/CustomElements/PopupOrTextField.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsDrawer.cs b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsDrawer.cs
new file mode 100644
index 00000000..245e721b
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsDrawer.cs
@@ -0,0 +1,37 @@
+using UnityEngine;
+using UnityEditor;
+using UnityEngine.UIElements;
+using Rive.Utils;
+
+namespace Rive.EditorTools
+{
+ [CustomPropertyDrawer(typeof(WidthHeightDimensionsAttribute))]
+ internal class WidthHeightDimensionsDrawer : PropertyDrawer
+ {
+ public override VisualElement CreatePropertyGUI(SerializedProperty property)
+ {
+ var attr = attribute as WidthHeightDimensionsAttribute;
+ var label = ReflectionUtils.GetPropertyLabel(property) ?? attr.Label;
+
+ // Get tooltip from TooltipAttribute if present
+ string tooltip = null;
+ var tooltipAttribute = fieldInfo.GetCustomAttributes(typeof(TooltipAttribute), true);
+ if (tooltipAttribute.Length > 0)
+ {
+ tooltip = (tooltipAttribute[0] as TooltipAttribute).tooltip;
+ }
+
+ var field = new WidthHeightDimensionsField(
+ label,
+ attr.WidthLabel,
+ attr.HeightLabel,
+ tooltip
+ );
+
+ field.BindProperty(property);
+ return field;
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsDrawer.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsDrawer.cs.meta
new file mode 100644
index 00000000..2e7eb182
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsDrawer.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: d32c71bc31ac443d5a36065d1d672d12
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsDrawer.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsField.cs b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsField.cs
new file mode 100644
index 00000000..c5a5698f
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsField.cs
@@ -0,0 +1,50 @@
+using UnityEngine.UIElements;
+using UnityEditor.UIElements;
+using UnityEditor;
+
+namespace Rive.EditorTools
+{
+ ///
+ /// A field for editing a Vector2Int representing width and height.
+ ///
+ internal class WidthHeightDimensionsField : VisualElement
+ {
+
+ public IntegerField WidthField { get; private set; }
+ public IntegerField HeightField { get; private set; }
+
+ public WidthHeightDimensionsField(string label, string widthLabel = "Width", string heightLabel = "Height", string tooltip = null)
+ {
+ var foldout = new Foldout
+ {
+ text = label,
+ tooltip = tooltip,
+ value = true // Start expanded
+ };
+ Add(foldout);
+
+ var container = new VisualElement();
+ foldout.Add(container);
+
+ WidthField = new IntegerField(widthLabel)
+ {
+ style = { marginTop = 4 }
+ };
+ WidthField.AddToClassList(BaseField.alignedFieldUssClassName);
+ container.Add(WidthField);
+
+ HeightField = new IntegerField(heightLabel)
+ {
+ style = { marginTop = 4 }
+ };
+ HeightField.AddToClassList(BaseField.alignedFieldUssClassName);
+ container.Add(HeightField);
+ }
+
+ public void BindProperty(SerializedProperty property)
+ {
+ WidthField.BindProperty(property.FindPropertyRelative("x"));
+ HeightField.BindProperty(property.FindPropertyRelative("y"));
+ }
+ }
+}
diff --git a/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsField.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsField.cs.meta
new file mode 100644
index 00000000..3aaccd69
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsField.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 18c92b4c6ab3f42e6a1e827ed99c91fa
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/CustomElements/WidthHeightDimensionsField.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/DataBindingPlaygroundWindow.cs b/Packages/app.rive.rive-unity/Editor/Components/DataBindingPlaygroundWindow.cs
new file mode 100644
index 00000000..d63d7a40
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/DataBindingPlaygroundWindow.cs
@@ -0,0 +1,2090 @@
+using System;
+using System.Collections.Generic;
+using System.Collections;
+using System.Linq;
+using Rive;
+using Rive.Components;
+using UnityEditor;
+using UnityEditor.UIElements;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace Rive.EditorTools
+{
+ internal class DataBindingPlaygroundWindow : EditorWindow
+ {
+ private RiveWidget m_widget;
+ private ObjectField m_widgetField;
+ private HelpBox m_playModeHelpBox;
+ private VisualElement m_interactiveContainer;
+ private ScrollView m_propertiesScroll;
+
+ private readonly List m_propertyBindings = new List();
+ private readonly List m_listBindings = new List();
+ private readonly List m_triggerBindingDisposers = new List();
+ private bool m_isRefreshing;
+ private const double TriggerFiredHighlightSeconds = 0.75d;
+ private enum PlaygroundState
+ {
+ NotPlaying,
+ NoWidget,
+ NoFileMetadata,
+ NoViewModels,
+ NoArtboardMetadata,
+ NoDefaultViewModel,
+ WidgetNotLoaded,
+ NoViewModelInstance,
+ Ready
+ }
+
+ private FileMetadata m_fileMetadata;
+ private FileMetadata.ArtboardMetadata m_artboardMetadata;
+ private double m_nextRefreshTime;
+ private readonly Dictionary m_imageSelectionCache = new Dictionary();
+ private readonly Dictionary m_artboardSelectionCache = new Dictionary();
+ private readonly Dictionary m_viewModelExpansion = new Dictionary();
+
+ // Used for the artboard databinding dropdowns
+ private enum ArtboardViewModelBindingMode
+ {
+ ExistingInstance,
+ CreateNewInstance
+ }
+
+ private class ArtboardSelection
+ {
+ public Asset Asset;
+ public File File;
+ public string ArtboardName;
+ public ArtboardViewModelBindingMode ViewModelBindingMode = ArtboardViewModelBindingMode.ExistingInstance;
+ public string ExistingViewModelInstanceName;
+ public ViewModelInstance CustomViewModelInstance;
+ public readonly List CustomBindings = new List();
+ public readonly List CustomListBindings = new List();
+
+ public void DisposeCustomViewModelInstance()
+ {
+ CustomViewModelInstance?.Dispose();
+ CustomViewModelInstance = null;
+ CustomBindings.Clear();
+ CustomListBindings.Clear();
+ }
+
+ public void DisposeAll()
+ {
+ DisposeCustomViewModelInstance();
+ File = null;
+ }
+ }
+
+ private const string DocsBaseUrl = InspectorDocLinks.UnityDataBinding;
+
+ private class PropertyBinding
+ {
+ public string Path;
+ public VisualElement Control;
+ public Action Sync;
+ }
+
+ private class ListPropertyBinding
+ {
+ public string Path;
+ public VisualElement Control;
+ public Action Sync;
+ public List LastItems = new List();
+ public bool InitializedTypeSelection;
+ }
+
+ // Adapter that proxies a list property directly into a ListView without keeping a stale mirror.
+ private class ListPropertyAdapter : IList, IList
+ {
+ private readonly Func m_propertyGetter;
+ private readonly Func m_factory;
+
+ public ListPropertyAdapter(Func propertyGetter, Func factory)
+ {
+ m_propertyGetter = propertyGetter;
+ m_factory = factory;
+ }
+
+ private ViewModelInstanceListProperty Prop => m_propertyGetter?.Invoke();
+
+ public int Count => Prop?.Count ?? 0;
+
+ public bool IsReadOnly => false;
+ bool IList.IsFixedSize => false;
+
+ public ViewModelInstance this[int index]
+ {
+ get => Prop?.GetInstanceAt(index);
+ set => MoveOrReplace(index, value);
+ }
+
+ object IList.this[int index]
+ {
+ get => this[index];
+ set
+ {
+ MoveOrReplace(index, value as ViewModelInstance);
+ }
+ }
+
+ private void MoveOrReplace(int index, ViewModelInstance value)
+ {
+ var prop = Prop;
+ if (prop == null || value == null)
+ {
+ return;
+ }
+
+ // If the instance already exists in the list, move it.
+ int existingIndex = -1;
+ for (int i = 0; i < prop.Count; i++)
+ {
+ if (ReferenceEquals(prop.GetInstanceAt(i), value))
+ {
+ existingIndex = i;
+ break;
+ }
+ }
+
+ if (existingIndex == index)
+ {
+ return;
+ }
+
+ if (existingIndex >= 0)
+ {
+ prop.RemoveAt(existingIndex);
+ if (existingIndex < index)
+ {
+ index -= 1;
+ }
+ }
+ else if (index < prop.Count)
+ {
+ // Replace the current item at index if value not found elsewhere
+ prop.RemoveAt(index);
+ }
+
+ index = Mathf.Clamp(index, 0, prop.Count);
+ prop.Insert(value, index);
+ }
+
+ public void Add(ViewModelInstance item)
+ {
+ var prop = Prop;
+ if (prop == null)
+ {
+ return;
+ }
+
+ var toAdd = item ?? m_factory?.Invoke();
+ if (toAdd != null)
+ {
+ prop.Add(toAdd);
+ }
+ }
+
+ int IList.Add(object value)
+ {
+ var prop = Prop;
+ if (prop == null)
+ {
+ return -1;
+ }
+
+ Add(value as ViewModelInstance);
+ return prop.Count - 1;
+ }
+
+ public void Clear()
+ {
+ var prop = Prop;
+ if (prop == null)
+ {
+ return;
+ }
+
+ for (int i = prop.Count - 1; i >= 0; i--)
+ {
+ prop.RemoveAt(i);
+ }
+ }
+
+ public bool Contains(ViewModelInstance item)
+ {
+ var prop = Prop;
+ if (prop == null || item == null)
+ {
+ return false;
+ }
+
+ for (int i = 0; i < prop.Count; i++)
+ {
+ if (ReferenceEquals(prop.GetInstanceAt(i), item))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public void CopyTo(ViewModelInstance[] array, int arrayIndex)
+ {
+ var prop = Prop;
+ if (prop == null || array == null)
+ {
+ return;
+ }
+
+ int count = prop.Count;
+ for (int i = 0; i < count && arrayIndex + i < array.Length; i++)
+ {
+ array[arrayIndex + i] = prop.GetInstanceAt(i);
+ }
+ }
+
+ public IEnumerator GetEnumerator()
+ {
+ var prop = Prop;
+ if (prop == null)
+ {
+ yield break;
+ }
+
+ int count = prop.Count;
+ for (int i = 0; i < count; i++)
+ {
+ yield return prop.GetInstanceAt(i);
+ }
+ }
+
+ public int IndexOf(ViewModelInstance item)
+ {
+ var prop = Prop;
+ if (prop == null || item == null)
+ {
+ return -1;
+ }
+
+ for (int i = 0; i < prop.Count; i++)
+ {
+ if (ReferenceEquals(prop.GetInstanceAt(i), item))
+ {
+ return i;
+ }
+ }
+
+ return -1;
+ }
+
+ public void Insert(int index, ViewModelInstance item)
+ {
+ var prop = Prop;
+ if (prop == null)
+ {
+ return;
+ }
+
+ var toInsert = item ?? m_factory?.Invoke();
+ if (toInsert == null)
+ {
+ return;
+ }
+
+ index = Mathf.Clamp(index, 0, prop.Count);
+ prop.Insert(toInsert, index);
+ }
+
+ void IList.Insert(int index, object value) => Insert(index, value as ViewModelInstance);
+
+ public bool Remove(ViewModelInstance item)
+ {
+ var prop = Prop;
+ if (prop == null || item == null)
+ {
+ return false;
+ }
+
+ prop.Remove(item);
+ return true;
+ }
+
+ void IList.Remove(object value) => Remove(value as ViewModelInstance);
+
+ public void RemoveAt(int index)
+ {
+ var prop = Prop;
+ if (prop == null || index < 0 || index >= prop.Count)
+ {
+ return;
+ }
+
+ prop.RemoveAt(index);
+ }
+
+ bool IList.Contains(object value) => Contains(value as ViewModelInstance);
+
+ void ICollection.CopyTo(Array array, int index)
+ {
+ if (array == null)
+ {
+ return;
+ }
+
+ var prop = Prop;
+ if (prop == null)
+ {
+ return;
+ }
+
+ for (int i = 0; i < prop.Count && index + i < array.Length; i++)
+ {
+ array.SetValue(prop.GetInstanceAt(i), index + i);
+ }
+ }
+
+ bool ICollection.IsSynchronized => false;
+
+ private readonly object m_syncRoot = new object();
+ object ICollection.SyncRoot => m_syncRoot;
+
+ int IList.IndexOf(object value) => IndexOf(value as ViewModelInstance);
+
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => GetEnumerator();
+ }
+
+ public static void Open(RiveWidget widget)
+ {
+ var window = GetWindow();
+ window.titleContent = new GUIContent("Rive Data Binding Playground");
+ window.minSize = new Vector2(420, 360);
+ window.SetTarget(widget);
+ window.Show();
+ }
+
+ private void OnEnable()
+ {
+ titleContent = new GUIContent("Rive Data Binding Playground");
+ minSize = new Vector2(420, 360);
+ BuildLayout();
+ EditorApplication.update += EditorUpdate;
+ }
+
+ private void OnDisable()
+ {
+ EditorApplication.update -= EditorUpdate;
+ ClearTriggerBindings();
+ m_propertyBindings.Clear();
+ m_listBindings.Clear();
+ m_widget = null;
+ foreach (var selection in m_artboardSelectionCache.Values)
+ {
+ selection.DisposeAll();
+ }
+ m_artboardSelectionCache.Clear();
+ m_viewModelExpansion.Clear();
+ }
+
+ private void EditorUpdate()
+ {
+ // throttle refreshes to avoid unnecessary work
+ if (EditorApplication.timeSinceStartup < m_nextRefreshTime)
+ {
+ return;
+ }
+
+ m_nextRefreshTime = EditorApplication.timeSinceStartup + 0.25f;
+ UpdateVisibility();
+ RefreshValues();
+ }
+
+ private void BuildLayout()
+ {
+ var root = rootVisualElement;
+ root.Clear();
+ root.style.paddingLeft = 10;
+ root.style.paddingRight = 10;
+ root.style.paddingTop = 8;
+ root.style.paddingBottom = 10;
+
+ var subtitleRow = new VisualElement
+ {
+ style =
+ {
+ flexDirection = FlexDirection.Row,
+ alignItems = Align.Center,
+ marginBottom = 14
+ }
+ };
+ var subtitle = new Label("Inspect and tweak ViewModel instance properties for the selected RiveWidget.");
+ subtitle.style.flexGrow = 1;
+ subtitle.style.fontSize = 12;
+ subtitle.style.color = new UnityEngine.Color(0.8f, 0.8f, 0.8f, 0.95f);
+
+ var docsLink = new Label("View Data Binding Docs");
+ StyleLinkLabel(docsLink, InspectorDocLinks.UnityDataBinding);
+
+ subtitleRow.Add(subtitle);
+ subtitleRow.Add(docsLink);
+ root.Add(subtitleRow);
+
+ m_playModeHelpBox = new HelpBox(
+ "Play with data binding values for the selected RiveWidget while in Play Mode. " +
+ "Changes are applied to the widget's current ViewModel instance.",
+ HelpBoxMessageType.Info);
+
+ m_playModeHelpBox.style.marginBottom = 10;
+ root.Add(m_playModeHelpBox);
+
+ m_widgetField = new ObjectField("Widget")
+ {
+ objectType = typeof(RiveWidget),
+ allowSceneObjects = true
+ };
+ m_widgetField.RegisterValueChangedCallback(evt =>
+ {
+ SetTarget(evt.newValue as RiveWidget);
+ });
+ root.Add(m_widgetField);
+
+ m_interactiveContainer = new VisualElement();
+ m_interactiveContainer.style.flexDirection = FlexDirection.Column;
+ m_interactiveContainer.style.flexGrow = 1;
+ root.Add(m_interactiveContainer);
+
+ m_propertiesScroll = new ScrollView
+ {
+ style =
+ {
+ flexGrow = 1
+ }
+ };
+ m_interactiveContainer.Add(m_propertiesScroll);
+
+ UpdateVisibility();
+ }
+
+ private void SetTarget(RiveWidget widget)
+ {
+ m_widget = widget;
+ m_widgetField?.SetValueWithoutNotify(widget);
+ RefreshMetadata();
+ RebuildProperties();
+ UpdateVisibility();
+ RefreshValues();
+ }
+
+ private void RefreshMetadata()
+ {
+ m_fileMetadata = m_widget?.Asset?.EditorOnlyMetadata;
+ m_artboardMetadata = null;
+
+ if (m_fileMetadata == null)
+ {
+ return;
+ }
+
+ var artboardName = !string.IsNullOrEmpty(m_widget?.ArtboardName)
+ ? m_widget.ArtboardName
+ : m_fileMetadata.GetArtboardNames().FirstOrDefault();
+
+ if (!string.IsNullOrEmpty(artboardName))
+ {
+ m_artboardMetadata = m_fileMetadata.GetArtboard(artboardName);
+ }
+ }
+
+ private void RebuildProperties()
+ {
+ ClearTriggerBindings();
+ m_propertyBindings.Clear();
+ m_listBindings.Clear();
+ m_viewModelExpansion.Clear();
+ m_propertiesScroll.Clear();
+
+ if (m_widget == null)
+ {
+ m_propertiesScroll.Add(new Label("Select a RiveWidget to get started."));
+ return;
+ }
+
+ if (m_artboardMetadata == null)
+ {
+ m_propertiesScroll.Add(new HelpBox("No artboard metadata found for the selected widget.", HelpBoxMessageType.Warning));
+ return;
+ }
+
+ if (m_artboardMetadata.DefaultViewModel == null)
+ {
+ m_propertiesScroll.Add(new HelpBox("The current artboard does not have a default ViewModel.", HelpBoxMessageType.Warning));
+ return;
+ }
+
+ BuildViewModelSection(
+ m_artboardMetadata.DefaultViewModel,
+ string.Empty,
+ m_propertiesScroll,
+ 0);
+ }
+
+ private FileMetadata.ViewModelMetadata FindViewModelMetadata(string viewModelName, FileMetadata metadataContext = null)
+ {
+ var metadata = metadataContext ?? m_fileMetadata;
+ if (metadata == null || string.IsNullOrEmpty(viewModelName))
+ {
+ return null;
+ }
+
+ return metadata.ViewModels.FirstOrDefault(vm => vm.Name == viewModelName);
+ }
+
+ private List GetEnumOptions(FileMetadata.ViewModelPropertyMetadata property, FileMetadata metadataContext = null)
+ {
+ var metadata = metadataContext ?? m_fileMetadata;
+ if (metadata == null || metadata.Enums == null || string.IsNullOrEmpty(property.EnumTypeName))
+ {
+ return null;
+ }
+
+ var enumMeta = metadata.Enums.FirstOrDefault(e => e.Name == property.EnumTypeName);
+ return enumMeta?.Values?.ToList();
+ }
+
+ private void AddStringField(VisualElement parent, string path, string displayName, Func instanceProvider = null, string cacheKey = null, string pathLabelOverride = null, List bindingList = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ bindingList ??= m_propertyBindings;
+
+ var field = new TextField();
+ field.RegisterValueChangedCallback(evt =>
+ {
+ var instance = instanceProvider();
+ var prop = instance?.GetStringProperty(path);
+ if (prop != null)
+ {
+ prop.Value = evt.newValue;
+ }
+ });
+
+ bindingList.Add(new PropertyBinding
+ {
+ Path = cacheKey,
+ Control = field,
+ Sync = instance =>
+ {
+ var current = instanceProvider();
+ var prop = current?.GetStringProperty(path);
+ field.SetEnabled(prop != null);
+ if (prop != null)
+ {
+ field.SetValueWithoutNotify(prop.Value ?? string.Empty);
+ }
+ }
+ });
+
+ parent.Add(CreatePropertyCard(displayName, pathLabelOverride ?? path, "String", GetDocUrl(ViewModelDataType.String),
+ null, field));
+ }
+
+ private void AddNumberField(VisualElement parent, string path, string displayName, Func instanceProvider = null, string cacheKey = null, string pathLabelOverride = null, List bindingList = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ bindingList ??= m_propertyBindings;
+
+ var field = new FloatField();
+ field.RegisterValueChangedCallback(evt =>
+ {
+ var instance = instanceProvider();
+ var prop = instance?.GetNumberProperty(path);
+ if (prop != null)
+ {
+ prop.Value = evt.newValue;
+ }
+ });
+
+ bindingList.Add(new PropertyBinding
+ {
+ Path = cacheKey,
+ Control = field,
+ Sync = instance =>
+ {
+ var current = instanceProvider();
+ var prop = current?.GetNumberProperty(path);
+ field.SetEnabled(prop != null);
+ if (prop != null)
+ {
+ field.SetValueWithoutNotify(prop.Value);
+ }
+ }
+ });
+
+ parent.Add(CreatePropertyCard(displayName, pathLabelOverride ?? path, "Number", GetDocUrl(ViewModelDataType.Number),
+ null, field));
+ }
+
+ private void AddBooleanField(VisualElement parent, string path, string displayName, Func instanceProvider = null, string cacheKey = null, string pathLabelOverride = null, List bindingList = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ bindingList ??= m_propertyBindings;
+
+ var toggle = new Toggle();
+ toggle.RegisterValueChangedCallback(evt =>
+ {
+ var instance = instanceProvider();
+ var prop = instance?.GetBooleanProperty(path);
+ if (prop != null)
+ {
+ prop.Value = evt.newValue;
+ }
+ });
+
+ bindingList.Add(new PropertyBinding
+ {
+ Path = cacheKey,
+ Control = toggle,
+ Sync = instance =>
+ {
+ var current = instanceProvider();
+ var prop = current?.GetBooleanProperty(path);
+ toggle.SetEnabled(prop != null);
+ if (prop != null)
+ {
+ toggle.SetValueWithoutNotify(prop.Value);
+ }
+ }
+ });
+
+ parent.Add(CreatePropertyCard(displayName, pathLabelOverride ?? path, "Boolean", GetDocUrl(ViewModelDataType.Boolean),
+ null, toggle));
+ }
+
+ private void AddColorField(VisualElement parent, string path, string displayName, Func instanceProvider = null, string cacheKey = null, string pathLabelOverride = null, List bindingList = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ bindingList ??= m_propertyBindings;
+
+ var field = new ColorField();
+ field.RegisterValueChangedCallback(evt =>
+ {
+ var instance = instanceProvider();
+ var prop = instance?.GetColorProperty(path);
+ if (prop != null)
+ {
+ prop.Value = evt.newValue;
+ }
+ });
+
+ bindingList.Add(new PropertyBinding
+ {
+ Path = cacheKey,
+ Control = field,
+ Sync = instance =>
+ {
+ var current = instanceProvider();
+ var prop = current?.GetColorProperty(path);
+ field.SetEnabled(prop != null);
+ if (prop != null)
+ {
+ field.SetValueWithoutNotify(prop.Value);
+ }
+ }
+ });
+
+ parent.Add(CreatePropertyCard(displayName, pathLabelOverride ?? path, "Color", GetDocUrl(ViewModelDataType.Color),
+ null, field));
+ }
+
+ private void AddImageField(VisualElement parent, string path, string displayName, Func instanceProvider = null, string cacheKey = null, string pathLabelOverride = null, List bindingList = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ bindingList ??= m_propertyBindings;
+
+ var field = new ObjectField
+ {
+ objectType = typeof(ImageOutOfBandAsset),
+ allowSceneObjects = false
+ };
+
+ field.RegisterValueChangedCallback(evt =>
+ {
+ var instance = instanceProvider();
+ var prop = instance?.GetImageProperty(path);
+ if (prop == null)
+ {
+ return;
+ }
+
+ var asset = evt.newValue as ImageOutOfBandAsset;
+ if (asset == null)
+ {
+ m_imageSelectionCache[cacheKey] = null;
+ prop.Value = null;
+ return;
+ }
+
+ m_imageSelectionCache[cacheKey] = asset;
+ asset.Load();
+ prop.Value = asset;
+ asset.Unload();
+ });
+
+ bindingList.Add(new PropertyBinding
+ {
+ Path = cacheKey,
+ Control = field,
+ Sync = instance =>
+ {
+ var current = instanceProvider();
+ var prop = current?.GetImageProperty(path);
+ field.SetEnabled(prop != null);
+ // Reflect cached selection for UX (no getter available from runtime)
+ if (m_imageSelectionCache.TryGetValue(cacheKey, out var cached))
+ {
+ field.SetValueWithoutNotify(cached);
+ }
+ else
+ {
+ field.SetValueWithoutNotify(null);
+ }
+ }
+ });
+
+ parent.Add(CreatePropertyCard(displayName, pathLabelOverride ?? path, "Image", GetDocUrl(ViewModelDataType.AssetImage),
+ null, field));
+ }
+
+ private void AddEnumField(VisualElement parent, string path, FileMetadata.ViewModelPropertyMetadata property, Func instanceProvider = null, string cacheKey = null, string pathLabelOverride = null, List bindingList = null, FileMetadata metadataContext = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ bindingList ??= m_propertyBindings;
+
+ var options = GetEnumOptions(property, metadataContext) ?? new List();
+ var defaultOption = options.Count > 0 ? options[0] : string.Empty;
+ var popup = new PopupField(null, options, defaultOption);
+
+ popup.RegisterValueChangedCallback(evt =>
+ {
+ if (string.IsNullOrEmpty(evt.newValue))
+ {
+ return;
+ }
+
+ var instance = instanceProvider();
+ var prop = instance?.GetEnumProperty(path);
+ if (prop != null)
+ {
+ prop.Value = evt.newValue;
+ }
+ });
+
+ bindingList.Add(new PropertyBinding
+ {
+ Path = cacheKey,
+ Control = popup,
+ Sync = instance =>
+ {
+ var currentInstance = instanceProvider();
+ var prop = currentInstance?.GetEnumProperty(path);
+ bool hasProp = prop != null;
+ popup.SetEnabled(hasProp && popup.choices.Count > 0);
+
+ if (!hasProp)
+ {
+ return;
+ }
+
+ var currentValue = prop.Value;
+ if (!options.Contains(currentValue))
+ {
+ options = prop.EnumValues?.Where(v => !string.IsNullOrEmpty(v)).ToList() ?? options;
+ popup.choices = options;
+ popup.SetEnabled(options.Count > 0);
+ }
+
+ if (!string.IsNullOrEmpty(currentValue) && options.Contains(currentValue))
+ {
+ popup.SetValueWithoutNotify(currentValue);
+ }
+ else if (options.Count > 0)
+ {
+ popup.SetValueWithoutNotify(options[0]);
+ }
+ }
+ });
+
+ parent.Add(CreatePropertyCard(property.Name, pathLabelOverride ?? path, $"Enum ({property.EnumTypeName})", GetDocUrl(ViewModelDataType.Enum),
+ null, popup));
+ }
+
+ private ArtboardSelection GetOrCreateArtboardSelection(string path)
+ {
+ if (!m_artboardSelectionCache.TryGetValue(path, out var selection))
+ {
+ selection = new ArtboardSelection();
+ m_artboardSelectionCache[path] = selection;
+ }
+ return selection;
+ }
+
+ private void DisposeArtboardSelection(string path)
+ {
+ if (m_artboardSelectionCache.TryGetValue(path, out var selection))
+ {
+ selection.DisposeAll();
+ }
+ }
+
+ private void AddArtboardField(VisualElement parent, string path, string displayName, Func instanceProvider = null, string cacheKey = null, string pathLabelOverride = null, List bindingList = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ bindingList ??= m_propertyBindings;
+
+ var selection = GetOrCreateArtboardSelection(cacheKey);
+
+ var assetField = new ObjectField
+ {
+ objectType = typeof(Asset),
+ allowSceneObjects = false,
+ label = "Rive File",
+ tooltip = "Select the Rive file containing the desired artboard to bind"
+ };
+
+ assetField.style.marginLeft = 0;
+
+
+ var artboardDropdown = new DropdownField
+ {
+ choices = new List(),
+ label = "Artboard",
+ tooltip = "Select the artboard to bind from the selected Rive file",
+ value = null
+ };
+
+ artboardDropdown.style.marginLeft = 0;
+
+ var vmBindingModeOptions = new List { "Use Existing Instance", "New Instance" };
+ var vmBindingModeDropdown = new DropdownField(
+ "View Model Binding",
+ vmBindingModeOptions,
+ vmBindingModeOptions[(int)selection.ViewModelBindingMode])
+ {
+ tooltip = "Select whether to bind using a named instance from the selected artboard's default ViewModel or create a new instance"
+ };
+ vmBindingModeDropdown.style.marginLeft = 0;
+ vmBindingModeDropdown.style.display = DisplayStyle.None;
+
+ var vmInstanceDropdown = new DropdownField
+ {
+ choices = new List(),
+ label = "Instance",
+ tooltip = "Select a named instance from the artboard's default ViewModel",
+ value = null
+ };
+ vmInstanceDropdown.style.marginLeft = 0;
+ vmInstanceDropdown.style.display = DisplayStyle.None;
+
+ var vmHintHelpBox = new HelpBox(string.Empty, HelpBoxMessageType.Info);
+ vmHintHelpBox.style.display = DisplayStyle.None;
+ vmHintHelpBox.style.marginTop = 4;
+
+ var customVmContainer = new VisualElement();
+ customVmContainer.style.flexDirection = FlexDirection.Column;
+ customVmContainer.style.display = DisplayStyle.None;
+ customVmContainer.style.marginTop = 6;
+
+ FileMetadata.ArtboardMetadata GetSelectedArtboardMetadata()
+ {
+ var metadata = selection.Asset?.EditorOnlyMetadata;
+ if (metadata == null || string.IsNullOrEmpty(selection.ArtboardName))
+ {
+ return null;
+ }
+
+ return metadata.GetArtboard(selection.ArtboardName);
+ }
+
+ FileMetadata.ViewModelMetadata GetDefaultViewModelMetadata()
+ {
+ return GetSelectedArtboardMetadata()?.DefaultViewModel;
+ }
+
+ ViewModel GetDefaultViewModelFromFile()
+ {
+ var vmMeta = GetDefaultViewModelMetadata();
+ if (selection.File == null || vmMeta == null || string.IsNullOrEmpty(vmMeta.Name))
+ {
+ return null;
+ }
+
+ return selection.File.GetViewModelByName(vmMeta.Name);
+ }
+
+ void EnsureCustomViewModelInstance()
+ {
+ if (selection.CustomViewModelInstance != null)
+ {
+ return;
+ }
+
+ var defaultVm = GetDefaultViewModelFromFile();
+ if (defaultVm == null)
+ {
+ return;
+ }
+
+ selection.CustomViewModelInstance = defaultVm.CreateInstance();
+ }
+
+ void RebuildCustomInstanceEditor()
+ {
+ selection.CustomBindings.Clear();
+ selection.CustomListBindings.Clear();
+ customVmContainer.Clear();
+
+ var defaultVmMeta = GetDefaultViewModelMetadata();
+ if (defaultVmMeta == null || selection.CustomViewModelInstance == null)
+ {
+ return;
+ }
+
+ BuildViewModelSection(
+ defaultVmMeta,
+ string.Empty,
+ customVmContainer,
+ 0,
+ () => selection.CustomViewModelInstance,
+ displayPathPrefix: "custom-instance",
+ cachePathPrefix: $"{cacheKey}/custom-instance",
+ bindingList: selection.CustomBindings,
+ listBindingList: selection.CustomListBindings,
+ metadataContext: selection.Asset?.EditorOnlyMetadata,
+ viewModelResolver: name => string.IsNullOrEmpty(name) ? null : selection.File?.GetViewModelByName(name));
+ }
+
+ void ApplySelectionToProperty()
+ {
+ var instance = instanceProvider();
+ var prop = instance?.GetArtboardProperty(path);
+ if (prop == null)
+ {
+ return;
+ }
+
+ if (selection.File == null || string.IsNullOrEmpty(selection.ArtboardName))
+ {
+ prop.Value = null;
+ return;
+ }
+
+ BindableArtboard bindable = null;
+ var defaultVmMeta = GetDefaultViewModelMetadata();
+ bool hasDefaultVm = defaultVmMeta != null && !string.IsNullOrEmpty(defaultVmMeta.Name);
+
+ if (hasDefaultVm)
+ {
+ ViewModelInstance targetInstance = null;
+ if (selection.ViewModelBindingMode == ArtboardViewModelBindingMode.ExistingInstance)
+ {
+ var vm = GetDefaultViewModelFromFile();
+ if (vm != null && !string.IsNullOrEmpty(selection.ExistingViewModelInstanceName))
+ {
+ targetInstance = vm.CreateInstanceByName(selection.ExistingViewModelInstanceName);
+ }
+ }
+ else
+ {
+ EnsureCustomViewModelInstance();
+ targetInstance = selection.CustomViewModelInstance;
+ }
+
+ bindable = selection.File.BindableArtboard(selection.ArtboardName, targetInstance);
+ }
+ else
+ {
+ bindable = selection.File.BindableArtboard(selection.ArtboardName);
+ }
+
+ if (bindable != null)
+ {
+ prop.Value = bindable;
+ }
+ }
+
+ void RefreshViewModelControls()
+ {
+ var defaultVmMeta = GetDefaultViewModelMetadata();
+ bool hasDefaultVm = defaultVmMeta != null && !string.IsNullOrEmpty(defaultVmMeta.Name);
+
+ vmBindingModeDropdown.style.display = hasDefaultVm ? DisplayStyle.Flex : DisplayStyle.None;
+ vmHintHelpBox.style.display = hasDefaultVm ? DisplayStyle.None : (selection.Asset == null ? DisplayStyle.None : DisplayStyle.Flex);
+ vmHintHelpBox.text = "This artboard doesn't support databinding.";
+
+ if (!hasDefaultVm)
+ {
+ vmInstanceDropdown.style.display = DisplayStyle.None;
+ customVmContainer.style.display = DisplayStyle.None;
+ selection.ExistingViewModelInstanceName = null;
+ selection.DisposeCustomViewModelInstance();
+ return;
+ }
+
+ var instanceNames = defaultVmMeta.InstanceNames ?? new List();
+ vmInstanceDropdown.choices = instanceNames.ToList();
+
+ if (!string.IsNullOrEmpty(selection.ExistingViewModelInstanceName) &&
+ vmInstanceDropdown.choices.Contains(selection.ExistingViewModelInstanceName))
+ {
+ vmInstanceDropdown.SetValueWithoutNotify(selection.ExistingViewModelInstanceName);
+ }
+ else
+ {
+ selection.ExistingViewModelInstanceName = vmInstanceDropdown.choices.FirstOrDefault();
+ vmInstanceDropdown.SetValueWithoutNotify(selection.ExistingViewModelInstanceName);
+ }
+
+ vmBindingModeDropdown.SetValueWithoutNotify(vmBindingModeOptions[(int)selection.ViewModelBindingMode]);
+ bool isExistingMode = selection.ViewModelBindingMode == ArtboardViewModelBindingMode.ExistingInstance;
+ vmInstanceDropdown.style.display = isExistingMode ? DisplayStyle.Flex : DisplayStyle.None;
+ vmInstanceDropdown.SetEnabled(isExistingMode && vmInstanceDropdown.choices.Count > 0);
+
+ if (isExistingMode)
+ {
+ customVmContainer.style.display = DisplayStyle.None;
+ }
+ else
+ {
+ EnsureCustomViewModelInstance();
+ if (customVmContainer.childCount == 0)
+ {
+ RebuildCustomInstanceEditor();
+ }
+ customVmContainer.style.display = selection.CustomViewModelInstance != null
+ ? DisplayStyle.Flex
+ : DisplayStyle.None;
+ }
+ }
+
+ void PopulateArtboards(Asset asset)
+ {
+ artboardDropdown.choices = new List();
+ artboardDropdown.value = null;
+ selection.ArtboardName = null;
+ artboardDropdown.style.display = asset == null ? DisplayStyle.None : DisplayStyle.Flex;
+
+ if (asset == null)
+ {
+ return;
+ }
+
+ var names = asset.EditorOnlyMetadata?.GetArtboardNames() ?? Array.Empty();
+ artboardDropdown.choices = names.ToList();
+
+ if (names.Length > 0)
+ {
+ var chosenArtboard = selection.ArtboardName;
+ if (string.IsNullOrEmpty(chosenArtboard) || !names.Contains(chosenArtboard))
+ {
+ chosenArtboard = names[0];
+ }
+ selection.ArtboardName = chosenArtboard;
+ artboardDropdown.value = chosenArtboard;
+ }
+ }
+
+ assetField.RegisterValueChangedCallback(evt =>
+ {
+ var newAsset = evt.newValue as Asset;
+ if (!ReferenceEquals(selection.Asset, newAsset))
+ {
+ DisposeArtboardSelection(cacheKey);
+ selection.Asset = newAsset;
+ selection.File = null;
+ selection.ArtboardName = null;
+ }
+
+ PopulateArtboards(newAsset);
+
+ if (newAsset != null)
+ {
+ selection.File = File.Load(newAsset);
+ }
+
+ RefreshViewModelControls();
+ ApplySelectionToProperty();
+ });
+
+ artboardDropdown.RegisterValueChangedCallback(evt =>
+ {
+ selection.ArtboardName = evt.newValue;
+ selection.DisposeCustomViewModelInstance();
+ customVmContainer.Clear();
+ RefreshViewModelControls();
+ ApplySelectionToProperty();
+ });
+
+ vmBindingModeDropdown.RegisterValueChangedCallback(evt =>
+ {
+ selection.ViewModelBindingMode = evt.newValue == vmBindingModeOptions[(int)ArtboardViewModelBindingMode.CreateNewInstance]
+ ? ArtboardViewModelBindingMode.CreateNewInstance
+ : ArtboardViewModelBindingMode.ExistingInstance;
+
+ if (selection.ViewModelBindingMode == ArtboardViewModelBindingMode.CreateNewInstance)
+ {
+ selection.DisposeCustomViewModelInstance();
+ customVmContainer.Clear();
+ }
+
+ RefreshViewModelControls();
+ ApplySelectionToProperty();
+ });
+
+ vmInstanceDropdown.RegisterValueChangedCallback(evt =>
+ {
+ selection.ExistingViewModelInstanceName = evt.newValue;
+ ApplySelectionToProperty();
+ });
+
+ bindingList.Add(new PropertyBinding
+ {
+ Path = cacheKey,
+ Control = artboardDropdown,
+ Sync = instance =>
+ {
+ var current = instanceProvider();
+ var prop = current?.GetArtboardProperty(path);
+ bool hasProp = prop != null;
+ assetField.SetEnabled(hasProp);
+ artboardDropdown.SetEnabled(hasProp && selection.Asset != null);
+ vmBindingModeDropdown.SetEnabled(hasProp);
+ artboardDropdown.style.display = selection.Asset == null ? DisplayStyle.None : DisplayStyle.Flex;
+
+ if (assetField.value != selection.Asset)
+ {
+ assetField.SetValueWithoutNotify(selection.Asset);
+ }
+
+ // Ensure file is loaded if we have an asset but no file yet
+ if (hasProp && selection.Asset != null && selection.File == null)
+ {
+ selection.File = File.Load(selection.Asset);
+ }
+
+ // Populate dropdown if empty but we have asset metadata
+ if (artboardDropdown.choices.Count == 0 && selection.Asset != null)
+ {
+ PopulateArtboards(selection.Asset);
+ }
+
+ // Keep dropdown selection in sync with cached choice
+ if (selection.ArtboardName != null && artboardDropdown.value != selection.ArtboardName)
+ {
+ artboardDropdown.SetValueWithoutNotify(selection.ArtboardName);
+ }
+
+ RefreshViewModelControls();
+ foreach (var customBinding in selection.CustomBindings)
+ {
+ customBinding.Sync?.Invoke(selection.CustomViewModelInstance);
+ }
+ foreach (var customListBinding in selection.CustomListBindings)
+ {
+ customListBinding.Sync?.Invoke(selection.CustomViewModelInstance);
+ }
+ }
+ });
+
+ var container = new VisualElement();
+ container.style.flexDirection = FlexDirection.Column;
+ container.Add(assetField);
+ container.Add(artboardDropdown);
+ container.Add(vmBindingModeDropdown);
+ container.Add(vmInstanceDropdown);
+ container.Add(vmHintHelpBox);
+ container.Add(customVmContainer);
+
+ parent.Add(CreatePropertyCard(displayName, pathLabelOverride ?? path, "Artboard", GetDocUrl(ViewModelDataType.Artboard),
+ null, container));
+ }
+
+ private void AddTriggerField(VisualElement parent, string path, string displayName, Func instanceProvider = null, string cacheKey = null, string pathLabelOverride = null, List bindingList = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ bindingList ??= m_propertyBindings;
+ ViewModelInstanceTriggerProperty subscribedProp = null;
+ double lastTriggeredAt = -1d;
+
+ var button = new Button(() =>
+ {
+ var instance = instanceProvider();
+ var prop = instance?.GetTriggerProperty(path);
+ prop?.Trigger();
+ })
+ {
+ text = $"Fire Trigger"
+ };
+
+ var statusLabel = new Label("Fired");
+ statusLabel.style.unityTextAlign = TextAnchor.MiddleCenter;
+ statusLabel.style.paddingLeft = 8;
+ statusLabel.style.paddingRight = 8;
+ statusLabel.style.paddingTop = 2;
+ statusLabel.style.paddingBottom = 2;
+ statusLabel.style.marginLeft = 8;
+ statusLabel.style.borderTopLeftRadius = 4;
+ statusLabel.style.borderTopRightRadius = 4;
+ statusLabel.style.borderBottomLeftRadius = 4;
+ statusLabel.style.borderBottomRightRadius = 4;
+ statusLabel.style.display = DisplayStyle.None;
+
+ Action onTriggered = () =>
+ {
+ lastTriggeredAt = EditorApplication.timeSinceStartup;
+ statusLabel.text = "Fired";
+ statusLabel.style.color = new UnityEngine.Color(0.12f, 0.95f, 0.45f, 1f);
+ statusLabel.style.backgroundColor = new UnityEngine.Color(0.1f, 0.35f, 0.18f, 0.55f);
+ statusLabel.style.display = DisplayStyle.Flex;
+ };
+
+ void UpdateTriggerStatus(bool hasProp)
+ {
+ if (!hasProp)
+ {
+ statusLabel.style.display = DisplayStyle.None;
+ return;
+ }
+
+ bool recentlyFired = lastTriggeredAt >= 0d &&
+ EditorApplication.timeSinceStartup - lastTriggeredAt <= TriggerFiredHighlightSeconds;
+ statusLabel.style.display = recentlyFired ? DisplayStyle.Flex : DisplayStyle.None;
+ }
+
+ void DisposeSubscription()
+ {
+ if (subscribedProp != null)
+ {
+ subscribedProp.OnTriggered -= onTriggered;
+ subscribedProp = null;
+ }
+ }
+
+ m_triggerBindingDisposers.Add(DisposeSubscription);
+
+ bindingList.Add(new PropertyBinding
+ {
+ Path = cacheKey,
+ Control = button,
+ Sync = instance =>
+ {
+ var current = instanceProvider();
+ var prop = current?.GetTriggerProperty(path);
+ button.SetEnabled(prop != null);
+
+ if (!ReferenceEquals(subscribedProp, prop))
+ {
+ DisposeSubscription();
+ subscribedProp = prop;
+ if (subscribedProp != null)
+ {
+ subscribedProp.OnTriggered += onTriggered;
+ }
+ }
+
+ UpdateTriggerStatus(prop != null);
+ }
+ });
+
+ var triggerControlRow = new VisualElement();
+ triggerControlRow.style.flexDirection = FlexDirection.Row;
+ triggerControlRow.style.alignItems = Align.Center;
+ triggerControlRow.Add(button);
+ triggerControlRow.Add(statusLabel);
+
+ parent.Add(CreatePropertyCard(displayName, pathLabelOverride ?? path, "Trigger", GetDocUrl(ViewModelDataType.Trigger),
+ null, triggerControlRow));
+ }
+
+ private void ClearTriggerBindings()
+ {
+ foreach (var dispose in m_triggerBindingDisposers)
+ {
+ dispose?.Invoke();
+ }
+ m_triggerBindingDisposers.Clear();
+ }
+
+ private void AddListField(
+ VisualElement parent,
+ string path,
+ string displayName,
+ Func instanceProvider = null,
+ string cacheKey = null,
+ string pathLabelOverride = null,
+ List listBindingList = null,
+ FileMetadata metadataContext = null,
+ Func viewModelResolver = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ cacheKey ??= path;
+ listBindingList ??= m_listBindings;
+ metadataContext ??= m_fileMetadata;
+ viewModelResolver ??= name => string.IsNullOrEmpty(name) ? null : m_widget?.File?.GetViewModelByName(name);
+
+ var listContainer = new VisualElement();
+ listContainer.style.flexDirection = FlexDirection.Column;
+
+ var vmNames = metadataContext?.ViewModels?
+ .Select(vm => vm.Name)
+ .Where(n => !string.IsNullOrEmpty(n))
+ .Distinct()
+ .ToList() ?? new List();
+
+ var typeRow = new VisualElement { style = { flexDirection = FlexDirection.Row, alignItems = Align.Center } };
+ var initialType = vmNames.FirstOrDefault();
+ var typeDropdown = new DropdownField("New Item Type", vmNames, initialType)
+ {
+ tooltip = "Select the ViewModel type for newly added list items"
+ };
+
+ typeDropdown.style.flexGrow = 1;
+ typeDropdown.style.flexShrink = 1;
+ typeDropdown.style.marginRight = 6;
+ typeDropdown.style.marginBottom = 6;
+
+
+ typeRow.Add(typeDropdown);
+ typeRow.style.marginBottom = 4;
+ listContainer.Add(typeRow);
+
+ var itemBindings = new Dictionary>();
+
+ ViewModelInstance CreateInstanceForList()
+ {
+ string targetType = typeDropdown.value;
+ var listProp = instanceProvider()?.GetListProperty(path);
+ if (string.IsNullOrEmpty(targetType))
+ {
+ targetType = listProp?.Count > 0 ? listProp.GetInstanceAt(0)?.ViewModelName : null;
+ }
+
+ var vm = !string.IsNullOrEmpty(targetType) ? viewModelResolver(targetType) : null;
+ return vm?.CreateInstance();
+ }
+
+ var listView = new ListView
+ {
+ reorderable = true,
+ showAddRemoveFooter = true,
+ virtualizationMethod = CollectionVirtualizationMethod.DynamicHeight,
+ selectionType = SelectionType.Single
+ };
+ listView.style.flexGrow = 1;
+ listView.style.minHeight = 80;
+
+ // Adapter that proxies directly to the live list property to avoid stale counts
+ var listAdapter = new ListPropertyAdapter(
+ () => instanceProvider()?.GetListProperty(path),
+ CreateInstanceForList);
+ listView.itemsSource = listAdapter;
+
+ listView.makeItem = () =>
+ {
+ var root = new VisualElement();
+ root.style.flexDirection = FlexDirection.Column;
+ root.style.paddingTop = 6;
+ root.style.paddingBottom = 6;
+ root.style.paddingLeft = 4;
+ root.style.paddingRight = 4;
+ root.style.borderBottomWidth = 1;
+ root.style.borderBottomColor = new UnityEngine.Color(0.25f, 0.25f, 0.25f, 0.25f);
+ return root;
+ };
+
+ listView.bindItem = (element, index) =>
+ {
+ element.Clear();
+ var bindings = new List();
+ itemBindings[index] = bindings;
+
+ var listProp = instanceProvider()?.GetListProperty(path);
+ var instance = (listProp != null && index >= 0 && index < listProp.Count) ? listProp.GetInstanceAt(index) : null;
+
+ var header = new VisualElement { style = { flexDirection = FlexDirection.Row, alignItems = Align.Center } };
+ var title = new Label(instance?.ViewModelName ?? "Item");
+ title.style.unityFontStyleAndWeight = FontStyle.Bold;
+ title.style.flexGrow = 1;
+ //header.Add(title);
+ element.Add(header);
+
+ if (instance == null)
+ {
+ element.Add(new HelpBox("List item is null.", HelpBoxMessageType.Warning));
+ return;
+ }
+
+ var meta = FindViewModelMetadata(instance.ViewModelName, metadataContext);
+ if (meta == null)
+ {
+ element.Add(new HelpBox($"No metadata found for '{instance.ViewModelName}'.", HelpBoxMessageType.Warning));
+ return;
+ }
+
+ BuildViewModelSection(meta, string.Empty, element, 1, () => instance, $"{path}[{index}]", $"{path}[{index}]",
+ bindings, null, metadataContext, viewModelResolver);
+ };
+
+ listContainer.Add(listView);
+
+ var listBinding = new ListPropertyBinding
+ {
+ Path = cacheKey,
+ Control = listContainer,
+ };
+
+ listBinding.Sync = _ =>
+ {
+ var listProp = instanceProvider()?.GetListProperty(path);
+ bool hasProp = listProp != null;
+ listView.SetEnabled(hasProp);
+ typeDropdown.SetEnabled(hasProp);
+
+ if (!hasProp)
+ {
+ itemBindings.Clear();
+ listView.itemsSource = listAdapter;
+ listView.Rebuild();
+ listView.ClearSelection();
+ listBinding.LastItems.Clear();
+ listBinding.InitializedTypeSelection = false;
+ return;
+ }
+
+ // Detect structural changes to avoid unnecessary rebuilds that steal focus
+ var currentItems = new List(listProp.Count);
+ for (int i = 0; i < listProp.Count; i++)
+ {
+ currentItems.Add(listProp.GetInstanceAt(i));
+ }
+
+ bool structureChanged = currentItems.Count != listBinding.LastItems.Count;
+ if (!structureChanged)
+ {
+ for (int i = 0; i < currentItems.Count; i++)
+ {
+ if (!ReferenceEquals(currentItems[i], listBinding.LastItems[i]))
+ {
+ structureChanged = true;
+ break;
+ }
+ }
+ }
+
+ if (structureChanged)
+ {
+ itemBindings.Clear();
+ listView.itemsSource = listAdapter;
+ listView.Rebuild();
+ listView.ClearSelection();
+ listBinding.LastItems = currentItems;
+ }
+ else
+ {
+ listBinding.LastItems = currentItems;
+ if (listView.selectedIndex >= listProp.Count)
+ {
+ listView.ClearSelection();
+ }
+ }
+
+
+ string inferred = listProp.Count > 0 ? listProp.GetInstanceAt(0)?.ViewModelName : null;
+
+ if (!listBinding.InitializedTypeSelection)
+ {
+ if (!string.IsNullOrEmpty(inferred) && typeDropdown.choices.Contains(inferred))
+ {
+ typeDropdown.SetValueWithoutNotify(inferred);
+ }
+ else if (string.IsNullOrEmpty(typeDropdown.value) && typeDropdown.choices.Count > 0)
+ {
+ typeDropdown.SetValueWithoutNotify(typeDropdown.choices[0]);
+ }
+
+ listBinding.InitializedTypeSelection = true;
+ }
+ else
+ {
+ bool selectionMissing = string.IsNullOrEmpty(typeDropdown.value) || !typeDropdown.choices.Contains(typeDropdown.value);
+ if (selectionMissing && !string.IsNullOrEmpty(inferred) && typeDropdown.choices.Contains(inferred))
+ {
+ typeDropdown.SetValueWithoutNotify(inferred);
+ }
+ }
+
+ foreach (var kvp in itemBindings)
+ {
+ var idx = kvp.Key;
+ if (idx < 0 || idx >= listProp.Count)
+ {
+ continue;
+ }
+
+ var instance = listProp.GetInstanceAt(idx);
+ foreach (var binding in kvp.Value)
+ {
+ binding.Sync?.Invoke(instance);
+ }
+ }
+ };
+
+ listBindingList.Add(listBinding);
+
+ parent.Add(CreatePropertyCard(displayName, pathLabelOverride ?? path, "List", GetDocUrl(ViewModelDataType.List),
+ null, listContainer, false));
+ }
+
+ private void AddUnsupportedLabel(VisualElement parent, string name, ViewModelDataType type)
+ {
+ var label = new Label($"This property type is not configurable in the playground.");
+ label.style.color = new UnityEngine.Color(0.7f, 0.7f, 0.7f);
+ parent.Add(CreatePropertyCard(name, name, type.ToString(), GetDocUrl(type),
+ null, label));
+ }
+
+ private void RefreshValues()
+ {
+ if (m_isRefreshing)
+ {
+ return;
+ }
+
+ m_isRefreshing = true;
+ var instance = GetCurrentInstance();
+ try
+ {
+ foreach (var binding in m_propertyBindings.ToList())
+ {
+ binding.Sync?.Invoke(instance);
+ }
+
+ foreach (var listBinding in m_listBindings.ToList())
+ {
+ listBinding.Sync?.Invoke(instance);
+ }
+ }
+ finally
+ {
+ m_isRefreshing = false;
+ }
+ }
+
+ private void UpdateVisibility()
+ {
+ string message;
+ var state = GetPlaygroundState(out message);
+ bool ready = state == PlaygroundState.Ready;
+
+ if (m_playModeHelpBox != null)
+ {
+ m_playModeHelpBox.text = message;
+ m_playModeHelpBox.style.display = ready ? DisplayStyle.None : DisplayStyle.Flex;
+ }
+
+ if (m_widgetField != null)
+ {
+ // Only show the widget selector while in Play Mode
+ m_widgetField.style.display = EditorApplication.isPlaying ? DisplayStyle.Flex : DisplayStyle.None;
+ }
+
+ if (m_interactiveContainer != null)
+ {
+ m_interactiveContainer.style.display = ready ? DisplayStyle.Flex : DisplayStyle.None;
+ }
+ }
+
+ private PlaygroundState GetPlaygroundState(out string message)
+ {
+ if (!EditorApplication.isPlaying)
+ {
+ message = "Enter Play Mode to update values in the widget.";
+ return PlaygroundState.NotPlaying;
+ }
+
+ if (m_widget == null)
+ {
+ message = "Select a RiveWidget to get started.";
+ return PlaygroundState.NoWidget;
+ }
+
+ if (m_fileMetadata == null)
+ {
+ message = "Selected Rive file has no metadata yet. Reimport or select a Rive asset.";
+ return PlaygroundState.NoFileMetadata;
+ }
+
+ if (m_fileMetadata.ViewModels == null || m_fileMetadata.ViewModels.Count == 0)
+ {
+ message = "This Rive file has no ViewModels. Add data binding in the Rive Editor to use the playground.";
+ return PlaygroundState.NoViewModels;
+ }
+
+ if (m_artboardMetadata == null)
+ {
+ message = "No artboard metadata found for the selected widget.";
+ return PlaygroundState.NoArtboardMetadata;
+ }
+
+ if (m_artboardMetadata.DefaultViewModel == null)
+ {
+ message = "The current artboard has no default ViewModel.";
+ return PlaygroundState.NoDefaultViewModel;
+ }
+
+ if (m_widget.Status != WidgetStatus.Loaded || m_widget.StateMachine == null)
+ {
+ message = "Widget is not loaded yet.";
+ return PlaygroundState.WidgetNotLoaded;
+ }
+
+ if (m_widget.StateMachine.ViewModelInstance == null)
+ {
+ message = "No ViewModel instance bound to the state machine.";
+ return PlaygroundState.NoViewModelInstance;
+ }
+
+ message = string.Empty;
+ return PlaygroundState.Ready;
+ }
+
+ private Button CreateMoreActionsButton(string path, string displayName)
+ {
+ var button = new Button(() =>
+ {
+ var menu = new GenericMenu();
+ bool hasIndexPath = !string.IsNullOrEmpty(path) && path.Contains("[");
+ if (!string.IsNullOrEmpty(path) && !hasIndexPath)
+ {
+ menu.AddItem(new GUIContent("Copy Path"), false, () =>
+ {
+ EditorGUIUtility.systemCopyBuffer = path;
+ });
+ }
+ else
+ {
+ string label = hasIndexPath ? "Copy Path (not supported for list items)" : "Copy Path";
+ menu.AddDisabledItem(new GUIContent(label));
+ }
+
+ string nameOnly = !string.IsNullOrEmpty(path) ? path.Split('/').Last() : displayName;
+ menu.AddItem(new GUIContent("Copy Name"), false, () =>
+ {
+ EditorGUIUtility.systemCopyBuffer = nameOnly;
+ });
+
+ menu.ShowAsContext();
+ })
+ {
+ text = "⋮",
+ tooltip = "More actions",
+ };
+ button.style.width = 26;
+ button.style.marginLeft = 4;
+ button.style.height = 20;
+ button.style.backgroundColor = new UnityEngine.Color(0, 0, 0, 0);
+ button.style.borderLeftWidth = 0;
+ button.style.borderRightWidth = 0;
+ button.style.borderTopWidth = 0;
+ button.style.borderBottomWidth = 0;
+ button.style.fontSize = 14;
+ button.style.unityFontStyleAndWeight = FontStyle.Bold;
+
+ button.RegisterCallback(_ =>
+ {
+ button.style.backgroundColor = new UnityEngine.Color(0.345f, 0.345f, 0.345f, 0.6f);
+ });
+
+ button.RegisterCallback(_ =>
+ {
+ button.style.backgroundColor = new UnityEngine.Color(0, 0, 0, 0);
+ });
+
+ return button;
+ }
+
+ private void StyleLinkLabel(Label label, string url)
+ {
+ label.style.fontSize = 11;
+ var linkColor = new UnityEngine.Color(0.55f, 0.78f, 1f, 1f);
+ label.style.color = linkColor;
+ label.style.marginLeft = 6;
+ // We keep the border width constant to avoid layout shift; toggle only the color.
+ label.style.borderBottomWidth = 1;
+ label.style.borderBottomColor = new StyleColor(new UnityEngine.Color(0, 0, 0, 0));
+
+ label.RegisterCallback(_ =>
+ {
+ label.style.borderBottomColor = new StyleColor(linkColor);
+ });
+
+ label.RegisterCallback(_ =>
+ {
+ label.style.borderBottomColor = new StyleColor(new UnityEngine.Color(0, 0, 0, 0));
+ });
+
+ label.RegisterCallback(_ => Application.OpenURL(url));
+ }
+
+ private ViewModelInstance GetCurrentInstance()
+ {
+ return m_widget?.StateMachine?.ViewModelInstance;
+ }
+
+ private void BuildViewModelSection(
+ FileMetadata.ViewModelMetadata viewModel,
+ string accessPathPrefix,
+ VisualElement parent,
+ int depth,
+ Func instanceProvider = null,
+ string displayPathPrefix = null,
+ string cachePathPrefix = null,
+ List bindingList = null,
+ List listBindingList = null,
+ FileMetadata metadataContext = null,
+ Func viewModelResolver = null)
+ {
+ instanceProvider ??= GetCurrentInstance;
+ bindingList ??= m_propertyBindings;
+ listBindingList ??= m_listBindings;
+ metadataContext ??= m_fileMetadata;
+ viewModelResolver ??= name => string.IsNullOrEmpty(name) ? null : m_widget?.File?.GetViewModelByName(name);
+
+ string resolvedDisplayPrefix = displayPathPrefix ?? accessPathPrefix;
+ string resolvedCachePrefix = cachePathPrefix ?? accessPathPrefix;
+ string expansionKey = string.IsNullOrEmpty(resolvedCachePrefix) ? "(root)" : resolvedCachePrefix;
+
+ string vmLabel = string.IsNullOrEmpty(accessPathPrefix)
+ ? (string.IsNullOrEmpty(viewModel.Name) ? "Default ViewModel" : viewModel.Name)
+ : accessPathPrefix.Split('/').Last();
+
+ string viewModelNameLabel = string.IsNullOrEmpty(viewModel.Name) ? null : viewModel.Name;
+ string pathLabel = string.IsNullOrEmpty(resolvedDisplayPrefix) ? "(root)" : resolvedDisplayPrefix;
+ int childCount = viewModel.Properties?.Count ?? 0;
+
+ bool expanded = m_viewModelExpansion.TryGetValue(expansionKey, out var savedExpanded)
+ ? savedExpanded
+ : depth == 0;
+
+ var header = new VisualElement { style = { flexDirection = FlexDirection.Row, alignItems = Align.Center } };
+
+ var expander = new Button();
+ expander.style.width = 20;
+ expander.style.height = 20;
+ expander.style.paddingLeft = 0;
+ expander.style.paddingRight = 0;
+ expander.style.marginRight = 3;
+ expander.text = expanded ? "▾" : "▸";
+ expander.tooltip = "Expand / collapse view model";
+ expander.style.fontSize = 30;
+ expander.style.backgroundColor = new UnityEngine.Color(0, 0, 0, 0);
+ expander.style.borderLeftWidth = 0;
+ expander.style.borderRightWidth = 0;
+ expander.style.borderTopWidth = 0;
+ expander.style.borderBottomWidth = 0;
+
+ var vmName = new Label(vmLabel) { style = { unityFontStyleAndWeight = FontStyle.Bold, flexGrow = 1 } };
+
+ var vmPill = new Label(string.IsNullOrEmpty(viewModelNameLabel)
+ ? "View Model"
+ : $"View Model ({viewModelNameLabel})");
+ vmPill.style.unityTextAlign = TextAnchor.MiddleCenter;
+ vmPill.style.paddingLeft = 6;
+ vmPill.style.paddingRight = 6;
+ vmPill.style.paddingTop = 2;
+ vmPill.style.paddingBottom = 2;
+ vmPill.style.marginLeft = 4;
+ vmPill.style.borderTopLeftRadius = 4;
+ vmPill.style.borderTopRightRadius = 4;
+ vmPill.style.borderBottomLeftRadius = 4;
+ vmPill.style.borderBottomRightRadius = 4;
+ vmPill.style.backgroundColor = new UnityEngine.Color(0.25f, 0.25f, 0.35f, 0.9f);
+ vmPill.style.color = new UnityEngine.Color(0.9f, 0.9f, 1f, 1f);
+
+ var countLabel = new Label($"{childCount} properties");
+ countLabel.style.marginLeft = 6;
+ countLabel.style.fontSize = 11;
+ countLabel.style.color = new UnityEngine.Color(0.8f, 0.8f, 0.85f, 0.9f);
+
+ header.Add(expander);
+ header.Add(vmName);
+ header.Add(vmPill);
+ header.Add(countLabel);
+ header.Add(CreateMoreActionsButton(resolvedDisplayPrefix, vmLabel));
+
+
+ var container = new VisualElement();
+ container.style.marginLeft = 12;
+ container.style.marginTop = 8;
+ container.style.marginBottom = 8;
+ container.style.display = expanded ? DisplayStyle.Flex : DisplayStyle.None;
+ container.style.flexDirection = FlexDirection.Column;
+
+ foreach (var property in viewModel.Properties)
+ {
+ string propertyAccessPath = string.IsNullOrEmpty(accessPathPrefix)
+ ? property.Name
+ : $"{accessPathPrefix}/{property.Name}";
+ string propertyDisplayPath = string.IsNullOrEmpty(resolvedDisplayPrefix)
+ ? property.Name
+ : $"{resolvedDisplayPrefix}/{property.Name}";
+ string propertyCachePath = string.IsNullOrEmpty(resolvedCachePrefix)
+ ? propertyAccessPath
+ : $"{resolvedCachePrefix}/{property.Name}";
+
+ switch (property.Type)
+ {
+ case ViewModelDataType.String:
+ AddStringField(container, propertyAccessPath, property.Name, instanceProvider, propertyCachePath, propertyDisplayPath, bindingList);
+ break;
+ case ViewModelDataType.Number:
+ AddNumberField(container, propertyAccessPath, property.Name, instanceProvider, propertyCachePath, propertyDisplayPath, bindingList);
+ break;
+ case ViewModelDataType.Boolean:
+ AddBooleanField(container, propertyAccessPath, property.Name, instanceProvider, propertyCachePath, propertyDisplayPath, bindingList);
+ break;
+ case ViewModelDataType.Color:
+ AddColorField(container, propertyAccessPath, property.Name, instanceProvider, propertyCachePath, propertyDisplayPath, bindingList);
+ break;
+ case ViewModelDataType.AssetImage:
+ AddImageField(container, propertyAccessPath, property.Name, instanceProvider, propertyCachePath, propertyDisplayPath, bindingList);
+ break;
+ case ViewModelDataType.Artboard:
+ AddArtboardField(container, propertyAccessPath, property.Name, instanceProvider, propertyCachePath, propertyDisplayPath, bindingList);
+ break;
+ case ViewModelDataType.Enum:
+ AddEnumField(container, propertyAccessPath, property, instanceProvider, propertyCachePath, propertyDisplayPath, bindingList, metadataContext);
+ break;
+ case ViewModelDataType.Trigger:
+ AddTriggerField(container, propertyAccessPath, property.Name, instanceProvider, propertyCachePath, propertyDisplayPath, bindingList);
+ break;
+ case ViewModelDataType.ViewModel:
+ var nestedMeta = FindViewModelMetadata(property.NestedViewModelName, metadataContext);
+ if (nestedMeta != null)
+ {
+ BuildViewModelSection(nestedMeta, propertyAccessPath, container, depth + 1, instanceProvider, propertyDisplayPath, propertyCachePath,
+ bindingList, listBindingList, metadataContext, viewModelResolver);
+ }
+ else
+ {
+ var missingLabel = new Label($"Nested view model '{property.NestedViewModelName}' not found.");
+ missingLabel.style.color = UnityEngine.Color.yellow;
+ container.Add(missingLabel);
+ }
+ break;
+ case ViewModelDataType.List:
+ AddListField(container, propertyAccessPath, property.Name, instanceProvider, propertyCachePath, propertyDisplayPath,
+ listBindingList, metadataContext, viewModelResolver);
+ break;
+ case ViewModelDataType.ListIndex:
+ AddUnsupportedLabel(container, property.Name, property.Type);
+ break;
+ default:
+ AddUnsupportedLabel(container, property.Name, property.Type);
+ break;
+ }
+ }
+
+ void ToggleExpanded()
+ {
+ expanded = !expanded;
+ container.style.display = expanded ? DisplayStyle.Flex : DisplayStyle.None;
+ expander.text = expanded ? "▾" : "▸";
+ m_viewModelExpansion[expansionKey] = expanded;
+ }
+
+ expander.clicked += ToggleExpanded;
+
+ // wrap in a card for clarity
+ var vmCard = new VisualElement();
+ vmCard.style.marginTop = depth == 0 ? 8 : 4;
+ vmCard.style.paddingTop = 8;
+ vmCard.style.paddingBottom = 8;
+ vmCard.style.paddingLeft = 8;
+ vmCard.style.paddingRight = 8;
+ vmCard.style.borderTopWidth = 1;
+ vmCard.style.borderBottomWidth = 1;
+ vmCard.style.borderLeftWidth = 1;
+ vmCard.style.borderRightWidth = 1;
+ vmCard.style.borderTopColor = new UnityEngine.Color(0.344f, 0.344f, 0.349f, 0.5f);
+ vmCard.style.borderBottomColor = new UnityEngine.Color(0.344f, 0.344f, 0.349f, 0.5f);
+ vmCard.style.borderLeftColor = new UnityEngine.Color(0.344f, 0.344f, 0.349f, 0.5f);
+ vmCard.style.borderRightColor = new UnityEngine.Color(0.344f, 0.344f, 0.349f, 0.5f);
+ vmCard.style.backgroundColor = new UnityEngine.Color(0.145f, 0.145f, 0.152f, 0.55f);
+ vmCard.style.borderTopLeftRadius = 6;
+ vmCard.style.borderTopRightRadius = 6;
+ vmCard.style.borderBottomLeftRadius = 6;
+ vmCard.style.borderBottomRightRadius = 6;
+
+ vmCard.Add(header);
+ vmCard.Add(container);
+
+ parent.Add(vmCard);
+ }
+
+ private string GetDocUrl(ViewModelDataType type)
+ {
+ switch (type)
+ {
+ case ViewModelDataType.String:
+ return InspectorDocLinks.UnityDataBindingProperties;
+ case ViewModelDataType.Number:
+ return InspectorDocLinks.UnityDataBindingProperties;
+ case ViewModelDataType.Boolean:
+ return InspectorDocLinks.UnityDataBindingProperties;
+ case ViewModelDataType.Color:
+ return InspectorDocLinks.UnityDataBindingProperties;
+ case ViewModelDataType.Trigger:
+ return InspectorDocLinks.UnityDataBindingProperties;
+ case ViewModelDataType.Enum:
+ return InspectorDocLinks.UnityDataBindingEnums;
+ case ViewModelDataType.ViewModel:
+ return InspectorDocLinks.UnityDataBindingViewModel;
+ case ViewModelDataType.AssetImage:
+ return InspectorDocLinks.UnityDataBindingImages;
+ case ViewModelDataType.List:
+ return InspectorDocLinks.UnityDataBindingLists;
+ case ViewModelDataType.ListIndex:
+ return InspectorDocLinks.UnityDataBindingListViewModelIndex;
+ case ViewModelDataType.Artboard:
+ return InspectorDocLinks.UnityDataBindingArtboards;
+ default:
+ return InspectorDocLinks.UnityDataBinding;
+ }
+ }
+
+ private VisualElement CreatePropertyCard(string displayName, string path, string typeLabel, string docUrl, string description, VisualElement control, bool showTypePill = false)
+ {
+ var card = new VisualElement();
+ card.style.marginTop = 6;
+ card.style.paddingTop = 8;
+ card.style.paddingBottom = 8;
+ card.style.paddingLeft = 10;
+ card.style.paddingRight = 10;
+ card.style.borderTopLeftRadius = 6;
+ card.style.borderTopRightRadius = 6;
+ card.style.borderBottomLeftRadius = 6;
+ card.style.borderBottomRightRadius = 6;
+ card.style.borderBottomWidth = 1;
+ card.style.borderTopWidth = 1;
+ card.style.borderLeftWidth = 1;
+ card.style.borderRightWidth = 1;
+ card.style.borderBottomColor = new UnityEngine.Color(0.25f, 0.25f, 0.25f, 0.4f);
+ card.style.borderTopColor = new UnityEngine.Color(0.25f, 0.25f, 0.25f, 0.4f);
+ card.style.borderLeftColor = new UnityEngine.Color(0.25f, 0.25f, 0.25f, 0.4f);
+ card.style.borderRightColor = new UnityEngine.Color(0.25f, 0.25f, 0.25f, 0.4f);
+ card.style.backgroundColor = new UnityEngine.Color(0.12f, 0.12f, 0.12f, 0.45f);
+
+ var header = new VisualElement { style = { flexDirection = FlexDirection.Row, alignItems = Align.Center } };
+ var nameLabel = new Label(displayName);
+ nameLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
+ nameLabel.style.flexGrow = 1;
+
+ if (showTypePill && !string.IsNullOrEmpty(typeLabel))
+ {
+ var typePill = new Label(typeLabel);
+ typePill.style.unityTextAlign = TextAnchor.MiddleCenter;
+ typePill.style.paddingLeft = 6;
+ typePill.style.paddingRight = 6;
+ typePill.style.paddingTop = 2;
+ typePill.style.paddingBottom = 2;
+ typePill.style.marginLeft = 4;
+ typePill.style.borderTopLeftRadius = 4;
+ typePill.style.borderTopRightRadius = 4;
+ typePill.style.borderBottomLeftRadius = 4;
+ typePill.style.borderBottomRightRadius = 4;
+ typePill.style.backgroundColor = new UnityEngine.Color(0.25f, 0.25f, 0.25f, 0.8f);
+ typePill.style.color = new UnityEngine.Color(0.85f, 0.85f, 0.85f, 1f);
+ header.Add(typePill);
+ }
+
+ var menuButton = CreateMoreActionsButton(path, displayName);
+
+ // Remove potential parenthesis text to account for enum values. E.g. "Enum (MyEnum)" should be "Enum"
+ string strippedTypeLabel = typeLabel;
+ if (!string.IsNullOrEmpty(strippedTypeLabel))
+ {
+ int parenIndex = strippedTypeLabel.IndexOf(" (", StringComparison.Ordinal);
+ if (parenIndex > 0)
+ {
+ strippedTypeLabel = strippedTypeLabel.Substring(0, parenIndex);
+ }
+ }
+
+ string docLabel = string.IsNullOrEmpty(typeLabel) ? "Docs" : $"{strippedTypeLabel} Property Documentation";
+ var docButton = new Label(docLabel);
+ StyleLinkLabel(docButton, docUrl);
+ docButton.style.marginLeft = 6;
+ docButton.style.alignSelf = Align.Center;
+ docButton.style.display = DisplayStyle.None;
+
+ header.Add(nameLabel);
+ header.Add(docButton);
+ header.Add(menuButton);
+
+ card.Add(header);
+
+ card.RegisterCallback(_ =>
+ {
+ docButton.style.display = DisplayStyle.Flex;
+ });
+
+ card.RegisterCallback(_ =>
+ {
+ docButton.style.display = DisplayStyle.None;
+ });
+
+ string pathLineText = null;
+ if (!showTypePill)
+ {
+ pathLineText = $"{typeLabel}";
+ }
+ else if (!string.IsNullOrEmpty(path))
+ {
+ pathLineText = $"Path: {path}";
+ }
+
+ if (!string.IsNullOrEmpty(pathLineText))
+ {
+ var pathLabel = new Label(pathLineText);
+ pathLabel.style.fontSize = 11;
+ pathLabel.style.color = new UnityEngine.Color(0.75f, 0.75f, 0.75f, 0.9f);
+ pathLabel.style.marginTop = 2;
+ card.Add(pathLabel);
+ }
+
+ if (!string.IsNullOrEmpty(description))
+ {
+ var desc = new Label(description);
+ desc.style.fontSize = 11;
+ desc.style.color = new UnityEngine.Color(0.8f, 0.8f, 0.8f, 0.95f);
+ desc.style.marginTop = 4;
+ card.Add(desc);
+ }
+
+ control.style.marginTop = 6;
+ card.Add(control);
+
+ return card;
+ }
+ }
+}
+
diff --git a/Packages/app.rive.rive-unity/Editor/Components/DataBindingPlaygroundWindow.cs.meta b/Packages/app.rive.rive-unity/Editor/Components/DataBindingPlaygroundWindow.cs.meta
new file mode 100644
index 00000000..1cee062d
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/DataBindingPlaygroundWindow.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: f3793298efdc946ffb5185da184f3cf6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 350858
+ packageName: Rive
+ packageVersion: 0.4.2
+ assetPath: Packages/app.rive.rive-unity/Editor/Components/DataBindingPlaygroundWindow.cs
+ uploadId: 896810
diff --git a/Packages/app.rive.rive-unity/Editor/Components/MenuItems.cs b/Packages/app.rive.rive-unity/Editor/Components/MenuItems.cs
new file mode 100644
index 00000000..a916a810
--- /dev/null
+++ b/Packages/app.rive.rive-unity/Editor/Components/MenuItems.cs
@@ -0,0 +1,383 @@
+using System.Runtime.CompilerServices;
+using Rive.Components;
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+[assembly: InternalsVisibleTo("Rive.Tests.Editor")]
+namespace Rive.EditorTools
+{
+ ///
+ /// Custom menu items for creating Rive components.
+ ///
+ //Make internals visible to test assembly
+ internal class MenuItems
+ {
+ internal enum PanelContext
+ {
+ Standalone = 0,
+ Canvas = 1
+ }
+
+ [MenuItem("GameObject/Rive/Rive Panel", false, 10)]
+ static void CreateRivePanel(MenuCommand menuCommand) =>
+ CreateRivePanelInternal(menuCommand, PanelContext.Standalone);
+
+ [MenuItem("GameObject/Rive/Rive Panel (Canvas)", false, 11)]
+ static void CreateRivePanelWithCanvas(MenuCommand menuCommand) =>
+ CreateRivePanelInternal(menuCommand, PanelContext.Canvas);
+
+ [MenuItem("GameObject/Rive/Widgets/Rive Widget", false, 12)]
+ static void CreateRiveWidget(MenuCommand menuCommand)
+ {
+ GameObject widgetObj = new GameObject("Rive Widget", typeof(RiveWidget));
+
+ // If we have a context (selected object), try to parent to it
+ GameObject parent = menuCommand.context as GameObject;
+ if (parent != null)
+ {
+ GameObjectUtility.SetParentAndAlign(widgetObj, parent);
+
+ ConfigureRectTransformToFill(widgetObj.GetComponent());
+
+ }
+
+ Undo.RegisterCreatedObjectUndo(widgetObj, "Create Rive Widget");
+ Selection.activeObject = widgetObj;
+ }
+
+ [MenuItem("GameObject/Rive/Widgets/Procedural Rive Widget", false, 13)]
+ static void CreateProceduralRiveWidget(MenuCommand menuCommand)
+ {
+ GameObject widgetObj = new GameObject("Procedural Rive Widget", typeof(ProceduralRiveWidget));
+
+ // If we have a context (selected object), try to parent to it
+ GameObject parent = menuCommand.context as GameObject;
+ if (parent != null)
+ {
+ GameObjectUtility.SetParentAndAlign(widgetObj, parent);
+
+ ConfigureRectTransformToFill(widgetObj.GetComponent());
+
+ }
+
+ Undo.RegisterCreatedObjectUndo(widgetObj, "Create Procedural Rive Widget");
+ Selection.activeObject = widgetObj;
+ }
+
+
+
+ [MenuItem("GameObject/Rive/Render Target Strategies/Atlas Render Target Strategy", false, 21)]
+ static void CreateAtlasRenderTargetStrategy(MenuCommand menuCommand) =>
+ CreateRenderTargetStrategy(menuCommand);
+
+ [MenuItem("GameObject/Rive/Render Target Strategies/Pooled Render Target Strategy", false, 22)]
+ static void CreatePooledRenderTargetStrategy(MenuCommand menuCommand) =>
+ CreateRenderTargetStrategy(menuCommand);
+
+ private static void CreateRenderTargetStrategy(MenuCommand menuCommand) where T : RenderTargetStrategy
+ {
+ string typeName = typeof(T).Name;
+ string objectName = ObjectNames.NicifyVariableName(typeName);
+
+ GameObject obj = new GameObject(objectName, typeof(T));
+ GameObjectUtility.SetParentAndAlign(obj, menuCommand.context as GameObject);
+
+ Undo.RegisterCreatedObjectUndo(obj, $"Create {objectName}");
+ Selection.activeObject = obj;
+ }
+
+ internal static RivePanel CreateRivePanelInternal(MenuCommand menuCommand, PanelContext context)
+ {
+ GameObject rootObject;
+ GameObject panelObj;
+
+ if (context == PanelContext.Canvas)
+ {
+ // Check if we already have a canvas parent
+ Canvas parentCanvas = null;
+ GameObject contextObj = menuCommand.context as GameObject;
+ if (contextObj != null)
+ {
+ parentCanvas = contextObj.GetComponentInParent