That should be corrected if anyone invents a time machine. :P
white-space: nowrap
should be white-space: no-wrap
white-space
animation-iteration-count
should just have been animation-count
(like column-count
!)vertical-align
should not apply to table cells. Instead the CSS3 alignment properties should exist in Level 1.vertical-align: middle
should be text-middle
or x-middle
because it's not really in the middle, and such a name would better describes what it does.fill-available
rather than being undefined in auto situations.border-box
by default.background-size
with one value should duplicate its value, not default the second one to auto
. Ditto translate()
.background-position
and border-spacing
(all 2-axis properties) should take *vertical* first, to match with the 4-direction properties like margin
.margin
should go counter-clockwise (so that the inline-start value is before the block-end and inline-end values instead of after them).z-index
should be called z-order
or depth
and should Just Work on all elements (like it does on flex items).word-wrap
/overflow-wrap
should not exist. Instead, overflow-wrap
should be a keyword on 'white-space', like nowrap
(no-wrap
).currentColor
keyword should have retained the dash, current-color
, as originally specified. Likewise all other color multi-word keyword names.border-radius
should have been corner-radius
.hyphens
property should be called hyphenate
. (It's called hyphens
because the XSL:FO people objected to hyphenate
.)rgba()
and hsla()
should not exist, rgb()
and hsl()
should have gotten an optional fourth parameter instead (and the alpha value should have used the same format as R, G, and B or S and L).»
and indirect sibling combinator should have been ++
, so there's some logical relationships among the selectors' ascii art*-blend-mode
properties should've just been *-blend
u0001-u00c8
.font-family
should have required the font name to be quoted (like all other values that come from “outside” CSS). The rules for handling unquoted font names make parsing font
stupid, as it requires a font-size
value for disambiguation.flex-basis
vs width
/height
. Perhaps: if width
/height
is auto
, use flex-basis
; otherwise, stick with width
/height
as an inflexible size. (This also makes min/max width/height behavior fall out of the generic definition.):empty
should have been :void
, and :empty
should select items that contain only white spacetable-layout: fixed; width: auto
should result in a fill-available table with fixed-layout columns.text-orientation
should have had upright
as the initial value (given the latest changes to 'writing-mode').@import
rule is required to (a) always hit the network unless you specify cache headers, and (b) construct fresh CSSStyleSheet objects for every import, even if they're identical. It should have had more aggressive URL-based deduping and allowed sharing of stylesheet objects.:link
should have had the :any-link
semantics all along.flex
shorthand (and flex-shrink
and flex-grow
longhands) should accept fr
units instead of bare numbers to represent flex fractions.display
property should be called display-type
.list-style
properties should be called marker-style
, and list-item
renamed to marked-block
or something.text-overflow
property should always apply, not be dependent on overflow
line-height: <percentage>
should compute to the equivalent line-height: <number>
, so that it effectively inherits as a percentage not a length::placeholder
should be ::placeholder-text
and :placeholder-shown
should be :placeholder
overflow: scroll
should introduce a stacking contextsize
should have been a shorthand for width
and height
instead of an @page
property with a different definitionspan
) with idents in the grid properties, possibly by using functional notation (like span(2)
).align-inline-*
and align-block-*
.shape-outside
should have had wrap-
in the name somehow, as people assume the shape should also clip the content as in clip-path
.!important
— that reads to engineers as “not important”. We should have picked another way to write this.