Anatomy of a Theme

Themes are built using a powerful template system that enables designers and developers familiar with CSS and HTML to modify the presentation and structure of a BigCommerce store.

Directory Structure

Theme files that apply to a store design are organized in several different directories, as follows:

  • Images
  • Panels
  • Snippets
  • Styles

Images

Theme specific static images (referenced from CSS, or in image tags).

Layouts

Layout templates provide the base HTML structure that wraps storefront page content. Each layout file corresponds to a specific page.

For example, product.html refers to the page that’s shown when a customer is viewing the details of a product.

Most layout files contain nothing more than references to individual panels to be shown on a page. These panels are contained in div tags that generally define left, center, or right columns of the page.

Panels

Panels provide reusable blocks or dynamic sections of content.

For example, the SideCategoryList panel builds a list of categories to be shown throughout the store.

Panels are generally referenced directly from layout templates. They define which content should be shown on a particular page and handle the generation of that specific content.

Some panels contain strictly static content (such as the store name) whilst others generate content dynamically. Dynamically generated panels cannot be created ad-hoc as they are linked to specific data and logic within the application.

Snippets

Snippets are templates containing a fragment of HTML that can be embedded multiple times in a page, either from direct references or from being part of a loop that iterates over the items in a list.

For example, the HomeFeaturedProductsItem snippet renders each individual product listed in the HomeFeaturedProducts panel.

Styles

Primary layout stylesheets for the Theme, with styles.css being the core file.