[css-display] Not all "full display" values are valid (original) (raw)

CSS Display has a summary of display values:

The following informative table summarizes the values of display

However, not all the values in the table conform to the syntax of the property:

[ <display-outside> || <display-inside> ] |
<display-listitem> | <display-internal> | <display-box> | <display-legacy>

<display-outside>  = block | inline | run-in ;
<display-inside>   = flow | flow-root | table | flex | grid | ruby ;
<display-listitem> = list-item && <display-outside>? && [ flow | flow-root ]?
<display-internal> = table-row-group | table-header-group |
                    table-footer-group | table-row | table-cell |
                    table-column-group | table-column | table-caption |
                    ruby-base | ruby-text | ruby-base-container |
                    ruby-text-container ;
<display-box>      = contents | none ;
<display-legacy>   = inline-block | inline-list-item |
                    inline-table | inline-flex | inline-grid ;

Specifically, table-cell flow-root, table-caption flow-root, ruby-base flow and ruby-text flow are wrong because they mix a <display-internal> and a <display-inside>, but the syntax does not allow this.

This seems a reminiscence of the 2014 WD, which had a more permissive syntax.