Chameleon is the new theming engine in Community Server. It represents a major change in the way themes can be implemented in Community Server. Chameleon enables far more flexibility in theming, while being simpler and more standardized than the theming support in earlier versions.
Telligent has made a number of changes to the Chameleon theming engine (and themes in general) between from Community Server 2007. The following summary describes those changes.
A compiled help file (CHM) containing MSDN-style documentation for all of the Chameleon controls in Community Server is available in the file gallery on communityserver.com at the following URL:
Theming in Community Server with Chameleon is centered around regular ASPX pages instead of hundreds of skin files as in Community Server 2.1 and earlier. This makes it easy to find which files to edit if you want to make a theme change, but unfortunately this makes some of the theme pages quite large.
Most Chameleon control's ITemplate properties (LeaderTemplate, ContentTemplate, FooterTemplate, etc.) support ASP.net inline databinding syntax.
The default theme of CS2007/Chameleon uses ASP.net master pages, but the theme developer has complete control over how master pages (or the type of master pages) are used.
Action controls define a single function or behavior that can be invoked by other Chameleon controls when configurable events occur.
Condition controls evaluate theme-developer-defined criteria for use by other controls. Condition controls are commonly used by other Chameleon controls (such as single value controls, list controls, and form controls) to define conditions under which they should render. Rendering conditions are defined using the "DisplayCondtions" inner-property.
Chameleon form controls implement the functionality of Community Server forms, such as creating a forum post, editing a user's profile, or registering for a user account.
Chameleon list controls display multiple objects/values (such as a list of Users or ForumPosts in a Thread). List controls support the same basic properties as single-value base controls (ControlIdsToHideWhenNotVisible, ContainerId, CssClass, Tag, DisplayConditions, LeaderTemplate, TrailerTemplate, DataSource, and Attributes), but add support for additional templates to layout each object/value in the list.