- From: <scratch65535@att.net>
- Date: Tue, 08 Nov 2016 11:55:18 -0500
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: Alan Stearns <stearns@adobe.com>, "www-style@w3.org" <www-style@w3.org>
On Mon, 7 Nov 2016 11:42:27 -0800, you wrote: >I can tell you right now that "y'all should throw away the system >you've spent the last 20 years optimizing and having authors build a >trillion pages with, and replace it with this grossly-underspecified >handwavey idea I came up with!" is of absolutely zero value. If I were actually urging that the current software be "throw[n] away", or that my proposal were actually a "grossly-underspecified handwavey idea", you might have an argument. But neither is true. I'm urging that work on the current implementation be *stopped*. Not that it be thrown away, just that it continue to be used as-is. Surely it's usable as it is, if it's usable at all? And my proposal is not underspecified. I just didn't specify it in the impenetrable quasi-legalese used for the current specs. My proposal is actually quite simple: it's a proposal to REDUCE COMPLEXITY, not to increase it. Reducing the unnatural complexity caused by a reliance on invented theory rather than actual practice will make CSS *much* more usable for graphic designer-developers than it is today. Artists are intensely physical, practical people. They don't care about what theory dictates, they care about real-world utility as expressed in results. It's the individuals who have minds like economists who worry about whether something that works in practice will also work in theory :-) > > You're requesting browsers to take on an >*enormous* cost with zero proof that it will be worthwhile. No, I'm not. Does CSS work now? If it does, it'd work after the changes too. Just better and more reliably. If you don't think that's true, tell us all which of these changes would stop it being able to be used for page makeup: 1. No privileged syntax, and all styling evaluation is done at the point of use, not at the point of definition. Thus (if someone actually did this) <div style="color:black" class="foo" [where foo sets color to white] > would result in color:white because foo would be evaluated after style (it's to the right of style in a left-to-right language). 2. Everything flows along together unless the flow is explicitly disrupted. No special behaviors that are not obviously part of the element's essential nature are allowed. Thus, successive <div>s or <table>s would fill a line to the extent space permits. If that's not the behavior desired, then the designer would need to overtly break the flow. 3. Default behaviors/values are assigned to what I'm calling the "genetic ancestors" of the elements. (If there's some well-defined name that distinguishes "div" from "<div>", tell me what it is and I'll use it). Those default behaviors are *default* behaviors, not *privileged* behaviors. They can be overridden. 4. An element's behaviors/attribute-values are inherited from the element that encloses them UNLESS overridden within the element itself by setting/clearing the value. So if some element would normally inherit, e.g., a border, the designer can locally (a) change some or all of the values being inherited, or (b) set border:none; That's the basic deal. There's not a lot of work to be done there -- it's mostly *stopping* things that are being done now, things that, because they're being done to satisfy theory rather than practice, create the need for special cases. Where would "!important" be used? Nowhere. Evaluation at point of use takes care of that case. Where would "float" and "clear" be used? Nowhere. They don't appear anywhere except in the current CSS model. Everywhere else, designers lay down invisible fences to handle those cases. Now, there are a number of opportunities for increasing the value of the world-knowledge that designers bring with. I've already mentioned one: "center" instead of "margin:auto". Every designer knows what "center" means: horizontal centering. It never means vertical centering because 50% of the Y axis is too low, visually. It has to be raised to make it *look* centered, and every designer in the known universe will put the element a little above center by eye and then tweak it til it's where it "should" be: the optical center in Y. There's no numeric value that works in all cases. It's always an "eyeball job". Another opportunity to make things more rational for the person doing page makup is the position: attribute. That threw me for a loop when I first looked at it because the terms didn't map onto my world-knowledge At All. What position: is really talking about, from a graphic standpoint, is layers. Designers know about layers. Layers were in use 50 years ago, when it was still mat knives and rubber cement. Layers are in use in every page-makeup application today. And they're in use, sort of, in CSS too--just in a way that almost seems intentionally opaque and unapproachable. I won't spec it out here because there are details that want research, but it would involve explicitly using the word "layer". I'll stop here.
Received on Tuesday, 8 November 2016 16:55:56 UTC