Hello.
In 6.0, we have released a first version of Flamingo. It uses Bootstrap and
the LESS preprocessor during the build to create the final style.css file.
But currently, there is a serious regression compared to Colibri: it does
not support color themes.
So I have started a proposal about the color theme handling in Flamingo,
that you can see there:
http://design.xwiki.org/xwiki/bin/view/Proposal/ColorThemeforFlamingo
My conclusion is that we need to integrate the LESS preprocesor on the
runtime. This way, we can add velocity variables (corresponding to the
color theme) in our LESS sources BEFORE the LESS preprocessor is launched.
Doing the opposite, (process velocity after LESS) causes some problems that
I have reported on the previous link.
To me, it would be a good step ahead for proposing LESS to our users.
Regarding this, some ideas are coming to me:
- it is quite easy to integrate LESS since we can use Rhino to launch the
LESS preprocessor (which is a javascript program). See:
https://github.com/sandroboehme/lesscss-java
- we need a cache system in order to not always compute the style.css
served to the user (performances issue).
- we need to add this in the "skin" action.
- in the future, we also need to modify the skinx actions, to enable it for
Skin Extensions.
We also need to agree on the use of LESS instead of SASS. I have used LESS
on Flamingo because Bootstrap has originally been written with it (although
an official SASS port exists), so this choice is not based on a strong
analysis. Anyway, it looks quite simple to move from one to the other and
it is probably too soon to predict which of these 2 preprocessors will win
on the long term.
Do you think I am going in the right direction?
Thanks for reading,
Guillaume