Hi Harbs, complety true. I think this is, at least for what I can see about my investigations, the most flexible way. And this is nothing new, I borrowed it from Semantic UI set, and for now it seems to work flawlessly :)
Thanks Carlos 2018-05-15 13:26 GMT+02:00 Harbs <harbs.li...@gmail.com>: > This makes sense. I liked the way you used style composition in Jewel to > piece together functionality. It’s very elegant. > > The only thing I would comment is that we can still use prefixing to > prevent conflicts: "jewel jewel-Button primary" or “jewel jewel-Button > emphasized”. > > It seems to me like your comments bring to light a third option along the > lines of what I was saying: > > Instead of: > .basic-FooComponent{ > /*some styling*/ > } > We could have: > .basic.FooComponent{ > /*some styling*/ > } > and: > .jewel.FooComponent{ > /*some styling*/ > } > > And the basic typenames could be: “basic FooComponent”. Jewel typename > would be “jewel FooComponent”, etc. I think this would work as long as all > compiled css always uses combined class selectors using prefixes. > > I don’t see a downside to this idea. It seems like it should allow for > separation of component sets while offering even more flexibility. There’s > no reason why someone (on the application level) could not decide to set > styling across *all* component sets by then using > .FooComponent{ > */some more styling*/ > }. > > Thoughts? > > Thanks, > Harbs > > > On May 15, 2018, at 1:38 PM, Carlos Rovira <carlosrov...@apache.org> > wrote: > > > >> Point #2 starts down the path of possible solutions. > >> The two relatively simple (I think) solutions I see (which have been > >> touched on already) are: > >> 1. Fully qualifying the typenames (i.e. "org-apache-royale-html-Button" > >> instead of “Button”.) It seems like org.apache.royale.html.Button can > work > >> too, but the period needs to be escaped in the css file (i.e. > >> org\.apache\.royale\.html\.Button) > >> 2. Prefixing the typenames (i.e. basic-Button instead of Button). > >> > >> > > I choose "jewel button" since is the same "Semantic" do instead > > "jewel-button". The reason is that seems more flexible when you are > nesting > > things. So making things like "jewel" we can change all jewel things and > > the by component we do (ie. for Button) : "jewel button primary" or > "jewel > > button emphasized"...and so on... > > > > > >> I like solution 2 better because having such long classnames is “ugly”, > >> but solution 2 would require some kind of lookup for the compiler to > know > >> the correct prefix to use. > >> > > > > Right, is the one I choose (just with the difference of the "-" to be > more > > flexible) > > > > > >> > >> Thoughts? Are there reasons I’m missing why these solutions will not > work? > >> > > > > Perfectly, I think for example you want to join j|Button with "jewel > > button" to get all in "jewel button" right? > > I think the benefit from this will be the possibility to remove css if > the > > concrete component is not present. > > So good. > > -- Carlos Rovira http://about.me/carlosrovira