Hi all,
In order to generate the new-ui elements I’m using Bootstrap Sass port (http://sass-lang.com/), changing variable values and adding or removing CSS properties when necessary. I’m also
doing the same with jquery-ui, since we still use it for accordions and I think I saw some other JQ-UI widgets in Ginger.
I’m aiming to make a “stable” customized Bootstrap and jQuery-Ui theme in /ui/css/ but I was thinking in separating BS/jQ-UI CSS from Wok/Kimchi/Ginger exclusive CSS but still making both files inherit the same variables
(colors, widths, etc).
This transition can be easily done with Sass and I’m already using it separated from Kimchi project: I manage a separated static UI and include the generated CSS output in the patches I’ve sent to the ML. I think that
for future releases, maintenance and compatibility with newer BS and JQ-UI versions (BS v4 is still in Alpha but looks promising) it would be great to have this feature implemented in Kimchi and I think the timing is perfect since we’re adding the new-ui in
2.0.
So, I did some research and I found this Sass port for Python:
https://github.com/dahlia/libsass-python
There’s also SassC (https://github.com/sass/sassc) but I couldn’t find any package for it.
The main idea is use Sass to treat each UI widget / component or section as a “module”. So instead of using a Makefile to concatenate all files in css/theme-default in theme-default.min.css, we would tell the Makefile
to run libsass / sassc command in one theme-default.scss file that would handle all the modules in the correct order and then this filed would be minified in theme-default.min.css.
Originally I have thought we could use Bower (front-end package manager), GulpJS and Node-LibSass port but they all need NodeJS to run, our 3rd party JavaScript libraries are stable and we have to keep a copy
of their licenses (which Bower can’t do, so we don’t need it anymore). FontAwesome and OpenSans are also stable and require a different configuration that Bower and GulpJS don’t support.
So in the end GulpJS would be necessary just for JavaScript validation and testing and to compile Sass files into CSS… I think we can run JS lint with our own IDEs and leave the Sass compilation task to Makefile and python-libsass/sassc.
What are your feelings on this?
Thanks,
Samuel