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

Re: CSS Regions considered harmful (was: [css-regions] issue 16858 redux)

From: L. David Baron <dbaron@dbaron.org>
Date: Wed, 22 Jan 2014 22:34:45 -0800
To: H??kon Wium Lie <howcome@opera.com>
Cc: Alan Stearns <stearns@adobe.com>, www-style@w3.org
Message-ID: <20140123063445.GB15082@crum.dbaron.org>
On Wednesday 2014-01-22 18:28 +0100, HΓ₯kon Wium Lie wrote:
> Further, I believe that CSS Regions leads to unresponsive designs, a
> confusing text flow, verbose CSS code, and style sheets that cannot be
> reused. I've expanded on these views here:
>   http://alistapart.com/blog/post/css-regions-considered-harmful

I'd also like to add another concern, which I mentioned briefly in
http://lists.w3.org/Archives/Public/www-style/2013Oct/0689.html .

There's been a movement lately (associated with the Extensible Web
Platform movement [1], which I have both positive and negative
feelings about), to make CSS Regions the primitive on top of which
we explain how other CSS features work.

I think CSS regions make a very poor primitive because they have
very poor performance in interesting cases.  Rather than always
having a simple and fast behavior, they have behavior that requires
multiple-pass layout in some cases (especially when combined with
other features like CSS Exclusions).  While things with
unpredictable performance characteristics might make sense as a
high-level features, I think it's very bad for something we want to
make a primitive.  We should be designing primitives that have
behaviors that we know how to make fast, so that people who want to
build on top of them can have confidence in their performance
characteristics and confidence that what they're building will
perform acceptably.

Treating performance as a secondary concern, one that can always be
sacrificed for correct behavior, is not acceptable.  Designing
features that can be fast, and predictably fast, should be an
explicit goal of the working group's design process, and we should
sometimes sacrifice other goals to achieve it.

I think this is even more important for primitives; primitives
should be things with easily understandable performance
characteristics so that we can understand the performance
characteristics of the things we build on top of them.  Saying that
the performance issues can go away "as an optimization" in most of
the important cases is not good enough.


[1] http://extensiblewebmanifesto.org/

π„ž   L. David Baron                         http://dbaron.org/   𝄂
𝄒   Mozilla                          https://www.mozilla.org/   𝄂
             Before I built a wall I'd ask to know
             What I was walling in or walling out,
             And to whom I was like to give offense.
               - Robert Frost, Mending Wall (1914)

Received on Thursday, 23 January 2014 06:35:35 UTC

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:38 UTC