Changing the subject line...

What is the failure case?  I think I've gotten lost somewhere.

IMO, the goal is to approximate Type Selectors (effectively extend Type 
Selectors to other types not specified by W3C), and AIUI, order of class 
selectors is about specificity and order of appearance in the CSS file.  So one 
possible improvement to the current situation is to make the compiler output 
the class selectors that are supposed to approximate class selectors first in 
the final css file so all later class selectors override it.  IOW, do a better 
job at making our class selectors that are supposed to act like type selectors 
be overridden just like a type selector would.

Thoughts?
-Alex

On 5/16/18, 12:52 PM, "Harbs" <harbs.li...@gmail.com> wrote:

    I guess it depends.
    
    As long as the styling is set by class selectors, it will work because 
class selectors trump type selectors.
    
    I think it would at least be better than what we have now.
    
    > On May 16, 2018, at 10:42 PM, Alex Harui <aha...@adobe.com.INVALID> wrote:
    > 
    > Would that work?  I think any TLC with an HTMLButtonElement as its 
element (or sub-element) will still be affected by any Button type selector in 
some CSS file.  Or maybe I don't fully understand what you are proposing.
    > 
    > -Alex
    > 
    > On 5/16/18, 9:41 AM, "Harbs" <harbs.li...@gmail.com> wrote:
    > 
    >    Sure. I wonder if we should handle different namespaces differently.
    > 
    >    Maybe the following two namespaces should get proper type selectors, 
while any others would get class selectors?
    > 
    >    
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml&data=02%7C01%7Caharui%40adobe.com%7C9b1582ba79124743cf6f08d5bb4be38b%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636620856972038920&sdata=l94LsFAHe4i1NHoCalhlCKlF5L8yvpbrlh5qgmVhyGE%3D&reserved=0
    >    library://ns.apache.org/royale/html 
<library://ns.apache.org/royale/html>
    > 
    >    Harbs
    > 
    >> On May 15, 2018, at 6:52 PM, Alex Harui <aha...@adobe.com.INVALID> wrote:
    >> 
    >> The goal of typenames is to do the best job we can of emulating Type 
Selectors.  I understand it isn't perfect, but the browser does have Type 
Selectors and we can't really stop people from expecting Type Selectors to 
work, and wishing it would work on the rest of Royale.
    >> 
    >> On 5/15/18, 8:37 AM, "Harbs" <harbs.li...@gmail.com> wrote:
    >> 
    >>   Makes sense, but there’s two problems with that:
    >> 
    >>   1. That makes the assumption that components of a specific name 
implement the HTML component of the same name.
    >>   2. Classes take precedence over element selectors, so that styling is 
too easily overridden.
    >> 
    >> 
    >>> On May 15, 2018, at 6:11 PM, Alex Harui <aha...@adobe.com.INVALID> 
wrote:
    >>> 
    >>> Certain typenames match up against HTMLElement names and are thus valid 
Type selectors so are not transformed into Class Selectors.
    >>> 
    >>> -Alex 
    >>> 
    >>> On 5/15/18, 2:09 AM, "Harbs" <harbs.li...@gmail.com> wrote:
    >>> 
    >>>  Interesting. It looks to me like a bug.
    >>> 
    >>>  The theme CSS compiles into this:
    >>>  Button {
    >>>          border: 1px solid #808080;
    >>>          padding: 4px;
    >>>          background-color: #f8f8f8;
    >>>          margin: 0px;
    >>>          border-radius: 2px;
    >>>  }
    >>>  Button:hover {
    >>>          border: 1px solid #808080;
    >>>          padding: 4px;
    >>>          background-color: #e8e8e8;
    >>>  }
    >>>  Button:active {
    >>>          border: 1px solid #808080;
    >>>          padding: 4px;
    >>>          background-color: #d8d8d8;
    >>>  }
    >>> 
    >>>  Instead of this:
    >>> 
    >>>  .Button {
    >>>          border: 1px solid #808080;
    >>>          padding: 4px;
    >>>          background-color: #f8f8f8;
    >>>          margin: 0px;
    >>>          border-radius: 2px;
    >>>  }
    >>>  .Button:hover {
    >>>          border: 1px solid #808080;
    >>>          padding: 4px;
    >>>          background-color: #e8e8e8;
    >>>  }
    >>>  .Button:active {
    >>>          border: 1px solid #808080;
    >>>          padding: 4px;
    >>>          background-color: #d8d8d8;
    >>>  }
    >>> 
    >>>  Button is an element name (case insensitive) instead of a class name…
    >>> 
    >>>  Harbs
    >>> 
    >>>> On May 15, 2018, at 11:52 AM, Harbs <harbs.li...@gmail.com> wrote:
    >>>> 
    >>>> I just tried an experiment of giving an MDL Button a classname of 
“Button” in addition to all the MDL classes. Interestingly, the mdl class names 
overrode the Button one. I’m really not sure why because the Button css should 
have been loaded later than MDL. I’d appreciate your thoughts if you have any 
on that.
    >>> 
    >>> 
    >>> 
    >> 
    >> 
    >> 
    > 
    > 
    > 
    
    

Reply via email to