On 14/05/12 12:58, Michal Čihař wrote:
Hi all
I think it is pretty obvious that all themes will share quite big load of CSS. Originally I though about extracting these bits to Theme class methods, but now I think it would make things even harder to maintain.
What I feel would be better to create core CSS file, which would be always included and theme authors will just override/extend it.
This way, we can make changes in core without breaking older themes too much - maybe some things will not look 100% intergrated, but at least the layout won't be broken.
Currently original and pmahomme themes share about 2500 lines, they differ in 1000/500 (pmahomme/original) lines.
I mentioned a few days ago that I'm already working on this, thought I didn't get into details, so here's my plan.
I will merge theme_left with theme_right first (we'll only have one frame in 4.0). Then split the resulting file into smaller files, e.g.: common.css, pmd.css, gis.css, rte.css, etc... The idea here is to make the css files more managable, right now it looks to me like everyone just appends new stuff at the bottom of our huge files creating an ever bigger mess out of them.
Then all of the resulting files will be reassembled back into a single file by the Theme class at run time and sent to the browser along with a cache header.
As far as the code duplication goes, the idea is to make all of the new, smaller, css files overridable. So only the default theme will include all the css files and if another theme is selected and it, for example, only has a common.css file, all the other files will be included from the default theme.
I think that this approach will both minimise code duplication and improve the maintainability of CSS files.
Thoughts?
Bye, Rouslan