Cirth v0.15.0
Cirth 0.15.0 completes the native-baseline theme introduced through the beta
series: a warmer canvas, copper accent and graphite neutral, simpler native
controls, and a smaller vocabulary of semantic decisions for an application
to make. Existing pages repaint without markup changes. Themes that override
downstream accent tokens need the rename below.
Breaking changes
The primary, secondary and contrast token families now name the thing
they paint before the state they are in. Values and relationships are
unchanged, but downstream custom-property overrides must use the new names:
| Before | After |
|---|---|
--cirth-secondary, --cirth-contrast |
--cirth-secondary-text, --cirth-contrast-text |
*-background |
*-surface |
*-hover |
*-active |
*-hover-background |
*-surface-active |
*-hover-border |
*-border-active |
*-hover-underline |
*-underline-active |
*-inverse |
*-on-surface |
--cirth-primary itself, the .secondary and .contrast classes, package
entry points and markup are unchanged. A theme that only sets
--cirth-primary needs no migration. *-on-surface remains an explicit
light-or-dark ink: rename an existing override, but continue choosing its
value deliberately for the accent beneath it.
What looks different
- The default accent is copper, the neutral family is cool graphite, the
light canvas is warm mineral paper, and dark mode uses the same graphite
rather than near-black. - Buttons are flat; fields read as recessed and receive an immediate focus
ring; disclosures use a dividing rule instead of a card treatment; and
navigation stays neutral until active. <mark>derives from the accent instead of the warning family. Syntax
highlighting, captions and top-level section hierarchy were retuned for the
new palette.- Dialogs settle by half a rem instead of entering by their full height. The
dark range thumb is clearer against its track and sits on the shared 44px
target floor.
New and changed defaults
--cirth-inknames the document's text colour without being rebound by a
component.--cirth-colorcontinues to default to it.--cirth-container-gutterseparates fluid container gutters from global
spacing, and--cirth-modal-max-widthprovides one runtime modal cap.--cirth-primary-textis the derived text role for the primary family.--cirth-typography-spacing-verticalnow derives from--cirth-spacing, so
changing the root rhythm also changes prose rhythm unless the typography
token is overridden directly.- Reduced-motion mode neutralizes
--cirth-transition, reaching native range
pseudo-elements as well as authored transitions that use the token.
API
.danger is a destructive button modifier in class-enabled builds. It derives
from the error family, adds no custom property, and composes with .outline
and .ghost:
<button class="danger">Delete project</button>
<button class="danger outline">Delete project</button>Classless builds do not infer destructive intent from text or form position.
Fixed
- Ordered navigation lists now receive the same layout and breadcrumb
separators as unordered lists. - Summary markers centre at any type size; vertical navigation paints inside
its container; ordinary lists in an<aside>keep their markers; and the
VoiceOver list-semantics workaround stays out of every layout flow. .sr-only-focusablereveals without moving the document.- Description lists and table captions receive complete native defaults.
- Readonly number inputs no longer expose an unusable stepper. Editable number
inputs retain their native controls and keyboard behaviour.
Known issues
The project logo, README presentation and documentation homepage are still
being revised separately. That work does not change the CSS or public API
published in this release.
Tables continue to scroll horizontally rather than reflow on narrow screens.
What's Changed
- fix(deps): take fast-uri to 3.1.7, closing four host-confusion advisories by @ricpastori in #103
- Native baseline aesthetic rework, and the release process for 0.15.0-beta.1 by @ricpastori in #104
- chore(release): prepare v0.15.0-beta.1 by @ricpastori in #105
- fix(ci): fetch a browser before the release tooling checks by @ricpastori in #118
- ci: close the two gaps the release found, and three dev advisories by @ricpastori in #119
- feat: the copper identity and the native baseline by @ricpastori in #120
- chore(release): prepare v0.15.0-beta.2 by @ricpastori in #121
- fix: scope visual baselines and readonly number controls by @ricpastori in #122
- docs: adopt written specs with an evidence ledger by @ricpastori in #128
- feat(theme)!: name accent tokens by role by @ricpastori in #123
- chore(release): prepare v0.15.0 by @ricpastori in #129
New Contributors
- @ricpastori made their first contribution in #103
Full Changelog: v0.14.1...v0.15.0