Hello fellow DNN users and devs
I know this has already had 1 entry about the default.css file, but that's really not where it ends.
Sorry for all the rant, it's something that's been bugging me for quite a while :)
For as long as I can remember, DNN upgrades has shipped with css tailored to the default skin that comes with a new installation. While this might look good on new installations, every css change in standard DNN features will be reflected on any purchased skin using these features.
This has really broken a few things, when DNN decided to make the default responsive, and it seems to keep on breaking stuff whenever a new upgrade is applied.
So my suggestion is actually very simple.
Remove all the css from the standard features which can be used in a skin. Or at least avoid using styles like min-height, min-width and !important, which really makes overriding hard.
A great example is the new fantasic feature of AJAX search. DNN Finally adds this great new feature, and what does it come with? a bunch of !important styles to tailor the standard search box to fit inside the standard skins.
This funny little thing means that every site using the standard dnn search field, will suddenly break their style all together, because we DON'T use the standard DNN skins.
When you have 20+ sites, that's a LOT of work - and even if I was to simply customize the look by editing the installed upgrade files, I would still have to check every site to make sure I didn't overlook some other css change which might break the site style.
That's just 1 example, and I really don't want to go on listing all of the things I've encountered.
So, to sum it up.
1. Remove css from stuff like searchinput, forms, helpstuff, etc.
2. Warn skin developers and module developers NOT to use DNN styles - their skins and modules will break with future DNN upgrades :P
3. Make sure the only standard CSS included in all sites, is the editing interface (i.e. topbar, popups, etc.) and those MUST be specific to the classname to make sure skin developers can avoid those names. No "default" styles should ever cover normal elements like ul, li, table, tr, td, div, p, h1, etc. Anything like that should have a class associated, and the class should get the style, not the element.
Please someone tell me you also see the point I'm trying to make with this idea - even if it's unrealistic to make it happen.