Skip to content

ppt shape

zmworm edited this page Apr 16, 2026 · 44 revisions

PowerPoint: Shape

Shapes are the fundamental building block of PowerPoint slides. Every visual element on a slide — text boxes, rectangles, arrows, flowchart symbols, callout bubbles — is a shape. Shapes support 70+ preset geometries, custom SVG-like paths, rich text formatting, fill/outline styling, effects (shadow, glow, reflection, soft edge), 3D transforms, animations, and hyperlinks.

Path: /slide[N]/shape[M]

Operations

  • add - Add shapes with text, fill, position, effects
  • get - Read shape attributes (position, styling, text)
  • set - Modify properties, animation, sub-elements

Shape preset gallery

All presets are set via the preset / geometry property. Default is rect.

Basic shapes

Preset Aliases Description
rect rectangle Rectangle (default)
roundRect roundedrectangle Rounded rectangle
ellipse oval Ellipse / circle
triangle Isosceles triangle
rtTriangle righttriangle Right triangle
diamond Diamond / rhombus
parallelogram Parallelogram
trapezoid Trapezoid
pentagon Pentagon
hexagon Hexagon
heptagon Heptagon
octagon Octagon
decagon Decagon
dodecagon Dodecagon

Stars

Preset Description
star4 4-point star
star5 5-point star
star6 6-point star
star8 8-point star
star10 10-point star
star12 12-point star
star16 16-point star
star24 24-point star
star32 32-point star

Arrows

Preset Aliases Description
rightArrow rarrow Right arrow
leftArrow larrow Left arrow
upArrow Up arrow
downArrow Down arrow
leftRightArrow lrarrow Left-right arrow
upDownArrow udarrow Up-down arrow
chevron Chevron
homePlate homeplate Home plate / pentagon arrow
notchedRightArrow Notched right arrow
bentUpArrow Bent up arrow
curvedRightArrow Curved right arrow
stripedRightArrow Striped right arrow
uturnArrow U-turn arrow
circularArrow Circular arrow

Callouts

Preset Aliases Description
callout1 callout Rectangular callout
callout2 Rectangular callout (variant 2)
callout3 Rectangular callout (variant 3)
wedgeRoundRectCallout Rounded rectangle callout
wedgeEllipseCallout Ellipse callout
cloudCallout Cloud callout

Flowchart

Preset Aliases Description
flowChartProcess process Process
flowChartDecision decision Decision (diamond)
flowChartTerminator terminator Terminator (rounded)
flowChartDocument document Document
flowChartInputOutput flowchartio, io Input/Output
flowChartData data Data
flowChartPredefinedProcess predefinedprocess Predefined process
flowChartPreparation preparation Preparation
flowChartManualInput manualinput Manual input
flowChartManualOperation manualoperation Manual operation
flowChartConnector flowconnector Connector (circle)
flowChartOffpageConnector offpageconnector Off-page connector
flowChartMultidocument multidocument Multi-document
flowChartSort sort Sort
flowChartMerge merge Merge
flowChartExtract extract Extract
flowChartDelay delay Delay
flowChartDisplay display Display
flowChartAlternateProcess alternateprocess Alternate process

Symbols and special shapes

Preset Aliases Description
plus cross Plus / cross
heart Heart
cloud Cloud
lightning lightningbolt Lightning bolt
sun Sun
moon Moon
arc Arc
donut Donut ring
noSmoking No smoking / prohibited
blockArc Block arc
cube 3D cube
can cylinder Cylinder / can
line Straight line
ribbon Ribbon
ribbon2 Ribbon (variant)
brace leftbrace Left brace {
rightBrace Right brace }
leftBracket Left bracket [
rightBracket Right bracket ]
smileyFace smiley Smiley face
foldedCorner Folded corner
frame Frame border
gear6 6-tooth gear
gear9 9-tooth gear

Custom geometry

Use SVG-like path commands in 0-100 relative coordinate space:

# Custom triangle
officecli add slides.pptx /slide[1] --type shape \
  --prop "geometry=M 50,0 L 100,100 L 0,100 Z" \
  --prop fill=4472C4

Commands: M (move), L (line), C (cubic bezier), Z (close)

Property reference summary

Position and size

Property Default Notes
x / left Horizontal position (EMU or units: cm, in, pt, px)
y / top Vertical position
width / w Width
height / h Height
rotation / rotate 0 Rotation angle in degrees
flipH false Flip horizontally
flipV false Flip vertically
zorder / z-order front, back, forward, backward, or absolute position

Fill

Property Default Notes
fill Hex color, scheme color (accent1-6, dk1, lt1, etc.), or none
gradient "C1-C2", "C1-C2-angle", "C1@30-C2@70", "RADIAL;C1;C2", "PATH;C1;C2"
image / imageFill Image file path for picture fill
opacity 1.0 Fill opacity (0-1 or 0-100%)

Outline

Property Default Notes
line / lineColor / line.color Hex color, scheme color, or none
lineWidth / line.width 1pt Width in pt (or with units: cm, in)
lineDash / line.dash solid solid, dot, dash, dashDot, lgDash, lgDashDot, lgDashDotDot
lineOpacity / line.opacity 1.0 Outline opacity (0-1 or 0-100%)

Text content and formatting

Property Default Notes
text Text content (\n for line breaks)
font Calibri Font family
size 11pt Font size (pt)
bold false Bold
italic false Italic
color 000000 Text color (hex or scheme)
underline false true/single, double, heavy, dotted, dash, wavy, none
strikethrough / strike false true/single, double, none
spacing / charSpacing Character spacing in points
baseline super, sub, none, or percentage
textFill / textGradient Gradient fill on text: "C1-C2"

Text layout

Property Default Notes
align left left, center, right, justify
valign center top, center/middle, bottom
margin / inset Text padding: single value or "left,top,right,bottom"
marginLeft / marL Paragraph left margin
marginRight / marR Paragraph right margin
indent First-line indent
lineSpacing Line spacing (pt or %)
spaceBefore Space before paragraph (pt)
spaceAfter Space after paragraph (pt)
autoFit normal true/normal (shrink), shape (resize shape), false/none
list bullet, dash, arrow, check, star, numbered, alpha, roman, none
textWarp / wordArt Preset warp: wave, arch, circle, button, or full name

Effects

Property Default Notes
shadow "COLOR-BLUR-ANGLE-DIST-OPACITY" (e.g. "000000-6-315-4-50") or none
glow "COLOR-RADIUS-OPACITY" (e.g. "0070FF-10-60") or none
reflection tight, half, full, percentage, or none
softEdge Blur radius in points, or none

Note: When fill=none, effects apply to text runs instead of the shape.

3D

Property Default Notes
rot3d / rotation3d "rotX,rotY,rotZ" in degrees, or none
rotX, rotY, rotZ Individual 3D rotation axes
bevel / bevelTop Preset or "preset-width-height". Presets: circle, relaxedInset, cross, coolSlant, angle, softRound, convex, slope, divot, riblet, hardEdge, artDeco
bevelBottom Bottom bevel (same presets)
depth / extrusion Depth in points, or none
material warmMatte, plastic, metal, darkEdge, softEdge, flat, wire, powder, clear
lighting / lightRig threePt, balanced, soft, harsh, flood, contrasting, morning, sunrise, sunset

Metadata

Property Default Notes
name TextBox {N} Shape name (morph uses !! prefix)
alt / altText Accessibility alt text
link Hyperlink URL

Animation

Property Default Notes
animation "EFFECT[-DIRECTION][-DURATION][-TRIGGER][-delay=N][-easein=N][-easeout=N]" or none
motionPath "M x y L x y E[-DURATION[-TRIGGER]]" (0-1 coordinates) or none

Effects: appear, fade, fly, zoom, wipe, bounce, float, split, wheel, spin, grow, swivel, checkerboard, blinds, bars, box, circle, diamond, dissolve, flash, plus, random, strips, wedge, bold, wave, crawl, swipe

Classes: entrance (default), exit, emphasis

Sub-elements

Shapes contain text structured as paragraphs and runs:

Element Path Operations
paragraph /slide[N]/shape[M]/paragraph[P] add, set
run /slide[N]/shape[M]/run[K] add, set

get

officecli get slides.pptx /slide[1]/shape[1]
officecli get slides.pptx /slide[1]/shape[1] --depth 2

query

Selectors: shape, textbox, title

Attribute Description
font / font!= Filter by font name
title Title placeholder shapes

Pseudo: :contains("text")

officecli query slides.pptx 'shape:contains("Revenue")'
officecli query slides.pptx "title"
officecli query slides.pptx "shape[font!=Calibri]"

remove

officecli remove slides.pptx /slide[1]/shape[2]

move

officecli move slides.pptx /slide[1]/shape[3] --to /slide[2]

copy

officecli add slides.pptx /slide[2] --from /slide[1]/shape[1]

Examples

# Simple text box
officecli add slides.pptx /slide[1] --type shape \
  --prop text="Hello World" \
  --prop x=2cm --prop y=3cm --prop width=10cm --prop height=5cm

# Styled shape with gradient and shadow
officecli add slides.pptx /slide[1] --type shape \
  --prop text="Important" \
  --prop x=5cm --prop y=5cm --prop width=15cm --prop height=3cm \
  --prop gradient=4472C4-1A1A2E \
  --prop color=FFFFFF --prop size=24 --prop bold=true --prop align=center \
  --prop "shadow=000000-6-315-4-50"

# Flowchart decision diamond
officecli add slides.pptx /slide[1] --type shape \
  --prop preset=decision \
  --prop text="Approved?" \
  --prop x=8cm --prop y=6cm --prop width=6cm --prop height=4cm \
  --prop fill=FFC000 --prop align=center

# Star with 3D bevel and glow
officecli add slides.pptx /slide[1] --type shape \
  --prop preset=star5 \
  --prop fill=FFD700 --prop line=FF8C00 --prop lineWidth=2 \
  --prop x=10cm --prop y=2cm --prop width=5cm --prop height=5cm \
  --prop "bevel=circle-8-8" --prop "glow=FFD700-8-60"

# Animated entrance
officecli add slides.pptx /slide[1] --type shape \
  --prop text="Animated" \
  --prop x=5cm --prop y=5cm --prop width=10cm --prop height=5cm \
  --prop animation=flyIn-left-300-after-delay=200-easein=50

# Bulleted list
officecli add slides.pptx /slide[1] --type shape \
  --prop "text=Item 1\nItem 2\nItem 3" \
  --prop list=bullet \
  --prop x=2cm --prop y=5cm --prop width=20cm --prop height=8cm

Based on OfficeCLI v1.0.49

Clone this wiki locally