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