For the D7 documentation see www.skinr.org.

Skinr's main purpose is to allow the theme to define a set of reusable and modular CSS styles, and to make those styles available in Drupal's UI . Skinr was developed for themers to allow them to tap into the power of Drupal's modularity and apply those same principles to theme development. It does not provide any styles of its own. These styles are defined in the .info file of the theme (or subtheme), by the themer and end up in various places in Drupal's UI, such as:

  • Block Configuration
  • Node Type (and Comment) Configuration
  • Panel Panes
  • Views Displays

The Skinr module is made up of the Skinr core module (skinr.module) and a separate Skinr UI module (skinr_ui.module.) The Skinr core module doesn't have any other module dependencies and can work even with the Skinr UI module disabled. This allows you to define and set your skin settings and then disable the Skinr UI module if you please. The Skinr UI module is currently dependent on the Dialog module (though this will be removed with the 7.x and official 6.2 releases.)

One important thing to note is that Skinr is really just a tool. It can be used for different purposes, i.e. a contrib theme, or client theme. Both serve very different purposes and should probably be approached differently with the end user and overall project goals in mind. Using it to its full potential is really up to you.

If you are looking to implement Skinr on one of your projects, I highly recommend planning it out at the very beginning of the project. Converting an existing theme to use Skinr is generally not recommended if you are under time constraints, UNLESS it is a contributed theme.

Reporting Issues and Contributing to the project

Please report all issues to the project issue queue. Make sure you search existing issues first to see if your problem has already been reported. Remember to include as much information as possible about the issue your are experiencing and be patient waiting for a reply. If you are looking to submit a patch, have an idea for a new feature, or want to help with the future plans for Skinr, we need your help. Please start by opening a new issue stating your intentions.

Sharing your work with others

One of the things we have planned for Skinr in the near future is offer an external site where we can offer packaged themer & designer contributed Skins to the community without having to support an entire contrib theme and dealing with git, as this can be a burden for some people. Many themers work on sites for clients where themes are proprietary and cannot be legally shared. By breaking down the contribution to a much smaller size, and with a few tweaks to colors and styles, small bits of great code can be shared.

Please consider taking the time to contribute a nice menu, block, tab style (or whatever). Your contribution could really help out someone new, and we need your help. If you have a skin to share, please post it to the Skinr project issue queue. IMPORTANT: You do not have to contribute code. If you are a designer, feel free to submit Photoshop mockups!

Showing off your work

We love to see how people are using Skinr. If you have done something cool with Skinr, and want to tell us about it, please post to the Skinr project issue queue.

Known Issues:

General

  • Skinr is known to not play well with modules that change or do other strange/interesting things with themes. This includes the Switchtheme and ThemeKey modules.
  • Template files as described in #7 don't work properly when placed in theme subfolders.

Panels

  • When applying a Skin to a panel, you must save the panel first, then apply the skinr style and save again.

Documentation

  1. System Name and [title]
  2. Widget Type [type]
  3. Widget Description [description]
  4. Widget Options [options]
    1. Singular
    2. Multiple
  5. Selectively restricting styles to de-clutter the UI using the [features] option:
  6. Adding Javascript and CSS files to Skins
  7. Advanced Options
    1. Applying additional CSS classes
    2. Using custom template files (WARNING: EXPERIMENTAL)
  8. Inheriting Skinr styles from a base theme
  9. Making Skinr work with your theme.
    1. Adding the $skinr variable
    2. Template files needed in your theme
  10. Some very simple examples