We're getting all these new properties and behaviors. They're great, but just adding new stuff is not sustainable. Who's looking out for the big picture?

What we need for CSS is lower level access to page layout that we can then compose to create higher level properties. This in contrast to adding higher level, easy to use properties, that will then be cast in concrete for all eternity.

Let's make the language simpler and abstractions easier to create.

Notes

  • Preprocessed languages like SASS and LESS are a great help, but in the other direction. With them it's easy to create abstractions, but hard to get granular.

  • The only way to make totally new kinds of layouts is using javascript. You could argue that you shouldn't make CSS too programmable. It's declarative nature is definitely a strength in ease of use. Maybe Javascript is the way to go and there's no need for a kind of low level CSS?

  • The folks doing Grid Style Sheets are making awesome stuff. What I want is a way to define low level rules so my higher level rules could look like GSS, or anything I want.

  • Old features are sometimes removed from browsers, although the web has always had incredible backwards compatibility as a medium. What happens when old sites begin to rot? I mean CSS level 1 is probably possibble to support indefinitely, but some day these newfangled features may be superceded by something and support dropped. So the sites we make today, might not work in ten, twenty years.

Examples

Here are some ideas off the top of my head.

  • Replace flex-direction: row-reverse; with something like a universal flow: from right bottom; that applies to all box model layout.
  • box-shadow is a generated box with a blur filter.
  • border is a stroke based on the shape of the element.
  • Both box-shadow and border should just be applied effects based on the shape of the element. This is a great place to combine shapes and effects into something coherent.
  • border-radius should to be a property of a corner in a shape, not a box. So any CSS shape could have any of its corners rounded, even if it's a triangle or a star.
  • Make a boxes only shapes that happen to be rectangular, instead of shapes being a special case.

Big picture

CSS is such a mashup of many people and needs that it's amazing that it's as good as it is. If there were a dictator defining CSS it would probably be great for some but bad for many. Now it seems to be something for everyone. What it needs to be is raw materials for some, so those some can make tools for the rest.