The Toggle Styles tab in the theme settings has two sections, which are not consistent in UX:
1. "Enable optional stylesheets": you check the checkbox to turn the optional stylesheet ON.
2. "Disable module and theme stylesheets": you check the checkbox to turn the stylesheet OFF.

The basic idea of having checkboxes for stylesheets is great. But I did a double-take when I first saw this, and still find it somewhat confusing, since the checkboxes mean two opposite things on the same page. In general, in Drupal, my experience is that checking something means enabling it. So could section 2 be "Enable module and theme stylesheets", where you check to enable just like section 1?


WebGear’s picture

The reason these two are separated in two groups is to reflect the actual and logical changes that these options perform behind the scenes.

The first group (Enable optional stylesheets) does in reality *INCLUDE* CSS files that are not included by default when Drupal is processing your theme and spitting out the content, this option group is there to allow you to LOAD CSS files from the UI that you would otherwise have to do through the .info file.

The second group (Disable module and theme stylesheets) aims to "EXCLUDE" what is otherwise enabled by default by Drupal core unless you specify otherwise in your .info file.

So the ticking of the checkboxes in ALL cases in that UI page is the equivalent of saying *TAKE ACTION* and act on that CSS file without me having to go to my .info file and do it manually, the only difference is that the ACTION in these two groups is different, one is to INCLUDE some and the other is to EXCLUDE something that would otherwise be enabled by default if you don't do anything special about it.

As far as i am concerned i think it makes sense, my only observation is that i would like to see ALL core CSS Enabled by default unless otherwise is specified by the user, so my personal preference is having all the (Enable optional stylesheets) group TICKED ON by default and all the (Disable module and theme stylesheets) UNTICKED by default, the end result would be that ALL CSS base files whether provided by Drupal Core, Modules or the Alpha/Omega theme are loaded.

The theory behind that is that yes some of Core CSS files are good and useful while others are bad and will mess up your custom styles at such point the (Disable module and theme stylesheets) panel becomes so much useful and valuable to the themer where in case he is annoyed by a Core CSS or find it not useful they can go ahead and disable it with a click of a mouse (by TICKING the box) :)

Would like to hear other voices regarding this issue as well.


dhalbert’s picture

Thanks for the explanation. I figured there was an internal reason. However, it is exposing something that reflects the internal implementation, and the fact that one check means include and the other means exclude can still be confusing. I am reporting on my confusion as a beginning Omega user, and I think this will be a support issue in the long run.

Nevertheless, it is important that the themer know where these CSS files are coming from, so I think there should be some small-print descriptive text under each heading, something like "The CSS files below are listed in the .info file for the base theme and your subtheme and are not included unless you check the box." and "The CSS files below are supplied by Drupal and are included by default unless you check the box." (I may be wrong about the details here.)

Are these lists of files generated on the fly? My guess is yes.

An alternative to check boxes with two different meanings is to use two-position radio buttons, with labels, like "Include" and "Exclude". Everything would be set to "Include" to begin with, which is equivalent to your suggestion of having everything ticked on in the first section and everything off in the second section. But the user will see a uniform vertical line of selected radio buttons instead.

Then the explanatory text I suggested above can be shorter and does not have to explain whether checking the box means on or off: it is obvious from the radio-button labels.