IMO, no need to make SWCs if you don't need to. The tooling supports CSS as a theme.
The main Jewel Theme is a SWC already. Any assets for the variants can be put in the main Jewel Theme SWC and referenced from the variants. I believe the tooling will not output unused assets, or we can make it that way. -Alex On 4/9/18, 11:37 AM, "carlos.rov...@gmail.com on behalf of Carlos Rovira" <carlos.rov...@gmail.com on behalf of carlosrov...@apache.org> wrote: >And what will happen when we introduce classes that draw SWF assets to >match styles (ie: checkbox tick and box, gradients,...)? >or I introduced a .png, or some component have a ViewBead Class? >I'm totally against .css files alone as a production file theme. I think >.SWC packaging for both JS and SWF is completely ok and should be our >standard for both ANT and MAVEN. > >2018-04-09 20:28 GMT+02:00 Alex Harui <aha...@adobe.com.invalid>: > >> No each variant can be its own CSS file. Just like you have it. For >>the >> Ant builds, there is no need to create a SWC in each of the 144 folders. >> The -theme option will list the path directly to the CSS file. We are >> currently only creating a SWC for themes/Basic/src/Basic.css because I >> haven't figured out how to make a CSS file a valid Maven artifact. If >>you >> can figure that out, then we won't need to generate 144 new SWCs. >> >> -Alex >> >> On 4/9/18, 11:11 AM, "carlos.rov...@gmail.com on behalf of Carlos >>Rovira" >> <carlos.rov...@gmail.com on behalf of carlosrov...@apache.org> wrote: >> >> >Hi Alex, >> > >> >2018-04-09 19:37 GMT+02:00 Alex Harui <aha...@adobe.com.invalid>: >> > >> >> Hi Carlos, >> >> >> >> Ideally, all variants of the main theme can be expressed in a single >>CSS >> >> file. >> > >> > >> >all variants in a single CSS? so you're talking about an huge CSS file >> >that >> >will be processed >> >by the compiler to only strip the needed rules? >> >mmm...I think that's an alternate approach to how I create it. We could >> >change it, but: >> >1) it will make processing times higher by the compiler, since it >>needs to >> >deal with a very huge css file >> >(imagine the size of the final CSS as all components will be >> >represented...) >> >2) I think the problem continues there, since instead of build 144 tiny >> >projects will have to compile 4 huge projects, >> >but at the end the time is mostly the same, but for time invested in >> >created 144 SWCs vs 4 SWCs.. >> > >> >for now we are doing the same as MDL themes since those are regenerated >> >CSS >> >files. >> >But we have a difference due to our nature. They are plain CSS while we >> >are >> >a compilation technology, and our >> >themes can have for example View classes that will modify final code if >> >used using View classes instead of the current ones >> >in (for example) a library. >> > >> > >> >> I would hope you would be willing to make trade-offs to make that >> >> so. I think the main theme can be a SWC and contain assets only used >> >>by a >> >> single variant. Sort of like a central library. Then the variant's >>CSS >> >> would describe new CSS and new URLs for assets from the main theme >>SWC. >> >> >> > >> >I think it's already as you describe. >> >Primary themes are "main theme" (light or dark) plus a primary color >> >(blue, >> >red,...) >> >But we have 4 variations, light-dark-flat-no flat (so light-flat, >> >light-noflat, dark-flat and dark-noflat) >> >then I separate secondary and emphasized in separate libraries so users >> >can >> >combine it as they need. >> >For example Adobe would want to use red colors, while we at Codeoscopic >> >yellows or in our Avant blue-green >> >the "central library" concept is what we are offering to our users, >>themes >> >that are ready out of the box. >> >you can as well use JewelTheme as only theme configuring the variables >>in >> >_theme.sass file but you'll need to compile it >> >This is what I use while developing >> > >> > >> >> >> >> IOW, blueIcon and redIcon would be in JewelTheme.SWC. And >>JewelBlue.css >> >> would reference blueIcon.png. >> >> >> > >> >images are inline SVGs code since I'm using variable substitution to >> >change >> >the color of an icon to match the theme color >> >(see checkbox or radio button as and example), I tried lots of things >>and >> >see this is the best method (similar to what MDL does) >> > >> > >> >> >> >> Then it would be a rare case that a variant theme needs to be part of >> >>the >> >> build (assuming we can figure out how to make a single CSS file a >>Maven >> >> artifact). >> > >> > >> >As I said, right now is a rare case, since I'm the only one working on >> >this. Maybe for a month or so >> >we'll be lots of CSS changes as Jewel grows, but at some point, with >>Jewel >> >and Themes more stable, will see less changes. >> >But again, I'm not in favor of single CSS artifacts, but single SWC >> >artifacts, the same we had in flex. >> >Think that at some point we'll we want to make SWF version of Jewel (I >> >hope >> >so), and that would mean more AS3 classes >> >in a .SWC library. >> > >> > >> >> Then it wouldn't be like the examples folder. And if you need >> >> to run Maven deploy on those CSS files, I think that could also be >>in a >> >> Maven profile and only run when you need it. >> >> >> > >> >I'm thinking of this and maybe we should maintain as it's now. >> >People in our team working with Maven (not me), can build once and then >> >build from "projects" folder to skip theme build >> >but a first time they should build all, not like in examples that's >> >totally >> >optional. >> > >> >That's my latest vision on this, but since this is new code, let's see >>how >> >we deal with this in the next hours to see if this method >> > settled or not... >> > >> >> >> >> Of course, I could be wrong... >> >> -Alex >> >> >> >> On 4/9/18, 10:25 AM, "carlos.rov...@gmail.com on behalf of Carlos >> >>Rovira" >> >> <carlos.rov...@gmail.com on behalf of carlosrov...@apache.org> wrote: >> >> >> >> >Hi Alex, >> >> > >> >> >not sure if we are talking about the same problem. I think 1 CSS - 1 >> >> >project theme relation is ok. maybe as I progress with jewel and its >> >> >themes >> >> >we would need to put some code or assets, and so it's ok to have >>that >> >> >structure. In the other hand, I choose to break a theme in three >>pieces >> >> >(themes) so people could combine it. so as well is ok to me. >> >> > >> >> >the main problem I arise here is about compilation times due to >>lots of >> >> >themes begin added to the build. >> >> >and that maybe we don't need to have themes wired to the build to >> >> >projects, >> >> >the same as examples is separated. >> >> >That's my main point, separate themes in the same way we have >>examples. >> >> > >> >> >The rest for me is optimal >> >> > >> >> >To give an example, I just run the SASS compilation only to showcase >> >> >effects and upload in my latest commit >> >> > >> >> >c4b337fb9b7c4d1f1739cb7cfee769e09f24f5a8 (example of batch themes >> >>update >> >> >based on SASS compilation) >> >> > >> >> >This commit upgrade all CSS to remove the Firefox specific inner >> >>outline: >> >> > >> >> >1) This is optimal since only touching in JewelTheme, we ensure we >>can >> >> >easily update the rest of themes >> >> >2) As I'm the only one working on themes, I can change things and >> >>commit >> >> >the final CSS (as the latest commit) so others that doesn't use >>maven, >> >>can >> >> >use directly the final generated CSS. >> >> >3) All people, using ANT or MAVEN must deal with a theme just like >> >>other >> >> >library and must to compile it to a .SWC as we did the same in the >>Flex >> >> >world. I don't think a .CSS file alone will be ok, since as I said >> >>before >> >> >the theme can be composed of only a .CSS and as well have many other >> >>files >> >> >(images, classes, fonts, and more) >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> >2018-04-09 17:34 GMT+02:00 Alex Harui <aha...@adobe.com.invalid>: >> >> > >> >> >> Hi Carlos, >> >> >> >> >> >> Seems like a separate Maven profile and/or Ant target should run >> >>SASS to >> >> >> generate the .css files. There is no requirement from other >>Royale >> >>code >> >> >> for the themes to be built into SWCs. You can specify a .CSS file >> >>or a >> >> >> .SWC file as a theme. It is only for Maven that theme CSS files >>are >> >> >>built >> >> >> into SWCs and that is only because I didn't want to take the time >>to >> >> >> figure out how to make a CSS file a valid Maven artifact. I still >> >>don't >> >> >> want to take that time. Maybe you can figure it out. Then I >>think >> >>this >> >> >> build problem will mostly go away. >> >> >> >> >> >> HTH, >> >> >> -Alex >> >> >> >> >> >> On 4/9/18, 7:32 AM, "carlos.rov...@gmail.com on behalf of Carlos >> >> Rovira" >> >> >> <carlos.rov...@gmail.com on behalf of carlosrov...@apache.org> >> wrote: >> >> >> >> >> >> >Hi, >> >> >> > >> >> >> >I just committed first No flat themes in 12 color variations and >> >>Light >> >> >>/ >> >> >> >Dark versions. These are 36 * 2 projects = 72 projects >> >> >> >Still I must commit the Flat versions this means another 72 theme >> >> >>projects >> >> >> >to make a total of 144 project themes >> >> >> > >> >> >> >You will use it using picking up 3 of them (Primary, Secondary >>and >> >> >> >Emphasized) and normally you'll choose all light/flat, or >>light/no >> >> >>flat, >> >> >> >and so on... (4 options here) >> >> >> > >> >> >> >So these means to build 144 projects. In my machine (MacBook Pro >> >>2014 >> >> >>i7), >> >> >> >these means 6 minutes. >> >> >> > >> >> >> >So, until now I use to build "royale-asjs", that means all >> >>"frameworks" >> >> >> >project that means "projects" and "themes" >> >> >> > >> >> >> >Now my plan is to build "royale-asjs", "projects" or "themes" as >>I >> >> >>needed, >> >> >> >and rest of you (not working on themes), should run"royale-asjs" >> >>when >> >> >> >needed and most of the time run "projects", to skip overhead of >> >>build >> >> >> >themes, since you'll have already the latest CSS that I generate >>and >> >> >> >committed. >> >> >> > >> >> >> >Another options we can do is make themes separate build from >> >>framework >> >> >> >projects the same as "examples" since you mostly will not need to >> >> >> >regenerate each time all that 144 CSS files. >> >> >> > >> >> >> >Let me know what you prefer. >> >> >> > >> >> >> >thanks >> >> >> > >> >> >> >-- >> >> >> >Carlos Rovira >> >> >> >https://na01.safelinks.protection.outlook.com/?url= >> >> >> http%3A%2F%2Fabout.me%2 >> >> >> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com% >> >> >> 7Cc79fa77fcb0e4343acef08d5 >> >> >> >9e26da64%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> >> >> 7C636588812206485899&s >> >> >> >>>data=dcom19OuBTePmd3bDW80UCG0oEtQralxqaS%2Fv4%2BQvSE%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% >> >> 7Cc09d2dcb40724aa07c3708d5 >> >> >9e3f009d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> >> 7C636588915787260209&s >> >> >data=YTTh8ATPFywv7nEp5%2BLNXFONY1EKPSbWh1qGMPwd8IU%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% >> 7C737be13e0fda47d55dfe08d5 >> >9e45683c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> 7C636588943304185237&s >> >data=MckXrAZQXSXIKUOtYBS0Lovw%2BUGMhnK0vTpWuCY7Z8o%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%7Cdefa1b22a33848eebe4b08d5 >9e49003d%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636588958735324238&s >data=WPTR5ok2T%2BWBPfCNEGrmmgpjEKfUdnTquoOBazK0HqI%3D&reserved=0