v0.11.0
·
215 commits
to master
since this release
Cirth v0.11.0
Cirth v0.11.0 removes the CSS-only tooltip, takes the last JavaScript
dependencies out of the modal, and starts versioning the documentation so
that a release like this one can be read from either side of it.
Three things stop working the way they used to. All three are removals of
CSS that could not do its job, replaced by platform features that can, so
in each case there is less to write rather than more — but each needs a
look before you upgrade.
Before you upgrade
[data-tooltip]renders nothing. The attribute is gone. Markup that
uses it keeps working as ordinary content, but the tooltip text — which
lived inside the attribute — is not displayed at all. It could never be
accessible: the message was drawn withcontent: attr()on a
pseudo-element, invisible to assistive technology, unreachable by
aria-describedby, absent entirely on replaced elements like<input>.
Popover replaces
it with a real element that a trigger can point at.- The modal's classes are gone:
.modal-is-open,.modal-is-opening,
.modal-is-closingand--cirth-scrollbar-width. A script that still
toggles them keeps working — they do nothing now — so nothing breaks on
upgrade, but that code can be deleted. The page stops scrolling on its
own and the dialog animates itself in. - A
:rootoverride of a color token now applies. This one breaks by
starting to work: overriding a color from:rootused to lose to the
scheme roots whatever the loading order, so an override written, found
ineffective and left in the codebase takes effect now. Worth grepping
your stylesheets for--cirth-first. A bare:rootoverride applies to
both schemes. - The browser floor moved to Chrome 123, Firefox 130, Safari 18.2 —
about 78% of global usage. If you need Safari 17.x, stay on0.10.0,
which remains installable and whose documentation stays published.
Upgrading has the migration
in full, with before/after for each change.
Added
- A popover surface (gh#51):
popoveris an attribute, not an element,
so what is styled is the sheet it creates in the top layer and nothing
about the content — the same surface serves a hint, a menu, a filter
panel, or a disclosure that has to escape an ancestor'soverflow. It
fails closed, leavespopover="manual"and<dialog popover>alone, and
fades in with@starting-stylerather than with classes a script has to
toggle. - A JavaScript-free modal (gh#64):
html:has(dialog[open])stops the
page scrolling andscrollbar-gutter: stablekeeps the layout from
shifting when it does, replacing a class and a scrollbar measurement the
component used to ask a script for. The docs now lead with
command="show-modal", flagged as an enhancement since invoker commands
are newer than the browser floor. <meter>is styled (gh#59) as progress's matched pair, painting its
value green, amber or red according to which regionlow/high/
optimumput it in, with the hue backed by weight so the signal survives
a reader who cannot separate the colors.- A print pass (gh#32) and
prefers-contrast: moresupport
(gh#34), both new in this line. - Versioned documentation. The site is archived at breaking changes
rather than at releases, so the switcher in the header reads
up to v0.10.0/from v0.11.0. The 0.10 line is frozen and still
published;developis now previewed at/next/.
Fixed
- A
:rootoverride now actually changes a color token (gh#92): the
scheme roots outweighed a plain:rootat (0,2,0) against (0,1,0), so
the documented customization path lost on specificity while
--cirth-spacingand--cirth-border-radiusworked — which is what made
the gap so easy to miss. The parts of those selectors that only choose
a scheme now sit inside:where(). :has()is guaranteed, so three shipped caveats about Firefox are
gone along with the rules' apologies for themselves.
See the Changelog
for the complete, itemized list.
Full Changelog: v0.10.0...v0.11.0