What's a Skin?
The term skin might appear strange for the uninitiated. In software development, a skin is the general term for the elements that make up the graphical appearance of software. For example, if you have a software application that appears as a window, that window may have the following components :
A title bar background color
A font color and style for text in the title bar
A body background color
A font color and style for text in the window body
A toolbar containing action- related icons
Buttons within the body of the window
All of these elements (and many others) make up the skin of the application. To use the term skin in reference to a piece of software, that software must be skinnable , meaning that the end user must be able to change these elements and, thus, the outward appearance of the application itself. For end users to be able to do this, the software developers must have designed the application specifically with skinning in mind. This means that the developers would have separated the visual elements of the application from the inner workings of the software itself. If you have used an instant-messaging application such as Yahoo! Messenger or AOL Instant Messenger, or the Mozilla family of web browsers, you have encountered the ability to change application skins. Other types of software, such as media players for audio and video files, allow skinning as well.
You might also be a member of a web-based community that enables users to select a custom skin to enhance their browsing experience. An example of this is the My Yahoo! portal, where registered users can customize the colors, fonts, and even content shown to them when they log in to the site. Skinned sites such as this exist only because of the careful way in which the website developers built their functional and display templates. The developers of Plone have done just that: A Plone site administrator can change myriad elements related to the display of the Plone site without ever touching the code that drives it.
Beyond the administrative simplicity of maintaining display elements in a nice, neat package such as a skin, another feature of a skin is the ease with which a user can change his or her browsing experience. When browsing a skinned site, the user is often presented with a drop-down menu or other quick selection mechanism. With one click of the mouse, a user can apply a completely new set of colors and graphics to the site. Elsewhere, you might see the term theme used interchangeably with skin , but they're not exactly synonymous. If you think of a skin as a basket of goodies ”action-related icons, font styles and colors, background colors, supplementary images, table and link styles, and so forth ”then the theme is the thought process that put them all together. For example, if you tell your designer that you want a blue theme, you will probably get a skin that contains blue- tinted icons, styles that utilize blue and contrasting colors, and so forth.
Some of the changes you made in Chapter 5, "Customizing Plone," are precursors to developing your own Plone skin. For example, if you swapped out a few of the default icons for images of your own design, you can continue the trend and develop an entire set of thematically related icons as part of your own skin. In the next section, you'll learn about the modifiable elements that make up a Plone skin.