Theme

The theme is the root-level complex type associated with a shared-style sheet. This complex type holds all of the different formatting options available to a theme, and defines the overall look and feel of a document when themed objects are used within the document. In figure 1 below, we can see an example of two different themes applied to the same slide in a presentation.

Figure 1: A theme applied to the same slide in a presentation. Not only does the font and colors change, but also the effects applied to the shapes and table.

A theme consists of four main parts, although the <themeElements> element is the piece that holds the main formatting defined within the theme. The other parts provide overrides, defaults, and additions to the information contained in <themeElements>. The complex type defining a theme, CT_OfficeStyleSheet, is defined in the following manner:

<complexType name="CT_OfficeStyleSheet">
  <sequence>
    <element name="themeElements" type="CT_BaseStyles" minOccurs="1"
      maxOccurs="1"/>
    <element name="objectDefaults" type="CT_ObjectStyleDefaults"
      minOccurs="0" maxOccurs="1"/>
    <element name="extraClrSchemeLst" type="CT_ColorSchemeList"
      minOccurs="0" maxOccurs="1"/>
    <element name="custClrLst" type="CT_CustomColorList" minOccurs="0"
      maxOccurs="1"/>
    <element name="extLst" type="CT_OfficeArtExtensionList"
      minOccurs="0" maxOccurs="1"/>
  </sequence>
  <attribute name="name" type="xsd:string" use="optional" default=""/>
</complexType>

This complex type also holds a CT_OfficeArtExtensionList, which is used for future extensibility of this complex type.