Themes feature allows to change the page template on the fly. Themes created by just using renderer redefinition. So nothing special performed from this point. But additionally provided CDK archetype allows to create themes based on jspx templates easily and pack as separate library together with resources. Then page could be switched between the themes by just theme attribute usage.

Default page renderer provides just the simple page parts such as header, footer and sidebar. No additional styling applied to default theme.

simple theme which is just extension of the default renderer just adds the RichFaces skinning for the page elements. So the end-developer able to use skinning parameters or rich-* classes as usually to redefine general look and feel for header/footer/sidebar.

There are laso three more themes built using new archetype provided (should be added as separate jar explicitly). VioletRays based on freecsstemplates template. It not uses a skin parameters(just stylesheets provided within a template) And two more which uses RichFaces skin for its elements.

Just next steps should be performed to create own themes:

Themes project creation mvn archetype:create
-DarchetypeGroupId=org.richfaces.cdk
-DarchetypeArtifactId=maven-archetype-theme
-DarchetypeVersion=RF-VERSION
-DartifactId=ARTIFACT-ID
-DgroupId=GROUP-ID
-Dversion=VERSION

creates ARTIFACT-ID directory and generate needed pom.xml inside. Then

Theme creation mvn cdk:add-theme -Dname=THEME-NAME

creates skeleton of new skin inside the created folder.

So, the developer just need to edit the jspx template and add the needed resources. Also pay attrention to META-INF/themes folder. Every THEME-NAME.theme.property file inside defines renderer and stylesheet used by this theme. And one of the THEME-NAME should be used as value for page theme attribute to turn this theme on.