Plug-n-Skin feature is designed to freely extend and override one of base RichFaces skins. It allows to redefine the look of a set of components by taking the base skin as basis and plugging-in custom styles.

You may freely create your own pluggable skin in a next way:

- Create your new pluggable skins project with CDK using mvn archetype:create -DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-plug-n-skin -DarchetypeVersion=*RF-VERSION* -DartifactId=*ARTIFACT-ID* -DgroupId=*GROUP-ID* -Dversion=*VERSION* command from the root folder of richfaces.
- Create new pluggable skin inside project using mvn cdk:add-skin -Dname=*SKIN-NAME* -Dpackage=*SKIN-PACKAGE* from the folder created on the previous step.

In the result you'll get new skin project.

In order to check some other optional parameters for CDK commands and more info about the feature in general - visit corresponding developer guide section and explore Laguna skin project in richfaces/samples svn.

Main files in the created pluggable skin project (createdSkinName\src\main\resources\META-INF\skins\ folder) are:

- <createdSkinName>.skin.properties which should contains base parameters for the skin such as baseSkin, generalStyleSheet, gradientType and some others and could contain skin parameters redefinitions for the skin.
- <createdSkinName>.xcss which defines all the components xcss imports.
- <createdSkinName>-ext.xcss defines imports for standard skinning xcss files.

All classes for all the components and standard skinning classes already listed in corresponding imported xcss files. So you'll only need to fill them with the properties you need.

Check for example classes defined in panel component xcss for Laguna skin:

panel.xcss from laguna skin