- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Wed, 29 Aug 2012 16:44:22 -0700
- To: "www-style@w3.org" <www-style@w3.org>
CSS Variables aka Cascading Variables ------------------------------------- - RESOLVED: Syntax of variables settled on var-foo and var(foo) - ACTION: TabAtkins, fantasai, and glazou to write blog post explaining why not using $ - RESOLVED: Include fallback in Level 1 - RESOLVED: Defer parent-var to Level 2 - RESOLVED: Accept Variables L2 with parent-var() as work item - RESOLVED: Publish WD of CSS Variables providing sentence jdaggett objects to is removed. Tab Atkins: http://www.xanthir.com/blog/b4KT0 Daniel Glazman: http://www.glazman.org/weblog/dotclear/index.php?post/2012/08/17/CSS-Variables%2C-why-we-drop-the-%24foo-notation ====== Full minutes below ====== Discussion of what to discuss Tab: I can do variables in half hour! Tab spends half an hour erasing the board. (j/k) CSS Variables ------------- Scribe: fantasai jdaggett: We would like to not ship this prefixed. Tab: Neither do we jdaggett: So we should keep this to the absolute minimal spec, because whatever's there, we won't have a chance to fix anything Tab: Question is what features to preserve in the draft and how to call them Tab: Right now variables are created with a property Tab: Few different ways to handle this Tab: Right now they're declared as property declarations. Tab: property name options var-foo $foo my-foo user-foo Tab: 3 ways to use a variable prop: $foo prop: var(foo [, fallback]) Tab: use var function with optional fallback Tab: Option to do something when var isn't defined or is invalid, very useful functionality Tab: other function is parent-var() Tab: which does the same thing, but checks the variable value on your parent Tab: Less than 1 week ago would suggest moving to $foo Tab: Now I don't, because I think there's some interesting solutions Tab: partially due to dbaron's selector idea and some conversations with fantasai Tab: So think we should not go with $foo syntax Tab: I want to do something like SASS's extend, or what dbaron proposed, which needs a very compact thing Tab: This why I don't want to use that syntax right now Tab: I want to leave us with these two functions var() and parent-var(), as written Tab: and keep what's there for var declarations Tab: maybe one of the other options suggestion Florian: I'm happy with this proposal * fantasai too jdaggett: When you're using the variable, what's the syntax Florian: That was the way initially proposed to the group Rossen: it's good fantasai: I think it's good that the basic use is consistent with the more complex uses jdaggett: I don't like the syntax, but $foo keeps the stylesheet a lot more tight Molly: People are already familiar with $foo jdaggett: It also causes confusion because it's a shell variable jdaggett: But having compact notation is important Tab: I think that's a decent argument against it Tab: Because in preprocessors, it behaves very differently Tab: In SASS etc. they are pretty much macros Tab: They're global variables, can do replacement anywhere for anything Tab: I think we want something similar to what SASS etc. do, but this isn't that Florian: Our variables are different, so we shouldn't match their syntax Tantek: Heard request from jdaggett for fully-written-out examples Tab: in the spec glazou: Last time we mentioned $foo, someone mentioned ppl behind the processors were willing to change their own $foo if we were ready to accept it for CSS Tab: That's still the case glazou: So why don't we use $foo Tab: First of all, they can't match us entirely. Tab: They can only do so in restricted cases, would be very confusing Tab: You can't do it without severe hacking Florian: They can change their syntax to match or not match ours. They can't change their behavior to match ours. fantasai: Because we use the cascade and inheritance, and they do simple string substitution plinss: That only saves us collision with SASS. Doesn't save us the confusion in minds of authors. Florian: None of the existing languages that use $foo for denote variables [behave this way] glazou: We still need a way to express parent-var, and with $ you can't Tab: I want to reserve our use of $ for something similar Tab: Where you can do variables for Selectors, and there a very short glyph-based thing like $foo is necessary, whereas less necessary in CSS value Florian: I think we're going to take some flames for it, but we should go this way Tantek: I'm going to go with your recommendation, and publish with that, and if it really is that objectionable to the authoring community we will hear about it very loudly from them. Tantek: I'd rather have that debate there than here. Tantek: Let's go with your judgement, and if authoring community has unified force against that, they we can reconsider. szilles: Besides, you can always use SASS to replace the $foos. fantasai: I agree with Molly that we need a very clear blog post explaining why we are deciding this way * fantasai volunteers to help write that jdaggett: I think it is important to talk about the inheritance model jdaggett: It needs to be in the forefront that this is not a macro replacement mechanism. Tab: Cool Tab: In the FPWD, all we had was var-foo and var(foo) Tab: We couldn't specify fallback, and didn't have parent-var() Tab: Are these acceptable in Level 1 Tab: They could be deferred, but are sufficiently simple and useful that could be part of Level 1 jdaggett: I really think for this level, since we aren't going to be behind a prefix for X months, we should keep this to a minimum. jdaggett: In particular I don't like parent-var(), because it feels like an experiment jdaggett: The things it's useful for, might be better ways to do it. jdaggett: I think there's going to be little pockets of places where it will be difficult to get interop jdaggett: I'm not saying I oppose the feature, but for Level 1, get the simplest functionality out there Tab: I'm ok with deferring parent-var(), but really want to keep fallback glazou: How about add a note explaining parent-var(), as "in the future we may consider this" dbaron: So, I sortof have mixed feelings about dropping parent-var dbaron: on onehand, I'm not crazy about the name parent-var() dbaron: On the other hand, it seems trivial to implement once you have all the rest dbaron: Although maybe I'm missing something glazou: I think you're right it is very simple glazou: I think web authors using variables will need more, parent-var() is only the first step Tab: On one hand I have several use cases really awesome for parent-var in the spec jdaggett: There may be many examples, but maybe that's not the right set jdaggett: If we stake a claim on parent-var, everything else has to fit in glazou: If it's simple to implement, can do Level 2 in a snap Tab: ... grab property value from the parent and use the value in your stuff dbaron: that's a can of worms Tantek: I hear what you're saying, John, but rather than entertain that as a hypothetical possibility, invert that into a challenge Tantek: Provide the use cases for other possibilities Tantek: I think we should include it based on commentary that has been made jdaggett: Keep in mind this is not prefixed tantek: 2nd, we have a notion of variables in one place, which is the font-size tantek: You can refer to font-size of yourself or parent in a few places tantek: Nobody's come and said "I want font size of grandparent" dbaron: we have rem now Tantek: but probably safe to go with just parent-var Florian: I say we go with L1 without parent Florian: Then make a L2 quickly that just has parent Florian: have the discussion about parent-var there tantek: ... jdaggett: This is going to spread like wildfire once it's implemented Tab: I'm fine with this. Fine with doing small drafts that advance quickly. glazou: Tantek, I would agree with you if it was going to take awhile, but this is small and fast RESOLVED: Syntax of variables settled on var-foo and var(foo) ACTION: TabAtkins, fantasai, and glazou to write blog post explaining why not using $ RESOLVED: Include fallback in Level 1 RESOLVED: Defer parent-var to Level 2 RESOLVED: Accept Variables L2 with parent-var() as work item fantasai: I don't think we should go to LC yet; want to get a few weeks of feedback in response to this WD. jdaggett: Also, I want that sentence changed. He knows which sentence. RESOLVED: Publish WD of CSS Variables providing sentence jdaggett objects to is removed. plinss: Who is building a test suite for Variables? jdaggett: dbaron has already started Tab: I'm going to expand that more, because I need to write test suites for 3 different specs I'm in charge of Day 2 closed.
Received on Wednesday, 29 August 2012 23:44:50 UTC