Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Fix by script - Avoid cross space links to DOCS56

A theme is a collection of resource files that gives a site its visual identity through the use of colors and typography. A theme consists of Cascading Style Sheets (CSS), Javascript files and an imaging configuration which tells the Imaging module what to do with images for a particular page or component.

...

A theme is a module or part of a module composed of CSS, JS, and images.

When to use a theme

The Site module provides theme functionality. You can only create a theme if you use this module and have configured a site definition.

...

Theme resources can be stored in light (YAML) or Maven modules. Themes can reside in a dedicated theme module or form part of another module. A special module version handler is not necessary.

Resource loading

All Magnolia resources, including theme resources, are loaded under the /.resources ("dot resources") path.

...

Theme resources can also be loaded from an external source by specifying the full URL. This is very useful if you use a CDN to store, cache and deliver your static resources.

See Resources and Module structure for more.

Benefits of using a theme

...

cssFiles

optional

CSS node of the theme.

<name>

required

Arbitrary node name. Add a node for each sheet.

addFingerPrint

optional

Embeds a file content fingerprint in the resource URL. The fingerprint consists of a timestamp in the yyyy-MM-dd-HH-mm-ss-SSS format and the word "cache" both preceded by the the standard selector ("~" tilde). For example the travels-magnolia link (above) becomes  /.resources/travel-demo-theme/css/travels-magnolia~2015-08-16-09-49-00-000~cache.css. Google recommends fingerprinting as a best practice.

link

required

Path to the CSS file that is added to the HTML. See Adding style to HTML for more. See also Web resources and Origins and loading order for different options for storing and loading resources.

media

optional

conditionalComment

optional

Defines the conditional comment attribute for the linked CSS file. Conditional comments are used to overcome the limitations of legacy browsers such as Internet Explorer 9 and earlier. For example, the conditional comment  " lte IE9 " would be translated to:

Code Block
languagexml
<!--[if lte IE9]>
	//inclusion of the stylesheet or javascript resource
<![endif]-->

...

jsFiles

optional

JavaScript node of the theme.

<name>

required

Arbitrary node name. Add a node for each JavaScript file.

addFingerPrint

optional

Embeds a file content fingerprint in the resource URL. The fingerprint consists of a timestamp in the yyyy-MM-dd-HH-mm-ss-SSS format, and the word "cache" both preceded by the the standard selector ("~" tilde). For example the modernizer link (above) becomes  /.resources/travel-demo-theme/js//modernizr-2.6.2.min~2015-08-16-09-49-00-000~cache.css. Google recommends fingerprinting as a best practice.

link

required

Path to the JavaScript file. See Web resources and Origins and loading order for different options for storing and loading resources.

...

Themes can make use of the Imaging module to preconfigure image variations. A variation is a specific configuration that defines features of a target image. Variations can range from complex operations, such as applying filters and overlays, to simple resizing of the target image. 

...

imaging

optional

Imaging node of the theme.

variations

required

Image variations node.

<variation>

required

The name of the variation, a.k.a the rendition name. The name is used to call the variation in template scripts. Add one node for every variation.

class

required

You can use one of the available classes or create a custom one. The available properties depend on the class used for the variation. Any custom class must implement 

Javadoc
0info.magnolia.imaging.variation.Variation
.

MTE module provides

Javadoc
0info.magnolia.templating.imaging.variation.SimpleResizeVariation
that resizes images to a defined size in pixels (see below for available properties).

<properties>

Add properties that are supported by the class used.

class

required

Javadoc
0 info.magnolia.templating.imaging.VariationAwareImagingSupport
provides support for variations.

enabled

optional

Enables and disables variation support.

...

Themes are assigned to a site in the theme node of the site definition  in the Site app

Example: Travel Demo Site Definition (CE)

...

Theme definitions from all sources and origins are available in the Definitions app. Select theme in Of type to find all theme definitions. You can hotfix themes in the Resource Files app. Select the theme definition and click Show in Resources in the Definitions app to access the file. 

...