[CSSWG] Minutes Telecon 2014-07-16

Errata for Canvas Background
----------------------------

  - Bert brought the proposed errata text he wrote to the group.
  - He was given two edits to make in order to make the errata more
       accurately reflect the group's thinking.
  - fantasai will update the test suite to reflect the change.

Error handling rules in grid layout
-----------------------------------

  - RESOLVED: Accept proposal (available here:
       http://lists.w3.org/Archives/Public/www-style/2014Jul/0074.html)

Transforms Shorthand
--------------------

  - TabAtkins updated the group on where his thinking has evolved to
       after discussions on the very active thread.
  - TabAtkins will re-write a new proposal and send it to the list
       for further review.

CSS Color Classes
-----------------

  - TabAtkins addressed the changes he's made since he presented his
       ideas from the wiki last week.
  - Leaverou had some concerns about his attempt to address the
       various types of color syntax and will write up her concerns
       and post them on the mailing list.
  - The plan to remove the RGBcolor name from DOM Level 2 ran into
       some objections and will be addressed in the thread.

Animations Issues
-----------------

  - RESOLVED: Defer new timing keywords for bounce animations to
       level 2
  - RESOLVED: Defer a new steps() timing function to level 2
  - RESOLVED: Begin work on Level 2 of Animations
  - RESOLVED: Accept the edit proposed in this e-mail:
       http://lists.w3.org/Archives/Public/www-style/2013Jan/0054.html
  - RESOLVED: Inserting an @keyframe rule if it wasn't there starts
       an animation.

===== FULL MINUTES BELOW ======

Present:
  Glenn Adams
  Rossen Atanassov
  Tab Atkins
  David Baron
  Bert Bos
  Adenilson Cavalcanti
  Dave Cramer
  Alex Critchfield
  Bruno de Oliveira Abinader
  Elika Etemad
  Sylvain Galineau
  Brad Kemper
  Dael Jackson
  Peter Linss
  Liam Quin
  Matt Rakow
  Florian Rivoal
  Simon Sapin
  Dirk Schulz
  Lea Verou
  Greg Whitworth
  Steve Zilles

Regrets:
  Chris Lilley
  Mike Miller
  Anton Prowse

  Scribe: dael

Errata for Canvas Background
----------------------------

  <Bert> http://lists.w3.org/Archives/Public/www-style/2014Jul/0289.html
  plinss: Let's get started.
  plinss: Anything to add to the agenda?
  Bert: Maybe check the text of the errata that we created last
        week? If we can't agree in two minutes we can postpone to
        another time.
  Bert: That's (link above) my response to SimonSapin's message.
  Bert: So shall I explain now?

  Bert: We decided that the background of the canvas would not be
        taken from the root or body if they have display: none. If
        they have visibility: hidden everything is normal
  Bert: SimonSapin was writing the text originally, but here's the
        text I came up with. I proposed to add two sentences [reads
        proposal]

  SimonSapin: When you said undefined, does it mean the spec
              doesn't define or it's not in the background?
  Bert: I don't think we defined...

  Bert: SimonSapin question was what does "background undefined"
        mean?
  Bert: I didn't find any rule in the spec that says what the
        canvas background is other than taking it from the root
        element.
  fantasai: I think we say it's transparent and that means it's
            whatever it'll be if everything is transparent. It's
            treated as background transparent.

  dbaron: Wasn't the point of the agreement last call that when
          it's display: none normal rules apply?
  fantasai: What?
  dbaron: I thought this errata is backwards.
  fantasai: I think if there is not a root element box, then
            background position is undefined, so we made a root
            element that's display: none propagates transparent up.
  dbaron: Didn't we say all browsers show background in that case?
  fantasai: I thought they said it doesn't.
  MaRakow: It's split. In IE if body is none we paint.
  fantasai: You paint with visibility: hidden.
  MaRakow: That could be right.

  fantasai: There's 2 options. You propagate transparent up because
            the box isn't there, or we use the initial containing
            block. Most implementations use the first option. This
            is a really weird case.
  dbaron: Okay.

  Bert: So I should make a next version of the text that says
        canvas background is transparent rather than undefined?
  fantasai: Yes.
  fantasai: With display: none on the body, when we propagate do we
            use the body's dimensions to set the positioning? I
            don't think so.
  Bert: It says it's positioned as per the root element. It's
        strange, but you don't use the body, use the root.
  fantasai: In that case, it's defined to say you propagated up
            even if it's display: none. I don't know what
            implementations do.
  Bert: I don't think the proposal is if there's display: none.
  fantasai: I would word it as :if no box is generated in the
            render tree such as in the case of display: none" since
            there may be other ways to make something not create a
            box.
  Bert: I can see your point.
  dbaron: I think if it's not propagated from a root element that's
          display: none, it should also not be for a body that's
          display: none
  fantasai: That's fine.

  Rossen: If you work to remove body in HTML, what would you
          propose for that? Would that me the same?
  SimonSapin: I think the same.
  Rossen: That's more the case that's likely to happen.
  fantasai: If you remove an element from the render tree, it
            renders like it was never there.
  Rossen: So you should display the same way.
  fantasai: So if you render with no elements, okay.
  Rossen: I could have a div.
  fantasai: We don't special case HTML. We special case the root,
            and we special case a <body> child of the root.
  Rossen: So. If I remove body in HTML and inject a span with a
          pink background that's supposed to propagate up, I don't
          think that works right now.
  dbaron: I would think that works.
  Rossen: I was playing with something like that and thought there
          was interop, but I might be wrong.

  plinss: So do we have concrete text?
  Bert: I should re-write after what I've heard.

  fantasai: Rossen, that has to work because you can't otherwise
            have a canvas background on arbitrary documents.
  Rossen: I tried it with that special case with the inline element
          and the root.

  SimonSapin: I think Bert's proposal is fine with "undefined"
             replaced by transparent.
  fantasai: I also want to make the change about not having the box.
  Bert: Let me try it again with those changes.
  Rossen: But not having a box doesn't mean you can't get
          propagation. Why would it be the same as no element?
  fantasai: We need a box to position the images inside.
  plinss: Okay?
  Rossen: Umm...okay.
  plinss: So Bert will come back with new text next week.

  dbaron: Is someone willing to take an action to fix the test in
          the test suite?
  <dbaron> http://test.csswg.org/suites/css2.1/20101027/html4/root-box-003.htm
  dbaron: Maybe we dropped it, I have a link [above] but it may be
          broken.

  * trackbot is creating a new ACTION.
  <trackbot> Created ACTION-634 - Address the text suite [on Elika
          Etemad - due 2014-07-23].

Error handling rules in grid layout
-----------------------------------

  Rossen: We're fine with fantasai and TabAtkins' proposal.
  plinss: Okay.
  plinss: Other opinions? Objections?

  RESOLVED: Accept proposal (available here:
         http://lists.w3.org/Archives/Public/www-style/2014Jul/0074.html)

Transforms Shorthand
--------------------

  TabAtkins: The proposal has evolved from the e-mail. It's more
            similar to what Shane proposed with shmanslation,
            shmale, and smotation. These behave how you would
            expect in real life.
  TabAtkins: If you have a translate involved it's applied after
            the fact. If we name it appropriately to look like
            translate, it behaves in a way that behaves according
            to the author's mental models.
  TabAtkins: It also lets us independently animate translate and
             rotate and the like.
  TabAtkins: We can also maybe later get additive to work, but for
             now this proposal gets transforms it to work in the
             intuitive way.
  TabAtkins: Final proposed grammar isn't written exactly, but I
             accepted krit's proposal to build in origin directly
             to match SVG. So, add the 3 proposal.
  <dbaron> It would be nice to see the proposal that's on the table
           and be able to discuss on the list.
  <astearns> +1 dbaron - I'd like a new thread with the full
            proposal detailed.
  <fantasai> +1 to dbaron from me, too
  <sgalineau> +1 astearns, dbaron.

  smfr: Is this proposal to make the properties independent instead
        of multiplying?
  TabAtkins: Those are the same.
  smfr: There's magic from krit that confused me.
  TabAtkins: I think anyone that is familiar with this is getting
             lost because these are treated independent and
             separate. You can implement them by turning them into
             separate things.
  smfr: So you can't do a rotate then translate and a translate
        then rotate and get the same thing.
  <astearns> they are independent *only if* you specify that
             schmscale operates in the rotated coordinate result of
             the schmrotate.
  TabAtkins: Ignore your previous knowledge. Scaling from an origin
             gets the same thing.
  smfr: You have a translate and a rotate?
  smfr: The implicit ordering?
  TabAtkins: That ordering makes them look not connected.
  smfr: Span needs to say they're in an order. In implementation
        terms they're not independent. Users expect independent.
  TabAtkins: It's not just for simplicity. If users use one thing
             they want it to work. If they're trying to use more
             then one, they function separately. This will be you
             translate an element, you rotate an element, you scale
             and element and these are separate.

  <leaverou> Like I said on the list, strong +1 to Tab’s proposal
  <dbaron> leaverou, which of tab's proposals?
  <sgalineau> There is more than one proposal variant so not sure
              what Lea says +1 to :)

  fantasai: I think this property needs to be written fully and the
            shorthand property in it's entirety should be there so
            we can compare.
  <sgalineau> fantasai +1
  <MaRakow> +1 to writing it up, I'm confused.
  TabAtkins: Their feedback isn't relevant anymore because it's in
             the current proposal. The shorthanding proposal doesn't
             work that well.
  <astearns> I vote to kill the shorthand proposal preemptively
  TabAtkins: I've disavowed the original.
  fantasai: Write it up and start a new thread. The thread is in
            lots of sub threads.
  TabAtkins: It's all getting people to understand it's not
             transforms.
  fantasai: So get a new clean proposal.
  TabAtkins: That's fine with me.
  fantasai: Okay. And then we can discuss next week.
  <SimonSapin> thanks fantasai :)

  plinss: dbaron you were trying to make a point?
  dbaron: I was trying to say it's no where ready to discuss. This
          is a massive thread with lots of proposals and we need to
          know what we're talking about.
  <leaverou> dbaron: Mainly, I just think the problem needs to be
             addressed. I haven't made up an opinion on the
             specifics to be honest.
  TabAtkins: Yes. I can pull mine into a separate thread.
  fantasai: After you draw up your proposal, address the other
            options and explain why they're not being considered
            anymore.
  TabAtkins: I think that could be confusing because it will draw in
             concepts that don't need to be considered. I'll draw
             something up, we don't need more call time.

CSS Color Classes
-----------------

  TabAtkins: So last week we accepted color classes. I wrote the
             proposal up and wanted to get review. The proposal
             evolved a bit from the wiki. leaverou pointed out that
             people might want to manipulate in the color space.
             Such as they might want to tweek the hue a bit and with
             my previous version that was hard. I separated it into
             different color classes, one for each syntax.
  TabAtkins: They interop well and I've gone to some effort to make
             sure it's easy to extend for authors.
  TabAtkins: If they want a new color class it's pretty easy to do
             and there's guidance in the spec for how to do that.
  TabAtkins: So I wanted review.

  <leaverou> Where is the updated proposal? I can only see the
             original one in http://wiki.csswg.org/ideas/color-object
  * plinss leaverou: http://dev.w3.org/csswg/css-color/#apis
  * leaverou thanks plinss!

  TabAtkins: Final bit is naming. Names are all short and easy to
             work with.
  TabAtkins: Hopefully they're fine, but may clash with author names.
             I think that's fine. I think if they clash they'll over-
             write. It'll be hard to mix old and new text, but
             legacy sites will be fine.
  TabAtkins: RGBcolors clashes with a DOM Level 2 Style Class. That
             clashes with us and webkit. I've been advocating for us
             to drop it if possible. I explained the difficulties in
             the e-mail.
  TabAtkins: I don't think the name will be a problem. I think if
             you didn't implement DOM Level 2, that's fine. If you
             did you can change instance of RGBcolor that to
             something dumb and phase it out.
  TabAtkins: I think we need a resolution for that.
  <dbaron> I think we already agreed to deprecate (or worse) those
           interfaces
  <leaverou> I still don't understand why we need separate classes
             for color models that are just a transformation of RGB.

  krit: RGBcolor is DOM 2, but it's CSS2 primitive. Does Firefox and
        Blink expose?
  TabAtkins: I think we do. It's easy to obtain an RGB color value
             object assuming it's and RGB or Hex color
  TabAtkins: You can do an RGBcolor in Blink. However, usage is
             minuscule.
  <dbaron> Firefox does have the RGBColor interface -- it's only
           exposed for computed style, though

  leaverou: I don't understand why we need separate classes for
            color models. Why can't we modify the hue?
  TabAtkins: RGB colors don't have hues.
  TabAtkins: If you try and expose the union of all possible
             properties, you have clashes. Hex and % don't work
             together. HSL and RGB have no conflicts, but if we do
             something like HWB, the B conflicts. B is Black and B
             is Blue. We can expand into the word, but that's less
             good.
  leaverou: So for example if you have RGB and you parse another
            color in and want to modify the hue with HSL, do you
            have to keep converting between the two...
  TabAtkins: Why would you convert just for the purpose of hue?
  leaverou: You might have RGB and want to change hue, but want to
            remain in RGB. It's the same color space, but a
            different way to refer.
  TabAtkins: You have to adjust anyway. The conversion incurs a bit
             more cost, but it's not huge.
  TabAtkins: Once you're adjusting hue, you just want to use HSL
  leaverou: Wouldn't it be more convenient if you can adjust hue in
            same color class without conversion?
  <MaRakow> +1 to leaverou
  TabAtkins: I'm not sure it's worth union-ing. We end up with
             namespace issues.
  TabAtkins: It makes what you're doing less clear.

  fantasai: I think you just call it red, green, and blue
  TabAtkins: But people are used to RGB. I think JS exposes them as
             RGB.
  MaRakow: Maybe just white and black?
  TabAtkins: But then you have H, White, and Black
  leaverou: HWB is just whiteness and blackness.
  TabAtkins: B clashes with Blue.
  TabAtkins: I don't want to use full name, because saturation and
             lightness aren't short. They're not easy to type.
  TabAtkins: If we're abbreviating one, we should abbreviating all
             since they're well established.
  <bradk> I wouldn't mind using .blue and .black instead of .b
  <bradk> .brightness is probably more clear than hsb.b anyway.
  <fantasai> bradk, agreed...

  leaverou: But if you're typing the whole word, isn't it easier.
  TabAtkins: It is easy to use.
  leaverou: But you seem to think if you want to modify saturation
            or hue, you don't want to do it in RGB. You seem to
            think you should convert.
  TabAtkins: So you think people would want to first adjust the
             color and then the saturation?
  TabAtkins: You wouldn't want just an RGB?
  leaverou: I'm saying they're all a the way of presenting the same
            data so I don't know why we're not making them the same
            model.
  TabAtkins: I understand and agree, but I object due to practical
             considerations.
  fantasai: I think leaverou should write up an alternate proposal
            and submit it as a reply to your proposal. I think
            leaverou has a bunch of valid concerns and we're not
            getting anywhere.

  TabAtkins: So we still need to address the RGBcolor naming issue.
  fantasai: We can do a different name. Let's poll at another point.
  TabAtkins: I'm saying are we okay changing a deprecated
             interface's name.
  plinss: Other opinions?
  * fantasai defers to dbaron.
  TabAtkins: Any objection to changing the DOM level 2 name?
  <dbaron> I think the objections would come from web content that
           breaks rather than from people who don't like it.
  <glenn> yes, i object to changing name of RGBColor interface
  <fantasai> dbaron, I kindof see you as a representative of
             sensibleness wrt breaking web content :)

  smfr: This seems like a slippery slope to exposing more in JS. Is
        that something we want to do? I know color is special, but
        is this worth it for just colors?
  <leaverou> I think ultimately exposing all CSS values to JS would
             be valuable, but there is a more pressing need for some
             (e.g. colors) than others.
  TabAtkins: I'm not sure. We could expose a bit more, but we don't
             want to go too far. All this could be exposed by a
             better OM that I proposed in January. All this is
             backfill and we'll expose everything in several years.
             We can avoid most of the pressure, but colors are
             really common.
  TabAtkins: Lots of people write color classes and it's common
             enough that it's worth exposing. There may be some
             others like maybe parsing links. Maybe gradient, that's
             an edge case. I think we can maintain a high bar of
             what to expose so we don't write alternate OM for all
             of CSS that we replace in a few years.
  TabAtkins: Right now color is all I'm interested in.

  fantasai: I think we can write pieces we're interested in now and
            integrate them in 6 months.
  fantasai: That's in a timescale that we can adjust the bits we're
            designing now to fit in better with other things.
  TabAtkins: Ultimately what we do will be incompatible with the
             entire OM property. It can look similar, but not be the
             same.

  plinss: So going back to the class name, so at some point we need
          to embrace JS modules. So, if we have a naming conflict,
          this might be the time.
  TabAtkins: We haven't implemented this just yet.
  plinss: No one has implemented this yet either. It's a dependency
          issue.
  TabAtkins: I don't know how soon we'll want to do modules. We will
             eventually need to to go into the web IDL.
  glenn: I do object to changing the name of RGBcolor.
  TabAtkins: Why?
  glenn: It's implemented and deployed.
  TabAtkins: And on it's way out.
  glenn: When it's gone we can revisit, but until then I object.
  TabAtkins: Okay. We can address in the thread.
  TabAtkins: We can move on.

Animations Issues
-----------------

  sylvaing: So there's a bunch of stuff. A few feature requests.

  <sgalineau> http://lists.w3.org/Archives/Public/www-style/2013Jun/0376.html
  sylvaing: Someone was asking about a new animation timing keyword
            for bouncing effects. I think for level 1 we should
            defer unless there's a strong opinion.
  <smfr> defer
  TabAtkins: On deferring it?
  sylvaing: Yes.
  TabAtkins: Yeah, I think that's fine.
  sylvaing: So any objections?

  RESOLVED: Defer new timing keywords for bounce animations to
            level 2

  <sgalineau> http://lists.w3.org/Archives/Public/www-style/2012Dec/0282.html
  sylvaing: Next issue is also a proposed feature that I think we
            should defer.
  sylvaing: This one is interesting because it's about timing. You
            can see in the example if you ask for a 3 step
            animation, the last step may not be visible because you
            go forward. They overshoot the animation.
  sylvaing: TabAtkins proposed some syntactic sugar. I agree with
            someone that said the name isn't clear. It does address
            the problem. There is definitely a problem, I'm not sure
            this is the solution. I think this is level 2
  <leaverou> +1 for step-mid, I’ve ran into this issue a few times
             as well. One of them was actually yesterday!
  TabAtkins: I'm fine with level 2. I'm assuming that'll happen at
             some point. A different possible name is segment
             function.

  krit: I think at the Paris F2F we resolved...at a key time this
        should already be...let me open an image.
  <krit> http://www.w3.org/TR/SVG/images/cumulative-transform-graph-1.png
  krit: Maybe this is something different. This image you can see
        each step sets a new frame. The next step is the new frame.
        In your example it seems the 6 second frame should appear.
  TabAtkins: If you're not doing a fill-forward and just taking an
             element that should go from 0 to 60 over 6 seconds and
             goes away, the current behavior makes it jump past 0 or
             makes it go away right at 60. So you'd have to
             overshoot to 80 to make the 60 appear. If you're doing
             fill-forward, you're fine.
  sylvaing: There are ways to do it, but the default doesn't get you
            what you want.
  TabAtkins: It's all achievable, but to do it it's slightly hacky.

  sylvaing: So any objection to moving this to level 2?
  sylvaing: Then maybe we can see if there's obj to starting level 2
  TabAtkins: I think we should start level 2. Usual practice is to
             have level 2 only as a diff spec that only maintains
             the changes.
  <dbaron> yeah, a diff spec for level 2 sounds fine

  plinss: So, backing up. Objections to deferring to Level 2?

  RESOLVED: Defer a new steps() timing function to level 2

  plinss: So any objections to starting level 2?
  sylvaing: I can start on it. Level 1 gets priority.
  fantasai: We can also do a wiki to collect things. Maybe start
            with a wiki and then once you have time to spec, do that.
  plinss: Is that a resource issue, or are you objecting?
  fantasai: I'm not objecting. I'm just offering a quick way to
            sketch.

  RESOLVED: Begin work on Level 2 of Animations

  <sgalineau> http://lists.w3.org/Archives/Public/www-style/2013Jan/0054.html
  sylvaing: This one is minor. It's a comment from dbaron about
            ambiguities when you repeat animations. I propose to
            just accept the edit. I think that's obvious, but want
            to make sure.
  sylvaing: So I'll let people read.
  plinss: Everyone fine with the edit?
  plinss: I'm assuming you're okay with it?
  sylvaing: I'm okay with it. In this case the 3 sec animation takes
            over.

  RESOLVED: Accept the edit proposed in this e-mail:
            http://lists.w3.org/Archives/Public/www-style/2013Jan/0054.html

  <sgalineau> http://lists.w3.org/Archives/Public/www-style/2013Oct/0248.html
  sylvaing: Next one is more interesting. It popped up a few times
            and Brian mentioned it recently. I started editing
            already. It has to do with a start time of an animation
            when you start an animation and there's no @keyframe yet.
            So do you start when you have the keyframe or a
            different time. I think it's when you have both the
            animation property and the keyframe.
  sylvaing: I think you start from the beginning when you have both.
  sylvaing: I think in some implementation if you insert the
            keyframe later it didn't start.
  sylvaing: So if you start animation with foo 0sec and have a
            keyframe at 10sec it starts.

  smfr: So does the snapshotting rule come into play and you have an
        animation with no keyframe?
  sylvaing: So you're asking if an animation has run and then you
            mess with keyframes do you start at the beginning?
  smfr: When you define as a set of keyframes, is it just the
        @keyframes block rule, or do they have to be valid keyframes
        within?
  sylvaing: I think to start you need animations and a matching
            @keyframe
  smfr: So empty @keyframe is okay?
  sylvaing: Yes. and if you start adding @keyframes later, it
            doesn't restart.
  smfr: Right, okay.

  <leaverou> Can’t hear what’s being said very well, but fwiw I
             think it’s much more author-friendly to play the
             animation when the @keyframes rule is inserted, instead
             of nothing happening. Whether it starts from the
             beginning or not, don’t think matters that much

  plinss: Is this at all in web animations spec?
  TabAtkins: I don't know.
  TabAtkins: I'm not sure what's in the web animations.
  dbaron: What's in an @keyframes rule is pretty CSS specific, so I
          suspect it's not.
  plinss: I haven't looked at the keyframes part of web animations.
          I'm just wondering if there's ways to affect through the
          API. I just want the specs to stay consistent.
  sylvaing: Web animations wanted the nothing happens if you insert
            @keyframes after. I'm not sure entirely, so I'll check
            with them.
  sylvaing: I had one more issue. Can we resolve that inserting
            @keyframe rule if it wasn't there starts an animation?
  plinss: So is there objections?
  RESOLVED: Inserting an @keyframe rule if it wasn't there starts an
            animation.

  <leaverou> besides the case where the @keyframes rule is inserted
             through JS on a webpage, it also applies to authoring
             environments like dabblet that update the page as the
             user types

  plinss: I'm assuming the remaining issue is more than 30sec?
  sylvaing: It'll take a few minutes. We can do that next time.
  plinss: That's it for this week then. I won't be here next week,
          but I think glazou will be back. Bye!

Received on Wednesday, 16 July 2014 21:47:37 UTC