Polotno
Design Format

FigureElement

Documentation for the FigureElement type in the Polotno design JSON Schema.

Type Information

Base Type: object

Properties

PropertyTypeDescription
idstringUnique identifier for the element.
type"figure"No description provided
namestringDisplay name for the element.
customunknownCustom data attached to the element.
xnumberX position in pixels.
ynumberY position in pixels.
widthnumberWidth in pixels.
heightnumberHeight in pixels.
rotationnumberRotation angle in degrees.
opacitynumberOpacity level (0-1).
animationsArray<Animation>Animation configurations.
blurEnabledbooleanWhether blur effect is enabled.
blurRadiusnumberBlur radius in pixels.
brightnessEnabledbooleanWhether brightness effect is enabled.
brightnessnumberBrightness level (-1 to 1).
sepiaEnabledbooleanWhether sepia effect is enabled.
grayscaleEnabledbooleanWhether grayscale effect is enabled.
filtersobjectApplied image filters keyed by filter name.
shadowEnabledbooleanWhether shadow is enabled.
shadowBlurnumberShadow blur radius in pixels.
shadowOffsetXnumberShadow horizontal offset in pixels.
shadowOffsetYnumberShadow vertical offset in pixels.
shadowColorstringShadow color.
shadowOpacitynumberShadow opacity (0-1).
visiblebooleanWhether the element is visible.
draggablebooleanWhether the element can be dragged.
resizablebooleanWhether the element can be resized.
selectablebooleanWhether the element can be selected.
removablebooleanWhether the element can be removed.
contentEditablebooleanWhether the element content can be edited.
styleEditablebooleanWhether the element style can be edited.
alwaysOnTopbooleanWhether the element stays on top of others.
showInExportbooleanWhether the element appears in exports.
subTypestringFigure subtype: rect, ellipse, triangle, etc.
fillstringFill color.
dashArray<number>Dash pattern array.
strokeWidthnumberNo description provided
strokestringNo description provided
cornerRadiusnumberNo description provided

JSON Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the element."
    },
    "type": {
      "type": "string",
      "const": "figure"
    },
    "name": {
      "default": "",
      "description": "Display name for the element.",
      "type": "string"
    },
    "custom": {
      "description": "Custom data attached to the element."
    },
    "x": {
      "default": 0,
      "description": "X position in pixels.",
      "type": "number"
    },
    "y": {
      "default": 0,
      "description": "Y position in pixels.",
      "type": "number"
    },
    "width": {
      "default": 100,
      "description": "Width in pixels.",
      "type": "number"
    },
    "height": {
      "default": 100,
      "description": "Height in pixels.",
      "type": "number"
    },
    "rotation": {
      "default": 0,
      "description": "Rotation angle in degrees.",
      "type": "number"
    },
    "opacity": {
      "default": 1,
      "description": "Opacity level (0-1).",
      "type": "number"
    },
    "animations": {
      "default": [],
      "description": "Animation configurations.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "delay": {
            "default": 0,
            "description": "Delay before the animation starts, in milliseconds.",
            "type": "number"
          },
          "duration": {
            "default": 500,
            "description": "Animation duration in milliseconds.",
            "type": "number"
          },
          "enabled": {
            "default": true,
            "description": "Whether the animation is enabled.",
            "type": "boolean"
          },
          "type": {
            "type": "string",
            "enum": [
              "enter",
              "exit",
              "loop"
            ],
            "description": "Animation phase."
          },
          "name": {
            "default": "none",
            "description": "Animation name identifier.",
            "type": "string"
          },
          "data": {
            "default": {},
            "description": "Animation-specific data."
          }
        },
        "required": [
          "type"
        ]
      }
    },
    "blurEnabled": {
      "default": false,
      "description": "Whether blur effect is enabled.",
      "type": "boolean"
    },
    "blurRadius": {
      "default": 10,
      "description": "Blur radius in pixels.",
      "type": "number"
    },
    "brightnessEnabled": {
      "default": false,
      "description": "Whether brightness effect is enabled.",
      "type": "boolean"
    },
    "brightness": {
      "default": 0,
      "description": "Brightness level (-1 to 1).",
      "type": "number"
    },
    "sepiaEnabled": {
      "default": false,
      "description": "Whether sepia effect is enabled.",
      "type": "boolean"
    },
    "grayscaleEnabled": {
      "default": false,
      "description": "Whether grayscale effect is enabled.",
      "type": "boolean"
    },
    "filters": {
      "default": {},
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "intensity": {
            "default": 1,
            "description": "Filter intensity (-1 to 1).",
            "type": "number"
          }
        }
      },
      "description": "Applied image filters keyed by filter name."
    },
    "shadowEnabled": {
      "default": false,
      "description": "Whether shadow is enabled.",
      "type": "boolean"
    },
    "shadowBlur": {
      "default": 5,
      "description": "Shadow blur radius in pixels.",
      "type": "number"
    },
    "shadowOffsetX": {
      "default": 0,
      "description": "Shadow horizontal offset in pixels.",
      "type": "number"
    },
    "shadowOffsetY": {
      "default": 0,
      "description": "Shadow vertical offset in pixels.",
      "type": "number"
    },
    "shadowColor": {
      "default": "black",
      "description": "Shadow color.",
      "type": "string"
    },
    "shadowOpacity": {
      "default": 1,
      "description": "Shadow opacity (0-1).",
      "type": "number"
    },
    "visible": {
      "default": true,
      "description": "Whether the element is visible.",
      "type": "boolean"
    },
    "draggable": {
      "default": true,
      "description": "Whether the element can be dragged.",
      "type": "boolean"
    },
    "resizable": {
      "default": true,
      "description": "Whether the element can be resized.",
      "type": "boolean"
    },
    "selectable": {
      "default": true,
      "description": "Whether the element can be selected.",
      "type": "boolean"
    },
    "removable": {
      "default": true,
      "description": "Whether the element can be removed.",
      "type": "boolean"
    },
    "contentEditable": {
      "default": true,
      "description": "Whether the element content can be edited.",
      "type": "boolean"
    },
    "styleEditable": {
      "default": true,
      "description": "Whether the element style can be edited.",
      "type": "boolean"
    },
    "alwaysOnTop": {
      "default": false,
      "description": "Whether the element stays on top of others.",
      "type": "boolean"
    },
    "showInExport": {
      "default": true,
      "description": "Whether the element appears in exports.",
      "type": "boolean"
    },
    "subType": {
      "default": "rect",
      "description": "Figure subtype: rect, ellipse, triangle, etc.",
      "type": "string"
    },
    "fill": {
      "default": "rgb(0, 161, 255)",
      "description": "Fill color.",
      "type": "string"
    },
    "dash": {
      "default": [],
      "description": "Dash pattern array.",
      "type": "array",
      "items": {
        "type": "number"
      }
    },
    "strokeWidth": {
      "default": 0,
      "type": "number"
    },
    "stroke": {
      "default": "rgba(98, 197, 255, 1)",
      "type": "string"
    },
    "cornerRadius": {
      "default": 0,
      "type": "number"
    }
  },
  "required": [
    "id",
    "type"
  ]
}

On this page