/irc-logs / w3c / #webapps / 2015-09-18 / end

Options:

Previous day, Next day

  1. # Session Start: Fri Sep 18 00:00:01 2015
  2. # Session Ident: #webapps
  3. # [00:08] * heycam is now known as heycam|away
  4. # [00:16] * Joins: Florian (~Florian@public.cloak)
  5. # [00:20] * Quits: marcosc (~marcosc@public.cloak) (Client closed connection)
  6. # [00:23] * Joins: jyasskin (~textual@public.cloak)
  7. # [00:23] * Quits: Florian (~Florian@public.cloak) (Ping timeout: 180 seconds)
  8. # [00:55] * Joins: marcosc (~marcosc@public.cloak)
  9. # [00:55] * Quits: marcosc (~marcosc@public.cloak) (Client closed connection)
  10. # [00:55] * Joins: marcosc (~marcosc@public.cloak)
  11. # [01:17] * heycam|away is now known as heycam
  12. # [01:27] * Joins: sicking (~sicking@public.cloak)
  13. # [01:57] * heycam is now known as heycam|away
  14. # [02:21] * Quits: smaug (~chatzilla@public.cloak) (Ping timeout: 180 seconds)
  15. # [02:25] * Joins: jungkees (~jungkees@public.cloak)
  16. # [02:48] * Quits: sicking (~sicking@public.cloak) (sicking)
  17. # [02:53] * terri is now known as terri_offline
  18. # [03:05] * Joins: Florian (~Florian@public.cloak)
  19. # [03:10] * heycam|away is now known as heycam
  20. # [03:19] * Quits: marcosc (~marcosc@public.cloak) (Client closed connection)
  21. # [03:25] * Joins: marcosc (~marcosc@public.cloak)
  22. # [03:32] * Quits: marcosc (~marcosc@public.cloak) (Ping timeout: 180 seconds)
  23. # [03:45] * Quits: jyasskin (~textual@public.cloak) ("My computer has gone to sleep. ZZZzzz…")
  24. # [04:03] * Quits: Florian (~Florian@public.cloak) (Client closed connection)
  25. # [04:04] * Joins: Florian (~Florian@public.cloak)
  26. # [04:11] * Quits: Florian (~Florian@public.cloak) (Ping timeout: 180 seconds)
  27. # [04:30] * Joins: estellevw (~estellevw@public.cloak)
  28. # [04:50] * Quits: estellevw (~estellevw@public.cloak) ("Snuggling with the puppies")
  29. # [05:05] * Joins: estellevw (~estellevw@public.cloak)
  30. # [05:26] * Joins: marcosc (~marcosc@public.cloak)
  31. # [05:33] * Quits: marcosc (~marcosc@public.cloak) (Ping timeout: 180 seconds)
  32. # [05:44] * Quits: estellevw (~estellevw@public.cloak) ("Snuggling with the puppies")
  33. # [05:44] * Joins: estellevw (~estellevw@public.cloak)
  34. # [05:56] * Joins: Florian (~Florian@public.cloak)
  35. # [06:03] * Joins: jyasskin (~textual@public.cloak)
  36. # [06:06] * Quits: Florian (~Florian@public.cloak) (Client closed connection)
  37. # [06:06] * Joins: Florian (~Florian@public.cloak)
  38. # [06:13] * Quits: Florian (~Florian@public.cloak) (Ping timeout: 180 seconds)
  39. # [06:26] * heycam is now known as heycam|away
  40. # [06:30] * Joins: Florian (~Florian@public.cloak)
  41. # [06:31] * Quits: jyasskin (~textual@public.cloak) ("My computer has gone to sleep. ZZZzzz…")
  42. # [06:41] * heycam|away is now known as heycam
  43. # [07:25] * Quits: Florian (~Florian@public.cloak) ("Leaving...")
  44. # [07:39] * heycam is now known as heycam|away
  45. # [07:47] * Quits: estellevw (~estellevw@public.cloak) ("Snuggling with the puppies")
  46. # [07:53] * Joins: sicking (~sicking@public.cloak)
  47. # [08:16] * Joins: marcosc (~marcosc@public.cloak)
  48. # [08:23] * Quits: marcosc (~marcosc@public.cloak) (Ping timeout: 180 seconds)
  49. # [08:42] * Joins: dom (dom@public.cloak)
  50. # [09:18] * Quits: sicking (~sicking@public.cloak) (sicking)
  51. # [09:42] * Joins: Florian (~Florian@public.cloak)
  52. # [10:16] * Joins: marcosc (~marcosc@public.cloak)
  53. # [10:24] * Quits: marcosc (~marcosc@public.cloak) (Ping timeout: 180 seconds)
  54. # [10:26] * Quits: hgl (~hgl@public.cloak) (hgl)
  55. # [10:27] * Joins: hgl (~hgl@public.cloak)
  56. # [11:51] * Joins: wilsonpage (~wilsonpage@public.cloak)
  57. # [12:17] * Joins: marcosc (~marcosc@public.cloak)
  58. # [12:25] * Quits: marcosc (~marcosc@public.cloak) (Ping timeout: 180 seconds)
  59. # [12:35] * Joins: ArtB (~ArtB@public.cloak)
  60. # [12:58] * Joins: smaug (~chatzilla@public.cloak)
  61. # [13:28] * wilsonpage is now known as wilsonpage-away
  62. # [14:05] * wilsonpage-away is now known as wilsonpage
  63. # [14:28] * Joins: rune (~rune@public.cloak)
  64. # [15:59] * Quits: hgl (~hgl@public.cloak) (hgl)
  65. # [16:00] * Joins: hgl (~hgl@public.cloak)
  66. # [17:06] * Joins: marcosc (~marcosc@public.cloak)
  67. # [17:13] * Quits: marcosc (~marcosc@public.cloak) (Ping timeout: 180 seconds)
  68. # [17:16] * Joins: gavin (~gavin@public.cloak)
  69. # [17:26] * Joins: gavin_ (~gavin@public.cloak)
  70. # [17:32] * Quits: gavin (~gavin@public.cloak) (Ping timeout: 180 seconds)
  71. # [17:45] * Joins: jyasskin (~textual@public.cloak)
  72. # [17:45] * Joins: marcosc (~marcosc@public.cloak)
  73. # [17:57] * Quits: dom (dom@public.cloak) ("")
  74. # [18:02] * Joins: fantasai (~fantasai@public.cloak)
  75. # [18:02] * Joins: RRSAgent (rrsagent@public.cloak)
  76. # [18:02] <RRSAgent> logging to http://www.w3.org/2015/09/18-webapps-irc
  77. # [18:06] <fantasai> dglazkov: ?
  78. # [18:06] * Joins: rniwa (~textual@public.cloak)
  79. # [18:07] * rniwa is here
  80. # [18:07] * dglazkov is here
  81. # [18:07] * fantasai is here
  82. # [18:07] * fantasai is not sure how to connect though
  83. # [18:08] <dglazkov> https://plus.google.com/hangouts/_/google.com/shadow-dom
  84. # [18:08] <dglazkov> https://www.w3.org/wiki/Webapps/WebComponentsSeptember2015Meeting
  85. # [18:09] <dglazkov> fantasai: ^^^
  86. # [18:09] * Joins: arronei (~arronei@public.cloak)
  87. # [18:09] * dglazkov changes topic to 'Shadow DOM styling https://www.w3.org/wiki/Webapps/WebComponentsSeptember2015Meeting'
  88. # [18:10] * Joins: thorton (~thorton@public.cloak)
  89. # [18:10] * rniwa hi everyone!
  90. # [18:11] * hober waves
  91. # [18:11] <thorton> hi rniwa
  92. # [18:12] <fantasai> https://etherpad.mozilla.org/shadow-dom
  93. # [18:12] * rniwa created https://etherpad.mozilla.org/NKw9DhiteY
  94. # [18:12] * rniwa let's use the other one
  95. # [18:12] * rniwa I mean the one fantasai created
  96. # [18:12] * Quits: Florian (~Florian@public.cloak) (Client closed connection)
  97. # [18:13] <fantasai> RRSAgent: make logs public
  98. # [18:13] <RRSAgent> I have made the request, fantasai
  99. # [18:13] <fantasai> ScribeNick: fantasai
  100. # [18:13] <fantasai> Topic: Shadow DOM Styling
  101. # [18:14] <fantasai> rniwa: Topics are :host, :host-context, ::content, style attributes cascading, ???, Travis's inheritance by default, composition algorithm unwrapping socks(?)
  102. # [18:14] <fantasai> rniwa: detached shadow.. what about replaced elements, SVG elements, MathML, etc.
  103. # [18:14] <koji> s/socks(?)/slots/
  104. # [18:14] <fantasai> rniwa: finally [?]
  105. # [18:15] * fantasai is mostly annoyed that ::content is such a generic word and has no relation to shadow dom concepts
  106. # [18:15] <fantasai> Topic: :host() pseudo-class
  107. # [18:15] <rniwa> It's unclear when you say "div :host"
  108. # [18:15] <rniwa> what happens?
  109. # [18:15] <fantasai> It doesn't match
  110. # [18:15] <fantasai> IIRC
  111. # [18:16] <fantasai> It's specced in terms of scoping
  112. # [18:16] <fantasai> selectors in the Shadow DOM are scope-contained
  113. # [18:16] <rniwa> but how is that spec'ed? The spec text says: "When evaluated in the context of a shadow tree, it matches the shadow tree’s host element if the host element, in its normal context, matches the selector argument. In any other context, it matches nothing."
  114. # [18:17] <dglazkov> discussion about "scope-contained" property of selectors
  115. # [18:17] <fantasai> fantasai: Shadow DOM spec should be speccing that selectors in shadow tree are scope-contained
  116. # [18:18] <fantasai> fantasai: You can't select an element outside the subtree that it's scoped to
  117. # [18:18] * Quits: hgl (~hgl@public.cloak) (Ping timeout: 180 seconds)
  118. # [18:18] <fantasai> elliott: What about :host-context()
  119. # [18:19] <fantasai> fantasai: It doesn't match an element outside the scoping root, it's pulling info from outside it but it doesn't represent such an element
  120. # [18:19] <fantasai> rniwa: CSS needs to be able to see not just composed tree, but also the original tree
  121. # [18:19] <fantasai> rniwa: If you're only exposing compsed tree, a lot of these things don't exist
  122. # [18:19] <fantasai> rniwa: we need to fix that
  123. # [18:19] <fantasai> esprehn: We can fix the text.
  124. # [18:19] <fantasai> esprehn: :host has nothing to do with the composed tree
  125. # [18:19] <fantasai> esprehn: :host-context() operates on the composed tree
  126. # [18:20] * Joins: hgl (~hgl@public.cloak)
  127. # [18:20] * Joins: annevk (~annevk@public.cloak)
  128. # [18:20] <fantasai> fantasai: :host-context() doesn't represent an element in the composed tree, it matches the :host ... if it happens to be in the context described (in the composed tree)
  129. # [18:21] <fantasai> esprehn: It's matching the ancestor chain in the composed tree
  130. # [18:21] <fantasai> esprehn: If you project a button into a toolbar through another widget, and the button says :host-context(toolbar) the button can add padding to itself when in a toolbar
  131. # [18:21] <esprehn> <x-panel><x-button></x-button></x-panel>
  132. # [18:21] <esprehn> x-panel contains <x-toolbar><slot /></x-toolbar>
  133. # [18:22] <fantasai> hober: Shouldn't the toolbar be providing padding?
  134. # [18:22] <esprehn> x-button has :host-context(x-button) { ... } it must match
  135. # [18:22] <fantasai> fantasai: That's not a good example. A different example would be :host-context(.light) vs :host-context(.dark) or different styling whether in main content area vs toolbar
  136. # [18:22] <fantasai> ...
  137. # [18:22] <fantasai> esprehn: Point is for widget to select styling based on the context
  138. # [18:22] <fantasai> esprehn: To an author, the context is the composed tree
  139. # [18:23] <fantasai> ...
  140. # [18:23] <fantasai> rniwa: Shouldn't discuss whether composed tree or what tree,
  141. # [18:23] <fantasai> rniwa: Changes style based on context
  142. # [18:23] <annevk> If the shadow tree is closed, can it still use :host and :host-context?
  143. # [18:23] <fantasai> rniwa: If you have a button, it's always a button
  144. # [18:23] <fantasai> rniwa: You can style the button
  145. # [18:23] <fantasai> rniwa: Custom elements invovling shadow dom, pass certain variable into the component
  146. # [18:24] <fantasai> rniwa: dark and light example, maybe you want to define theme color, which is dark or light. Goes into CSS variable and then styled
  147. # [18:24] <fantasai> rniwa: Seems very weird that component needs to behave differently based on location in composed tree
  148. # [18:24] <fantasai> rniwa: Seems anti-pattern to me
  149. # [18:24] <fantasai> hober: I don't think :host-context is necessary because the stylesheet that defines the them sets a bunch of colors everywhere, and in some kind of shadow-styling world with name parts and vairable, for exposing parts of widget, cna style those parts
  150. # [18:25] <fantasai> hober: Not responsibility of widget to say how ...
  151. # [18:25] <fantasai> esprehn: We already have this in the platform
  152. # [18:25] <fantasai> esprehn: form controls change their padding depending on whether it's likely to look bad
  153. # [18:25] <fantasai> esprehn: E.g. if you put aqua buttons next to each other, they magically sprout margins to expand out
  154. # [18:25] <fantasai> esprehn: You can solve it this way
  155. # [18:26] <fantasai> hober: I don't think we should use quirky ems as a good example
  156. # [18:26] <fantasai> ...
  157. # [18:27] <fantasai> esprehn: Maybe this might be pushed to next level, but it's an author requirement
  158. # [18:27] <fantasai> dglazkov: We don't have devs here, maybe table dthe discussion...
  159. # [18:27] * wilsonpage is now known as wilsonpage-away
  160. # [18:27] <fantasai> esprehn: We might want to re-evaluate once we have @apply rules.
  161. # [18:27] <fantasai> esprehn: Mixins solve this in a similar way
  162. # [18:27] <fantasai> esprehn: Toolbar could provide a mixin, and widget could accept the mixin
  163. # [18:27] <fantasai> esprehn: So let's present that to authors and see what they say
  164. # [18:28] <fantasai> Topic: ::content pseudo-element
  165. # [18:28] <rniwa> Let's move onto ::content.
  166. # [18:28] <fantasai> dglazkov: ::content changes drastically due to the way slotting works
  167. # [18:28] <fantasai> dglazkov: I think this is a great opportunity to fix ::content
  168. # [18:28] <fantasai> dglazkov: We have an opportunity to not unwrap nodes with slots
  169. # [18:28] <fantasai> dglazkov: The content or slot pseudo-element could be defined as simply bypass all the slots, and go to the ???
  170. # [18:28] * fantasai dglazkov ^
  171. # [18:29] <hober> ::assigned
  172. # [18:29] <fantasai> hober: It's like an assigned pseudo-element
  173. # [18:29] <fantasai> ...
  174. # [18:29] <esprehn> ::content .a { }
  175. # [18:29] <fantasai> esprehn: The complication of ::content comes from the fact you can write something like this ^
  176. # [18:29] <fantasai> esprehn: You can put a descendant selector, which matches the composition, but arbitrarily deep
  177. # [18:29] <fantasai> esprehn: The rules that apply to you can come from arbitrarily above you
  178. # [18:29] * Joins: kochi_home (~kochi_home@public.cloak)
  179. # [18:29] <fantasai> esprehn: It requires a very complicated ... to accumulate this
  180. # [18:30] <fantasai> esprehn: If it could only match one level...
  181. # [18:30] <esprehn> ::content(slot-1) > .a { }
  182. # [18:30] <fantasai> esprehn: I'm not sure how you'd express this in CSS
  183. # [18:30] <dglazkov> ::slot .a
  184. # [18:30] <fantasai> esprehn: But if you're like forced into always having a child combinator right off the end of it
  185. # [18:30] <fantasai> esprehn: that makes it much simpler
  186. # [18:30] <fantasai> esprehn: then you know that it is directly from where the element was distributed to
  187. # [18:30] <fantasai> esprehn: From that slot, not from some random ancestor's distribution
  188. # [18:30] <dglazkov> .my-slot::slot .a
  189. # [18:30] <fantasai> dglazkov: So inside of your shadow tree you would write something like
  190. # [18:30] <fantasai> dglazkov: All it does is it goes through all the slots
  191. # [18:31] <fantasai> dglazkov: And reaches the first non-slot thing and tries to match that
  192. # [18:31] * fantasai confused
  193. # [18:31] <fantasai> esprehn: Not sure I follow dglazkov
  194. # [18:31] <dglazkov> <slot class="my-slot></slot>
  195. # [18:31] <fantasai> hober: Example is if you have a slot element distributed into another slot element
  196. # [18:31] <dglazkov> composed:
  197. # [18:31] <fantasai> hober: You have to go through all the slot elements to get to the actual assigned elements.
  198. # [18:32] <dglazkov> <slot class="my-slot><slot><slot><div class="a"></div></slot></slot></slot>
  199. # [18:32] <fantasai> annevk: Are you considering whta would happen if the shadow DOM [??]
  200. # [18:32] <fantasai> s/[??]/
  201. # [18:33] <fantasai> annevk: A shadow dom can be open or closed. Seems like nothing should work if it's closed, since should be undetectable
  202. # [18:33] <fantasai> esprehn: That's how we implemented it
  203. # [18:33] <fantasai> esprehn: otherwise you leak the widget
  204. # [18:33] <fantasai> annevk: CSS spec doesn't account for this
  205. # [18:33] <fantasai> esprehn: CSS spec predates closed shadow doms
  206. # [18:33] <fantasai> ACTION TabAtkins Make CSS Scoping module account for lcosed Shadow DOMs
  207. # [18:33] * trackbot is creating a new ACTION.
  208. # [18:33] <trackbot> Error finding 'TabAtkins'. You can review and register nicknames at <http://www.w3.org/2008/webapps/track/users>.
  209. # [18:33] * fantasai is the best
  210. # [18:34] <fantasai> rniwa: One thing we need to do is rename ::context to ::assigned
  211. # [18:34] <fantasai> s/context/content/
  212. # [18:34] <fantasai> ?: Or ::slot. Or something.
  213. # [18:34] <fantasai> esprehn: I think ::slot is better
  214. # [18:34] <fantasai> hober: ::slotted
  215. # [18:34] <fantasai> dglazkov: ::assigned is better, you're operating on a slot
  216. # [18:34] <fantasai> dglazkov: Otherwise you'll be writing ::slot::slot
  217. # [18:34] * fantasai why???
  218. # [18:34] <fantasai> esprehn: In practice people don't write slot
  219. # [18:35] <fantasai> esprehn: You'd just write ::assigned
  220. # [18:35] <fantasai> annevk: I think ::slot or ::slotted would be better
  221. # [18:35] <fantasai> annevk: It's clearer that it relates to ShadowDOM
  222. # [18:35] * fantasai prefers ::slotted
  223. # [18:35] <fantasai> rniwa: I think of those options, I think ::slotted is better
  224. # [18:35] * fantasai doesn't know what we're talking about though
  225. # [18:35] <fantasai> rniwa: DOes anyone know why ::slotted doesn't take a functional syntax?
  226. # [18:36] <fantasai> rniwa: It's magical think where lefthand side matchs to shadow dom, and righthand side matches to things in the slot
  227. # [18:36] <hober> ::assigned-to(slot-1)
  228. # [18:36] <esprehn> ::cue(.a .b) vs ::cue .a .b
  229. # [18:36] * fantasai askes for intro to slots
  230. # [18:36] <fantasai> rniwa: Inside a ShadowDOM you can have a slot
  231. # [18:36] <fantasai> rniwa: In shadow host you can have children
  232. # [18:36] <fantasai> rniwa: Some o f those children are assigned into one of those slots
  233. # [18:36] <fantasai> rniwa: ::slotted is to style the children in those slots
  234. # [18:37] <esprehn> This was done so you could add combinators
  235. # [18:37] <fantasai> rniwa: So as it's currently specced, ::slotted on the righthandside will match against those children and its descendants
  236. # [18:37] <annevk> A way to style those children from inside the shadow DOM, right?
  237. # [18:37] <esprehn> ::slotted(> .a) doesn't work, so it's ::slotted > .a
  238. # [18:37] <fantasai> rniwa: If you had ...
  239. # [18:37] * fantasai no, esprehn , theres another reason
  240. # [18:37] <rniwa> <span><b></b></span> as a assgiend node to a slot
  241. # [18:37] <rniwa> then ::slotted span b would match b here
  242. # [18:37] <fantasai> esprehn: It was not functional to use combinators
  243. # [18:38] <fantasai> fantasai: You could certainly define a functional syntax that accepted combinators, e.g. :has()
  244. # [18:38] <esprehn> ::cue(b) does the same thing though
  245. # [18:38] <esprehn> b is in another tree
  246. # [18:39] <dglazkov> fantasai: explains how CSS pseudoelement(function) syntax works
  247. # [18:40] <fantasai> {insert explanation of pseud-element syntax as tree-context-shifting combinator }
  248. # [18:40] * rniwa thanks for the clarification!
  249. # [18:40] <hober> #awesome-slot::slotted(div) then?
  250. # [18:40] <dglazkov> ACTION TabAtkins define ::slotted in CSS Scoping text
  251. # [18:40] * trackbot is creating a new ACTION.
  252. # [18:40] <trackbot> Error finding 'TabAtkins'. You can review and register nicknames at <http://www.w3.org/2008/webapps/track/users>.
  253. # [18:41] <esprehn> ::slotted(div#awesome-slot)
  254. # [18:41] <fantasai> hober: That's a div that got slotted into a slot that's called #awesome-slot
  255. # [18:41] * hober sorry, hangouts dropped
  256. # [18:41] * hober is typing example
  257. # [18:42] <rniwa> An example of creating a slot in shadow dom: <shadow-root><div><slot name="awsome-slot"></div></shadow-root>
  258. # [18:42] <fantasai> fantasai askes for a concerete example with ShadowDOM syntax
  259. # [18:42] <hober> more typically you'd probably write slot[name=awesome]::slotted(div)
  260. # [18:42] * annevk likes the analogy with http://dev.w3.org/html5/webvtt/#the-cue-pseudo-element
  261. # [18:42] <fantasai> OK, cool
  262. # [18:42] <esprehn> ah then yes #awesome-slot::slotted(div)
  263. # [18:42] <fantasai> So the selectors for that would be
  264. # [18:42] <rune> hober: so how would you write it if you have combinators to select descendants of the div?
  265. # [18:42] <fantasai> div > #awesome-slot::slotted stuff-inside-awesomeslot
  266. # [18:43] <rniwa> (except I didn't id to slot element so #awesome-slot doesn't quite work...)
  267. # [18:43] <fantasai> esprehn: What you want here is you need some kind of implicit child combinator
  268. # [18:43] <fantasai> esprehn: so that you can only select one level down
  269. # [18:43] <fantasai> fantasai: One level down period, or one level of shadow down?
  270. # [18:43] <fantasai> esprehn: One level period
  271. # [18:44] <fantasai> rniwa: The tricky part is ...
  272. # [18:44] <esprehn> <div><span><a /></span></div> => <shadow-root><slot name="awsome-slot" /></shadow-root>
  273. # [18:44] <hober> well, you can only slot children
  274. # [18:44] * fantasai wonders what's the difference betwen ::content and ::slot or <slot> and <content>
  275. # [18:44] <esprehn> #awesome-slot::slotted(div) > span { }
  276. # [18:44] * rniwa <slot> is the new <content>
  277. # [18:44] <fantasai> esprehn: I want to jump through the div that got slotted, and style stuff on the other side
  278. # [18:44] * fantasai approves
  279. # [18:44] * hober sorry, i'll rejoin in a sec
  280. # [18:44] <esprehn> #awesome-slot::slotted(div) a { }
  281. # [18:45] <fantasai> esprehn: Complexity of ::content was that it didn't have to be a child combinator, coudl be a descendant combinator
  282. # [18:45] * hober why are there two of me? /me shakes fist at hangouts
  283. # [18:45] <fantasai> dglazkov: That matches div that is slotted, then matching a child of that div
  284. # [18:45] <esprehn> ::content > span { }
  285. # [18:45] <fantasai> dglazkov: Devs wanted that, so that's why not built as a function
  286. # [18:46] <esprehn> ::content a { }
  287. # [18:46] <fantasai> esprehn: This replaced the pool of elements with things that were in that distribution
  288. # [18:46] <fantasai> ?: N levels ... ????
  289. # [18:46] <hober> what about slot[name=awesome]::slotted(div NEW-SYNTAX a)?
  290. # [18:46] * fantasai can't hear much
  291. # [18:46] <dglazkov> N levels of shadow trees
  292. # [18:47] <fantasai> annevk: It seems a little wierd that we have removed selector matching for things that have been distributed or slotted on the content side, but we keep it here in CSS
  293. # [18:47] <fantasai> hober: Since we can only slot children, it would make sense to not be able to style arbitrary descendants
  294. # [18:47] <fantasai> esprehn: You can't style only children. You can reslot a slot
  295. # [18:47] <fantasai> esprehn: But somehow I need to be able to style those
  296. # [18:47] <fantasai> esprehn: You have buttons into a panel. Panel moves into a toolbar.
  297. # [18:47] <fantasai> esprehn: Toolbar wants to style buttons inside panen
  298. # [18:48] <fantasai> esprehn: but its direct children are just more slots
  299. # [18:48] <fantasai> ?: can't we just do it with variables?
  300. # [18:48] <fantasai> esprehn: Variables requires explicit coordination.
  301. # [18:48] <dglazkov> ?: was dglazkov
  302. # [18:48] <annevk> s/wierd/weird/
  303. # [18:48] <fantasai> esprehn: If your toolbar was written with JQuery and buttons were Angular
  304. # [18:48] <fantasai> esprehn: Allowing you to style conceptiually what are your children
  305. # [18:48] <fantasai> esprehn: Your children in the composed tree
  306. # [18:48] <fantasai> annevk: I'm not necessarily concerned with the children
  307. # [18:48] <fantasai> annevk: The concer was more with the div bit
  308. # [18:49] <fantasai> annevk: Not with the span, but with the div inside the the parentheses
  309. # [18:49] * fantasai agrees with anne
  310. # [18:49] <fantasai> annevk: That was the bit that seemed weird to me.
  311. # [18:49] <rniwa> I agree with anne
  312. # [18:49] <esprehn> <host><div><span /></div></host>
  313. # [18:49] <fantasai> esprehn: Maybe it's not clear here
  314. # [18:49] <fantasai> esprehn: Given that example
  315. # [18:49] <esprehn> ShadowRoot on <host>
  316. # [18:49] <fantasai> esprehn: Host has a shadow root
  317. # [18:49] <esprehn> <slot>
  318. # [18:49] <fantasai> esprehn: Shadow root contains <slot>
  319. # [18:49] <fantasai> esprehn: the div goes into that slot
  320. # [18:49] <fantasai> esprehn: This widget wants to style the divs that go into its slot
  321. # [18:49] <esprehn> ::slot(div > span) { }
  322. # [18:50] <esprehn> <host><slot /></host>
  323. # [18:50] <fantasai> ::slot div { style div }
  324. # [18:50] <fantasai> ::slot div > span { style span }
  325. # [18:50] <fantasai> ?
  326. # [18:50] <annevk> fantasai: inconsistent with ::cue
  327. # [18:50] <fantasai> esprehn: Needs to behave differently whether ... slots or actual ...
  328. # [18:50] <fantasai> hober: I like that the :slot pseudo does the eliding the fact that there are N slots
  329. # [18:50] <annevk> http://dev.w3.org/html5/webvtt/#the-cue-pseudo-element has functional :-/
  330. # [18:51] <fantasai> esprehn: Conesnsus from WG was changing ::cue syntax to use tree-switching behavior
  331. # [18:51] <esprehn> ::cue b { }
  332. # [18:51] <fantasai> annevk: Is that still possible to change?
  333. # [18:52] <fantasai> fantasai: Didn't ::cue match against somethign that wasn't a tree?
  334. # [18:52] <fantasai> annevk: It's a tree, just not a DOM tree
  335. # [18:52] <fantasai> esprehn: The way that webkit does this, there's a shadow root, and we put divs or bold in it
  336. # [18:52] <fantasai> esprehn: It's just anonymous content
  337. # [18:52] <fantasai> dglazkov: Is this someting we have to figure out now?
  338. # [18:52] <fantasai> dglazkov: Or go on rough consensus?
  339. # [18:53] <fantasai> dglazkov: Proceed with this on www-style
  340. # [18:53] * rniwa sounds great to me
  341. # [18:53] <fantasai> alexrussel: Hear from ppl who actually use it?
  342. # [18:53] <fantasai> dglazkov: This syntax is that we have for :;content, it's just , we're tryng to figure out whether ::cue will conform to that in the future
  343. # [18:53] <fantasai> Topic: Style attributes in shadow DOM ordering proposal
  344. # [18:54] <fantasai> hober: My main concern with this issue is that in a world without shadow DOM, there is already a cascading order
  345. # [18:54] <annevk> I'll have to bow out, getting close to dinner time here
  346. # [18:54] <annevk> Thanks for taking minutes fantasai, much appreciated
  347. # [18:54] <fantasai> hober: The world with shadow dom should simply be adding to that order, not changing what order exists
  348. # [18:54] * fantasai needs to know who was talking
  349. # [18:54] * rniwa we couldn't hear
  350. # [18:55] <fantasai> hober: Option 2 and 3 reverse the nroder of normal attributes and normal attr
  351. # [18:55] * fantasai link to prposal pl?
  352. # [18:55] * fantasai needs for minutes
  353. # [18:55] <rniwa> proposal is at https://github.com/w3c/webcomponents/issues/316
  354. # [18:55] <fantasai> hober: Whatever we agree should be consistent with what we have
  355. # [18:55] <fantasai> esprehn: Intent was that person on outside is assumed to have more knowledge than person on inside
  356. # [18:55] <rune> https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Shadow-DOM-Cascade-Order.md
  357. # [18:56] <fantasai> esprehn: User of widget knows better what style should be than person who created widget
  358. # [18:56] <rune> https://github.com/w3c/webcomponents/issues/316
  359. # [18:56] <fantasai> esprehn: So this is trying to enforce that
  360. # [18:56] <rniwa> Could someone clarify the current cascading order without shadow DOM?
  361. # [18:56] <fantasai> http://www.w3.org/TR/css-cascade-4/#cascading
  362. # [18:56] <fantasai> rune: Clarifies ordering in tree-of-trees, but doesn't clarify scoped
  363. # [18:57] <fantasai> rniwa: Not clear it tells us which order these happen
  364. # [18:57] <fantasai> rniwa: override is style attr?
  365. # [18:57] <hober> http://www.w3.org/TR/CSS21/cascade.html#cascading-order
  366. # [18:57] <fantasai> fantasai: style attr changes specificity, not origin
  367. # [18:57] <rune> declarations from style attributes can be seen as author rules with infinite specificity
  368. # [18:58] <fantasai> fantasai: The Cascade has several things that matter. Most important one is orign
  369. # [18:59] <fantasai> fantasai: This is where things invert / are arbitrary. important vs. non-important is handled in origin
  370. # [18:59] <fantasai> rune: Style attribute is only one part of what's handling
  371. # [18:59] * fantasai wants to talk
  372. # [18:59] * fantasai can't type and talk
  373. # [18:59] * rniwa can't understand what rune is saying
  374. # [18:59] <rune> sorry
  375. # [18:59] <fantasai> rune: ... ?
  376. # [18:59] <kochi_home> style attribute has its own spec: https://drafts.csswg.org/css-style-attr/#interpret
  377. # [19:00] <fantasai> fantasai: Within a single origin the next thing that's important is scoping
  378. # [19:00] <fantasai> fantasai: Inner scope win over outer scope, except for !important rules where outer scope wins ove rinner scope
  379. # [19:00] <fantasai> fantasai: The next thing that's important is specificity
  380. # [19:01] <fantasai> fantasai: if you have the same origin and the same scoping level, then you sort by specificity.
  381. # [19:01] <fantasai> fantasai: Style attribute is the most specific selector
  382. # [19:01] * rniwa can't really understand what koji_home is saying
  383. # [19:01] * fantasai didn't hear
  384. # [19:01] * rniwa could you type it?
  385. # [19:01] * dglazkov koji can you write it here?
  386. # [19:01] * rniwa fantasai could you mute for a moment?
  387. # [19:02] <koji> The cascade-4 says "Normal declarations from style attributes are considered to be scoped to the element with the attribute, whereas important declarations from style attributes are considered to be scoped to the root element."
  388. # [19:02] <koji> so the style attribute was top of specificity in CSS 2, but
  389. # [19:02] <koji> was boosted to the top of scope in cascade-4
  390. # [19:03] * fantasai forgot that change !
  391. # [19:03] <rniwa> So style attribute is not treated as a different scope as opposed to a different specificity?
  392. # [19:03] <rniwa> s/not treated/treated/
  393. # [19:03] * fantasai looks at cascade 3, doesn't remember...
  394. # [19:03] <fantasai> ...
  395. # [19:03] <fantasai> esprehn: Someone from the outside applies 'display: flex' to something
  396. # [19:03] <fantasai> esprehn: If you look at top of example
  397. # [19:04] <esprehn> https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Shadow-DOM-Cascade-Order.md
  398. # [19:04] * rniwa is this the example? https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Shadow-DOM-Cascade-Order.md
  399. # [19:04] <fantasai> esprehn: Example at top was ::slot menutiem { display flex }
  400. # [19:04] <fantasai> esprehn: If menuitem set hidden attr, it would never apply
  401. # [19:04] <fantasai> esprehn: The outer one would win, and that breaks all kinds of stuff
  402. # [19:05] <fantasai> esprehn: The hidden attr fails to operate
  403. # [19:05] <esprehn> ::slot div span { }
  404. # [19:05] <fantasai> hober: I thought you said outer author knew more what should happen
  405. # [19:05] <fantasai> esprehn: ...
  406. # [19:05] <esprehn> <span hidden>
  407. # [19:05] <fantasai> esprehn: That would win, andif span had hidden attribute, it would not be hidden
  408. # [19:05] <rune> hober, elliott: you just explained why I'm unsure about option 1 or 2 for style attribute cascading order
  409. # [19:06] <fantasai> esprehn: This was very confusing to authors because widget woudl be trying to hide things, and person from outside would defeat it
  410. # [19:06] * fantasai needs to review cascade-4 vs cascade-3...
  411. # [19:06] <rune> leaning towards option 2 now
  412. # [19:06] <fantasai> rniwa: I think the quesiton is what's the scoping order of attributes vs. rules coming from host and content
  413. # [19:06] <fantasai> rniwa: Is that the question?
  414. # [19:06] <esprehn> [hidden] { display: none; }
  415. # [19:07] <fantasai> esprehn: If we wanted to make that win, that seems complicated
  416. # [19:07] <fantasai> esprehn: Since UA rules are the default
  417. # [19:07] <fantasai> hober: UA normal is the lowest priority
  418. # [19:08] <fantasai> fantasai: You could consider using !improtant to sort
  419. # [19:08] <fantasai> fantasai: e.g. ua rule sare lowest, but ua!important are highest
  420. # [19:08] <fantasai> fantasai: similarly scoped styles, invert !important sorting
  421. # [19:09] <fantasai> esprehn proposes something
  422. # [19:09] * fantasai didn't hear
  423. # [19:09] <fantasai> rniwa: This seems issue of if I have a ::slotted rule, what is the scope owner of that scope
  424. # [19:09] <fantasai> rniwa: against scope of rules apply on slotted nodes
  425. # [19:09] <fantasai> rniwa: that's coming from teh light
  426. # [19:09] <hober> I think the relevant principle is that we should not encourage a proliferation of !important rules. So whichever case is more common shouldn't get !important
  427. # [19:09] <fantasai> esprehn: This is just host rules
  428. # [19:09] <esprehn> :host(.a) { display: flex; }
  429. # [19:10] <fantasai> hober, !important is for this kind of thing
  430. # [19:10] <fantasai> rniwa: ... what is not clear to me is in case of content
  431. # [19:10] <fantasai> rniwa: Problem is that scoping order is reversed in composed tree
  432. # [19:10] <hober> fantasai: indeed! it's for exceptional cases, not the common case.
  433. # [19:10] <fantasai> rniwa: In composed tree what's got assigned into a slot
  434. # [19:10] <fantasai> rniwa: is coming from outer scop
  435. # [19:10] <hober> s/fantasai:/fantasai,/
  436. # [19:10] <fantasai> rniwa: And then rules that apply come from outside composed tree
  437. # [19:10] <fantasai> esprehn: In terms of simplified mental model
  438. # [19:10] <fantasai> esprehn: hidden thing, don't do that
  439. # [19:11] <fantasai> esprehn: outer always wins is simplest way to explain this
  440. # [19:11] <fantasai> esprehn: confusion for us is compounded by our scoping impl was broken, exposing th fact that ... ????
  441. # [19:11] <fantasai> esprehn: If shadow dom always have correct ehavior from the start
  442. # [19:12] * Joins: sicking (~sicking@public.cloak)
  443. # [19:12] <fantasai> fantasai: There's a couple issues I see that I'm not clear what we're talking about
  444. # [19:12] <fantasai> fantasai: First thing is styling stuff in shadow tree... I guess tha'ts not stylable from stuff outside shadow tree, so no conflict there.
  445. # [19:13] <fantasai> fantasai: So the stuff we're talking about is the stuff that's been slotted, is that correct?
  446. # [19:13] <fantasai> rniwa: yes
  447. # [19:13] * Joins: Florian (~Florian@public.cloak)
  448. # [19:13] <fantasai> fantasai: So in that case, we have rules from the shadow root and stuf from the host element's ancestors
  449. # [19:13] <fantasai> esprehn: It's from your distribution from your composted tree
  450. # [19:14] <rune> What I'm trying to fix with https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Shadow-DOM-Cascade-Order.md is that the current wording in CSS scoping which makes specificity count between different shadow trees.
  451. # [19:14] <fantasai> fantasai: We have a variety of sources of style
  452. # [19:14] <fantasai> fantasai: One would be style linked from the top of the document
  453. # [19:14] <fantasai> fantasai: another is style from shadow tree, linked or embedded
  454. # [19:15] <fantasai> fantasai: another is scoped style attached to the distributed nodes or their descendants
  455. # [19:15] <esprehn> <host><div slot="a" /></host> => ShadowRoot <style>::slot(div) { color: blue; }</style><host2><slot slot="b" name="a" /></host2> => ShadowRoot <style>::slot(div) { color: red; }</style><slot name="b">
  456. # [19:15] <fantasai> fantasai: so the question is what wins over what
  457. # [19:15] <fantasai> fantasai: And proposal currently is what?
  458. # [19:16] <fantasai> We have A) Document styles B) Shadow DOM styles C) Embedded styles
  459. # [19:16] <esprehn> rune: In that example, is it blue?
  460. # [19:16] <fantasai> A < C for sure
  461. # [19:16] <fantasai> but A! > C!
  462. # [19:16] <esprehn> if div had style="color: green" is it still blue?
  463. # [19:16] <rune> so the proposal is that rules from different shadow trees are ordered by the tree-of-trees order, that is, inner/outer in the composed tree
  464. # [19:16] <fantasai> We have A < C < C! < A!
  465. # [19:17] <rune> where outer normal wins over inner normal
  466. # [19:17] <rune> and inner !important wins over outer !important
  467. # [19:17] <fantasai> slot B into the equation, please?
  468. # [19:17] <dglazkov> example above in http://jsbin.com/fabacu/edit?html,output
  469. # [19:17] <rune> so slotting is what's causing the inner/outer order in the composed tree
  470. # [19:18] <fantasai> yes, but can you make an expression with A, B, C, A!, B!, C!?
  471. # [19:19] <fantasai> <html> <style>A</style> <section> <div><style scoped>B</style>...</div></section>
  472. # [19:19] <fantasai> <shadow-root><style>C</style> <slot distributes div></shadow-root>
  473. # [19:19] <fantasai> shadow-root is attached to <section>
  474. # [19:20] * Quits: Florian (~Florian@public.cloak) (Ping timeout: 180 seconds)
  475. # [19:20] <rniwa> We only have 10min left and we won't be able to finish this
  476. # [19:20] <rniwa> We should figure out how to resolve this.
  477. # [19:21] <rune> I've tried to get attention on www-style before.
  478. # [19:21] <dglazkov> topic for TPAC, continue discussion on www-style
  479. # [19:21] <rniwa> Perhaps we need a joint discussion between CSS WG and WebApps WG.
  480. # [19:21] <fantasai> fantasai: Need to explain clearly the situation, so that people who don't know shadow DOM can contribute
  481. # [19:22] <fantasai> rune: I'm not so familiar with the slot syntax yet
  482. # [19:22] <fantasai> rniwa: I think we should move on from this topic
  483. # [19:22] <fantasai> esprehn: Next thing is inheritance
  484. # [19:23] <fantasai> arronei: Travis and I had a quesiton on inheritance
  485. # [19:23] <fantasai> arronei: Some discussion that helps the story here...
  486. # [19:23] <fantasai> arronei: If we can pound through this really quick, that'd be great
  487. # [19:23] * fantasai needs someone to explain what the issue is
  488. # [19:23] <fantasai> dglazkov: I tried early on turning inheritance off by default
  489. # [19:23] <fantasai> dglazkov: For very simple widgets, you end up writing a ton of stuff
  490. # [19:24] <fantasai> dglazkov: It's certainly a good feature of shadow dom to turn it off
  491. # [19:24] <fantasai> dglazkov: We removed this attribute because CSS has 'all: initial' which does this
  492. # [19:24] <hober> in browsers today, <b><button>hello</button></b> hello is not bold
  493. # [19:24] <fantasai> dglazkov: For closed trees, seems very unlikely you'd want to inherit styles
  494. # [19:24] <fantasai> arronei: Travis and I would prefer to make closed completely closed, you don't get inheritance
  495. # [19:25] <fantasai> hober: I think this is a case where the default shouldn't differ between open and closed
  496. # [19:25] <fantasai> esprehn: That doesn't match the platform
  497. # [19:25] <fantasai> esprehn: font styles inherit into inputs
  498. # [19:25] <fantasai> hober: But text doesn't become bold
  499. # [19:25] <fantasai> fantasai: You can do both, depending on your widget
  500. # [19:25] <fantasai> fantasai: you can say 'all: initial'
  501. # [19:25] <fantasai> fantasai: that blocks everything
  502. # [19:25] <fantasai> fantasai: but you can also selectively say
  503. # [19:26] <fantasai> 'all: initial; font-family: inherit'
  504. # [19:26] <fantasai> esprehn: button example is really good
  505. # [19:26] <fantasai> esprehn: if you put a <b> around it, it does turn bold, but if you make the text red, it inherits red
  506. # [19:26] <fantasai> esprehn: It's selectively chosen what to inherit
  507. # [19:26] <fantasai> hober: You can argue for either default depending on platform behavior
  508. # [19:26] <fantasai> hober: MS perfers closed to not inherit
  509. # [19:27] <fantasai> hober: I prefer to not differ between open and closed
  510. # [19:27] <fantasai> hober: so sounds like we should have non-inherited by default
  511. # [19:27] <fantasai> rniwa: 'all:initial' would erase the UA stylesheet
  512. # [19:27] <fantasai> rniwa: Could maybe add a new value to all, but ...
  513. # [19:27] * fantasai missed the last part
  514. # [19:28] <fantasai> hober: I think it's a good idea to add a new value to all
  515. # [19:28] <rniwa> not inheriting by default would work because you can explicitly set "all: inherit"
  516. # [19:28] <fantasai> fantasai: We have a revert value.
  517. # [19:28] * rniwa doesn't know what "revert" does...
  518. # [19:28] * wilsonpage-away is now known as wilsonpage
  519. # [19:28] <fantasai> fantasai: Are you asking for a revert value that also blocks inheritance?
  520. # [19:29] * rniwa LOL.
  521. # [19:29] <esprehn> http://plexode.com/eval3/#s=aekVQXANJVQMbAx14Hw9CAVwBiBsBU0ZFAV4dEJY9T6gdQ1ZVVVBPAXcePQNCtR8pRk1NUAE4UFNNRaWsrrAfqKpysrS2uKgBAautr0+5u72/wcPF1ciqEHLJTwNeAA==
  522. # [19:29] * rniwa that's some crazy feature
  523. # [19:29] <esprehn> I'm wrong <button> seems to not inherit ever, you have to style it explicitly
  524. # [19:29] <fantasai> fantasai explains revert
  525. # [19:29] <fantasai> http://www.w3.org/TR/css-cascade-4/#default
  526. # [19:29] <fantasai> hober: Wrt attached shadow
  527. # [19:30] <rune> esprehn: regarding your example, yes blue.
  528. # [19:30] <fantasai> hober: I don't think it's necessary to have a special rule
  529. # [19:30] * Joins: real_wez (~realwez@public.cloak)
  530. # [19:30] * Quits: real_wez (~realwez@public.cloak) (Client closed connection)
  531. # [19:30] <rune> esprehn: yes, blue
  532. # [19:30] <fantasai> hober: SVG and MathML are kindof weird
  533. # [19:30] <fantasai> hober: If we wanted to say shadow trees only work on HTML elements, that'd be fine by me. I don't care
  534. # [19:30] <fantasai> hober: replaced elements have interesting inrinsic size behavior
  535. # [19:30] <fantasai> hober: Maybe we have an API for interacting with that intrinsic size
  536. # [19:30] <fantasai> hober: But even without it, I don't see any reason not to allow shadow roots on them
  537. # [19:31] <fantasai> hober: Does anyone object to disallowing shadow rootson non-HTML elements?
  538. # [19:31] <fantasai> dglazkov: I don't think it's a bad idea. But need to ask SVGWG
  539. # [19:31] <fantasai> esprehn: It's used in an explanation for what the SVG <use> element does
  540. # [19:31] <fantasai> esprehn: But in terms of what we expose, I think it's fine to not allow it for now
  541. # [19:31] <fantasai> esprehn: Originally there was some disagreement whether you could call attachShadow on an input element
  542. # [19:32] <fantasai> esprehn: Is that okay now?
  543. # [19:32] <fantasai> dglazkov: no, there's a blacklist
  544. # [19:32] * rniwa thanks everyone!
  545. # [19:32] <fantasai> dglazkov: Okay, let's continue discussion on www-style
  546. # [19:32] <esprehn> awesome, thanks for all the feedback!
  547. # [19:32] <fantasai> dglazkov: Concrete actions are
  548. # [19:32] <fantasai> dglazkov: ::slotted in the scoping spec
  549. # [19:33] <fantasai> dglazkov: And generally align with v1 Shadow DOM
  550. # [19:33] <fantasai> dglazkov: I'll help you and Tab
  551. # [19:33] <fantasai> dglazkov: and bring you up to speed on the new spec
  552. # [19:33] <fantasai> dglazkov: that's about it
  553. # [19:33] <fantasai> fantasai: And we need to discuss cascading order
  554. # [19:34] <fantasai> dglazkov: I'm more concerned .. this is something we can tweak once we have running code
  555. # [19:34] <fantasai> dglazkov: First part is blocking
  556. # [19:34] * Quits: rniwa (~textual@public.cloak) ("My Mac has gone to sleep. ZZZzzz…")
  557. # [19:35] * Quits: thorton (~thorton@public.cloak) ("Page closed")
  558. # [19:37] * Quits: arronei (~arronei@public.cloak) (Ping timeout: 180 seconds)
  559. # [19:38] * Quits: kochi_home (~kochi_home@public.cloak) ("Page closed")
  560. # [19:43] <fantasai> RRSAgent: Make Minutes
  561. # [19:43] <RRSAgent> I have made the request to generate http://www.w3.org/2015/09/18-webapps-minutes.html fantasai
  562. # [19:43] <fantasai> RRSAgent: Make logs public
  563. # [19:43] <RRSAgent> I have made the request, fantasai
  564. # [19:43] <fantasai> RRSAgent: Make minutes
  565. # [19:43] <RRSAgent> I have made the request to generate http://www.w3.org/2015/09/18-webapps-minutes.html fantasai
  566. # [19:44] <fantasai> s/We have A/fantasai: We have A/
  567. # [19:45] <fantasai> s/A < C/fantasai: A < C/
  568. # [19:45] <fantasai> s/but A!/fantasai: but A!/
  569. # [19:45] <fantasai> s/We have A/fantasai: We have A/
  570. # [19:45] <fantasai> s/slot B into/fantasai: slot B into/
  571. # [19:45] <fantasai> s/yes, but can you/fantasai: yes, but can you/
  572. # [19:46] <fantasai> RRSAgent: make minutes
  573. # [19:46] <RRSAgent> I have made the request to generate http://www.w3.org/2015/09/18-webapps-minutes.html fantasai
  574. # [19:46] <fantasai> s/We have fantasai:/We have/
  575. # [19:47] <fantasai> s/A < C for sure/fantasai: A < C for sure/
  576. # [19:47] <fantasai> RRSAgent: make minutes
  577. # [19:47] <RRSAgent> I have made the request to generate http://www.w3.org/2015/09/18-webapps-minutes.html fantasai
  578. # [19:47] <fantasai> dglazkov: ^
  579. # [19:48] <fantasai> dglazkov: If you want them formatted like the CSSWG minutes, you can ask Tab if he'll pay Dael to do it
  580. # [19:49] * fantasai doesn't have time atm
  581. # [19:53] * Quits: wilsonpage (~wilsonpage@public.cloak) ("My Mac has gone to sleep. ZZZzzz…")
  582. # [19:59] * Quits: sicking (~sicking@public.cloak) (sicking)
  583. # [19:59] * Joins: sicking (~sicking@public.cloak)
  584. # [20:06] * Quits: sicking (~sicking@public.cloak) (sicking)
  585. # [20:10] * Joins: rniwa (~textual@public.cloak)
  586. # [20:22] * Joins: dgrogan (~dgrogan@public.cloak)
  587. # [20:31] * Quits: marcosc (~marcosc@public.cloak) (Client closed connection)
  588. # [20:35] * Joins: marcosc (~marcosc@public.cloak)
  589. # [20:58] * Joins: sicking (~sicking@public.cloak)
  590. # [21:06] * terri_offline is now known as terri
  591. # [21:08] * Quits: sicking (~sicking@public.cloak) (sicking)
  592. # [21:15] * Joins: sicking (~sicking@public.cloak)
  593. # [21:17] * Quits: jyasskin (~textual@public.cloak) ("My computer has gone to sleep. ZZZzzz…")
  594. # [21:19] * Parts: rune (~rune@public.cloak)
  595. # [21:30] * Quits: sicking (~sicking@public.cloak) (sicking)
  596. # [21:53] * Quits: rniwa (~textual@public.cloak) ("Textual IRC Client: www.textualapp.com")
  597. # [22:05] * Joins: sicking (~sicking@public.cloak)
  598. # [22:47] * Parts: gavin_ (~gavin@public.cloak)
  599. # [23:01] * Joins: estellevw (~estellevw@public.cloak)
  600. # [23:14] * Joins: Florian (~Florian@public.cloak)
  601. # [23:21] * Quits: Florian (~Florian@public.cloak) (Ping timeout: 180 seconds)
  602. # [23:25] * Quits: ArtB (~ArtB@public.cloak) ("Leaving.")
  603. # [23:56] * Quits: dgrogan (~dgrogan@public.cloak) ("Leaving")
  604. # Session Close: Sat Sep 19 00:00:00 2015

Previous day, Next day

Think these logs are useful? Then please donate to show your gratitude (and keep them up, of course). Thanks! — Krijn