W3C home > Mailing lists > Public > www-style@w3.org > May 2014

[css-values] Summary of calc() options regarding whitespace

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Wed, 14 May 2014 09:24:43 +0200
Message-ID: <CAAWBYDB16jDzOEz8XvEK3ywYs-2HJeYUwFURzjuig=9=CE=yeg@mail.gmail.com>
To: www-style list <www-style@w3.org>
[Sorry for not sending this earlier. It had slipped my mind until
Daniel poked me about it.]

At last week's conf call, I wanted to summarize the options for
amending calc()'s handling of whitespace around the + and - operators
before we made a decision.  I think we can realistically go with the
following options:

1. Leave the spec as it is.  You have to remember that +- require
spaces when used as calc operators, but it avoids all the other
problems (as intended).

2. Make whitespace optional around +-, just like it is around */.
Additionally, change Syntax so that the unit part of a dimension token
is more restrictive than an ident, and disallows a dash followed by a
digit.  Then, define calc()'s token handling carefully to make things
like "calc(1+2)" (which parses as NUMBER(1) NUMBER(+2)) and
"calc(1em-1px)" (which will parse as DIMENSION(1, em-) DIMENSION(1,
px) after our Syntax changes).  I already have experience doing this
for An+B, so I don't expect problems. This will still require authors
to remember to put spaces around the - sign when using a function on
the rhs (like "calc(1-attr(foo))", which is an invalid -attr()
function) or an ident on either side, but this may be easier to
intuitively understand.

I believe those were the only two seriously discussed options on the
last call.  I'd like to decide on one of them at this next call if
possible.

~TJ
Received on Wednesday, 14 May 2014 07:25:37 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:51:27 UTC