a:solidFill (Solid Fill)
Specifies a solid color fill for shapes, text, lines, and other DrawingML objects in Office Open XML.
Child elements
Description
a:solidFill (Solid Fill) is the fundamental color fill container in DrawingML. It is defined in ECMA-376 Part 1 §20.1.8.40 and applies a uniform, single-color fill to shapes, outlines, text, bullets, and other objects.
Purpose and Scope
Unlike gradient or pattern fills that vary across a surface, a:solidFill specifies one continuous color applied uniformly to the entire fill area. This makes it the most efficient and commonly used fill type for:
- Shape interiors — Solid background color
- Text formatting — Font color, background highlight
- Lines and outlines — Border, connector, and path colors
- Bullets and symbols — Bullet character color
- Callouts and annotations — Emphasis and highlighting
Color Definition Model
a:solidFill uses a color element child to define the actual color value:
a:solidFill (no attributes)
└─ One color element (required):
├─ a:srgbClr (RGB hex: #RRGGBB)
├─ a:schemeClr (theme reference: accent1, accent2, etc.)
├─ a:sysClr (system color: windowText, highlight, etc.)
├─ a:hslClr (HSL: hue, saturation, lightness)
├─ a:prstClr (preset: red, blue, green, etc.)
└─ a:scrgbClr (scRGB: extended RGB range)
Each color element can include modifiers (a:lumMod, a:shade, a:tint, a:alpha, etc.) to adjust brightness, transparency, or tone.
Color Processing Workflow
- Determine base color — Read child color element (RGB hex, scheme reference, etc.)
- Apply modifiers — Adjust lightness, shade, tint, transparency in order
- Resolve theme colors — If scheme color, look up in active theme
- Render — Apply final computed color to shape/text/line
Attributes
| Attribute | Type | Values | Default | Description |
|---|---|---|---|---|
| (none) | — | — | — | a:solidFill has no direct attributes; all color data is specified via child color elements. |
Content Model
a:solidFill (required: exactly one child)
├─ a:srgbClr (RGB hex color)
├─ a:schemeClr (theme color reference)
├─ a:sysClr (system color)
├─ a:hslClr (HSL color)
├─ a:prstClr (preset color)
└─ a:scrgbClr (extended RGB)
Child Color Elements
| Element | Purpose | Example |
|---|---|---|
a:srgbClr |
RGB color as hex code | val="4472C4" (blue) |
a:schemeClr |
Theme color reference | val="accent1" (theme accent) |
a:sysClr |
System color reference | val="windowText" (window text color) |
a:hslClr |
HSL color space | hue="21600000" (red) |
a:prstClr |
Preset named color | val="red", val="blue", val="green" |
a:scrgbClr |
Extended RGB (0–100000) | r="100000" g=”50000” b="25000" |
Color Modifiers (Child Elements)
Color elements can contain modifiers to adjust the base color:
| Modifier | Purpose | Value Range | Example |
|---|---|---|---|
a:lumMod |
Lighten/darken (multiply) | 0–100000 (100000 = 100%) | val="50000" = 50% brightness |
a:lumOff |
Lighten/darken (additive) | -100000–100000 | val="20000" = +20% brightness |
a:shade |
Darken by mixing with black | 0–100000 | val="50000" = 50% black mix |
a:tint |
Lighten by mixing with white | 0–100000 | val="50000" = 50% white mix |
a:alpha |
Transparency | 0–100000 | val="75000" = 75% opaque |
a:alphaModClr |
Modify alpha of color mod | nested structure | Advanced opacity control |
a:satMod |
Saturation multiply | 0–100000 | val="50000" = 50% saturation |
a:satOff |
Saturation offset | -100000–100000 | val="10000" = +10% saturation |
a:hueOff |
Hue shift | -5400000–5400000 | val="2700000" = 60° shift |
Examples
Simple Solid Fill with RGB Hex Color
<a:solidFill>
<a:srgbClr val="00AAFF"/>
</a:solidFill>
var solidFill = new SolidFill(
new RgbColorModelHex { Val = "00AAFF" } // Bright cyan
);
Solid Fill with Theme Color Reference
<a:solidFill>
<a:schemeClr val="accent1"/>
</a:solidFill>
var solidFill = new SolidFill(
new SchemeColor { Val = SchemeColorValues.Accent1 }
);
// Color will automatically update if theme changes
Solid Fill with Theme Color + Lightening Modifier
<a:solidFill>
<a:schemeClr val="accent1">
<a:tint val="40000"/>
</a:schemeClr>
</a:solidFill>
var schemeColor = new SchemeColor { Val = SchemeColorValues.Accent1 };
schemeColor.Append(new Tint { Val = 40000 }); // 40% white tint = lighter
var solidFill = new SolidFill(schemeColor);
Solid Fill with Shade (Darkening) Modifier
<a:solidFill>
<a:srgbClr val="70AD47">
<a:shade val="60000"/>
</a:srgbClr>
</a:solidFill>
var rgbColor = new RgbColorModelHex { Val = "70AD47" }; // Green
rgbColor.Append(new Shade { Val = 60000 }); // 60% black mix = darker green
var solidFill = new SolidFill(rgbColor);
Solid Fill with Transparency (Alpha)
<a:solidFill>
<a:srgbClr val="FF0000">
<a:alpha val="50000"/>
</a:srgbClr>
</a:solidFill>
var rgbColor = new RgbColorModelHex { Val = "FF0000" }; // Red
rgbColor.Append(new Alpha { Val = 50000 }); // 50% opaque = 50% transparent
var solidFill = new SolidFill(rgbColor);
Solid Fill in Shape (Background Color)
<a:spPr>
<a:xfrm>
<a:off x="914400" y="914400"/>
<a:ext cx="2286000" cy="1143000"/>
</a:xfrm>
<a:prstGeom prst="rect"><a:avLst/></a:prstGeom>
<a:solidFill>
<a:schemeClr val="accent2"/>
</a:solidFill>
<a:ln w="25400">
<a:solidFill><a:srgbClr val="2F5233"/></a:solidFill>
</a:ln>
</a:spPr>
var spPr = new ShapeProperties();
var xfrm = new Transform2D();
xfrm.Append(new Offset { X = 914400, Y = 914400 });
xfrm.Append(new Extents { Cx = 2286000, Cy = 1143000 });
spPr.Append(xfrm);
spPr.Append(new PresetGeometry { Preset = ShapeTypeValues.Rectangle }
.Append(new AdjustValueList()));
// Shape fill (background)
spPr.Append(new SolidFill(
new SchemeColor { Val = SchemeColorValues.Accent2 }));
// Line fill (border)
var line = new Outline { Width = 25400 };
line.Append(new SolidFill(
new RgbColorModelHex { Val = "2F5233" }));
spPr.Append(line);
Solid Fill with Multiple Modifiers (Tint + Shade + Saturation)
<a:solidFill>
<a:schemeClr val="accent1">
<a:tint val="30000"/>
<a:satMod val="80000"/>
<a:lumMod val="90000"/>
</a:schemeClr>
</a:solidFill>
var schemeColor = new SchemeColor { Val = SchemeColorValues.Accent1 };
schemeColor.Append(new Tint { Val = 30000 }); // 30% lighter
schemeColor.Append(new SaturationModulation { Val = 80000 }); // 80% saturation
schemeColor.Append(new LuminanceModulation { Val = 90000 }); // 90% brightness
var solidFill = new SolidFill(schemeColor);
Common RGB Color Reference
| Color | Hex Code | Use Case |
|---|---|---|
| Black | 000000 |
Text, outlines, dark backgrounds |
| White | FFFFFF |
Light backgrounds, contrast |
| Red | FF0000 |
Warnings, errors, emphasis |
| Green | 70AD47 |
Success, positive actions |
| Blue | 4472C4 |
Links, professional, primary |
| Yellow | FFD966 |
Caution, highlights, warnings |
| Orange | ED7D31 |
Alerts, secondary emphasis |
| Purple | 7030A0 |
Royalty, secondary |
| Gray | 808080 |
Neutral, disabled, borders |
Scheme Color Reference (Theme Colors)
| Scheme Color | Purpose | Typical Use |
|---|---|---|
accent1 |
Primary theme color | Main design element, headers |
accent2 |
Secondary theme color | Alternative emphasis, secondary elements |
accent3–accent6 |
Additional accents | Tertiary colors in design system |
dark1, dark2 |
Dark colors | Text, outlines, darkened fills |
light1, light2 |
Light colors | Backgrounds, light fills |
hyperlink |
Hyperlink color | Links, hyperlinks |
followedHyperlink |
Visited link color | Visited/followed hyperlinks |
Color Modifier Combinations
| Modifier Sequence | Effect | Use Case |
|---|---|---|
shade="50000" |
50% darker | Darker version of color |
tint="40000" |
40% lighter | Lighter, softer version |
lumMod="80000" lumOff="10000" |
Reduced brightness + offset | Fine-tuned brightness control |
satMod="50000" |
50% saturation | Desaturated/muted color |
alpha="50000" |
50% opacity | Semi-transparent overlay |
alpha="25000" |
25% opacity | Very transparent/subtle |
Notes
Element Relationships
- Parents (nine container elements):
a:ln(line/outline): Stroke color for shape outlines, connectors, borders.a:fill(fill reference): Shorthand fill reference in effect styles.a:effectStyle(effect style): Fill for effect elements.a:buClr(bullet color): Color for paragraph bullets and numbering.- Lines (
a:lnL,a:lnR,a:lnT,a:lnB): Individual borders on table cells (left, right, top, bottom).
- Children (color definition):
- One of:
a:srgbClr(RGB hex color),a:schemeClr(theme color reference),a:sysClr(system color),a:hslClr(HSL color),a:prstClr(preset color),a:scrgbClr(scRGB color) - Optional modifiers:
a:alphaModFix,a:alphaMod,a:shade,a:tint,a:lumMod,a:lumOff(for theme/system colors)
- One of:
General Notes
- Single Color Element Required:
a:solidFillmust contain exactly one child color element; no color element means no fill is applied. - Single Color Source: Exactly one color definition must be present (RGB, theme, HSL, system, scRGB, or preset). Multiple color elements are invalid.
- Theme Color Integration: Using
a:schemeClrenables automatic color scheme switching across the document. Recommended for consistency. - Color Modifiers: Theme and system colors support modifiers (alpha, shade, tint, lumMod, lumOff, etc.) for fine-tuning shades and opacity.
- Modifier Order: Multiple modifiers are applied in document order (left-to-right). For predictable results, follow standard order:
tint/shade, thenlumMod/lumOff, thenalpha. - Transparency Handling:
alpha="100000"= fully opaque;alpha="0"= fully transparent. Use for watermarks or subtle overlays. - Performance: Solid fills are most efficient; avoid excessive transparency or complex modifier stacks in large documents.
- Rendering Precedence: Direct RGB colors override scheme colors if both are present; first child element encountered is used.
- Compatibility: Solid fill structure is consistent across PresentationML (shapes), DrawingML, and SpreadsheetML (cell fills).