Architecture meetings/RFC review 2014-02-27

From mediawiki.org
Jump to navigation Jump to search

This meeting will concentrate on UI and UX styling RFCs. We're following up on the discussion we started at the Architecture Summit.

It takes place in #wikimedia-office connect at 0:00 UTC-1:00UTC on 28 February, that is, afternoon on Thursday Feb 27 (San Francisco time)/morning of Friday 28 Feb (Sydney time).

Requests for Comment to review[edit]

  1. Requests for comment/Grid system - Pau Giner and Trevor Parscal
  2. Requests for comment/Scoping site CSS - Juliusz

Did not have time to consider:[edit]

  1. Requests for comment/Allow styling in templates - Jon Robson

Quick checkins if we have time:

  1. Inline diffs - Max Semenik
  2. Architecture guidelines (quick checkin)
  3. Performance guidelines (quick checkin)

Summary and logs[edit]

Summary and TODOs[edit]

Meeting started by sumanah at 23:58:32 UTC. The full logs are available at https://tools.wmflabs.org/meetbot/wikimedia-office/2014/wikimedia-office.2014-02-27-23.58.log.html .


Meeting ended at 01:12:04 UTC.

Action items[edit]

  • pginer to finish writing the RFC so we can mark it accepted
  • pginer to add detail on intended use cases / prefixing to RFC & perhaps narrow "implementations" section <TimStarling> if possible, name the actual classes and mixins which you intend to create
  • more research required on advanced possibilities for scoping site CSS

Full log[edit]

Meeting logs
23:58:32 <sumanah> #startmeeting RFC review UI styling
23:58:32 <wm-labs-meetbot> Meeting started Thu Feb 27 23:58:32 2014 UTC and is due to finish in 60 minutes.  The chair is sumanah. Information about MeetBot at http://wiki.debian.org/MeetBot.
23:58:32 <wm-labs-meetbot> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
23:58:32 <wm-labs-meetbot> The meeting name has been set to 'rfc_review_ui_styling'
23:58:48 <sumanah> #chair brion TimStarling
23:58:48 <wm-labs-meetbot> Current chairs: TimStarling brion sumanah
23:59:28 <sumanah> pginer: jdlrobson hey there, you have a preference for who goes first?
23:59:30 <TimStarling> ooh, working bots today, high tech
23:59:50 <sumanah> #link
23:59:55 <pginer> I would like to finish early if possible,
00:00:01 <pginer> it is 1am here
00:00:06 <sumanah> ok, pginer first :)
00:00:15 <sumanah> #topic Grid system
00:00:17 <sumanah> #info https://www.mediawiki.org/wiki/Architecture_meetings/RFC_review_2014-02-27
00:00:39 <sumanah> #info https://www.mediawiki.org/wiki/Requests_for_comment/Grid_system
00:01:13 <sumanah> #info Per the discussion from the January 2014 architecture summit, https://www.mediawiki.org/wiki/Talk:Architecture_Summit_2014/UI_styling#Grids Pau & Trevor now own this, and we hope to get some working on-wiki demos by about April 2014.
00:01:39 * sumanah lets other people ask questions  or bring up issues
00:02:06 <pginer> The language team is using an initial implementation of the concepts
00:02:11 <pginer> proposed
00:02:35 <pginer> for Content translation project
00:02:45 * Krenair waves
00:03:36 <pginer> the idea is to check that there are no major issues and be able to merge the basics into core.
00:03:43 <brion> nice
00:04:07 <pginer> I think there should be no major concerns considering that the basics are just a set of classes with predefined widths.
00:04:26 <pginer> and breakpoints
00:04:46 <pginer> LESS CSS makes it easy to tweak the specific implementation and improve later if needed.
00:05:21 <ebernhardson> ;q
00:05:22 <ebernhardson> q
00:05:42 <ebernhardson> (sorry, wrong window)
00:05:45 <jorm> UNKNOWN COMMAND: 'q'
00:05:58 <pginer> I plan to make more examples such as this: http://pauginer.github.io/agora-grid/examples/simple-demo.html
00:06:11 <jdlrobson> jorm haha
00:06:14 <pginer> To illustrate the use and make it easier to get feedback
00:06:49 <pginer> That's all I had to update. Let me know if there is any question
00:06:58 <brion> well, sounds good :)
00:07:09 <brion> what can we see it in action in? (or soon)
00:07:14 <jorm> my first question is:  Does anyone think that having a grid is a *bad* idea?
00:07:34 <TimStarling> jorm: not that I know of
00:07:43 <matanya> pginer: would that look good in RTL too?
00:07:48 <brion> jorm: i had some initial concerns on first proposal, but they have been relieved by prior discussion
00:08:10 <jorm> Yeah, I didn't think there was any major objection - other than possible technical hurdles.
00:08:22 <brion> matanya: that should flip to RTL pretty straightforwardly yes
00:08:26 <gwicke> jorm, the answer probably depends on what this is used for
00:08:29 <pginer> matanya: CSSJanus  should work in this context too.
00:08:48 <sumanah> #info http://pauginer.github.io/agora-grid/examples/simple-demo.html - one example by Juliusz, he plans to make more
00:08:52 <TimStarling> should we mark this RFC as accepted?
00:08:53 <jorm> I'd think we would need to grind it into Vector (somehow)
00:09:17 <jgonera> pginer what units are used to define width?
00:09:37 <pginer> It is based on percentages
00:09:46 <TrevorParscal> i think it was made clear at the summit that the grid system is useful for content, not skins, due to lack of absolute sizing
00:09:51 <pginer> .one-half { width: 50%; }
00:10:02 <TrevorParscal> I support grid systems with relative sizing, but they of course have their limitations
00:10:20 <pginer> You can create an element with the classes: one-third, mobile-one-whole
00:10:56 <pginer> that will make the size of the column to change from 33% to 100% on a small screen/window
00:11:00 <TimStarling> so the idea is to provide these classes and promote them for editors to include in article styling?
00:11:15 <sumanah> TimStarling: https://www.mediawiki.org/wiki/Talk:Requests_for_comment/Grid_system does not really say that anything is really incomplete, but I think there are a few open questions in https://www.mediawiki.org/wiki/Talk:Architecture_Summit_2014/UI_styling#Grids , e.g., "How does this impact bandwidth? & server storage / cacheing of thumbnails?"
00:11:23 <Edokter> I'm very interested in grids, but does it support vertical?
00:11:33 <pginer> They are mainly thought for extension UIs
00:11:51 <pginer> The classes can be used directly but they can also used "silently" thanks to LESS
00:11:57 <pginer> That is, as mixins
00:12:31 <gwicke> do you plan to prefix them with mw?
00:12:33 <TimStarling> so by content TrevorParscal just means the content area of a skin when a special page is displayed?
00:12:43 <pginer> I can create a a sidebar whose style is .sidebar{ .one-sixth; .lap-one-third;}
00:13:16 <pginer> The HTML would only have the semantic .siebar class
00:13:19 <jorm> This only applies inside of div.#content, then
00:13:23 <TrevorParscal> TimStarling: not the chrome of the skin - unless the skin is designed for proportional layout, then of course that's great, use the grid
00:13:49 <pginer> gwicke, the current implementation already prefixes everything as mw-ui-
00:14:15 <TrevorParscal> my point is that our skins currently have proportional and fixed elements, and to be clear, the grid system being proposed doesn't support both, so it's not a drop-in replacement for existing positioning code in Monobook and Vector
00:14:32 <gwicke> pginer: ah, ok; that also clarifies Tim's question about use in normal articles
00:14:38 <TimStarling> pginer: maybe that should be mentioned on the RFC doc
00:14:39 <TrevorParscal> I don't really think there's anything wrong with using a grid system for a skin
00:15:01 <pginer> The rid is intended to play well with current styles, only elements inside a .grid element will be affected.
00:15:19 <pginer> It is mentioned when it is indicated that is optional
00:15:27 * jdlrobson awaits that wonderful day when there is no need for the mw- prefix
00:15:36 <pginer> you can decide which parts of a skiin use the grid
00:15:39 <TrevorParscal> I would say that ideally we should be moving away from article authors being involved in page layout as much as possible, and giving them a grid system would suggest we are moving in the wrong direction
00:16:01 <TrevorParscal> But I'm sure some people who like things the way they are will dissagree
00:16:03 <sumanah> (anything here to be summarized in the minutes with an #info ?)
00:16:08 <pginer> You can even use the grid and add extra styles to make some element of a fixed width (or a max/min width)
00:16:10 <pginer> that is fine
00:16:13 <jdlrobson> TrevorParscal: +1
00:16:42 <TrevorParscal> when article authors are given more layout power, it seriously damages out ability to make the content portable
00:16:54 <jdlrobson> TrevorParscal: especially on mobile we are seeing this already
00:17:02 <TrevorParscal> as in between platforms, skins or decades in time
00:17:15 <TimStarling> I thought the idea of a grid system is to make layout more portable
00:17:34 <Edokter> re width: wercentage of what? desktop average or mobile average
00:17:36 <pginer> I agree, but authors adding .one-half is better than they forcing a width:50% directly
00:18:17 <pginer> In any case, I agree that the main purpose is for UI not content
00:18:37 <TrevorParscal> the way to make it more portable is to step back from directly controlling layout and have them annotate with semantic information
00:18:41 <TrevorParscal> look at the direction HTML is going
00:18:46 <TrevorParscal> we should be following suit
00:18:55 <brion> �*nod* try to keep things like 'one-half' directly in the HTML css, especially for content
00:19:02 <TrevorParscal> instead, I'm hearing a suggestion we give them more styling directly in the model
00:19:04 <brion> but we can make use of a grid in the styles that are built around semantic things
00:19:10 <brion> like "floatable-image" or something
00:19:20 <brion> *directly out of
00:19:20 <TimStarling> I'm not suggesting anything
00:19:22 <brion> not *directly in
00:19:23 <sumanah> #info CSSJanus  should work in the RTL context as well
00:19:23 <brion> bah
00:19:32 <TrevorParscal> yes, we can apply a grid system to semantically marked up content - that's exactly how it should be done
00:19:36 <TimStarling> I was just asking what you meant by content
00:19:52 <TrevorParscal> TimStarling: I'm not really referring to you, not sure why you thought I was
00:19:57 <TrevorParscal> I'm referring to the RFC
00:20:01 <TrevorParscal> which is a suggestion
00:20:05 <TrevorParscal> in it's purest form, no?
00:20:11 <sumanah> #info RFC authors say: the point of a grid system is mainly for UI, not for content styling
00:20:35 <Gloria> The styling in content area question is outside the scope of the grid RFC, in my opinion.
00:20:41 <sumanah> wait, hmm, I thought Trevor was a coauthor on this RFC, was wrong
00:20:42 <Gloria> There's a separate RFC about deprecating inline styling.
00:20:45 <TrevorParscal> sumanah: no, it's great for content styling, just not if used directly by content authors
00:21:22 <TrevorParscal> Gloria: deprecating inline styling indeed is out of scope, I'm not talking about that
00:21:30 <TimStarling> TrevorParscal: you mean in MediaWiki:Common.css or whatever replaces it?
00:21:35 <brion> #info some indirection is recommended for use of grids in content. prefer to use semantic classes
00:21:38 <gwicke> Gloria, css class prefixing makes that clear
00:21:52 <TrevorParscal> I'm talking about content authors using the grid system classes in actual article content
00:22:07 <TrevorParscal> brion has it right
00:22:13 <Edokter> like plcement of infoboxes and thumbs
00:22:15 <Gloria> gwicke: How do you mean?
00:22:22 <TrevorParscal> TimStarling: You've lost me
00:22:43 <gwicke> mw-ui-* is explicitly marked as something you should *not* use in page content
00:22:52 <TimStarling> well, you say a grid system is great for content styling if not used directly by content authors
00:22:52 <Gloria> That will literally stop no one.
00:22:52 <TrevorParscal> gwicke: +1
00:23:01 <Gloria> gwicke: We're already seeing buttons in the content area, aren't we?
00:23:05 <Gloria> mw-ii-button or whatever?
00:23:09 <Gloria> mw-ui-button *
00:23:10 <TimStarling> I am asking if you imagine that a grid system will be used directly in Common.css etc.
00:23:20 <Gloria> If editors can use the fancy classes, they will...
00:23:23 <gwicke> Gloria, we can easily enforce it
00:23:24 <TimStarling> defining classes which are in turn used by authors
00:23:32 <TimStarling> such as infobox classes etc.
00:23:46 <TrevorParscal> TimStarling: it should be applied to content, using the less mixins, targeting content by it's semantics (such as what it is, not how the author feels it should appear today)
00:23:48 <Gloria> Infoboxes have been abstracted to a meta-template.
00:23:54 <Gloria> Most authors have no interaction with the HTML.
00:24:17 <TimStarling> ok
00:24:18 <TrevorParscal> TimStarling: I think you understand me now
00:24:33 <TrevorParscal> Gloria: that is just one example
00:24:41 <TrevorParscal> there are many many others out there
00:26:00 <TimStarling> any action items?
00:26:35 <brion> sounds like 'wait for more cool stuff to happen in language team's usage, then model stuff on it'
00:27:05 <TimStarling> how about
00:27:15 <TimStarling> #action pginer to finish writing the RFC so we can mark it accepted
00:27:15 <sumanah> perhaps pginer could respond to "<TimStarling> pginer: maybe that should be mentioned on the RFC doc" :) (action item)?
00:27:35 <brion> :)
00:28:08 <pginer> Any part you recommend adding more detail to?
00:28:11 <sumanah> does pginer need to address the bandwidth/storage/caching stuff at all?
00:28:29 <gwicke> pginer, some detail on intended use cases / prefixing would be good
00:28:37 <pginer> ok
00:29:04 <TimStarling> pginer: maybe narrow the "implementations" section
00:29:18 <pginer> Makes sense
00:29:54 <TimStarling> if possible, name the actual classes and mixins which you intend to create
00:30:30 <sumanah> #action pginer to add detail on intended use cases / prefixing to RFC & perhaps narrow "implementations" section  <TimStarling> if possible, name the actual classes and mixins which you intend to create
00:31:08 <pginer> ok. added to my todo-list
00:31:09 <TrevorParscal> Maybe I'm missing something, but asking about "bandwidth/storage/caching" for a CSS change seems sort of - did the person who asked that understand the RFC at all?
00:31:11 <pginer> thanks
00:31:27 <sumanah> agreed to re-visit this in April when the Foundation team's usage has had more of a chance to grow?
00:31:39 <TimStarling> TrevorParscal: probably not
00:31:51 <TimStarling> next RFC?
00:31:56 <TrevorParscal> please
00:32:10 <TimStarling> #topic Scoping site CSS
00:32:15 <sumanah> https://www.mediawiki.org/wiki/Talk:Architecture_Summit_2014/UI_styling#Grids had the question but neither the name of the questioner nor the answer "irrelevant"
00:32:23 <TimStarling> #link https://www.mediawiki.org/wiki/Requests_for_comment/Scoping_site_CSS
00:33:18 <sumanah> jgonera: :)
00:33:30 <TrevorParscal> Has the RFC been updated completely since the summit, because there are still some issues that were brought up that aren't reflected in this version?
00:33:32 <sumanah> #link https://www.mediawiki.org/wiki/Talk:Architecture_Summit_2014/UI_styling#Scoping_site_CSS discussion from the architecture summit
00:33:41 <brion> so scoping content CSS inside the content area is ..... theoretically doable
00:33:47 <brion> keeping UI styles *out* of content is harder
00:33:54 <brion> except by blacklisting i guess :D
00:33:54 <jgonera> I updated the proposal section, the first paragraph
00:34:06 <sumanah> #help "let's figure out good ways to help editing & preview -> (who's interested?)"  (from the arch summit notes)
00:34:10 <jgonera> brion, yeah, this is a separate issue
00:34:42 <TrevorParscal> so first off, the proposal uses an ID as an example
00:34:45 <TrevorParscal> but we really must not do that
00:34:51 <jgonera> editing & preview is an interesting idea too, but I don't think it's within the scope of this RFC
00:34:55 <TrevorParscal> it needs to be a class - for a lot of reasons
00:35:14 <jgonera> TrevorParscal, you're right
00:35:15 <TrevorParscal> including to resolve issues in editing and preview
00:35:16 <jgonera> it should be a class
00:35:34 <TimStarling> I could note here that the tie-in with LESS is not absolutely necessary
00:35:38 <gwicke> brion, re keeping ui styles out of the content: we can disallow prefixed styles
00:35:45 <TimStarling> it's not like LESS has a monopoly on descendant selectors
00:35:59 <Gloria> gwicke: Disallow how?
00:36:00 <TimStarling> but if we are doing LESS anyway in the short term, then I guess it is ok
00:36:06 <TrevorParscal> TimStarling: I think that was intended to show how easy it is to do
00:36:06 <gwicke> Gloria, strip in the sanitizer
00:36:32 <TrevorParscal> TimStarling: but you are right, we could probably write something quite simple that prefixes things
00:36:35 <Gloria> That sounds like a pretty awful abuse of the sanitizer.
00:36:40 <jgonera> sumanah, as far as I remember editing & preview during the summit was about previewing the CSS that's being edited
00:36:42 <TrevorParscal> CSSJanus is all regexes and works OK
00:36:43 <Gloria> Unless these classes are exploitable?
00:37:01 <gwicke> Gloria, we strip all kinds of things in the sanitizer that are not security related
00:37:08 <TimStarling> you probably have to parse it anyway
00:37:25 <TimStarling> to make sure the user-supplied CSS doesn't escape from the LESS block
00:37:34 <TimStarling> with an unmatched closing brace or whatever
00:37:46 <TrevorParscal> LESS makes it easier, probably, just because it's already able to parse CSS
00:38:04 <TrevorParscal> TimStarling: well, that would break LESS compilation
00:38:23 <pginer> It seems to facilitate the round-trip by keeping the user provided rules unmodified.
00:38:23 <jgonera> TrevorParscal, what should be the correct class for this? .mw-body? .mw-content-ltr/rtl?
00:38:29 <TimStarling> } /* hello!!! */ #content {
00:38:54 <TrevorParscal> .mw-content seems good to me
00:39:03 <jgonera> TimStarling, sure, it's just easier this way
00:39:04 <jgonera> and since we have LESS in core, why not?
00:39:07 <TimStarling> you could make it so that it still compiles
00:39:24 <TrevorParscal> I would say at the same level we would need to have the .ltr and .rtl classes
00:39:32 <TimStarling> well, before we go too far down this path, is this the proposal or isn't it?
00:39:49 <TrevorParscal> so you can say .mw-content.rtl - since we won't let you write .rtl .mw-content anymore
00:40:05 <TimStarling> is the idea to just do $less = ".mw-content { $unvalidatedUserSuppliedCSS }"
00:40:14 <jdlrobson> TimStarling: you could avoid that case by parsing twice - once without the scoping and once with (sure there would be a more performant way)
00:40:20 <brion> This RFC may need re ..... scoping :)
00:40:28 <TimStarling> because that seems a bit hacky to me
00:40:42 <TrevorParscal> I agree this is a hack
00:40:48 <TimStarling> jdlrobson: right
00:40:59 <TimStarling> if it is LESS then you need to parse LESS to validate
00:41:04 <Edokter> I'm not entirely sure what problem scoping is trying to solve.
00:41:12 <TimStarling> if it is CSS then you need to parse CSS to validate (and also add descendant selectors)
00:41:23 <TrevorParscal> a more robust solution would be to write a LESS plugin which can modify the selectors of all rules while they are in the DOM
00:41:28 <Gloria> Edokter: There's a "Problem" section in the RFC. :-)
00:41:32 <jdlrobson> Edokter: remember hlists on mobile…. :)
00:41:33 <TrevorParscal> the CSS dom inside LESS that is
00:41:46 <Edokter> ah yes
00:41:51 <TimStarling> TrevorParscal: yeah, that sounds nicer
00:42:24 <jorm> ba-dump-tish
00:42:51 <Edokter> but... does it require such an elaborate software solutoin where naming-discipline does the same?
00:43:08 <Gloria> Edokter: I think that's a pretty reasonable question.
00:43:19 <brion> Edokter: as Gloria has pointed out in previous discussion, naming-discipline "doesn't stop anyone"
00:43:20 <jgonera> TrevorParscal, currently, there's no such thing as .mw-content
00:43:28 <TrevorParscal> that's good news
00:43:46 <TimStarling> Edokter: it's not so elaborate
00:43:55 <Edokter> apart fom hlist, have ther been other scoping problems?
00:44:16 <TrevorParscal> Edokter: usually doing things the right way isn't as easy
00:44:28 <TrevorParscal> that's not to say the hard way is always right
00:44:57 <gwicke> having the ability to scope selectors would be handy for template styles too
00:45:04 <Gloria> brion: The caveat is that local admins can't be stripped of their ability to stylize their own sites. :-)
00:45:06 <TimStarling> it sounds like a couple of days of work to me, at most
00:45:13 <Gloria> brion: Even if we think their styling is ugly.
00:45:25 <TrevorParscal> but, Tim's instincts here are good - when possible, modify things in a DOM rather than pre-process strings before parsing
00:45:34 <jdlrobson_> seems jgonera is having connection problems
00:45:38 <sumanah> as am I.
00:45:38 <brion> Gloria: as long as they separate the content and theme styles i'm fine with that :)
00:45:55 <jgonera> at least I can't find it on a mediawiki.org page
00:45:55 <jgonera> should this be added?
00:46:11 <Gloria> brion: I'm not sure MediaWiki encourages that... renaming Common.css to Content.css seemed like it had some merit.
00:46:11 <TrevorParscal> gwicke will tell you, text pre-processing is pretty evil and has caused us many a problem down the road
00:46:24 <TimStarling> the time required depends mostly on the quality of the code in the LESS parser and whether it really does have a plugin system
00:46:46 <TimStarling> TrevorParscal: you suggested a plugin because you know it has plugins, right?
00:46:56 <gwicke> even if we had to roll our own shallow grammar it would not be too hard
00:46:57 <tgr> TrevorParscal: actually with LESS .rtl .mw-content would still be possible with a ".rtl &" rule
00:47:30 <tgr> OTOH with LESS, enterprising sould could find many ways to break out
00:47:50 <tgr> &+.real-selector {} and so on
00:48:23 <jgonera> freenode is laggy as hell for me... I'm just reading from logs now
00:48:25 <brion> sounds like this one needs more time in the oven
00:48:59 <TrevorParscal> tgr, I mistyped, I meant to say rules like .rtl .wikitable will become .mw-content .rtl .wikitable - but .rtl is set on body, not a child of .mw-content
00:49:10 <brion> are we ready for action items to do some more research and experimentation on it?
00:49:18 <TrevorParscal> we could make .mw-content have a child with .rtl, but that's a larger change
00:49:19 <jgonera> I'd rather not overengineer this at first and try the simplest solution to see how it works
00:49:32 <jgonera> (I'm referring to creating a plugin for LESS)
00:49:48 <Gloria> TrevorParscal: I don't think ".mw-content" exists currently.
00:50:04 <TimStarling> well, whether a LESS plugin is the simplest solution depends on whether you consider string interpolation into a LESS block to actually be a solution
00:50:04 <TrevorParscal> I don't see anything on the web about extending LESS, so for now I'm pretty sure that's not going to be easy or feasible
00:50:05 <jgonera> Gloria, that's what I said, but my messages came like 3 minutes late ;)
00:50:07 <tgr> TrevorParscal: .mw-content { .rtl & .wikitable {} } will translate to .rtl .mw-content .wikitable {}
00:50:30 <Gloria> We currently have #mw-content-text and .mw-content-ltr, it looks like, at least in Vector.
00:50:33 <TrevorParscal> tgr: oh, I see what you mean
00:50:41 <TrevorParscal> sorry, I misunderstood you
00:51:51 <Gloria> TrevorParscal: If we change to ".mw-content .ltr" or whatever, we'll need to figure out what to do with the current class.
00:52:15 <TrevorParscal> Gloria: current class?
00:52:17 <Gloria> The body tag has a class of .ltr.
00:52:24 <TrevorParscal> tgr solved that
00:52:29 <Gloria> TrevorParscal: The current class is ".mw-content-ltr"
00:52:38 <gwicke> for client-side performance keeping selectors on content short would be better
00:52:41 <jdlrobson_> will we have time to go over my RFC - apparently we only have 8 mins left :)
00:52:45 <TrevorParscal> you just write .ltr & .myclass which becomes .ltr .mw-content .myclass
00:52:54 <gwicke> since there is normally much more content than chrome
00:53:11 <Gloria> TrevorParscal: Okay, but first you'd have to add .mw-content. I'm not sure that point has transmitted successfully.
00:53:54 <TrevorParscal> gwicke: ideally we could do some actual performance analysis, because it's unlikely that there is going to be enough of a penalty to justify tossing this idea alltogether
00:53:57 <jgonera> Gloria, TrevorParscal I'm assuming that would not be very difficult?
00:54:23 <Edokter> man this feels like 20 years ago... netsplit
00:54:28 <Gloria> jgonera: Probably not very difficult, no. It'll just make the HTML a bit messier.
00:54:42 <TimStarling> I'll tell you something interesting about the LESS compiler...
00:54:49 <gwicke> TrevorParscal, just saying that .mwc-hlist is more efficient than .mw-content .hlist
00:54:52 <Gloria> Because you'll have class="mw-content-ltr mw-content" I guess.
00:55:00 <TimStarling> it has many many methods in the compiler class
00:55:06 <TimStarling> and most of them are protected, not private
00:55:06 <jgonera> Gloria, why messier? I'd say less messy, we already have LTR/RTL indication in HTML, we don't need mw-content-ltr/rtl
00:55:09 <gwicke> especially when applying the same pattern to all content styles
00:55:18 <Gloria> jgonera: I don't think you can remove them. :-)
00:55:28 <TrevorParscal> TimStarling: are you suggesting we code against a moving target? lol
00:55:35 <jgonera> Gloria, because people use them in their custom CSS?
00:55:37 <Gloria> jgonera: If you remove the current classes (.mw-content-ltr/rtl), you'll break a lot of shit, I imagine.
00:55:41 <Gloria> Yep.
00:55:43 <sumanah> ok, I think connectivity is bad enough that we should start wrapping up. jdlrobson and MaxSem  I'm sorry. now that we've done a few of these it's clear that even when 3 RFCs are pretty related there's not enough time to talk about more than 2
00:55:55 <Gloria> And in screen-scraping scripts and in JavaScript and in site-wide CSS and...
00:55:58 <TimStarling> sure, I'm saying maybe we could subclass it
00:56:19 <TrevorParscal> TimStarling: I'm not suggesting you are crazy, just bold
00:56:36 <TimStarling> plugins are coding against a moving target too, you know
00:56:37 <brion> #action more research required on advanced possibilities for scoping site CSS
00:56:44 <TrevorParscal> Gloria: I think it's safe to say that this will break a lot of stuff as it's currently proposed
00:56:56 <brion> #info consider splitting that out from the core RFC so we can get simple things done faster
00:57:09 <tgr> would this be limited to site-wide CSS? for user CSS it would have some interesting security implications like DOSing the less interpreter
00:57:10 <Gloria> TrevorParscal: That increases the implementation difficulty dramatically, then.
00:57:26 <TrevorParscal> we should introduce a new way that works together, and let users migrate their styles over, then deprecate the old way and eventually kill it
00:57:34 * Gloria nods.
00:57:35 <jgonera> yeah, if people use .mw-content-ltr to style things, than having .mw-content as a class of the same element won't help
00:57:38 <Gloria> Slow deprecation.
00:57:43 <gwicke> I'm not convinced that actually using LESS for this is a good idea
00:57:44 <tgr> and if it is limited to site-wide CSS, that makes it hard for administrators to test changes
00:57:49 <TrevorParscal> Gloria: of course, but this RFC is very unrealistic in a lot of ways
00:57:58 <Gloria> The best kind of RFC, heh.
00:58:25 <TrevorParscal> gwicke: we could just use an iframe for content, solves CSS leaks both ways :) lol
00:58:35 <jgonera> I'm frankly, becoming a bit less excited about it too, I didn't see that many obstacles coming
00:58:54 <gwicke> TrevorParscal, yay!
00:59:06 <Edokter> Yuuuuck!
00:59:59 <gwicke> more seriously, a shallow grammar that identifies CSS selectors and bodies is very simple
01:00:14 <TimStarling> I think you could do it as a formatter
01:00:39 <gwicke> so if the only task is prefixing all selectors with something, then that could probably be done very efficiently and securely without LESS
01:00:39 <TimStarling> the LESS code is split into a parser and a hierarchy of small formatter classes
01:00:41 <jgonera> formatter?
01:00:55 <TimStarling> the formatter classes take what is called a CSS tree, and generate a string
01:01:06 <jgonera> lessphp?
01:01:17 <TimStarling> includes/libs/lessc.inc.php
01:01:20 <jgonera> yes
01:01:26 <TrevorParscal> TimStarling is 20% done with writing the LESS plugin
01:02:17 <jgonera> I'll have a look at it
01:02:37 <gwicke> jdlrobson: btw, did you discuss the class-triggered CSS include idea at the architecture summit?
01:03:42 <brion> ok guys, i gotta run
01:03:47 <TrevorParscal> me too
01:03:55 <TrevorParscal> wrap up?
01:03:58 <brion> if there's any more ideas feed them to meetbot
01:04:01 <jdlrobson> gwicke: nope - https://www.mediawiki.org/wiki/Requests_for_comment/Allow_styling_in_templates#Proposal is basically what we wrapped up with at the summit
01:04:11 <TimStarling> it'd just be like http://paste.tstarling.com/p/ieuyvN.html
01:04:25 <gwicke> jdlrobson, k
01:04:29 <jdlrobson> it sounds�ed like people were very anti having multiple wiki pages to put stuff sadly
01:04:34 <TimStarling> except with code duplication instead of as a patch
01:04:38 <sumanah> ok, any #agreed or #action stuff left to say?
01:04:46 <TrevorParscal> TimStarling: nice
01:05:19 <gwicke> jdlrobson, what was the argument against having a page per logical collection of classes?
01:05:21 <TrevorParscal> looks like it's going to be pretty simple actually
01:06:15 <gwicke> CSS:hlist for example
01:06:21 <jdlrobson> gwicke: most editors in the room were very against the idea of having to go to a different page to edit CSS for simple templates.
01:06:35 <jgonera> TimStarling, I'll just have to see how dependent it is on changes to lessphp
01:06:50 <jgonera> we don't want to have a burden of updating this every time we updates lessphp
01:07:38 <TimStarling> the formatter interface is probably relatively stable, since you only need to update it when the CSS grammar changes, not when the LESS grammar changes
01:07:42 <gwicke> jdlrobson, otoh many styles can be shared between templates
01:08:16 <gwicke> and encouraging editors to do so is a good thing IMO
01:08:40 <Edokter> are we at templates yet?
01:08:51 <jgonera> jdlrobson is AFK
01:08:52 <gwicke> Edokter, officially the meeting is over already
01:09:21 <Edokter> bah... I waited for this one
01:09:41 <gwicke> my idea on that was https://www.mediawiki.org/wiki/Talk:Requests_for_comment/Allow_styling_in_templates#Class-triggered_CSS_includes
01:09:54 <sumanah> Well, it's not quite over until one of the chairs does #endmeeting
01:09:57 <TrevorParscal> TimStarling: I think since we have full control over updating LESS.php, as long as we have a test that fails when our subclass stops working we should be in good shape
01:09:57 <gwicke> also scoped by rewriting selectors
01:10:54 <sumanah> Edokter: I'm sorry, I won't schedule more than 2 RFCs into a 1-hr RFC review in the future
01:11:09 <TimStarling> sorry Edokter
01:11:46 <TimStarling> we can fit in 3 if we're very disciplined, but usually it ends up being 2 or 2½
01:11:56 <Edokter> I'll post my thoughts on the RFC talk page
01:12:04 <TimStarling> #endmeeting