Elementary Standards
HTMLCSSWeb StandardsSEOBlogStart reading
Home / Blog / Chrome 155: Corner Shorthand and symbols() Ship
News

Chrome 155: Corner Shorthand and symbols() Ship

Per-corner border-radius and corner-shape shorthands, an inline counter-style function, and whitespace-aware underlines land in stable Chrome.

5 min read·2026-10-07

Chrome 155 went to stable on October 6, 2026, and three of its changes are squarely about CSS ergonomics rather than new capability: a shorthand for per-corner radius and shape, a way to define a one-off counter style without a separate at-rule, and a property that keeps underlines off whitespace. None of it requires a framework or a build step — the kind of incremental platform polish that teams shipping production frontends pick up for free the moment the browser updates.

corner-top: 28px round;corner-bottom: 8px bevel;

What shipped in Chrome 155

Three CSS changes are the ones most developers will actually touch:

Corner shorthand: one declaration instead of four

Chrome shipped squircle-style corners via corner-shape and per-corner border-radius longhands earlier in 2026, but giving a single corner both a custom radius and a custom shape meant writing out the logical longhand pair for that corner by hand — easy to get right once, tedious to repeat across a design system's card, button, and modal components. The new shorthands collapse that into one line per corner (or one line per physical edge, when the top-left and top-right corners share a treatment). It's not a new visual capability; it's the same squircle and scalloped-corner rendering Chrome already had, written the way a shorthand-literate stylesheet author expects to write it.

symbols() removes the at-rule tax on throwaway counters

Before this release, even a single ordered list that needed, say, Roman numeral-style custom markers required declaring a named @counter-style block somewhere in the stylesheet and referencing it by name from list-style-type. That's reasonable overhead for a counter style you reuse across a site; it's needless ceremony for a counter style used exactly once. symbols() lets you write the symbol list directly where you use it — inline in list-style or inside counter()/counters() — with the same five counting-system keywords the at-rule form supports. The at-rule isn't going anywhere; it's still the right tool when a counter style is shared.

text-decoration-skip-spaces: a small default most readers will never notice

Underlines and strikethroughs have always run continuously through the whitespace between words by default in most browsers, which is rarely a problem until you're animating a decoration or drawing one under multi-word interactive text like a nav link with letter-spacing. text-decoration-skip-spaces gives authors explicit control over that behavior instead of relying on the browser's unwritten default, which matters most for typographic treatments where the gap between words is doing visible work.

What this means for developers

All three features are additive — pages that don't use the new properties render exactly as before. The corner shorthands are worth adopting immediately in any component library that already uses corner-shape, since they're a pure reduction in lines written for identical output. symbols() is worth reaching for the next time a one-off list needs custom markers, rather than reflexively reaching for @counter-style. None of these are urgent migrations — they're the kind of change you fold in the next time you're already touching the relevant component.

When does this ship elsewhere

Chrome 155 is stable as of October 6, 2026, on Android, ChromeOS, Linux, macOS, and Windows. As with any newly shipped CSS feature, check support status on Chrome Platform Status and the relevant spec before depending on any of these without a fallback — Firefox and Safari have not announced matching timelines for the corner shorthands or symbols() as of this writing, and a page that relies on them exclusively should keep its existing longhand or at-rule fallback in place until cross-browser support catches up.

Back to the blog
More notes

Keep reading