/irc-logs / w3c / #css / 2012-11-27 / end

Options:

  1. # Session Start: Tue Nov 27 00:00:00 2012
  2. # Session Ident: #css
  3. # [00:06] <stearns> on above, all of my makefiles used http:// - changing to https://cgi.w3.org/member-bin/process.cgi did the trick
  4. # [00:13] * Quits: krit (~krit@public.cloak) ("Leaving.")
  5. # [00:29] * Joins: krit (~krit@public.cloak)
  6. # [00:31] * Quits: krit (~krit@public.cloak) (Client closed connection)
  7. # [00:46] * Quits: drublic (~drublic@public.cloak) (Client closed connection)
  8. # [00:50] * Quits: SimonSapin (~simon@public.cloak) (Ping timeout: 60 seconds)
  9. # [01:01] * Joins: dbaron (~dbaron@public.cloak)
  10. # [01:20] * Joins: krit (~krit@public.cloak)
  11. # [01:23] <krit> TabAtkins: Hi. I got confused between the two threads. Can you copy paste your marker-pattern syntax proposal again please?
  12. # [01:24] <TabAtkins> krit: Yeah
  13. # [01:25] <TabAtkins> marker-pattern: [ <distance>? <marker-instance> [ <distance> <marker-instance>? ]* ]#
  14. # [01:25] <TabAtkins> Basically, in each track, you can alternate between distances and markers.
  15. # [01:26] <TabAtkins> You can omit a marker to mean "use the same marker as before".
  16. # [01:26] <TabAtkins> And then you can comma-separate independent tracks.
  17. # [01:28] <krit> TabAtkins: how can you define a different order for on marker? —#———#
  18. # [01:29] <krit> TabAtkins: does it need to be comma separated then?
  19. # [01:29] <TabAtkins> What do you mean? Like you want that pattern, repeating?
  20. # [01:29] <krit> yes
  21. # [01:29] <TabAtkins> marker-pattern: 10px url(...) 30px;
  22. # [01:29] <TabAtkins> (You can omit the second url(), since it's the same marker.)
  23. # [01:29] <TabAtkins> It'll then just cycle through the list to get repetitions.
  24. # [01:30] <TabAtkins> Basically, it computes to a list of (marker, distance) pairs, which are then cycled through.
  25. # [01:30] <krit> TabAtkins: so the first distance is your offset?
  26. # [01:30] <krit> (some kind of at least)
  27. # [01:30] <TabAtkins> Depends on what you mean by that. The property I gave above will make a marker that cycles like -#---#-#---#-#---#.
  28. # [01:31] <TabAtkins> If you wanted -#---#---#---#, I'd need to add an explicit offset. Or, just rephrase it so that the first distance is an offset.
  29. # [01:32] <TabAtkins> In other words, if I say the first <distance> is an offset (and is not cycled), then I'd write the first one above as "10px url() 30px 10px", while the second is "10px url() 30px".
  30. # [01:32] <TabAtkins> That's probably a good idea, honestly.
  31. # [01:33] <krit> one part left that I just thought about at this moment. What about he paint order. Do you draw the first sequence and then the second on top of it? (sequence as a rule till the next comma)
  32. # [01:34] <TabAtkins> Good question. Probably, yes.
  33. # [01:34] <TabAtkins> Or the other way around. Whichever matches other properties.
  34. # [01:34] <TabAtkins> background is last-first.
  35. # [01:34] <TabAtkins> Dunno what shadows are.
  36. # [01:34] <heycam|away> sorry for butting in without reading the thread properly (just skimmed it): is your proposal TabAtkins that we take my proposal, and allow comma separated lists of those things?
  37. # [01:34] * heycam|away is now known as heycam
  38. # [01:35] * heycam grrs at dircproxy not auto un-awaying him
  39. # [01:35] <krit> the only problem that I see with comma separation is the shorthand (why i didn't brought it up).
  40. # [01:36] <krit> a keyword like "pattern" could help
  41. # [01:36] <krit> but it would be different to all other shhorthands that we have so far
  42. # [01:36] <TabAtkins> We're edging into this pattern in some places, when you have a really complex thing that can't be easily disambiguated.
  43. # [01:36] <krit> till now, shot hands just differ on the separation ('/' or ',')
  44. # [01:37] <TabAtkins> Honestly, I think / should almost never be used. I think it makes border-image, for example, *really* hard to read.
  45. # [01:37] <TabAtkins> I think I arged for keywords in background, but we decided on / instead.
  46. # [01:38] <TabAtkins> But anyway, small things like 'background' or 'font' or 'animation' aren't a huge deal. But for very complex properties like 'border-image' or 'marker', I think using / is a mistake.
  47. # [01:38] <krit> TabAtkins: I have nothing agains '/' when it makes sense. for background I actully think it is not a bad idea. Developers want syntax to be simple
  48. # [01:38] <TabAtkins> Current examples are radial-gradient, which uses keywords to distinguish between the size and center (and focus, once level 4 is adopted).
  49. # [01:39] <TabAtkins> We experimented with it in 'flex', before simplifying the syntax to not need it.
  50. # [01:39] <krit> TabAtkins: I would be absolutely in favor for simplifications
  51. # [01:40] <krit> TabAtkins: heycam: I actually have nothing in mind in keeping marker separate from marker-pattern and marker-segment
  52. # [01:41] <TabAtkins> One interesting simplification I brought up in the thread - we might be able to combine marker-pattern and marker-segment, using a keyword in each track to specify whether it's a per-segment or whole-path pattern.
  53. # [01:41] <TabAtkins> Only downside is we can't easily get the nice default behavior of marker-segment, where it takes a single url() and puts it in the center.
  54. # [01:41] <heycam> TabAtkins, that sounds like an earlier proposal we talked about in Hamburg
  55. # [01:41] <TabAtkins> heycam: Could be, I don't recall.
  56. # [01:41] <heycam> TabAtkins, where you could say "edge" and that meant advance the position to the middle of the next segment
  57. # [01:42] <krit> TabAtkins: heycam: I just want them to have the same syntax. But a keyword doesn't help much if you want to have both
  58. # [01:42] <TabAtkins> Sorta. You want percentages of the current segment, though.
  59. # [01:42] <heycam> I see
  60. # [01:42] <krit> TabAtkins: or your grammar gets unneccessary complicated
  61. # [01:43] <heycam> so I like the multiple tracks idea, because it's similar to what I want to be able to do with stroke and fill later on
  62. # [01:43] <krit> TabAtkins: heycam(think of markers on segment ends and dots along the path)
  63. # [01:43] <heycam> i.e. just comma separate to allow multiple ones
  64. # [01:43] <TabAtkins> krit: No, the grammar just changes to:
  65. # [01:43] <TabAtkins> marker-pattern: [ <distance>? <marker-instance> [ <distance> <marker-instance>? ]* ]#
  66. # [01:43] <TabAtkins> dammit, one sec.
  67. # [01:44] <krit> TabAtkins: sknow what you mean
  68. # [01:44] <TabAtkins> marker-pattern: [ [ segment | path ] <distance>? <marker-instance> [ <distance> <marker-instance>? ]* ]#
  69. # [01:44] <krit> keyword per sequence
  70. # [01:44] <TabAtkins> marker-pattern: [ [ segment | path ]? <distance>? <marker-instance> [ <distance> <marker-instance>? ]* ]#
  71. # [01:44] <TabAtkins> yeah
  72. # [01:45] <heycam> TabAtkins, is "path" like what I have currently, and "segment" means resolve percentages against each segment length, and repeat the whole pattern per segment instead of over the whole path?
  73. # [01:45] <krit> heycam: more
  74. # [01:45] <TabAtkins> heycam: Yeah.
  75. # [01:45] <krit> heycam: segment means you start the pattern on each segment again
  76. # [01:45] <heycam> ok
  77. # [01:45] <heycam> plus the percentages thing
  78. # [01:45] <krit> right
  79. # [01:46] <TabAtkins> And values before/beyond the length of the current segment are ignored.
  80. # [01:46] <krit> heycam: patterns are implementable on webkit today (working on it), segments need more time
  81. # [01:46] <heycam> what would you want to use "segment" for, beyond what marker-segment does currently?
  82. # [01:46] <TabAtkins> It's a slight complexity hit, as instead of "marker-segment: url()" you have to say "marker-pattern: segment 50% url()", but it simplifies the overall model a little.
  83. # [01:47] <krit> TabAtkins: agree
  84. # [01:47] <krit> TabAtkins: marker-pattern: segment url() 50% would work as well ;)
  85. # [01:48] <heycam> I guess I'm not seeing the advantage to handling marker-segment inside marker-pattern
  86. # [01:48] <krit> TabAtkins: maybe it is a bit different ...
  87. # [01:48] <heycam> is it so that you can control the order of painting, like have segment markers on top of pattern markers?
  88. # [01:48] <krit> heycam: one property less, other then that, nothing
  89. # [01:48] <TabAtkins> krit: Would it? I guess that's best, actually. (I was assuming that if you didn't specify an offset, the first marker was placed at 0.)
  90. # [01:49] <krit> TabAtkins: without values after url, you could say it is no pattern
  91. # [01:49] <krit> TabAtkins: and gets drawn once
  92. # [01:49] <TabAtkins> heycam: No particular use-case advantage either way. It just merges some concepts, so the model is simpler (and the shorthand, too).
  93. # [01:49] <heycam> but more complex for authors to write marker-segment things
  94. # [01:49] <TabAtkins> A bit, yeah.
  95. # [01:49] <krit> heycam: but a lot more powerful
  96. # [01:50] <krit> heycam: I forinstance would like to have markers on peaks, you and TabAtkins on the middle of the segment
  97. # [01:50] <krit> s/peak/end of segment.
  98. # [01:51] <heycam> krit, but you can do that with what is currentl in the spec, right?
  99. # [01:51] <TabAtkins> heycam: If it wasn't for the percentages thing, just using the older "edge" proposal would work fine (you can repeat after that).
  100. # [01:51] <heycam> TabAtkins, so I do think your proposal is better than the old "edge" keyword proposal
  101. # [01:52] <heycam> so here is one thing you could do with this that you can't with the current spec
  102. # [01:52] <heycam> if you want each edge to look like: -----x-x-----
  103. # [01:52] <krit> heycam: https://svgwg.org/svg2-draft/painting.html#SegmentMarkers marker-segment just allowed a url
  104. # [01:53] <TabAtkins> Yeah. But that can be done either by mine, or by krit's proposal.
  105. # [01:53] <TabAtkins> In krit's, "marker-segment: calc(50% - 20px) url(), calc(50% + 20px) url();".
  106. # [01:53] <heycam> ok
  107. # [01:53] <TabAtkins> In mine the same, except call it marker-pattern and put a "segment" keyword.
  108. # [01:53] <krit> heycam: TabAtkins: with first distance as offset, I am absolutely fine with your proposal :D
  109. # [01:54] <TabAtkins> Or, well, you can simlpify a bit. "marker-pattern: segment url() calc(50% - 20px) url() 40px".
  110. # [01:54] <TabAtkins> krit: kk
  111. # [01:54] <heycam> TabAtkins, what controls that you don't repeat that pattern?
  112. # [01:55] <heycam> TabAtkins, or is it just that you would fall off the end?
  113. # [01:55] <TabAtkins> heycam: Well, in this specific case, it would fall off the end. We can either add an explicit cycle/no-cycle indicator, or just require that you do something like "none 100%" at the end to ensure that repeats fall off.
  114. # [01:56] <heycam> I think that makes the simple "marker in the middle of the segment" even more complex to write
  115. # [01:56] <TabAtkins> Yeah, I think you're right.
  116. # [01:56] <krit> heycam: well no
  117. # [01:56] <krit> heycam: 50% url() says actually nothing about the repeating
  118. # [01:56] <TabAtkins> I'm thinking the defaults for the two use-cases are different enough that merging them would be kinda painful.
  119. # [01:57] <heycam> krit, oh is that because the first is offset and not a length to repeat?
  120. # [01:57] <krit> heycam: therefore, the marker is repeated on thesame place over and over again
  121. # [01:57] <TabAtkins> krit: You don't want that - it'll mean you couldn't do transparent colors. ^_^
  122. # [01:57] <krit> heycam: which would be the same as draw the marker once
  123. # [01:57] <krit> TabAtkins: question of defintion
  124. # [01:57] <krit> TabAtkins: just say that it is treated as drawing it once
  125. # [01:58] <heycam> krit, so in the spec at the moment I say that if the lengths all add up to zero then you don't paint anything. but we could define it so that it just doesn't repeat, only does it once.
  126. # [01:58] <TabAtkins> It's fine to say "XXX means draw it once". But don't try and state that they're equivalent. ^_^
  127. # [01:58] <krit> no, right.
  128. # [01:58] <heycam> I'm also slightly uneasy about treating the first value as an offset and not part of the repeated pattern
  129. # [01:59] <heycam> because there's nothing that makes that obvious when you look at the property value
  130. # [01:59] <TabAtkins> You *do* need an offset, for the pattern like -#---#---#---#---#.
  131. # [01:59] <heycam> I agree with that
  132. # [02:00] <heycam> (would you want an offset at the other end too? to ensure a marker doesn't get placed right at the end of the path?)
  133. # [02:00] <krit> heycam: btw. looks like I can't help on implementing SVG stuff in Mozilla :(
  134. # [02:00] <heycam> krit, why's that?
  135. # [02:00] <TabAtkins> Independent implementations.
  136. # [02:00] <krit> heycam: at least not if we follow the CSS WG guideline
  137. # [02:01] <heycam> oh in terms of independent implementations?
  138. # [02:01] <krit> TabAtkins: TWO independent implementations
  139. # [02:01] <krit> TabAtkins: (ok, there is no one indepdent :P)
  140. # [02:01] <TabAtkins> Two or more is implied by my use of plurals. ^_^
  141. # [02:01] <heycam> krit, what were you going to hhelp with?
  142. # [02:02] <krit> heycam: yeah, still implement most new SVG features in WebKit :)
  143. # [02:02] <krit> heycam: was looking in helping out on masking in the future ;)
  144. # [02:02] <heycam> krit, oh cool
  145. # [02:02] <krit> heycam: not cool
  146. # [02:02] <heycam> well yeah :p
  147. # [02:02] <heycam> krit, I'm not sure I'm going to work on the CSS Masking stuff outside of the mask-type property
  148. # [02:03] <krit> hehe
  149. # [02:03] <heycam> at least any time soon
  150. # [02:04] * heycam must lunch bbl
  151. # [02:04] * heycam is now known as heycam|away
  152. # [02:09] * krit needs to get hired by MS first and Opera afterwards, implement CSS Masking and SVG 2 there, moves on two Mozilla and blocks SVG 2 for forever!!!
  153. # [02:10] * Quits: cabanier (~cabanier@public.cloak) ("Leaving.")
  154. # [02:11] * Quits: krit (~krit@public.cloak) ("Leaving.")
  155. # [02:34] * Quits: logbot (~logbot@public.cloak) (Ping timeout: 60 seconds)
  156. # [02:38] * Joins: logbot (~logbot@public.cloak)
  157. # [02:38] * heycam|away is now known as heycam
  158. # [02:52] * Joins: krit (~krit@public.cloak)
  159. # [02:54] * Quits: jet (~jet@public.cloak) (jet)
  160. # [03:04] * Quits: krit (~krit@public.cloak) ("Leaving.")
  161. # [03:11] * Joins: isherman (~Adium@public.cloak)
  162. # [04:12] * Quits: dbaron (~dbaron@public.cloak) (Ping timeout: 60 seconds)
  163. # [04:52] * Joins: krit (~krit@public.cloak)
  164. # [05:48] * Joins: dbaron (~dbaron@public.cloak)
  165. # [06:25] * Quits: stearns (~anonymous@public.cloak) (Client closed connection)
  166. # [06:25] * Joins: stearns (~anonymous@public.cloak)
  167. # [06:34] * Quits: krit (~krit@public.cloak) ("Leaving.")
  168. # [08:05] * heycam is now known as heycam|away
  169. # [08:23] * Quits: dbaron (~dbaron@public.cloak) (Ping timeout: 60 seconds)
  170. # [08:32] * Joins: SimonSapin (~simon@public.cloak)
  171. # [08:37] * Joins: dbaron (~dbaron@public.cloak)
  172. # [08:39] * leaverou is now known as leaverou_away
  173. # [08:45] * Joins: Ms2ger (~Ms2ger@public.cloak)
  174. # [08:55] * Quits: jdaggett (~jdaggett@public.cloak) (jdaggett)
  175. # [09:14] * Quits: dbaron (~dbaron@public.cloak) (Ping timeout: 60 seconds)
  176. # [09:48] * Quits: SimonSapin (~simon@public.cloak) (Ping timeout: 60 seconds)
  177. # [10:30] * Joins: SimonSapin (~simon@public.cloak)
  178. # [10:33] * Joins: drublic (~drublic@public.cloak)
  179. # [10:57] * Joins: Ms2ger` (~Ms2ger@public.cloak)
  180. # [11:00] * Quits: Ms2ger (~Ms2ger@public.cloak) (Ping timeout: 60 seconds)
  181. # [11:07] * Joins: tmpsantos (~tmpsantos@public.cloak)
  182. # [11:24] * Joins: {Darktears} (~darktears@public.cloak)
  183. # [11:24] * Quits: darktears (~darktears@public.cloak) (Client closed connection)
  184. # [11:33] * Joins: teoli (~teoli@public.cloak)
  185. # [12:25] * Quits: Ms2ger` (~Ms2ger@public.cloak) (Client closed connection)
  186. # [13:01] * Joins: jet (~jet@public.cloak)
  187. # [13:25] * Quits: jet (~jet@public.cloak) (jet)
  188. # [13:38] * Quits: {Darktears} (~darktears@public.cloak) (Ping timeout: 60 seconds)
  189. # [14:31] * Joins: Ms2ger` (~Ms2ger@public.cloak)
  190. # [14:40] * Joins: {Darktears} (~darktears@public.cloak)
  191. # [16:07] * Quits: Ms2ger` (~Ms2ger@public.cloak) (Ping timeout: 60 seconds)
  192. # [17:11] * Joins: krit (~krit@public.cloak)
  193. # [17:29] * Quits: tmpsantos (~tmpsantos@public.cloak) ("Leaving")
  194. # [17:40] * Joins: jet (~jet@public.cloak)
  195. # [17:58] * Joins: dbaron (~dbaron@public.cloak)
  196. # [18:21] * Quits: SimonSapin (~simon@public.cloak) (Ping timeout: 60 seconds)
  197. # [18:22] * Quits: arronei (~arronei@public.cloak) ("")
  198. # [18:23] * Joins: teoli_ (~teoli@public.cloak)
  199. # [18:23] * Joins: SimonSapin (~simon@public.cloak)
  200. # [18:25] * Joins: arronei (~arronei@public.cloak)
  201. # [18:26] * Quits: teoli (~teoli@public.cloak) (Ping timeout: 60 seconds)
  202. # [18:36] * Quits: SimonSapin (~simon@public.cloak) (Ping timeout: 60 seconds)
  203. # [18:56] * Quits: dbaron (~dbaron@public.cloak) (Ping timeout: 60 seconds)
  204. # [19:37] * Parts: jet (~jet@public.cloak) (jet)
  205. # [19:46] * Joins: victor (~Adium@public.cloak)
  206. # [19:46] * Parts: victor (~Adium@public.cloak) (victor)
  207. # [19:49] * Joins: dbaron (~dbaron@public.cloak)
  208. # [20:37] * Quits: isherman (~Adium@public.cloak) (Client closed connection)
  209. # [21:15] * Quits: {Darktears} (~darktears@public.cloak) (Ping timeout: 60 seconds)
  210. # [21:34] * Joins: isherman (~Adium@public.cloak)
  211. # [21:46] * Quits: SamB_MacG5 (~SamB_MacG5@public.cloak) (Ping timeout: 60 seconds)
  212. # [21:50] * Joins: SamB_MacG5 (~SamB_MacG5@public.cloak)
  213. # [21:50] * Joins: victor (~Adium@public.cloak)
  214. # [21:50] * Parts: victor (~Adium@public.cloak) (victor)
  215. # [22:44] * Quits: teoli_ (~teoli@public.cloak) (Client closed connection)
  216. # [22:58] * heycam|away is now known as heycam
  217. # [23:22] * Joins: cabanier (~cabanier@public.cloak)
  218. # Session Close: Wed Nov 28 00:00:00 2012

The end :)