On Tue, May 27, 2014 at 11:47 AM, Guillaume "Louis-Marie" Delhumeau
<[email protected]> wrote:
> 2014-05-27 9:56 GMT+02:00 Denis Gervalle <[email protected]>:
>
>> Hi Guillaume,
>>
>> Maintaining retro-compatibility for theme using LESS code is too much.
>> Maintaining retro compatibility could be simply to support importing
>> existing color themes in the new theme system made for bootstrap and no
>> more.
>>
>
> Let me show you an example:
> The Activity Stream has its own CSS, which does:
>
> #template('colorThemeInit.vm')
> ...
> .activityPage:hover , .activityApplication:hover , .activityUser:hover {
>   background: $theme.highlightColor;
> }
> ...
>
> So when my mouse is hovering the AS, its background color change. By
> default, it's a kind of yellow.
>
> Now, if I want to integrate a bootswatch theme, let say 'slate' [1]. I just
> copy the LESS files ([2] and [3]) in my textarea.
>
> It looks very good [4], until my mouse comes over the activity stream...
> that becomes yellow! [5] Something needs to be done.
>

All clear up to here.

> A solution could be to manually fix the colors in the color theme editor
> but it defeats the principle to easily integrate a bootstrap kit found on
> the web...
>

> That's why I would like to parse the LESS code. With the solution 3, which
> is easy to implement, we have a solution.

So you need to set the value of $theme.highlightColor to a color taken
from the 'slate' theme (which was taken from bootswatch). I must say I
didn't understood very well what you mean by parsing the LESS output.
Can you give more details (for solution 3)?

Thanks,
Marius

>
> I agree it's not perfect, but it could be a migration path until we change
> all the CSS of every applications!
>
>
>
>> Regarding the customization of Bootstrap, it exists a couple of tools
>> already. It allows far more than just color customization. Have you check
>> if one of those existing tools could be adapted (and have appropriate
>> license) ?
>>
>
> I am looking at it. Not sure we could find it (easy to integrate,
> maintained, compatible with XWiki....).
>
> Thanks,
> Guillaume
>
> [1] Slate: http://bootswatch.com/slate/
> [2] Slate variables.less: http://bootswatch.com/slate/variables.less
> [3] Slate bootswatch.less: http://bootswatch.com/slate/bootswatch.less
> [4] Results:
> http://tof.canardpc.com/view/7740a7ee-29f4-454f-99e7-f45ef53d9095.jpg
> [5] Not good:
> http://tof.canardpc.com/view/a23e7101-449d-4fed-a922-cf58323220d3.jpg
>
>
>>
>> Thanks,
>>
>>
>> On Mon, May 26, 2014 at 3:49 PM, Guillaume "Louis-Marie" Delhumeau <
>> [email protected]> wrote:
>>
>> > Hi!
>> >
>> > The current color theme editor is designed for colibri, and does not look
>> > like flamingo does. We have several options here:
>> > - create a new color theme editor, especially for Flamingo
>> > - modify the current one to detect which skin is currenlty used, and
>> change
>> > the preview.
>> >
>> > The application will be splited in 2 sections:
>> > 1/ a live preview where you can set some variables (what we currenlty
>> have)
>> > 2/ a free textarea where the user can fill LESS code (for example, some
>> > code downloaded on bootswatch).
>> >
>> > But a lot of applications already use the color theme as it is, via the
>> > "colorThemeInit.vm" template. So we need a retro-compatibility: a color
>> > theme computed by LESS must be usable with old color themes.
>> >
>> > Concretly, we will map the old color theme variables to the bootstrap
>> ones,
>> > example:
>> > $theme.notificationSuccessColor = @brand-success
>> >
>> > But because of the section 2 (the free textarea), we are not able to know
>> > what will be the final value of a bootstrap variables without parsing the
>> > content of the textarea!
>> >
>> > What are the options we have:
>> > 1/ Implementing our own LESS parser/compiler in Java
>> > 2/ Trying to reuse the official LESS Parser through Rhino in a way that
>> we
>> > can get the computed variables
>> > 3/ Do not parse the input but the ouput: parse the CSS code to get the
>> > final values of the variables
>> >
>> > I'm for 3.
>> >
>> > The idea is to create some CSS classes like this:
>> > .colortheme-bordercolor{
>> >   color: @border-color;
>> > }
>> >
>> > which will be converted by LESS to:
>> > .colortheme-bordercolor{
>> >   color: #000000;
>> > }
>> >
>> > so we can parse it and know the value of $theme.bordercolor. It is quick,
>> > simple, but it pollutes the output CSS a little.
>> >
>> > WDYT?
>> >
>> > Thanks,
>> > Guillaume
>> > _______________________________________________
>> > devs mailing list
>> > [email protected]
>> > http://lists.xwiki.org/mailman/listinfo/devs
>> >
>>
>>
>>
>> --
>> Denis Gervalle
>> SOFTEC sa - CEO
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to