Polotno Docs

TextElement

Documentation for the TextElement schema definition in the Polotno Design JSON Schema.

TextElement

Type Information

Base Type: object

Properties

PropertyTypeDescription
align"left" | "center" | "right" | "justify"Text alignment: left, center, right, justify.
alwaysOnTopbooleanWhether element stays on top of others.
animationsArray<Animation>Animation configurations.
backgroundColorstringText background color.
backgroundCornerRadiusnumberText background corner radius as percentage of half line height.
backgroundEnabledbooleanWhether text background is enabled.
backgroundOpacitynumberText background opacity (0-1).
backgroundPaddingnumberText background padding as percentage of half line height.
blurEnabledbooleanWhether blur effect is enabled.
blurRadiusnumberBlur radius in pixels.
brightnessnumberBrightness level (-1 to 1).
brightnessEnabledbooleanWhether brightness effect is enabled.
contentEditablebooleanWhether element content can be edited.
curveEnabledbooleanWhether text curve effect is enabled.
curvePowernumberText curve power (-1 to 1, 0 = straight).
customunknownCustom data attached to the element.
draggablebooleanWhether element can be dragged.
fillstringText color.
filtersobjectApplied image filters.
fontFamilystringFont family name.
fontSizenumberFont size in pixels.
fontStylestringFont style: 'normal' or 'italic'.
fontWeightstringFont weight: 'normal', 'bold', or numeric string.
grayscaleEnabledbooleanWhether grayscale effect is enabled.
heightnumberHeight in pixels (auto-calculated at runtime).
idstringUnique identifier for the element.
letterSpacingnumberLetter spacing as percentage of font size.
lineHeightnumber | stringLine height as number or string.
namestringDisplay name for the element.
opacitynumberOpacity level (0-1).
placeholderstringPlaceholder text when content is empty.
resizablebooleanWhether element can be resized.
rotationnumberRotation angle in degrees.
selectablebooleanWhether element can be selected.
sepiaEnabledbooleanWhether sepia effect is enabled.
shadowBlurnumberShadow blur radius in pixels.
shadowColorstringShadow color.
shadowEnabledbooleanWhether shadow is enabled.
shadowOffsetXnumberShadow horizontal offset in pixels.
shadowOffsetYnumberShadow vertical offset in pixels.
shadowOpacitynumberShadow opacity (0-1).
showInExportbooleanWhether element appears in exports.
strokestringStroke color.
strokeWidthnumberStroke width in pixels.
styleEditablebooleanWhether element style can be edited.
textstringVisible label text shown on canvas.
textDecorationstringText decoration: underline, overline, line-through, etc.
textTransformstringText transform: uppercase, lowercase, capitalize, none.
type"text"Element type identifier.
verticalAlignstringVertical alignment: top, middle, bottom.
visiblebooleanWhether element is visible.
widthnumberWidth in pixels.
xnumberX position in pixels.
ynumberY position in pixels.

JSON Schema

{
  "additionalProperties": false,
  "properties": {
    "align": {
      "description": "Text alignment: left, center, right, justify.",
      "enum": [
        "left",
        "center",
        "right",
        "justify"
      ],
      "type": "string"
    },
    "alwaysOnTop": {
      "description": "Whether element stays on top of others.",
      "type": "boolean"
    },
    "animations": {
      "description": "Animation configurations.",
      "items": {
        "$ref": "#/definitions/Animation"
      },
      "type": "array"
    },
    "backgroundColor": {
      "description": "Text background color.",
      "type": "string"
    },
    "backgroundCornerRadius": {
      "description": "Text background corner radius as percentage of half line height.",
      "type": "number"
    },
    "backgroundEnabled": {
      "description": "Whether text background is enabled.",
      "type": "boolean"
    },
    "backgroundOpacity": {
      "description": "Text background opacity (0-1).",
      "type": "number"
    },
    "backgroundPadding": {
      "description": "Text background padding as percentage of half line height.",
      "type": "number"
    },
    "blurEnabled": {
      "description": "Whether blur effect is enabled.",
      "type": "boolean"
    },
    "blurRadius": {
      "description": "Blur radius in pixels.",
      "type": "number"
    },
    "brightness": {
      "description": "Brightness level (-1 to 1).",
      "type": "number"
    },
    "brightnessEnabled": {
      "description": "Whether brightness effect is enabled.",
      "type": "boolean"
    },
    "contentEditable": {
      "description": "Whether element content can be edited.",
      "type": "boolean"
    },
    "curveEnabled": {
      "description": "Whether text curve effect is enabled.",
      "type": "boolean"
    },
    "curvePower": {
      "description": "Text curve power (-1 to 1, 0 = straight).",
      "type": "number"
    },
    "custom": {
      "description": "Custom data attached to the element."
    },
    "draggable": {
      "description": "Whether element can be dragged.",
      "type": "boolean"
    },
    "fill": {
      "description": "Text color.",
      "type": "string"
    },
    "filters": {
      "additionalProperties": {
        "additionalProperties": false,
        "properties": {
          "intensity": {
            "description": "Filter intensity value (-1 to 1).",
            "type": "number"
          }
        },
        "required": [
          "intensity"
        ],
        "type": "object"
      },
      "description": "Applied image filters.",
      "type": "object"
    },
    "fontFamily": {
      "description": "Font family name.",
      "type": "string"
    },
    "fontSize": {
      "description": "Font size in pixels.",
      "type": "number"
    },
    "fontStyle": {
      "description": "Font style: 'normal' or 'italic'.",
      "type": "string"
    },
    "fontWeight": {
      "description": "Font weight: 'normal', 'bold', or numeric string.",
      "type": "string"
    },
    "grayscaleEnabled": {
      "description": "Whether grayscale effect is enabled.",
      "type": "boolean"
    },
    "height": {
      "description": "Height in pixels (auto-calculated at runtime).",
      "type": "number"
    },
    "id": {
      "description": "Unique identifier for the element.",
      "type": "string"
    },
    "letterSpacing": {
      "description": "Letter spacing as percentage of font size.",
      "type": "number"
    },
    "lineHeight": {
      "description": "Line height as number or string.",
      "type": [
        "number",
        "string"
      ]
    },
    "name": {
      "description": "Display name for the element.",
      "type": "string"
    },
    "opacity": {
      "description": "Opacity level (0-1).",
      "type": "number"
    },
    "placeholder": {
      "description": "Placeholder text when content is empty.",
      "type": "string"
    },
    "resizable": {
      "description": "Whether element can be resized.",
      "type": "boolean"
    },
    "rotation": {
      "description": "Rotation angle in degrees.",
      "type": "number"
    },
    "selectable": {
      "description": "Whether element can be selected.",
      "type": "boolean"
    },
    "sepiaEnabled": {
      "description": "Whether sepia effect is enabled.",
      "type": "boolean"
    },
    "shadowBlur": {
      "description": "Shadow blur radius in pixels.",
      "type": "number"
    },
    "shadowColor": {
      "description": "Shadow color.",
      "type": "string"
    },
    "shadowEnabled": {
      "description": "Whether shadow is enabled.",
      "type": "boolean"
    },
    "shadowOffsetX": {
      "description": "Shadow horizontal offset in pixels.",
      "type": "number"
    },
    "shadowOffsetY": {
      "description": "Shadow vertical offset in pixels.",
      "type": "number"
    },
    "shadowOpacity": {
      "description": "Shadow opacity (0-1).",
      "type": "number"
    },
    "showInExport": {
      "description": "Whether element appears in exports.",
      "type": "boolean"
    },
    "stroke": {
      "description": "Stroke color.",
      "type": "string"
    },
    "strokeWidth": {
      "description": "Stroke width in pixels.",
      "type": "number"
    },
    "styleEditable": {
      "description": "Whether element style can be edited.",
      "type": "boolean"
    },
    "text": {
      "description": "Visible label text shown on canvas.",
      "type": "string"
    },
    "textDecoration": {
      "description": "Text decoration: underline, overline, line-through, etc.",
      "type": "string"
    },
    "textTransform": {
      "description": "Text transform: uppercase, lowercase, capitalize, none.",
      "type": "string"
    },
    "type": {
      "const": "text",
      "description": "Element type identifier.",
      "type": "string"
    },
    "verticalAlign": {
      "description": "Vertical alignment: top, middle, bottom.",
      "type": "string"
    },
    "visible": {
      "description": "Whether element is visible.",
      "type": "boolean"
    },
    "width": {
      "description": "Width in pixels.",
      "type": "number"
    },
    "x": {
      "description": "X position in pixels.",
      "type": "number"
    },
    "y": {
      "description": "Y position in pixels.",
      "type": "number"
    }
  },
  "required": [
    "align",
    "alwaysOnTop",
    "animations",
    "backgroundColor",
    "backgroundCornerRadius",
    "backgroundEnabled",
    "backgroundOpacity",
    "backgroundPadding",
    "blurEnabled",
    "blurRadius",
    "brightness",
    "brightnessEnabled",
    "contentEditable",
    "curveEnabled",
    "curvePower",
    "draggable",
    "fill",
    "filters",
    "fontFamily",
    "fontSize",
    "fontStyle",
    "fontWeight",
    "grayscaleEnabled",
    "height",
    "id",
    "letterSpacing",
    "lineHeight",
    "opacity",
    "placeholder",
    "resizable",
    "rotation",
    "selectable",
    "sepiaEnabled",
    "shadowBlur",
    "shadowColor",
    "shadowEnabled",
    "shadowOffsetX",
    "shadowOffsetY",
    "shadowOpacity",
    "showInExport",
    "stroke",
    "strokeWidth",
    "styleEditable",
    "text",
    "textDecoration",
    "textTransform",
    "type",
    "verticalAlign",
    "visible",
    "width",
    "x",
    "y"
  ],
  "type": "object"
}