How do I get started with designing new/existing layouts in Plone?

Taken from various posts on the Plone mailing list (

Stan McFarland wrote:

“The short answer is that you can make Plone look any way you want with a combination of template customization and CSS. You just need to learn how to do it. Andy McKay’s “The Definitive Guide to Plone” is a good place to start, as well as”

J Cameron Cooper wrote:

“The best way is to start with the Plone pages, which have a fairly standard and general template, and customize them with CSS.

If you want to work an existing design into Plone, you will have to do some slightly trickier stuff. (Which, basically, is replacing main_template with your own structure, though preserving the “signature”
of main_template.)”

Peter Fraterdeus wrote:

“I highly recommend that you read the docs section in as a starting place for ‘skins’ customization, and best practices for building a “site product” which will instantiate your customizations.

“After that, it’s probably best to have a good look at the way that the “main_template” is constructed and how the various layers of CSS are used to modify the look of the site. (on your *nix box, try “locate CMFPlone/skins/plone_templates/” or find it in the ZMI).”

Matt Bowen wrote:

“Plone uses Python for logic, Zope Page Templates for layout, and the Zope Object Database. If you don’t know Python, you’ll want to learn it — without it, you will be limited in your customizing. People seem to like Dive Into Python [], but there are lots of good tutorials online, and it’s a very nice language. ZPT you’ll pick up from the book and the tutorials.

Finally, definitely check out the many, many good plone videos on, at and
There is a lot of good stuff there about all aspects of customization.”