a:spPr (Shape Properties) is the comprehensive visual formatting container for DrawingML shapes. It is defined in ECMA-376 Part 1 §20.1.2.5.2 and encapsulates all geometric, positional, fill, outline, and effect properties for a shape.
Purpose and Scope
Shape properties control:
Geometry — Shape outline and form (rectangle, circle, arrow, etc.)
Position and Size — 2D transform (x, y, width, height, rotation, flip)
Fill — Interior color, gradient, pattern, or transparency
var spPr = new ShapeProperties();
// Transform: position and size
var xfrm = new Transform2D();
xfrm.Append(new Offset { X = 914400, Y = 914400 }); // 1" x 1" position
xfrm.Append(new Extents { Cx = 2743200, Cy = 1371600 }); // 3" x 1.5" size
spPr.Append(xfrm);
// Geometry: rectangle
var prstGeom = new PresetGeometry { Preset = ShapeTypeValues.Rectangle };
prstGeom.Append(new AdjustValueList());
spPr.Append(prstGeom);
// Fill: solid blue
var solidFill = new SolidFill(new RgbColorModelHex { Val = "4472C4" });
spPr.Append(solidFill);
// Outline: 2pt black line
var ln = new Outline { Width = 25400 };
var lnFill = new SolidFill(new RgbColorModelHex { Val = "000000" });
ln.Append(lnFill);
spPr.Append(ln);
var spPr = new ShapeProperties();
// Transform: position and size (square for circle)
var xfrm = new Transform2D();
xfrm.Append(new Offset { X = 1371600, Y = 914400 });
xfrm.Append(new Extents { Cx = 1828800, Cy = 1828800 }); // 2" x 2" circle
spPr.Append(xfrm);
// Geometry: ellipse (circle)
var prstGeom = new PresetGeometry { Preset = ShapeTypeValues.Ellipse };
prstGeom.Append(new AdjustValueList());
spPr.Append(prstGeom);
// Fill: gradient from red to yellow
var gradFill = new GradientFill();
var gsLst = new GradientStopList();
gsLst.Append(new GradientStop { Position = 0 }
.Append(new RgbColorModelHex { Val = "FF6B6B" }));
gsLst.Append(new GradientStop { Position = 100000 }
.Append(new RgbColorModelHex { Val = "FFD93D" }));
gradFill.Append(gsLst);
var lin = new LinearGradientFill { Angle = 2700000, Scaled = true };
gradFill.Append(lin);
spPr.Append(gradFill);
// Outline: thin dark line
var outline = new Outline { Width = 12700 };
outline.Append(new SolidFill(new RgbColorModelHex { Val = "2D3436" }));
spPr.Append(outline);
Central Formatting Hub: Shape properties is the master container for all visual and geometric attributes of a shape. Every shape must have at least one a:spPr.
Content Model: Only one fill type (solidFill, gradFill, pattFill, grpFill, noFill) can be active; the first encountered is used.
2D Transform Required: The a:xfrm child controls position, size, and rotation. If omitted, shape defaults to origin (0,0) with minimal size.
Geometry Selection: Either preset (a:prstGeom) or custom (a:custGeom) geometry must be specified. Determines shape outline and interior region.
Position Units: All x, y coordinates and dimensions are in EMU (English Metric Units); 914400 EMU = 1 inch.
Fill Hierarchy: Fill options include solid color, gradient, pattern, or none. Only one fill type can be active; the first valid fill is used.
Outline Optional: Line properties (a:ln) control stroke width, color, dash style, and line caps. Omitted line means no stroke.
Effects Stacking: Multiple effects (a:effectLst) can be applied: shadow, glow, reflection, soft edge, etc. Effects render in the order listed.
Compatibility: Shape properties structure is used across PresentationML (slide shapes), DrawingML, and SpreadsheetML (chart elements).
Privacy Notice
This site stores your theme preference and this acknowledgement in localStorage — no cookies, no tracking. When you use the contact form, your message is sent via Formspree (USA) to reach us.