← Back to release summary

CSS update: decoupling of Width and Style properties

Category
CSS
Type
New or changed feature
Status
Proposed (Chrome Proposed)
Intent stage
None

Summary

Chrome 147 aligns with updated [CSS specifications](https://www.w3.org/TR/css-2025/) regarding the behavior of `border-width`, `outline-width`, and `column-rule-width` properties. Previously, if the corresponding `border-style`, `outline-style`, or `column-rule-style` was set to `none` or `hidden`, the computed width of these properties would be forced to `0px`, regardless of the specified value. With this change, the computed values of `border-width`, `outline-width`, and `column-rule-width` will always reflect the author-specified values, independent of the `*-style` property. Additionally, the resolved values (as returned by `getComputedStyle()`) for `outline-width` and `column-rule-width` will also reflect the specified values. The change aligns Chrome with Firefox and WebKit, which have already implemented this behavior.

Motivation

Today, CSS special-cases ‘border-*-width’, ‘outline-width’, and ‘column-rule-width’ so that their computed value becomes ‘0px’ when the corresponding ‘*-style’ is ‘none’ or ‘hidden’, even if the author specified a nonzero width. With Gap Decorations extending ‘column-rule-*’ properties to support lists/repeaters, applying that special-case becomes ambiguous and difficult to define consistently. Having ‘*-width’ values independent of ‘*-style’, provides an intuitive model for these properties and better reflects the author-specified value.

Standards & signals

View on chromestatus.com