release: v0.14.0

Fourteen commits since v0.13.0. See CHANGELOG.md for the full list.

Two additions: `npm run doctor`, which runs the config doctor from a terminal — including inside the shipped image — and exits with the worst finding, so it can gate a deployment script; and a Playwright spec that loads all fourteen admin routes against a production build.

One change, invisible on screen: the admin panel got a form-field layer (#533).

Five fixes: grid.gap on both axes (#513), the dashboard status badge (#539), the journal editor's unsaved-changes guard (#538), essay paragraph markup (#537), and aria-pressed on the panel's switches and pickers.
This commit is contained in:
Ralksta
2026-08-30 15:11:25 +02:00
committed by GitHub
parent a813433891
commit e99d3f2f1b
59 changed files with 8652 additions and 6676 deletions

View File

@@ -72,11 +72,11 @@
/* Photo grid: warm passepartout, elegant hover */
[data-preset='classic'] .photo-grid {
column-gap: var(--grid-gap, 20px);
}
[data-preset='classic'] .photo-grid__item {
margin-bottom: var(--grid-gap, 20px);
/* Declared, not a var() fallback. The base .photo-grid sets --grid-gap: 12px,
so `var(--grid-gap, 20px)` never reached its fallback and this preset
silently rendered at 12px from v0.12.0 on (#513). The base rules read
--grid-gap for both axes, so declaring it here is all this needs. */
--grid-gap: 20px;
}
[data-preset='classic'] .photo-grid__item:hover img {

View File

@@ -58,9 +58,10 @@
--grid-gap: 32px;
}
[data-preset='editorial'] .photo-grid__item {
margin-bottom: 32px;
}
/* No row spacing here on purpose. The base .photo-grid__item rule reads
var(--grid-gap), which inherits the 32px declared above — so the default look
is unchanged and an explicit grid.gap now moves rows as well as columns.
A hardcoded margin-bottom here was the other half of #513. */
[data-preset='editorial'] .photo-grid__item img {
transition:

View File

@@ -98,7 +98,8 @@
}
[data-preset='minimal'] .photo-grid__item {
margin-bottom: 2px;
/* Row spacing deliberately omitted — the base rule reads var(--grid-gap) and
inherits the 2px above, so grid.gap moves both axes (#513). */
border-radius: 0;
cursor: pointer;
}

View File

@@ -36,7 +36,10 @@
[data-preset='monograph'] .photo-grid__item {
counter-increment: photo-index;
margin-bottom: 48px;
/* Rows sit looser than columns by design — 48px against 40px. Derived from
--grid-gap rather than hardcoded so an explicit grid.gap keeps that ratio
instead of leaving the rows behind (#513). */
margin-bottom: calc(var(--grid-gap, 40px) * 1.2);
}
[data-preset='monograph'] .photo-grid__item::before {

View File

@@ -783,11 +783,14 @@
/* ── Fotoraster ─────────────────────────────────────────────── */
[data-preset='studio-modern'] .photo-grid {
column-gap: var(--grid-gap, 20px);
/* Declared, not a var() fallback. The base .photo-grid sets --grid-gap: 12px,
so `var(--grid-gap, 20px)` never reached its fallback and this preset
silently rendered at 12px from v0.12.0 on (#513). The base rules read
--grid-gap for both axes, so declaring it here is all this needs. */
--grid-gap: 20px;
}
[data-preset='studio-modern'] .photo-grid__item {
margin-bottom: var(--grid-gap, 20px);
border-radius: 0;
}