If we could ignore IE, CSS variables would have been a nice solution…
https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables 
<https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables>

> On Mar 8, 2018, at 1:29 PM, Piotr Zarzycki <[email protected]> wrote:
> 
> Hi,
> 
> Why can it be simpler by creating bunch of default css classes, which
> stores colors which you need ? Why complicating it by asking user to inject
> something through the compiler options ?
> 
> 
> 
> 2018-03-08 12:12 GMT+01:00 Carlos Rovira <[email protected]>:
> 
>> Hi Alex,
>> 
>> at this moment, I only need to get 2-3 colors in final CSS file. But next I
>> think we should have a similar theme but with gradientes, that will mean
>> 4-6 colors.
>> But as I go with this maybe I could need something more, but right now
>> don't know what could be.
>> 
>> As you say, the counterpart of introducing a CSS processor like SASS, is
>> that we introduce a new piece in the chain and that means wire it for maven
>> and ant.
>> Maybe this can be easy to do.
>> 
>> In order to keep our efforts controlled, I propose you the folllowing: I
>> can check SASS implications and maybe see in MDL what other things can be
>> done. If I finaly see we only need to pass colors, we can try to make the
>> string substitution via compiler, if not we should look to introduce SASS.
>> Maybe if SASS is not to hard to introduce, we should directly go with it.
>> 
>> what do you think?
>> 
>> 
>> 
>> 
>> 
>> 2018-03-08 10:36 GMT+01:00 Alex Harui <[email protected]>:
>> 
>>> Hi Carlos,
>>> 
>>> That's fine if you want to work on a CSS theme.  Your reasoning make
>> sense.
>>> 
>>> Yes, Maven allows substitutions, but as you said there is Ant, but also
>>> command-line and IDEs.  They all need a way to do whatever you want.
>>> 
>>> Let's work from a real example:  What is a selector that you want to have
>>> changed, and how would you want to change it via command-line compiler
>>> options?
>>> 
>>> If you have:
>>> 
>>> Button {
>>>  color: COLOR::primary;
>>> }
>>> 
>>> And want to specify
>>> 
>>>   -compiler.define=COLOR::primary,red
>>> 
>>> We could probably convince the compiler to handle that.  Right now, in
>> the
>>> emulation components we are using:
>>> 
>>>   if (GOOG::DEBUG)
>>> 
>>> And for SWF compile we set
>>> 
>>>   -compiler.define=GOOG::DEBUG,true
>>> 
>>> Which causes the compiler to generate an AST for
>>> 
>>>   if (true)
>>> 
>>> And for JS compile we set:
>>> 
>>>   -compiler.define=GOOG::DEBUG,goog.DEBUG
>>> 
>>> Which causes the compiler to output:
>>> 
>>>   if (goog.DEBUG)
>>> 
>>> So we have a limited form of string substitutions in AS already and can
>>> probably do something like that in CSS.  Is that what you are looking
>> for?
>>> 
>>> But the thing is, if you use themes and in the main theme you have:
>>> 
>>>   Button {
>>>      color: white;
>>>      Font-size: 10px;
>>>   }
>>> 
>>> And in a theme SWC you have:
>>> 
>>>   Button {
>>>      color: red;
>>>   }
>>> 
>>> I'm pretty sure we can make the output exactly the same:  one selector
>>> that looks like:
>>> 
>>>   Button {
>>>      color: red;
>>>      Font-size: 10px;
>>>   }
>>> 
>>> I think themes may already work that way, and if not, we could probably
>>> make it work that way and it wouldn't have any extra overhead over string
>>> substitution.
>>> 
>>> Of course, I could be wrong...
>>> -Alex
>>> 
>>> 
>>> On 3/8/18, 1:15 AM, "[email protected] on behalf of Carlos Rovira"
>>> <[email protected] on behalf of [email protected]> wrote:
>>> 
>>>> Hi Alex,
>>>> 
>>>> I started the theme as "VividBlue", but was something to get started,
>> as I
>>>> read and look how others are doing, I see that main colors should be
>>>> configurable on the same theme, for that reason the theme refactor name
>> is
>>>> simply "JewelTheme".
>>>> 
>>>> In the other hand, I'm a bit blocked trying to make many complex visual
>>>> things at a time, this due to various reasons:
>>>> 
>>>> * for advanced things browsers has limitations here and there
>>>> * we have some problems in CSS as we are discussing in other threads,
>> and
>>>> although we are discussing it, I feel that each day I put time on this
>> to
>>>> work, I can't solve this issues
>>>> * SVGs are cool but requieres more love than I thought
>>>> 
>>>> for this reason, yesterday I continued my work with different thoughts
>> in
>>>> mind:
>>>> 
>>>> * I want to have something good looking as fast as possible, and for me
>> is
>>>> important to get it with some infrastructure well done (css per control,
>>>> organization, component html structure,..)
>>>> * for that reason I'm going back to CSS3 mainly, in the end I think we
>>>> need
>>>> a pure CSS theme as well
>>>> * my plan is to get this theme be customizable with colors (this is what
>>>> we're discussing here)
>>>> * as I get things done in this theme, I can start another theme that can
>>>> use linear gradients instead of plain colors
>>>> * then I can make another one with SVG mainly
>>>> * I think this plan will make us have things more soon that try to fight
>>>> at
>>>> the same time with SVG, royale compiler, and more, as I have little time
>>>> each day to invest in this project I need to see things done to keep me
>>>> motivated and pursuing this efftort.
>>>> 
>>>> So coming back at your proposal, don't know id CSS property overriding
>> is
>>>> working (I can test it), but as a path to follow it seems to me a bit
>>>> weird. It could be great if we have the basics working and then a user
>>>> wants to make something like that (to put another theme in place), but I
>>>> don't think we should promote this as a great way to do things since
>> we'll
>>>> adding code to the mix and more bytes to download, while others only use
>>>> one compact css. I'll look into it as something like a "hack" that a
>> user
>>>> could be doing at sometime, but not as the basis of a royale official
>>>> theme
>>>> in the framework
>>>> 
>>>> I'm looking at SASS and I see there's a maven plugin [1]. What do you
>>>> think
>>>> if I do a try to see what we get? The only thing is that ANT build file
>>>> should be fixed for others.
>>>> 
>>>> In the end, I want to do something like we did in MDL, with some vars in
>>>> pom.xml like this:
>>>> 
>>>> <properties>
>>>> <!-- Customize Jewel colors -->
>>>> <primary>red</primary>
>>>> <secondary>grey</secondary>
>>>> </properties>
>>>> 
>>>> And that will be pass to the HTML template to the line where the CSS is
>>>> loaded
>>>> 
>>>> let me know what do you think
>>>> 
>>>> Thanks
>>>> 
>>>> [1]
>>>> https://na01.safelinks.protection.outlook.com/?url=
>>> https%3A%2F%2Fwww.geodi
>>>> enstencentrum.nl%2Fsass-maven-plugin%2Fplugin-info.
>>> html&data=02%7C01%7Caha
>>>> rui%40adobe.com%7Cbec10bf2ecb144cf5ddf08d584d5
>>> 4627%7Cfa7b1b5a7b34438794aed
>>>> 2c178decee1%7C0%7C0%7C636560973893496699&sdata=
>>> 3FoDbj2YbEJpJnKG8%2FLpqathy
>>>> k1ACgHcBhgVaHufHTY%3D&reserved=0
>>>> 
>>>> 
>>>> 
>>>> 2018-03-08 9:45 GMT+01:00 Alex Harui <[email protected]>:
>>>> 
>>>>> I think I may be missing something, because, IMO, the Royale way is to
>>>>> use
>>>>> Themes.  Weren't you working on a VividBlue theme?
>>>>> 
>>>>> I suppose Themes might be a bit heavier than true string/variable
>>>>> substitution, but I think there is property overriding in the
>> compiler.
>>>>> I'm not sure order of theme SWCs is preserved and used, but maybe we
>> can
>>>>> implement that if that's what is needed.
>>>>> 
>>>>> I think if JewelTheme.swc specifies:
>>>>> 
>>>>> Button {
>>>>>  background-color: white;
>>>>> }
>>>>> 
>>>>> And JewelBlueTheme.swc specifies
>>>>> 
>>>>> Button {
>>>>>  background-color: blue;
>>>>> }
>>>>> 
>>>>> That both will be output in the CSS in that order and blue will win.
>> It
>>>>> might be that the compiler already can tell that there is a later
>> Button
>>>>> selector with background-color and can choose not to output the
>>>>> "background-color: white".  If that doesn't exist already, we can
>>>>> probably
>>>>> make it happen.
>>>>> 
>>>>> I think on the command line, you would specify -theme=JewelTheme.swc
>> and
>>>>> -theme=JewelBlueTheme.swc.
>>>>> 
>>>>> String substitution is possible.  I'm about to push code that allows
>>>>> simple member access expressions as compiler defines so there is
>>>>> already a
>>>>> form of substitution in the AS compiler.
>>>>> 
>>>>> HTH,
>>>>> -Alex
>>>>> 
>>>>> 
>>>>> On 3/7/18, 11:14 PM, "[email protected] on behalf of Carlos
>>>>> Rovira"
>>>>> <[email protected] on behalf of [email protected]> wrote:
>>>>> 
>>>>>> Hi Alex, Om,
>>>>>> 
>>>>>> I'm referring to what Om's describe. In MDL and the rest of
>> frameworks
>>>>> we
>>>>>> pass for example "primary" and "accent" color. In this way the final
>>>>> CSS
>>>>>> gets the colors in all rules they need to use hardcoded. Please check
>>>>> the
>>>>>> following link:
>>>>>> 
>>>>>> https://na01.safelinks.protection.outlook.com/?url=
>>>>> https%3A%2F%2Fgetmdl.io
>>>>>> %2Fcustomize%2Findex.html&data=02%7C01%7Caharui%40adobe.com
>>>>> %7C7ee10b52100d
>>>>>> 4931824e08d584c450aa%7Cfa7b1b5a7b34438794aed2c178de
>>>>> cee1%7C0%7C0%7C63656090
>>>>>> 1060420372&sdata=YwCDV9HX4XIFn2O%2B2L90UaoHu9tKAEOPwTDdwViUQWo%
>>>>> 3D&reserved
>>>>>> =0
>>>>>> 
>>>>>> then we get a CSS with the colors applied. This is done with SASS
>>>>>> processing, but I was asking if we can get this out-of-the-box with
>>>>> royale
>>>>>> since we are using a compiler, or we have another trick that we could
>>>>> use
>>>>>> to get the same result. Another way with CSS could be to use
>> variables
>>>>> in
>>>>>> CSS but maybe this is not still part of the actual browsers support
>> or
>>>>> we
>>>>>> don't support it in our CSS processing.
>>>>>> 
>>>>>> If not, I'll need to introduce SASS processing in the chain in some
>>>>> way.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 2018-03-08 4:33 GMT+01:00 OmPrakash Muppirala <[email protected]
>>> :
>>>>>> 
>>>>>>> Carlos,
>>>>>>> 
>>>>>>> In SASS, there are variables, but you cannot pass variables into it
>>>>> from
>>>>>>> the app.  The variables in SASS are compiled down to CSS as
>> hardcoded
>>>>>>> values, that's it.
>>>>>>> 
>>>>>>> Usually, multiple class values are created and we set the class
>>>>>>> property on
>>>>>>> an element using a string evaluation.
>>>>>>> 
>>>>>>> For example:
>>>>>>> 
>>>>>>> var colorName = this.hasWarning() ? "Red" : "Blue";
>>>>>>> var className:String = "button" + colorName + "Class";
>>>>>>> 
>>>>>>> element.setAttribute("class", className);
>>>>>>> 
>>>>>>> In the css:
>>>>>>> 
>>>>>>> .buttonRedClass {
>>>>>>>    color: darkred;
>>>>>>> }
>>>>>>> 
>>>>>>> .buttonBlueClass {
>>>>>>>    color: lightskyblue;
>>>>>>> }
>>>>>>> 
>>>>>>> This is one way of doing things.
>>>>>>> 
>>>>>>> The other way is to directly set the .style property of the element
>>>>> and
>>>>>>> apply the color there.  Not very elegant, but should work.
>>>>>>> 
>>>>>>> Hope that helps.
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Om
>>>>>>> 
>>>>>>> On Wed, Mar 7, 2018 at 3:18 PM, Carlos Rovira
>>>>> <[email protected]>
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> I'd need to pass two or three colors to a CSS (i.e: primary,
>>>>> secondary
>>>>>>> and
>>>>>>>> accent)
>>>>>>>> in other frameworks people use things like SASS
>>>>>>>> Maybe in Royale we could get it in our own way
>>>>>>>> 
>>>>>>>> any suggestion so that I could test?
>>>>>>>> 
>>>>>>>> thanks!
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Carlos Rovira
>>>>>>>> 
>>>>>>> https://na01.safelinks.protection.outlook.com/?url=
>>>>> http%3A%2F%2Fabout.me%
>>>>>>> 2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
>>>>> 7C7ee10b52100d4931824e08
>>>>>>> d584c450aa%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
>>>>> 7C63656090106042037
>>>>>>> 2&sdata=LirhMtyi6j2OLZIvI0BFOPxXMurqUIoOIC7fqisx8oc%3D&reserved=0
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Carlos Rovira
>>>>>> https://na01.safelinks.protection.outlook.com/?url=
>>>>> http%3A%2F%2Fabout.me%2
>>>>>> Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
>>>>> 7C7ee10b52100d4931824e08d5
>>>>>> 84c450aa%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
>>>>> 7C636560901060420372&s
>>>>>> data=LirhMtyi6j2OLZIvI0BFOPxXMurqUIoOIC7fqisx8oc%3D&reserved=0
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> --
>>>> Carlos Rovira
>>>> https://na01.safelinks.protection.outlook.com/?url=
>>> http%3A%2F%2Fabout.me%2
>>>> Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
>>> 7Cbec10bf2ecb144cf5ddf08d5
>>>> 84d54627%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
>>> 7C636560973893496699&s
>>>> data=86Hm91sdEvczfLja%2F867VKJoJyYNaVi8j7bgsNExM0E%3D&reserved=0
>>> 
>>> 
>> 
>> 
>> --
>> Carlos Rovira
>> http://about.me/carlosrovira
>> 
> 
> 
> 
> -- 
> 
> Piotr Zarzycki
> 
> Patreon: *https://www.patreon.com/piotrzarzycki
> <https://www.patreon.com/piotrzarzycki>*

Reply via email to