Skip to content

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 22 Aug 16:26
· 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 with content: 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-closing and --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 :root override of a color token now applies. This one breaks by
    starting to work: overriding a color from :root used 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 :root override 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 on 0.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): popover is 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's overflow. It
    fails closed, leaves popover="manual" and <dialog popover> alone, and
    fades in with @starting-style rather than with classes a script has to
    toggle.
  • A JavaScript-free modal (gh#64): html:has(dialog[open]) stops the
    page scrolling and scrollbar-gutter: stable keeps 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 region low/high/
    optimum put 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: more support
    (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; develop is now previewed at /next/.

Fixed

  • A :root override now actually changes a color token (gh#92): the
    scheme roots outweighed a plain :root at (0,2,0) against (0,1,0), so
    the documented customization path lost on specificity while
    --cirth-spacing and --cirth-border-radius worked — 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