{ "$schema": "../_schema.json", "element": "shape", "shared_base": true, "properties": { "align": { "type": "string", "description": "Paragraph alignment: 'left' / 'center' (c/ctr) / 'right' (r) / 'justify'.", "add": true, "set": true, "get": true, "examples": [ "--prop align=center" ], "enforcement": "report" }, "bold": { "type": "bool", "description": "Bold runs. Bare alias of font.bold.", "add": true, "set": true, "examples": [ "--prop bold=true" ], "enforcement": "report", "aliases": [ "font.bold" ], "get": true, "readback": "as emitted by handler (per-format details vary)" }, "color": { "type": "color", "description": "Text color. Bare alias of font.color.", "add": true, "set": true, "examples": [ "--prop color=#FF0000", "--prop color=0000FF" ], "enforcement": "report", "aliases": [ "font.color" ], "get": true, "readback": "as emitted by handler (per-format details vary)" }, "fill": { "type": "color", "description": "Solid fill color, or 'none' for no fill (text-only shapes route effects to text-level rPr). Accepts color-transform modifiers appended with '+': '+lumMod' / '+lumOff' (luminance, percent), '+tint' / '+shade', '+alpha' (e.g. 'accent1+lumMod75', 'FF0000+lumMod50', 'accent2+shade60+alpha80'). Modifiers apply to both scheme and srgb base colors and round-trip in Get.", "add": true, "set": true, "get": true, "examples": [ "--prop fill=#FFFF00", "--prop fill=none", "--prop fill=FF0000", "--prop fill=#FF0000", "--prop fill=red", "--prop fill=accent1" ], "readback": "#-prefixed uppercase hex", "enforcement": "report", "aliases": [ "background" ] }, "flipH": { "type": "bool", "aliases": [ "flipHorizontal" ], "description": "Flip horizontally (Office-API alias of flip=h).", "add": true, "set": true, "examples": [ "--prop flipH=true" ], "enforcement": "report" }, "flipV": { "type": "bool", "aliases": [ "flipVertical" ], "description": "Flip vertically (Office-API alias of flip=v).", "add": true, "set": true, "examples": [ "--prop flipV=true" ], "enforcement": "report" }, "font": { "type": "string", "description": "default font family for shape text. Bare 'font' targets Latin + EastAsian; for per-script control (Japanese / Korean / Arabic) use font.latin, font.ea, or font.cs.", "aliases": [ "font.name" ], "add": true, "set": true, "get": true, "examples": [ "--prop font=Arial" ], "readback": "font name", "enforcement": "report" }, "glow": { "type": "string", "description": "glow effect. Pass a color (e.g. '4472C4') or 'true' (defaults to accent blue).", "add": true, "set": true, "get": true, "examples": [ "--prop glow=#4472C4", "--prop glow=4472C4", "--prop glow=true" ], "readback": "color hex string", "enforcement": "report" }, "italic": { "type": "bool", "description": "Italic runs. Bare alias of font.italic.", "add": true, "set": true, "examples": [ "--prop italic=true" ], "enforcement": "report", "aliases": [ "font.italic" ], "get": true, "readback": "as emitted by handler (per-format details vary)" }, "line": { "type": "string", "description": "Outline color (or 'none'). Form: 'color[:width[:style]]', e.g. 'FF0000:1.5:dash'. width in points; style: solid|dash|dot|dashdot|longdash.", "aliases": [ "border", "linecolor", "lineColor" ], "add": true, "set": true, "get": true, "examples": [ "--prop line=#000000", "--prop line=FF0000:1.5", "--prop line=none", "--prop line=000000" ], "readback": "color or color:width", "enforcement": "report" }, "margin": { "type": "length", "description": "uniform internal padding (text inset) for shape body.", "add": true, "set": true, "get": true, "examples": [ "--prop margin=4", "--prop margin=0.1in" ], "readback": "n/a", "enforcement": "report" }, "name": { "type": "string", "description": "Override the auto-generated 'Shape {id}' label on cNvPr @name.", "add": true, "set": true, "examples": [ "--prop name=\"banner\"", "--prop name=MyShape" ], "enforcement": "report", "get": true, "readback": "shape name string (cNvPr @name)" }, "reflection": { "type": "string", "description": "reflection effect. Accepts 'true' to enable a default reflection.", "add": true, "set": true, "get": false, "examples": [ "--prop reflection=true" ], "readback": "n/a", "enforcement": "report" }, "rotation": { "type": "string", "description": "Rotation in degrees (positive = clockwise). Stored OOXML-internal as 60000ths of a degree on Transform2D @rot.", "aliases": [ "rot", "rotate" ], "add": true, "set": true, "examples": [ "--prop rotation=45" ], "enforcement": "report", "get": true, "readback": "as emitted by handler (per-format details vary)" }, "shadow": { "type": "string", "description": "outer shadow effect. Pass a color (e.g. '000000') or 'true' (defaults to black). Routed to text-level rPr for text-only shapes.", "add": true, "set": true, "get": true, "examples": [ "--prop shadow=#808080", "--prop shadow=none", "--prop shadow=000000", "--prop shadow=true" ], "readback": "color hex string", "enforcement": "report" }, "size": { "type": "font-size", "description": "font size", "aliases": [ "fontSize", "fontsize", "font.size" ], "add": true, "set": true, "get": true, "examples": [ "--prop size=14", "--prop size=14pt", "--prop size=10.5pt" ], "readback": "unit-qualified string, e.g. \"14pt\"", "enforcement": "strict" }, "softEdge": { "type": "string", "aliases": [ "softedge" ], "description": "Soft edge radius, or 'none' to clear.", "add": true, "set": true, "get": true, "examples": [ "--prop softEdge=5", "--prop softEdge=4pt" ], "readback": "unit-qualified string in points, e.g. \"5pt\"", "enforcement": "report" }, "text": { "type": "string", "add": true, "set": true, "get": true, "examples": [ "--prop text=\"Note\"", "--prop text=\"Hello\"" ], "readback": "plain text content of the shape", "enforcement": "strict" }, "underline": { "type": "string", "description": "Underline style: 'true'/'single'/'sng', 'double'/'dbl', 'none'/'false'. Bare alias of font.underline.", "add": true, "set": true, "examples": [ "--prop underline=single" ], "enforcement": "report", "aliases": [ "font.underline" ], "get": true, "readback": "as emitted by handler (per-format details vary)" }, "valign": { "type": "string", "description": "Vertical anchor: 'top' (t) / 'center' (ctr/middle/c/m) / 'bottom' (b).", "add": true, "set": true, "get": true, "examples": [ "--prop valign=middle" ], "enforcement": "report" } } }