OPF
SpecDefinition referenceView source

Color Ref

A color value or reference, enforced on styled table cell fill and text colors, cell border colors, solid background colors, gradient stop colors and pattern foreground and background colors. Three forms: - Literal hex: '#RGB', '#RRGGBB', or '#RRGGBBAA'. - Color-scheme name, resolved through the effective color scheme after design resolution: an OOXML slot ('accent1'-'accent6', 'dark1', 'dark2', 'light1', 'light2', 'hyperlink', 'followedHyperlink') or an abstract role ('primary', 'secondary', 'accent', 'background', 'surface', 'surfaceAlt', 'text', 'textSecondary'). Roles resolve through the same role-to-slot mapping engines already apply to color schemes. 'surfaceAlt' has no slot: it is the alternate surface of banded table rows, derived from 'surface' and 'text' (the surface mixed a tenth of the way towards the text color, further when needed, so it always differs visibly from 'surface' and keeps 4.5:1 text contrast; core surfaceAltColor). - Variable reference: 'var:<id>' into the top-level variables map. Names keep content theme-portable: re-theming the deck updates every named reference, where a literal hex stays frozen. Unknown 'var:' ids produce a validation warning, never an error, and engines fall back to their default text color. TextRun.color documents the same three forms but remains an open string so imported decks with unrecognized run colors stay valid; validators warn there instead of erroring.

Metadata

Definition
#/$defs/ColorRef
Form
3 inclusive forms (anyOf)
Source
spec/schemas/opf.schema.json

Field index

This definition uses the forms or value constraints below.

anyOf 1 · ref:HexColor

Referenced HexColor · string

Hex color shorthand accepted by selected string fields.

Exact constraints for Referenced HexColor
Referenced HexColor schema
{
  "type": "string",
  "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
  "description": "Hex color shorthand accepted by selected string fields.",
  "examples": [
    "#fff",
    "#ffff00",
    "#0F172AFF"
  ]
}
Exact constraints for anyOf 1
anyOf 1 schema
{
  "$ref": "#/$defs/HexColor"
}

anyOf 2 · enum

Exact constraints for anyOf 2
anyOf 2 schema
{
  "type": "string",
  "enum": [
    "accent1",
    "accent2",
    "accent3",
    "accent4",
    "accent5",
    "accent6",
    "dark1",
    "dark2",
    "light1",
    "light2",
    "hyperlink",
    "followedHyperlink",
    "primary",
    "secondary",
    "accent",
    "background",
    "surface",
    "surfaceAlt",
    "text",
    "textSecondary"
  ]
}

anyOf 3 · string

Exact constraints for anyOf 3
anyOf 3 schema
{
  "type": "string",
  "pattern": "^var:[a-z][a-z0-9-]*$"
}
Complete definition constraints
Schema constraints
{
  "anyOf": [
    {
      "$ref": "#/$defs/HexColor"
    },
    {
      "type": "string",
      "enum": [
        "accent1",
        "accent2",
        "accent3",
        "accent4",
        "accent5",
        "accent6",
        "dark1",
        "dark2",
        "light1",
        "light2",
        "hyperlink",
        "followedHyperlink",
        "primary",
        "secondary",
        "accent",
        "background",
        "surface",
        "surfaceAlt",
        "text",
        "textSecondary"
      ]
    },
    {
      "type": "string",
      "pattern": "^var:[a-z][a-z0-9-]*$"
    }
  ],
  "description": "A color value or reference, enforced on styled table cell fill and text colors, cell border colors, solid background colors, gradient stop colors and pattern foreground and background colors. Three forms:\n- Literal hex: '#RGB', '#RRGGBB', or '#RRGGBBAA'.\n- Color-scheme name, resolved through the effective color scheme after design resolution: an OOXML slot ('accent1'-'accent6', 'dark1', 'dark2', 'light1', 'light2', 'hyperlink', 'followedHyperlink') or an abstract role ('primary', 'secondary', 'accent', 'background', 'surface', 'surfaceAlt', 'text', 'textSecondary'). Roles resolve through the same role-to-slot mapping engines already apply to color schemes. 'surfaceAlt' has no slot: it is the alternate surface of banded table rows, derived from 'surface' and 'text' (the surface mixed a tenth of the way towards the text color, further when needed, so it always differs visibly from 'surface' and keeps 4.5:1 text contrast; core surfaceAltColor).\n- Variable reference: 'var:<id>' into the top-level variables map.\n\nNames keep content theme-portable: re-theming the deck updates every named reference, where a literal hex stays frozen. Unknown 'var:' ids produce a validation warning, never an error, and engines fall back to their default text color. TextRun.color documents the same three forms but remains an open string so imported decks with unrecognized run colors stay valid; validators warn there instead of erroring.",
  "examples": [
    "#0F4C81",
    "accent2",
    "text",
    "var:risk"
  ]
}
value · Named choices (see schema for other values and constraints)
"accent1""accent2""accent3""accent4""accent5""accent6""dark1""dark2""light1""light2""hyperlink""followedHyperlink""primary""secondary""accent""background""surface""surfaceAlt""text""textSecondary"