Customizing Sass-based Skins
Skin Editor
To create new skins and easily make bulk changes to details like colors and fonts, see our
Skin Editor tool, which can be accessed online, or locally in your environment if you have a
Pro or better license.
Support for templated skins
Some skins have a stylesheet generated from
Sass templates and compiled with
compass. Each such skin has a "template" subdirectory containing various files, including those used to regenerate the skin's stylesheet (skin_styles.css) using
compass. The files of interest to a custom skin are in the template/sass directory:
Files you can edit
- _userSettings.scss - This file is initially empty and can be edited. It should contain Sass variables and font declarations intended to override settings in the builtin skin (see
_skinSettings.scss and _base.scss below) - _userStyles.scss - This file is initially empty and can be edited. It should contain CSS intended to be incorporated after the styles in the builtin skin (see
_skinStyles.scss and _base.scss below), overriding both
Files that should not be edited
The other files in template/sass should not be edited and can be largely ignored (see the discussion below on
Keeping the skin you extended up to date) - but their purpose is listed here:
- skin_styles.scss - This is the bootstrap file that lists the fragments to load and is executed by running 'compass compile' in the parent folder. There shouldn't be any need to alter this file - but you can do so if you want to add further custom fragments
- _base.scss - This file contains all the base CSS and the defaults for the supported variables in the builtin skin that your custom skin is based on. This file should not be edited
- _skinSettings.scss - This file contains Sass variables and font-declarations for the builtin skin, intended to override the defaults set up in _base.scss. This file should not be edited
- _skinStyles.scss - This file contains custom CSS for the builtin skin, to be appended after that in _base.scss. This file should not be edited
Creating a custom skin
A custom skin is created by copying and extending an existing one.
You can start from whichever templated skin is closest to your requirement. Variable values largely cascade from one another, allowing simple, high-level changes to affect much of the skin.
To create a custom skin based on "Tahoe":
- Copy the skins/Tahoe directory to skins/MySkin
- In skins/MySkin/load_skin.js, find and replace instances of "Tahoe" with "MySkin"
- In skins/MySkin/template/sass/_userSettings.scss, declare $theme_name: 'MySkin'
- Change to skins/MySkin/template and run 'compass compile'
Customizing your skin
What to edit
As noted at the top of this discussion, the files you can edit are in the template/sass directory - specifically, _userSettings.scss for customizing supported variable values and _userStyles.scss, for overriding existing styles.
You can see the CSS classes that can be overridden in _base.scss.
You can see the list of available variables in _skinSettings.scss, grouped and named according to what effects they have. You can copy the variables you want to override into your _userSettings.scss file, change their values and run 'compass compile'.
By way of example
To create a generally green version of Tahoe, try adding these settings to
_userSettings.scss and running 'compass compile'
$highlight_color: #40BF41; // generally green rather than blue
$standard_widget_border_color: #006400; // darkgreen borders for widgets
$standard_button_border_radius: 5px; // give all buttons rounded corners
After editing
When you make changes to
_userSettings.scss or
_userStyles.scss, you can compile them into your skin by running 'compass compile' from the skins/MySkin/template directory. This compiles the various fragments from the template/sass directory (listed in
skin_styles.scss) to produce the skin's stylesheet, at skins/MySkin/skin_styles.css.
After making changes and running 'compass compile', clear your browser cache before refreshing your test page, to ensure the old skin_styles.css isn't cached.
Keeping the skin you extended up to date
As noted earlier, some of the files in template/sass should not be edited. This is because, from time to time, we may make fixes or improvements to our builtin skins - when this happens, you can keep your custom skins up to date, without clobbering any of your customizations, by copying
_base.scss,
_skinSettings.scss and
_skinStyles.scss from the skin you extended to your skin's template/sass folder, replacing the existing copies. From there, running 'compass compile' will incorporate the latest builtin skin changes into your custom skin, without affecting your existing customizations.