The colour of an icon, and a dozen ways the web fills in a blank
A browser spends a surprising amount of its time filling in things the page left blank on purpose. An icon that says 'paint me the current text colour'. A custom property that has an initial value ready for when nobody sets it. A submit button with no words on it, waiting for the browser to supply the word 'Submit'. This release is mostly about getting those defaults right, and the most visible one is a colour. The news site's masthead is the word NEWS drawn as a vector shape that asks to be filled with 'the current colour' -> the standard way an icon inherits a brand colour from the element around it, and how most icon sets on the web are built. We were filling it with black instead of reading that colour, so the red logo came out black, and every other current-colour icon with it. It now reads the real colour, through the cascade, so an icon set that puts one colour on a wrapper and lets each glyph inherit it paints correctly. The companion to that is the other common way a monochrome icon is drawn -> a solid colour clipped to a shape by a mask -> which we only recognised in one of its two spellings, so any icon written with the shorthand painted as a solid coloured box. Both are fixed. Two modern CSS features that were simply missing now work. A registered custom property, the way a design system declares a variable with a type and a default, now falls back to its default when nothing sets it rather than to nothing at all. And a custom counter style -> the feature that lets a list number itself with anything from circled digits to your own alphabet -> now renders all of its counting systems, falling back to plain numbers only where the standard says to. Finding the second one turned up a quiet parser bug worth its own line: the scan that found these at-rules was also matching their names when they appeared inside a comment, which let a comment steal the next real rule. On the JavaScript side, the same theme: an object put where the page expects a string -> a label, a message, a URL -> now runs the object's own conversion to text instead of writing the useless '[object Object]'. That was true in six different places text reaches the page, including through the kind of reactive wrapper every modern framework builds. Forms filled in their blanks too: a submit or reset button with no label shows the default word on a real button face rather than an empty white field, and a dialog got the panel border and padding the browser is supposed to give it. And the one piece of a code-hosting site's navigation that the last release named and left -> a menu button squeezed narrower than its own contents -> is now finished: a row of items no longer shrinks below the width its own text needs. All of it is checked the same way, one pair of pictures at a time against the reference browser, with five new record cases in the engine's own suite and its full gate holding at 6375 of 6375.