Hi Harbs,

about duplicate <link> elements: I solved it recently in TDJ by adding "id"
to link. The "loadCSS" method now returns that "id". I store it in TDJ so I
can remove the link element (and that remove all styles in the browser
too). Maybe we can have some Manager class (maybe a bead to use in
Application) that be in charge of ensuring link tags are unique.

About having CSS downloaded twice. I understand that for non conforming CSS
royale rules like ClassReference, but for normal CSS rules, seems to me a
waste of resources, right?
Maybe there are many things in that concrete topic and will deserve a new
thread about it to understand it completely. For example: Are we using
normal CSS rules in Royale? Can we separate royale rules from normal rules
and load normal ones via browsers css and royale ones vía JS? Can we
reprocess royale css rules again at later time? what means that framework
code does not need to call getComputedStyles()? and why should framework do
that?... I think this is very interesting now that Harbs are working on
Spectrum and I recently worked on runtime theme switching.






El mar., 7 ene. 2020 a las 9:16, Harbs (<harbs.li...@gmail.com>) escribió:

> For js and image/svg files this is probably a complete solution. For CSS,
> there also needs to be code to load the CSS.
>
> I guess a combination of include_file and inject_html might work, but then
> we still have the problem of duplicate <link> injection and combined CSS
> would not be properly referenced.
>
> > For Problem #1, instead of inject_html we could add something like
> "include_file" that would reference a file in a SWC.  Then folks could have
> images, css, js, whatever, added to the output file.  I think that wouldn't
> be too hard to do.  There is already code in the compiler copying stuff out
> of a SWC
>
> > On Jan 7, 2020, at 12:11 AM, Alex Harui <aha...@adobe.com.INVALID>
> wrote:
> >
> >
> >
> > On 1/6/20, 12:45 PM, "Harbs" <harbs.li...@gmail.com> wrote:
> >
> >    Yes. JS specific.
> >
> >    It would be very hard to do a SWF compatible build of Spectrum.
> >
> > So to me, this isn't so much about CSS as it is about externs.  CSS that
> is processed by the compiler is intended for multi-platform CSS.
> Multi-platform CSS is encoded for use by ValuesManager and implementations
> on other platforms.  As Carlos noted in a recent thread, CSS is sort of
> downloaded twice by Royale JS output, once in its .css file form for
> consumption by the browser, and a second time as encoded CSS for use by the
> framework and application code.  That avoids having the framework code call
> getComputedStyles() and allows non-comforming CSS like
> ClassReference("SomeBead").  Although there certainly could be a better way
> to handle this.
> >
> > On the other hand, the inject_html and externs are about 3rd-party or
> external JS implementations.  There have been other threads about how to
> handle inject_html and have it inject local references to .js files.  Right
> now I think all inject_html use cases reference code on a CDN or some
> canonical URL on the internet.  It feels like this is the same problem and
> why you started by asking about inject_html.  You don't really need the
> compiler to look at this CSS, you really want some amount of css and/or js
> (and maybe even html) to be linked into the output instead of referenced by
> URL.  Although it sounds like you are also looking to aggregate these bits
> and pieces of external css or js into fewer files.
> >
> > So I recommend approaching the problem in two pieces: 1) what is the
> best way to add js and css to the output files and 2) once you have some
> set, can you aggregate it into fewer files?
> >
> > Problem #2 sounds straightforward: search the output folder and combine
> files.  I guess it might be important what order you combine CSS files.
> >
> > For Problem #1, instead of inject_html we could add something like
> "include_file" that would reference a file in a SWC.  Then folks could have
> images, css, js, whatever, added to the output file.  I think that wouldn't
> be too hard to do.  There is already code in the compiler copying stuff out
> of a SWC
> >
> > My 2 cents,
> > -Alex
> >
> >> On Jan 6, 2020, at 8:56 PM, Alex Harui <aha...@adobe.com.INVALID>
> wrote:
> >>
> >> But is that CSS platform-specific, or will that same CSS be needed if
> you were to try to implement Spectrum in SWF?  IMO, that's a key question
> for how we solve this problem.
> >
> >
> >
>
>

-- 
Carlos Rovira
http://about.me/carlosrovira

Reply via email to