Re: [css-syntax]The emperor isn't naked, but he's wearing his underpants on his head

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