<!--
{
  "documentType" : "article",
  "framework" : "TVML",
  "identifier" : "/documentation/TVML/catalogtemplate",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "catalogTemplate"
}
-->

# catalogTemplate

Displays groups of items along one side of a page and images of a group’s contents
on the other side.

## Overview

Use the `catalogTemplate` element to display information about groups of like products;
for example, a movie catalog that provides categories for dramas, comedies, and all
movies. Each group of products is contained in its own section and displayed along
the left side of the screen. Images depicting the products contained within a selected
group are displayed in the related content area on the right side of the screen.
The following figure shows the basic layout for a `catalogTemplate` page. The theme
for the catalog template defaults to the system preference.

![Layout diagram showing a banner area at the top, three section areas on the left side, and a related content area on the right.](images/com.apple.TVML/catalogtemplate-1.png)

### Main Elements

The following listing shows the main elements of the `catalogTemplate` element in
TVML format.

```xml
<catalogTemplate>
   <banner>
      <title>…</title>
   </banner>
   <list>
      <section>
         <listItemLockup>
            …
         </listItemLockup>
      </section>
      <section>
         <header>
            …
         </header>
         <listItemLockup>
            …
         </listItemLockup>
      </section>
   </list>
</catalogTemplate>
```

#### Element Descriptions

- [banner](/documentation/TVML/banner): Information describing what the catalog contains, such as movies.
- [header](/documentation/TVML/header): Information describing what one section of the page contains.
- [list](/documentation/TVML/list): Element containing all content in the template page, except banner
  information.
- [listItemLockup](/documentation/TVML/listitemlockup): Element containing all information that relates to one
  list item on the left side of the page, including the item title and label, as well
  as related content.
- [section](/documentation/TVML/section): An area of the page containing related elements that are grouped
  together as one element for layout purposes.

### Example

The following listing shows the TVML for a `catalogTemplate` example. The example
displays a title along the top of the screen. Two items representing movie categories,
All Movies and Comedies, are listed along the left side of the screen. Movie posters
are presented on the right in a grid format according to which movie category the
user selects.

```xml
<document>
   <catalogTemplate>
      <banner>
         <title>Movies</title>
      </banner>
      <list>
         <section>
            <listItemLockup>
               <title>All Movies</title>
               <decorationLabel>6</decorationLabel>
               <relatedContent>
                  <grid>
                     <section>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375_A.png" width="250" height="376" />
                           <title>Movie 1</title>
                        </lockup>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375_B.png" width="250" height="376" />
                           <title>Movie 2</title>
                        </lockup>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375_C.png" width="250" height="376" />
                           <title>Movie 3</title>
                        </lockup>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375.png" width="250" height="376" />
                           <title>Movie 4</title>
                        </lockup>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375_C.png" width="250" height="376" />
                           <title>Movie 5</title>
                        </lockup>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375.png" width="250" height="376" />
                           <title>Movie 6</title>
                        </lockup>
                     </section>
                  </grid>
               </relatedContent>
            </listItemLockup>
            <listItemLockup>
               <title>Comedies</title>
               <decorationLabel>4</decorationLabel>
               <relatedContent>
                  <grid>
                     <section>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375_B.png" width="250" height="376" />
                           <title>Movie 2</title>
                        </lockup>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375_A.png" width="250" height="376" />
                           <title>Movie 1</title>
                        </lockup>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375.png" width="250" height="376" />
                           <title>Movie 4</title>
                        </lockup>
                        <lockup>
                           <img src="path to images on your server/Car_Movie_250x375_C.png" width="250" height="376" />
                           <title>Movie 3</title>
                        </lockup>
                     </section>
                  </grid>
               </relatedContent>
            </listItemLockup>
         </section>
      </list>
   </catalogTemplate>
</document>
```

The following figure shows the output for the above example:

![Screenshot showing several movie posters on the right and a list of movie categories on the left.](images/com.apple.TVML/catalogtemplate-2.png)

## Topics

### Valid TVML Attributes

[autoHighlight](/documentation/TVML/autohighlight)

Specifies that the element should initially be in focus.

[binding](/documentation/TVML/binding)

Associates information in a data item with an element.

[layoutDirection](/documentation/TVML/layoutdirection)

Specifies the direction in which text is displayed.

[prototype](/documentation/TVML/prototype)

Associates a data item type with an element.

[theme](/documentation/TVML/theme)

Sets the color scheme for an element.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)