Re: [css-houdini-drafts] [css-typed-om] Rename CSSTokenStream to something that doesn't talk about tokens

My issue with this is that it makes the whole API rather useless. If 
you receive unparsed strings back when you parse some values, then 
ultimately it means you will need to come up with your own parser to 
deal with those, like you have to do for every style today already. If
 I have to ship my own parser to handle certain values, this entire 
API is not really useful anymore: why not handle all values through my
 own parser in this case?

I really think we should do better. I would be okay with something 
intermediate that only supports the following things:

- values are at least broken apart by AST roots: ```5px url(...) 
center``` would become three values featuring their own cssText: 
```5px```, ```url(...)``` and ```center```. We can do this without 
loss of generality based on whitespace and block processing in 
css-syntax.
- values like numbers and numbers+units get parsed properly based on 
their unit if it is known, as {value:number,unit:string} if not, and 
we make the promise css will never overload this class of values, 
which I think makes sense going forward
- blocks and functions can be introspected (blocks as ```{ 
openingChar, content:CSSValue[], closingChar }``` and functions as 
```{ functionName, arguments:CSSValue[] }```), content is parsed the 
same way as described here

Everything else remains a dummy value that can only be analyzed 
through cssText. That would be sufficient to solve the efficiency 
problem when you need to update the numeric value of something and 
needs to resort to string manipulation to do so now. As far as I know 
is the aim of this api. 

Now, if things need to go further, because things have been broken 
apart, authors can decide to subparse the various cssText blocks based
 on additional knowledge, like "#f00" or "red" to colors by using 
CSSValue.parse("color",...) but they are not forced to if what they 
wanted to change was the background-position part of the background 
(which uses a variable).

-- 
GitHub Notification of comment by FremyCompany
Please view or discuss this issue at 
https://github.com/w3c/css-houdini-drafts/issues/193#issuecomment-221036514
 using your GitHub account

Received on Monday, 23 May 2016 17:20:31 UTC