Skip to content

[css-shapes] Remove padding-box, content-box values from <shape-box>. #3872

@bfgeek

Description

@bfgeek

https://drafts.csswg.org/css-shapes-1/#shapes-from-box-values

padding-box, content-box aren't general enough to fix within the wider CSS box model. E.g. consider an element with scrollable overflow:
https://www.software.hixie.ch/utilities/js/live-dom-viewer/?saved=6857

In the above example the content-box of the element with shape-outside is technically larger than the element itself, but the specification doesn't (? i believe) mention how do deal with this.

Last year we also added use-counters within our codebase for how often these values were getting used:
padding-box:
https://www.chromestatus.com/metrics/feature/timeline/popularity/2426
(when making the value non-parsable, sites have minimal (<2px) behaviour change).

content-box:
https://www.chromestatus.com/metrics/feature/timeline/popularity/2425
The use-counter for above was over-reporting due to a bug in the code, this was now fixed, and most reports are for a buggy version where it considered images as using content-box.
I couldn't find any sites actually using this value, and relying on its behaviour.

border-box:
https://www.chromestatus.com/metrics/feature/timeline/popularity/2427
There are a couple of sites which would have a large behaviour change if we'd remove this. However they'd have the same behaviour as if they had shape-outside:margin-box.
Unlike the other values border-box does have a use-case for web developers.

Given the values don't generalize to the wider css box-model, the zero use-counts for this feature, I believe that we can simplify this feature, and remove these values.

I'm not proposing removing border-box, however this could be considered for simplicity. border-box does have a relatively strong use-case compared to the other values.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions