Introduction
Why a new approach?
The current approach to theming (also known as "skinning") Plone sites (Plone 1.0 to 3.x) has been steadily evolving over a number of years, and is powerful, but somewhat complex.
As with most software, the reason for this complexity is a side effect of the evolution of the product over time — adding more functionality and more flexibility to meet the needs of power users, while still retaining the same initial approach to the problem space.
For Plone, the current theming approach has served us well for the last 8 years, but we realized it was time to re-evaluate how theming was done, since it's such an integral part of setting up a Plone site.
The main goals for a new approach were:
- No requirement for the people doing the theming to know anything about Plone or Python.
- Use standard tools and libraries whenever they are available.
- Reduce the number of concepts you have to learn in order to get started.
- When requiring you to learn something new, let it be a standard solution that is useful even outside of the Plone world.
- Try to stay as close to the HTML and CSS mindset as possible, as the people doing theming are usually the same people that do the HTML code for the design.
- Make it possible to apply an existing HTML/CSS design to a Plone site while keeping the original markup instead of having to re-do the design in a way that makes Plone happy.
- Let the theme work standalone, without introducing any additional markup. It should look like a standard HTML page with CSS, JS and images.
About the future of theming in Plone
For the upcoming versions of Plone, we are 99% sure that we'll use a variant of what is described here. It will probably change slightly in how it integrates into the product, and what knobs are available to deploy a theme in a standard way — but the fundamental approach will be the same.
What we are offering you with the collective.xdv package is a way to make use of the likely future standard of theming, today. We'll keep this document updated as Plone progresses with newer versions, and if you're reading this documentation in a book or another printed version, always check http://plone.org/theming to view the latest version of this document. There will be a revision history attached, which will detail the latest changes to this document.
Is xdv ready for serious deployments?
Currently, the plone.org web site itself is using xdv for its theme — so it's battle-tested and ready for serious, high-traffic sites.

