Skip to content

Instantly share code, notes, and snippets.

@drmzio
Forked from dvdsgl/schema.json
Created March 30, 2023 00:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drmzio/e7dc8a0664b0ca1974961abc3eb0ac5d to your computer and use it in GitHub Desktop.
Save drmzio/e7dc8a0664b0ca1974961abc3eb0ac5d to your computer and use it in GitHub Desktop.
Figma Platform schema
{
"$ref": "#/definitions/FileResponse",
"$schema": "http://json-schema.org/draft-06/schema#",
"definitions": {
"BlendMode": {
"enum": [
"COLOR",
"COLOR_BURN",
"COLOR_DODGE",
"DARKEN",
"DIFFERENCE",
"EXCLUSION",
"HARD_LIGHT",
"HUE",
"LIGHTEN",
"LINEAR_BURN",
"LINEAR_DODGE",
"LUMINOSITY",
"MULTIPLY",
"NORMAL",
"OVERLAY",
"PASS_THROUGH",
"SATURATION",
"SCREEN",
"SOFT_LIGHT"
],
"title": "BlendMode",
"type": "string"
},
"BooleanGroup": {
"description": "A group that has a boolean operation applied to it",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"children": {
"description": "An array of nodes that are being boolean operated on",
"items": {
"anyOf": [
{
"$ref": "#/definitions/Document"
},
{
"$ref": "#/definitions/Canvas"
},
{
"$ref": "#/definitions/Frame"
},
{
"$ref": "#/definitions/Group"
},
{
"$ref": "#/definitions/Vector"
},
{
"$ref": "#/definitions/BooleanGroup"
},
{
"$ref": "#/definitions/Star"
},
{
"$ref": "#/definitions/Line"
},
{
"$ref": "#/definitions/Ellipse"
},
{
"$ref": "#/definitions/RegularPolygon"
},
{
"$ref": "#/definitions/Rectangle"
},
{
"$ref": "#/definitions/Text"
},
{
"$ref": "#/definitions/Slice"
},
{
"$ref": "#/definitions/Component"
},
{
"$ref": "#/definitions/Instance"
}
]
},
"title": "children",
"type": "array"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"fills": {
"default": [
],
"description": "An array of fill paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"strokeAlign": {
"description": "Where stroke is drawn relative to the vector outline as a string enum\n\"INSIDE\": draw stroke inside the shape boundary\n\"OUTSIDE\": draw stroke outside the shape boundary\n\"CENTER\": draw stroke centered along the shape boundary",
"enum": [
"CENTER",
"INSIDE",
"OUTSIDE"
],
"title": "strokeAlign",
"type": "string"
},
"strokeWeight": {
"description": "The weight of strokes on the node",
"title": "strokeWeight",
"type": "number"
},
"strokes": {
"default": [
],
"description": "An array of stroke paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "strokes",
"type": "array"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"blendMode",
"children",
"constraints",
"effects",
"exportSettings",
"fills",
"id",
"isMask",
"name",
"opacity",
"preserveRatio",
"strokeAlign",
"strokeWeight",
"strokes",
"transitionNodeID",
"type",
"visible"
],
"title": "BooleanGroup",
"type": "object"
},
"Canvas": {
"description": "Represents a single page",
"properties": {
"backgroundColor": {
"$ref": "#/definitions/Color",
"description": "Background color of the canvas",
"title": "backgroundColor"
},
"children": {
"description": "An array of top level layers on the canvas",
"items": {
"anyOf": [
{
"$ref": "#/definitions/Document"
},
{
"$ref": "#/definitions/Canvas"
},
{
"$ref": "#/definitions/Frame"
},
{
"$ref": "#/definitions/Group"
},
{
"$ref": "#/definitions/Vector"
},
{
"$ref": "#/definitions/BooleanGroup"
},
{
"$ref": "#/definitions/Star"
},
{
"$ref": "#/definitions/Line"
},
{
"$ref": "#/definitions/Ellipse"
},
{
"$ref": "#/definitions/RegularPolygon"
},
{
"$ref": "#/definitions/Rectangle"
},
{
"$ref": "#/definitions/Text"
},
{
"$ref": "#/definitions/Slice"
},
{
"$ref": "#/definitions/Component"
},
{
"$ref": "#/definitions/Instance"
}
]
},
"title": "children",
"type": "array"
},
"exportSettings": {
"description": "An array of export settings representing images to export from the canvas",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"backgroundColor",
"children",
"exportSettings",
"id",
"name",
"type",
"visible"
],
"title": "Canvas",
"type": "object"
},
"Color": {
"description": "An RGBA color",
"properties": {
"a": {
"description": "Alpha channel value, between 0 and 1",
"title": "a",
"type": "number"
},
"b": {
"description": "Blue channel value, between 0 and 1",
"title": "b",
"type": "number"
},
"g": {
"description": "Green channel value, between 0 and 1",
"title": "g",
"type": "number"
},
"r": {
"description": "Red channel value, between 0 and 1",
"title": "r",
"type": "number"
}
},
"required": [
"a",
"b",
"g",
"r"
],
"title": "Color",
"type": "object"
},
"ColorStop": {
"description": "A position color pair representing a gradient stop",
"properties": {
"color": {
"$ref": "#/definitions/Color",
"description": "Color attached to corresponding position",
"title": "color"
},
"position": {
"description": "Value between 0 and 1 representing position along gradient axis",
"title": "position",
"type": "number"
}
},
"required": [
"color",
"position"
],
"title": "ColorStop",
"type": "object"
},
"Component": {
"description": "A node that can have instances created of it that share the same properties",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"backgroundColor": {
"$ref": "#/definitions/Color",
"description": "Background color of the node",
"title": "backgroundColor"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"children": {
"description": "An array of nodes that are direct children of this node",
"items": {
"anyOf": [
{
"$ref": "#/definitions/Document"
},
{
"$ref": "#/definitions/Canvas"
},
{
"$ref": "#/definitions/Frame"
},
{
"$ref": "#/definitions/Group"
},
{
"$ref": "#/definitions/Vector"
},
{
"$ref": "#/definitions/BooleanGroup"
},
{
"$ref": "#/definitions/Star"
},
{
"$ref": "#/definitions/Line"
},
{
"$ref": "#/definitions/Ellipse"
},
{
"$ref": "#/definitions/RegularPolygon"
},
{
"$ref": "#/definitions/Rectangle"
},
{
"$ref": "#/definitions/Text"
},
{
"$ref": "#/definitions/Slice"
},
{
"$ref": "#/definitions/Component"
},
{
"$ref": "#/definitions/Instance"
}
]
},
"title": "children",
"type": "array"
},
"clipsContent": {
"description": "Does this node clip content outside of its bounds?",
"title": "clipsContent",
"type": "boolean"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"layoutGrids": {
"default": [
],
"description": "An array of layout grids attached to this node (see layout grids section\nfor more details). GROUP nodes do not have this attribute",
"items": {
"$ref": "#/definitions/LayoutGrid"
},
"title": "layoutGrids",
"type": "array"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"backgroundColor",
"blendMode",
"children",
"clipsContent",
"constraints",
"effects",
"exportSettings",
"id",
"isMask",
"layoutGrids",
"name",
"opacity",
"preserveRatio",
"transitionNodeID",
"type",
"visible"
],
"title": "Component",
"type": "object"
},
"Constraint": {
"description": "Sizing constraint for exports",
"properties": {
"type": {
"description": "Type of constraint to apply; string enum with potential values below\n\"SCALE\": Scale by value\n\"WIDTH\": Scale proportionally and set width to value\n\"HEIGHT\": Scale proportionally and set height to value",
"enum": [
"HEIGHT",
"SCALE",
"WIDTH"
],
"title": "type",
"type": "string"
},
"value": {
"description": "See type property for effect of this field",
"title": "value",
"type": "number"
}
},
"required": [
"type",
"value"
],
"title": "Constraint",
"type": "object"
},
"Document": {
"description": "Node Properties\nThe root node",
"properties": {
"children": {
"description": "An array of canvases attached to the document",
"items": {
"anyOf": [
{
"$ref": "#/definitions/Document"
},
{
"$ref": "#/definitions/Canvas"
},
{
"$ref": "#/definitions/Frame"
},
{
"$ref": "#/definitions/Group"
},
{
"$ref": "#/definitions/Vector"
},
{
"$ref": "#/definitions/BooleanGroup"
},
{
"$ref": "#/definitions/Star"
},
{
"$ref": "#/definitions/Line"
},
{
"$ref": "#/definitions/Ellipse"
},
{
"$ref": "#/definitions/RegularPolygon"
},
{
"$ref": "#/definitions/Rectangle"
},
{
"$ref": "#/definitions/Text"
},
{
"$ref": "#/definitions/Slice"
},
{
"$ref": "#/definitions/Component"
},
{
"$ref": "#/definitions/Instance"
}
]
},
"title": "children",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"children",
"id",
"name",
"type",
"visible"
],
"title": "Document",
"type": "object"
},
"Effect": {
"description": "A visual effect such as a shadow or blur",
"properties": {
"blendMode": {
"$ref": "#/definitions/BlendMode",
"title": "blendMode"
},
"color": {
"$ref": "#/definitions/Color",
"title": "color"
},
"offset": {
"$ref": "#/definitions/Vector2D",
"title": "offset"
},
"radius": {
"description": "Radius of the blur effect (applies to shadows as well)",
"title": "radius",
"type": "number"
},
"type": {
"description": "Type of effect as a string enum",
"enum": [
"BACKGROUND_BLUR",
"DROP_SHADOW",
"INNER_SHADOW",
"LAYER_BLUR"
],
"title": "type",
"type": "string"
},
"visible": {
"description": "Is the effect active?",
"title": "visible",
"type": "boolean"
}
},
"required": [
"radius",
"type",
"visible"
],
"title": "Effect",
"type": "object"
},
"Ellipse": {
"description": "An ellipse",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"fills": {
"default": [
],
"description": "An array of fill paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"strokeAlign": {
"description": "Where stroke is drawn relative to the vector outline as a string enum\n\"INSIDE\": draw stroke inside the shape boundary\n\"OUTSIDE\": draw stroke outside the shape boundary\n\"CENTER\": draw stroke centered along the shape boundary",
"enum": [
"CENTER",
"INSIDE",
"OUTSIDE"
],
"title": "strokeAlign",
"type": "string"
},
"strokeWeight": {
"description": "The weight of strokes on the node",
"title": "strokeWeight",
"type": "number"
},
"strokes": {
"default": [
],
"description": "An array of stroke paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "strokes",
"type": "array"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"blendMode",
"constraints",
"effects",
"exportSettings",
"fills",
"id",
"isMask",
"name",
"opacity",
"preserveRatio",
"strokeAlign",
"strokeWeight",
"strokes",
"transitionNodeID",
"type",
"visible"
],
"title": "Ellipse",
"type": "object"
},
"ExportSetting": {
"description": "Format and size to export an asset at",
"properties": {
"constraint": {
"$ref": "#/definitions/Constraint",
"description": "Constraint that determines sizing of exported asset",
"title": "constraint"
},
"format": {
"description": "Image type, string enum",
"enum": [
"JPG",
"PNG",
"SVG"
],
"title": "format",
"type": "string"
},
"suffix": {
"description": "File suffix to append to all filenames",
"title": "suffix",
"type": "string"
}
},
"required": [
"constraint",
"format",
"suffix"
],
"title": "ExportSetting",
"type": "object"
},
"FileResponse": {
"description": "GET /v1/files/:key\n\n> Description\n\nReturns the document refered to by :key as a JSON object. The file key can be parsed from\nany Figma file url: https://www.figma.com/file/:key/:title. The \"document\" attribute\ncontains a Node of type DOCUMENT.\n\nThe \"components\" key contains a mapping from node IDs to component metadata. This is to\nhelp you determine which components each instance comes from. Currently the only piece of\nmetadata available on components is the name of the component, but more properties will\nbe forthcoming.\n\n> Path parameters\n\nkey String\nFile to export JSON from",
"properties": {
"components": {
"additionalProperties": {
"$ref": "#/definitions/Component"
},
"description": "A mapping from node IDs to component metadata. This is to help you determine which\ncomponents each instance comes from. Currently the only piece of metadata available on\ncomponents is the name of the component, but more properties will be forthcoming.",
"title": "components",
"type": "object"
},
"document": {
"$ref": "#/definitions/Document",
"description": "The root node within the document",
"title": "document"
},
"schemaVersion": {
"title": "schemaVersion",
"type": "number"
}
},
"required": [
"components",
"document",
"schemaVersion"
],
"title": "FileResponse",
"type": "object"
},
"Frame": {
"description": "A node of fixed size containing other nodes",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"backgroundColor": {
"$ref": "#/definitions/Color",
"description": "Background color of the node",
"title": "backgroundColor"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"children": {
"description": "An array of nodes that are direct children of this node",
"items": {
"anyOf": [
{
"$ref": "#/definitions/Document"
},
{
"$ref": "#/definitions/Canvas"
},
{
"$ref": "#/definitions/Frame"
},
{
"$ref": "#/definitions/Group"
},
{
"$ref": "#/definitions/Vector"
},
{
"$ref": "#/definitions/BooleanGroup"
},
{
"$ref": "#/definitions/Star"
},
{
"$ref": "#/definitions/Line"
},
{
"$ref": "#/definitions/Ellipse"
},
{
"$ref": "#/definitions/RegularPolygon"
},
{
"$ref": "#/definitions/Rectangle"
},
{
"$ref": "#/definitions/Text"
},
{
"$ref": "#/definitions/Slice"
},
{
"$ref": "#/definitions/Component"
},
{
"$ref": "#/definitions/Instance"
}
]
},
"title": "children",
"type": "array"
},
"clipsContent": {
"description": "Does this node clip content outside of its bounds?",
"title": "clipsContent",
"type": "boolean"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"layoutGrids": {
"default": [
],
"description": "An array of layout grids attached to this node (see layout grids section\nfor more details). GROUP nodes do not have this attribute",
"items": {
"$ref": "#/definitions/LayoutGrid"
},
"title": "layoutGrids",
"type": "array"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"backgroundColor",
"blendMode",
"children",
"clipsContent",
"constraints",
"effects",
"exportSettings",
"id",
"isMask",
"layoutGrids",
"name",
"opacity",
"preserveRatio",
"transitionNodeID",
"type",
"visible"
],
"title": "Frame",
"type": "object"
},
"Group": {
"description": "A logical grouping of nodes",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"backgroundColor": {
"$ref": "#/definitions/Color",
"description": "Background color of the node",
"title": "backgroundColor"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"children": {
"description": "An array of nodes that are direct children of this node",
"items": {
"anyOf": [
{
"$ref": "#/definitions/Document"
},
{
"$ref": "#/definitions/Canvas"
},
{
"$ref": "#/definitions/Frame"
},
{
"$ref": "#/definitions/Group"
},
{
"$ref": "#/definitions/Vector"
},
{
"$ref": "#/definitions/BooleanGroup"
},
{
"$ref": "#/definitions/Star"
},
{
"$ref": "#/definitions/Line"
},
{
"$ref": "#/definitions/Ellipse"
},
{
"$ref": "#/definitions/RegularPolygon"
},
{
"$ref": "#/definitions/Rectangle"
},
{
"$ref": "#/definitions/Text"
},
{
"$ref": "#/definitions/Slice"
},
{
"$ref": "#/definitions/Component"
},
{
"$ref": "#/definitions/Instance"
}
]
},
"title": "children",
"type": "array"
},
"clipsContent": {
"description": "Does this node clip content outside of its bounds?",
"title": "clipsContent",
"type": "boolean"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"layoutGrids": {
"default": [
],
"description": "An array of layout grids attached to this node (see layout grids section\nfor more details). GROUP nodes do not have this attribute",
"items": {
"$ref": "#/definitions/LayoutGrid"
},
"title": "layoutGrids",
"type": "array"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"backgroundColor",
"blendMode",
"children",
"clipsContent",
"constraints",
"effects",
"exportSettings",
"id",
"isMask",
"layoutGrids",
"name",
"opacity",
"preserveRatio",
"transitionNodeID",
"type",
"visible"
],
"title": "Group",
"type": "object"
},
"Instance": {
"description": "An instance of a component, changes to the component result in the same\nchanges applied to the instance",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"backgroundColor": {
"$ref": "#/definitions/Color",
"description": "Background color of the node",
"title": "backgroundColor"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"children": {
"description": "An array of nodes that are direct children of this node",
"items": {
"anyOf": [
{
"$ref": "#/definitions/Document"
},
{
"$ref": "#/definitions/Canvas"
},
{
"$ref": "#/definitions/Frame"
},
{
"$ref": "#/definitions/Group"
},
{
"$ref": "#/definitions/Vector"
},
{
"$ref": "#/definitions/BooleanGroup"
},
{
"$ref": "#/definitions/Star"
},
{
"$ref": "#/definitions/Line"
},
{
"$ref": "#/definitions/Ellipse"
},
{
"$ref": "#/definitions/RegularPolygon"
},
{
"$ref": "#/definitions/Rectangle"
},
{
"$ref": "#/definitions/Text"
},
{
"$ref": "#/definitions/Slice"
},
{
"$ref": "#/definitions/Component"
},
{
"$ref": "#/definitions/Instance"
}
]
},
"title": "children",
"type": "array"
},
"clipsContent": {
"description": "Does this node clip content outside of its bounds?",
"title": "clipsContent",
"type": "boolean"
},
"componentId": {
"description": "ID of component that this instance came from, refers to components\ntable (see endpoints section below)",
"title": "componentId",
"type": "string"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"layoutGrids": {
"default": [
],
"description": "An array of layout grids attached to this node (see layout grids section\nfor more details). GROUP nodes do not have this attribute",
"items": {
"$ref": "#/definitions/LayoutGrid"
},
"title": "layoutGrids",
"type": "array"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"backgroundColor",
"blendMode",
"children",
"clipsContent",
"componentId",
"constraints",
"effects",
"exportSettings",
"id",
"isMask",
"layoutGrids",
"name",
"opacity",
"preserveRatio",
"transitionNodeID",
"type",
"visible"
],
"title": "Instance",
"type": "object"
},
"LayoutConstraint": {
"description": "Layout constraint relative to containing Frame",
"properties": {
"horizontal": {
"description": "Horizontal constraint as an enum\n\"LEFT\": Node is laid out relative to left of the containing frame\n\"RIGHT\": Node is laid out relative to right of the containing frame\n\"CENTER\": Node is horizontally centered relative to containing frame\n\"LEFT_RIGHT\": Both left and right of node are constrained relative to containing frame (node stretches with frame)\n\"SCALE\": Node scales horizontally with containing frame",
"enum": [
"CENTER",
"LEFT",
"LEFT_RIGHT",
"RIGHT",
"SCALE"
],
"title": "horizontal",
"type": "string"
},
"vertical": {
"description": "Vertical constraint as an enum\n\"TOP\": Node is laid out relative to top of the containing frame\n\"BOTTOM\": Node is laid out relative to bottom of the containing frame\n\"CENTER\": Node is vertically centered relative to containing frame\n\"TOP_BOTTOM\": Both top and bottom of node are constrained relative to containing frame (node stretches with frame)\n\"SCALE\": Node scales vertically with containing frame",
"enum": [
"BOTTOM",
"CENTER",
"SCALE",
"TOP",
"TOP_BOTTOM"
],
"title": "vertical",
"type": "string"
}
},
"required": [
"horizontal",
"vertical"
],
"title": "LayoutConstraint",
"type": "object"
},
"LayoutGrid": {
"description": "Guides to align and place objects within a frame",
"properties": {
"alignment": {
"description": "Positioning of grid as a string enum\n\"MIN\": Grid starts at the left or top of the frame\n\"MAX\": Grid starts at the right or bottom of the frame\n\"CENTER\": Grid is center aligned",
"enum": [
"CENTER",
"MAX",
"MIN"
],
"title": "alignment",
"type": "string"
},
"color": {
"$ref": "#/definitions/Color",
"description": "Color of the grid",
"title": "color"
},
"count": {
"description": "Number of columns or rows",
"title": "count",
"type": "number"
},
"gutterSize": {
"description": "Spacing in between columns and rows",
"title": "gutterSize",
"type": "number"
},
"offset": {
"description": "Spacing before the first column or row",
"title": "offset",
"type": "number"
},
"pattern": {
"description": "Orientation of the grid as a string enum\n\"COLUMNS\": Vertical grid\n\"ROWS\": Horizontal grid\n\"GRID\": Square grid",
"enum": [
"COLUMNS",
"GRID",
"ROWS"
],
"title": "pattern",
"type": "string"
},
"sectionSize": {
"description": "Width of column grid or height of row grid or square grid spacing",
"title": "sectionSize",
"type": "number"
},
"visible": {
"description": "Is the grid currently visible?",
"title": "visible",
"type": "boolean"
}
},
"required": [
"alignment",
"color",
"count",
"gutterSize",
"offset",
"pattern",
"sectionSize",
"visible"
],
"title": "LayoutGrid",
"type": "object"
},
"Line": {
"description": "A straight line",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"fills": {
"default": [
],
"description": "An array of fill paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"strokeAlign": {
"description": "Where stroke is drawn relative to the vector outline as a string enum\n\"INSIDE\": draw stroke inside the shape boundary\n\"OUTSIDE\": draw stroke outside the shape boundary\n\"CENTER\": draw stroke centered along the shape boundary",
"enum": [
"CENTER",
"INSIDE",
"OUTSIDE"
],
"title": "strokeAlign",
"type": "string"
},
"strokeWeight": {
"description": "The weight of strokes on the node",
"title": "strokeWeight",
"type": "number"
},
"strokes": {
"default": [
],
"description": "An array of stroke paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "strokes",
"type": "array"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"blendMode",
"constraints",
"effects",
"exportSettings",
"fills",
"id",
"isMask",
"name",
"opacity",
"preserveRatio",
"strokeAlign",
"strokeWeight",
"strokes",
"transitionNodeID",
"type",
"visible"
],
"title": "Line",
"type": "object"
},
"NodeType": {
"enum": [
"BOOLEAN",
"CANVAS",
"COMPONENT",
"DOCUMENT",
"ELLIPSE",
"FRAME",
"GROUP",
"INSTANCE",
"LINE",
"RECTANGLE",
"REGULAR_POLYGON",
"SLICE",
"STAR",
"TEXT",
"VECTOR"
],
"title": "NodeType",
"type": "string"
},
"Paint": {
"description": "A solid color, gradient, or image texture that can be applied as fills or strokes",
"properties": {
"color": {
"$ref": "#/definitions/Color",
"description": "Solid color of the paint",
"title": "color"
},
"gradientHandlePositions": {
"description": "This field contains three vectors, each of which are a position in\nnormalized object space (normalized object space is if the top left\ncorner of the bounding box of the object is (0, 0) and the bottom\nright is (1,1)). The first position corresponds to the start of the\ngradient (value 0 for the purposes of calculating gradient stops),\nthe second position is the end of the gradient (value 1), and the\nthird handle position determines the width of the gradient (only\nrelevant for non-linear gradients).",
"items": {
"$ref": "#/definitions/Vector2D"
},
"title": "gradientHandlePositions",
"type": "array"
},
"gradientStops": {
"description": "Positions of key points along the gradient axis with the colors\nanchored there. Colors along the gradient are interpolated smoothly\nbetween neighboring gradient stops.",
"items": {
"$ref": "#/definitions/ColorStop"
},
"title": "gradientStops",
"type": "array"
},
"opacity": {
"default": 1,
"description": "Overall opacity of paint (colors within the paint can also have opacity\nvalues which would blend with this)",
"title": "opacity",
"type": "number"
},
"scaleMode": {
"description": "Image scaling mode",
"title": "scaleMode",
"type": "string"
},
"type": {
"description": "Type of paint as a string enum",
"enum": [
"EMOJI",
"GRADIENT_ANGULAR",
"GRADIENT_DIAMOND",
"GRADIENT_LINEAR",
"GRADIENT_RADIAL",
"IMAGE",
"SOLID"
],
"title": "type",
"type": "string"
},
"visible": {
"default": true,
"description": "Is the paint enabled?",
"title": "visible",
"type": "boolean"
}
},
"required": [
"opacity",
"type",
"visible"
],
"title": "Paint",
"type": "object"
},
"Rectangle": {
"description": "A rectangle",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"cornerRadius": {
"description": "Radius of each corner of the rectangle",
"title": "cornerRadius",
"type": "number"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"fills": {
"default": [
],
"description": "An array of fill paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"strokeAlign": {
"description": "Where stroke is drawn relative to the vector outline as a string enum\n\"INSIDE\": draw stroke inside the shape boundary\n\"OUTSIDE\": draw stroke outside the shape boundary\n\"CENTER\": draw stroke centered along the shape boundary",
"enum": [
"CENTER",
"INSIDE",
"OUTSIDE"
],
"title": "strokeAlign",
"type": "string"
},
"strokeWeight": {
"description": "The weight of strokes on the node",
"title": "strokeWeight",
"type": "number"
},
"strokes": {
"default": [
],
"description": "An array of stroke paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "strokes",
"type": "array"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"blendMode",
"constraints",
"cornerRadius",
"effects",
"exportSettings",
"fills",
"id",
"isMask",
"name",
"opacity",
"preserveRatio",
"strokeAlign",
"strokeWeight",
"strokes",
"transitionNodeID",
"type",
"visible"
],
"title": "Rectangle",
"type": "object"
},
"RegularPolygon": {
"description": "A regular n-sided polygon",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"fills": {
"default": [
],
"description": "An array of fill paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"strokeAlign": {
"description": "Where stroke is drawn relative to the vector outline as a string enum\n\"INSIDE\": draw stroke inside the shape boundary\n\"OUTSIDE\": draw stroke outside the shape boundary\n\"CENTER\": draw stroke centered along the shape boundary",
"enum": [
"CENTER",
"INSIDE",
"OUTSIDE"
],
"title": "strokeAlign",
"type": "string"
},
"strokeWeight": {
"description": "The weight of strokes on the node",
"title": "strokeWeight",
"type": "number"
},
"strokes": {
"default": [
],
"description": "An array of stroke paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "strokes",
"type": "array"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"blendMode",
"constraints",
"effects",
"exportSettings",
"fills",
"id",
"isMask",
"name",
"opacity",
"preserveRatio",
"strokeAlign",
"strokeWeight",
"strokes",
"transitionNodeID",
"type",
"visible"
],
"title": "RegularPolygon",
"type": "object"
},
"Slice": {
"description": "A rectangular region of the canvas that can be exported",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"exportSettings": {
"description": "An array of export settings representing images to export from this node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"exportSettings",
"id",
"name",
"type",
"visible"
],
"title": "Slice",
"type": "object"
},
"Star": {
"description": "A regular star shape",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"fills": {
"default": [
],
"description": "An array of fill paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"strokeAlign": {
"description": "Where stroke is drawn relative to the vector outline as a string enum\n\"INSIDE\": draw stroke inside the shape boundary\n\"OUTSIDE\": draw stroke outside the shape boundary\n\"CENTER\": draw stroke centered along the shape boundary",
"enum": [
"CENTER",
"INSIDE",
"OUTSIDE"
],
"title": "strokeAlign",
"type": "string"
},
"strokeWeight": {
"description": "The weight of strokes on the node",
"title": "strokeWeight",
"type": "number"
},
"strokes": {
"default": [
],
"description": "An array of stroke paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "strokes",
"type": "array"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"blendMode",
"constraints",
"effects",
"exportSettings",
"fills",
"id",
"isMask",
"name",
"opacity",
"preserveRatio",
"strokeAlign",
"strokeWeight",
"strokes",
"transitionNodeID",
"type",
"visible"
],
"title": "Star",
"type": "object"
},
"Text": {
"description": "A text box",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"characterStyleOverrides": {
"description": "Array with same number of elements as characeters in text box,\neach element is a reference to the styleOverrideTable defined\nbelow and maps to the corresponding character in the characters\nfield. Elements with value 0 have the default type style",
"items": {
"type": "number"
},
"title": "characterStyleOverrides",
"type": "array"
},
"characters": {
"description": "Text contained within text box",
"title": "characters",
"type": "string"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"fills": {
"default": [
],
"description": "An array of fill paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"strokeAlign": {
"description": "Where stroke is drawn relative to the vector outline as a string enum\n\"INSIDE\": draw stroke inside the shape boundary\n\"OUTSIDE\": draw stroke outside the shape boundary\n\"CENTER\": draw stroke centered along the shape boundary",
"enum": [
"CENTER",
"INSIDE",
"OUTSIDE"
],
"title": "strokeAlign",
"type": "string"
},
"strokeWeight": {
"description": "The weight of strokes on the node",
"title": "strokeWeight",
"type": "number"
},
"strokes": {
"default": [
],
"description": "An array of stroke paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "strokes",
"type": "array"
},
"style": {
"$ref": "#/definitions/TypeStyle",
"description": "Style of text including font family and weight (see type style\nsection for more information)",
"title": "style"
},
"styleOverrideTable": {
"description": "Map from ID to TypeStyle for looking up style overrides",
"items": {
"$ref": "#/definitions/TypeStyle"
},
"title": "styleOverrideTable",
"type": "array"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"blendMode",
"characterStyleOverrides",
"characters",
"constraints",
"effects",
"exportSettings",
"fills",
"id",
"isMask",
"name",
"opacity",
"preserveRatio",
"strokeAlign",
"strokeWeight",
"strokes",
"style",
"styleOverrideTable",
"transitionNodeID",
"type",
"visible"
],
"title": "Text",
"type": "object"
},
"TypeStyle": {
"description": "Metadata for character formatting",
"properties": {
"fills": {
"description": "Paints applied to characters",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"fontFamily": {
"description": "Font family of text (standard name)",
"title": "fontFamily",
"type": "string"
},
"fontPostScriptName": {
"description": "PostScript font name",
"title": "fontPostScriptName",
"type": "string"
},
"fontSize": {
"description": "Font size in px",
"title": "fontSize",
"type": "number"
},
"fontWeight": {
"description": "Numeric font weight",
"title": "fontWeight",
"type": "number"
},
"italic": {
"description": "Is text italicized?",
"title": "italic",
"type": "boolean"
},
"letterSpacing": {
"description": "Space between characters in px",
"title": "letterSpacing",
"type": "number"
},
"lineHeightPercent": {
"description": "Line height as a percentage of normal line height",
"title": "lineHeightPercent",
"type": "number"
},
"lineHeightPx": {
"description": "Line height in px",
"title": "lineHeightPx",
"type": "number"
},
"textAlignHorizontal": {
"description": "Horizontal text alignment as string enum",
"enum": [
"CENTER",
"JUSTIFIED",
"LEFT",
"RIGHT"
],
"title": "textAlignHorizontal",
"type": "string"
},
"textAlignVertical": {
"description": "Vertical text alignment as string enum",
"enum": [
"BOTTOM",
"CENTER",
"TOP"
],
"title": "textAlignVertical",
"type": "string"
}
},
"required": [
"fills",
"fontFamily",
"fontPostScriptName",
"fontSize",
"fontWeight",
"italic",
"letterSpacing",
"lineHeightPercent",
"lineHeightPx",
"textAlignHorizontal",
"textAlignVertical"
],
"title": "TypeStyle",
"type": "object"
},
"Vector": {
"description": "A vector network, consisting of vertices and edges",
"properties": {
"absoluteBoundingBox": {
"$ref": "#/definitions/Rectangle",
"description": "Bounding box of the node in absolute space coordinates",
"title": "absoluteBoundingBox"
},
"blendMode": {
"$ref": "#/definitions/BlendMode",
"description": "How this node blends with nodes behind it in the scene\n(see blend mode section for more details)",
"title": "blendMode"
},
"constraints": {
"$ref": "#/definitions/LayoutConstraint",
"description": "Horizontal and vertical layout constraints for node",
"title": "constraints"
},
"effects": {
"default": [
],
"description": "An array of effects attached to this node\n(see effects sectionfor more details)",
"items": {
"$ref": "#/definitions/Effect"
},
"title": "effects",
"type": "array"
},
"exportSettings": {
"default": [
],
"description": "An array of export settings representing images to export from node",
"items": {
"$ref": "#/definitions/ExportSetting"
},
"title": "exportSettings",
"type": "array"
},
"fills": {
"default": [
],
"description": "An array of fill paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "fills",
"type": "array"
},
"id": {
"description": "a string uniquely identifying this node within the document",
"title": "id",
"type": "string"
},
"isMask": {
"default": false,
"description": "Does this node mask sibling nodes in front of it?",
"title": "isMask",
"type": "boolean"
},
"name": {
"description": "the name given to the node by the user in the tool.",
"title": "name",
"type": "string"
},
"opacity": {
"default": 1,
"description": "Opacity of the node",
"title": "opacity",
"type": "number"
},
"preserveRatio": {
"default": false,
"description": "Keep height and width constrained to same ratio",
"title": "preserveRatio",
"type": "boolean"
},
"strokeAlign": {
"description": "Where stroke is drawn relative to the vector outline as a string enum\n\"INSIDE\": draw stroke inside the shape boundary\n\"OUTSIDE\": draw stroke outside the shape boundary\n\"CENTER\": draw stroke centered along the shape boundary",
"enum": [
"CENTER",
"INSIDE",
"OUTSIDE"
],
"title": "strokeAlign",
"type": "string"
},
"strokeWeight": {
"description": "The weight of strokes on the node",
"title": "strokeWeight",
"type": "number"
},
"strokes": {
"default": [
],
"description": "An array of stroke paints applied to the node",
"items": {
"$ref": "#/definitions/Paint"
},
"title": "strokes",
"type": "array"
},
"transitionNodeID": {
"default": null,
"description": "Node ID of node to transition to in prototyping",
"title": "transitionNodeID",
"type": "string"
},
"type": {
"$ref": "#/definitions/NodeType",
"description": "the type of the node, refer to table below for details",
"title": "type"
},
"visible": {
"description": "whether or not the node is visible on the canvas",
"title": "visible",
"type": "boolean"
}
},
"required": [
"absoluteBoundingBox",
"blendMode",
"constraints",
"effects",
"exportSettings",
"fills",
"id",
"isMask",
"name",
"opacity",
"preserveRatio",
"strokeAlign",
"strokeWeight",
"strokes",
"transitionNodeID",
"type",
"visible"
],
"title": "Vector",
"type": "object"
},
"Vector2D": {
"description": "A 2d vector",
"properties": {
"x": {
"description": "X coordinate of the vector",
"title": "x",
"type": "number"
},
"y": {
"description": "Y coordinate of the vector",
"title": "y",
"type": "number"
}
},
"required": [
"x",
"y"
],
"title": "Vector2D",
"type": "object"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment