dorfteich/packages/shared/i18n/en/font.json
Claude Fable 5 b5d2a436e0
All checks were successful
CI / Lint, typecheck, test (pull_request) Successful in 4m44s
CI / Build container images (pull_request) Successful in 4m2s
CI / Auth e2e pack (pull_request) Successful in 10m50s
CI / Import/export fidelity gate (pull_request) Successful in 55s
CD / Build and push images (push) Successful in 19s
CD / Deploy to Test (push) Successful in 17s
CD / Smoke tests against Test (push) Successful in 4m2s
CI / Lint, typecheck, test (push) Successful in 4m47s
CI / Build container images (push) Has been skipped
CD / Promote to Int (push) Successful in 14s
CI / Auth e2e pack (push) Successful in 10m7s
CI / Import/export fidelity gate (push) Successful in 56s
Release / Build release images and notes (push) Successful in 1m11s
Release / Release-candidate operations QA (push) Successful in 1m0s
Prod deploy / Deploy the released images to Prod (push) Successful in 17s
#186: pond accent theming — scoped derivation, cascade pond > user > default
pondSettingsSchema gains theme = { accent: '#rrggbb' | null } (null =
inherit the viewer's theme), exposed as a top-level key of the flat
updatePondInputSchema and included in the PondsService settings merge
(the known silent-no-op pitfall). The server validates only the hex;
conformance arises at render time: PondThemeScope (mounted around the
page content next to PondFontScope) derives the accent pair for the
EFFECTIVE mode via useEffectiveTheme and sets it as inline custom
properties — inline beats both tokens.css and the user-theme <style>,
which IS the cascade precedence pond > user > default.

Pond settings get a PondThemeSection (inherit | presets | custom color
with per-mode preview swatches, explicit save like the font manager);
AccentSwatches extracted for reuse; i18n de+en. The no-JS public shell
stays deliberately un-themed (ADR 0018 amendment).

Tests: pond DB test (theme merge keeps fonts, invalid hex 400), e2e
pond-theme.spec (scope boundary content vs. chrome, per-mode
re-derivation, axe on the pond settings page; resets the fixture pond).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRtCnB3uLdQtFmvp9HXcRX
2026-07-29 09:09:36 +02:00

36 lines
1.1 KiB
JSON

{
"heading": "Appearance",
"intro": "Choose the fonts for this pond's headings, body text, and code. Fonts are served from this instance only.",
"slots": {
"heading": "Headings",
"body": "Body text",
"mono": "Code"
},
"family": "Font",
"weight": "Weight",
"preview": "The quick brown fox jumps over the lazy dog. 0123",
"save": "Save fonts",
"saved": "Saved",
"catalogLink": "Font licenses",
"catalog": {
"title": "Font catalog",
"intro": "Every font below is self-hosted — rendering a pond makes no request to any third party (GDPR). Fonts are free/libre under the licenses shown.",
"family": "Font",
"category": "Style",
"weights": "Weights",
"license": "License"
},
"category": {
"sans-serif": "Sans-serif",
"serif": "Serif",
"monospace": "Monospace"
},
"pondTheme": {
"legend": "Pond accent color",
"inherit": "Each viewer's own setting (default)",
"hint": "Colors links, buttons, and highlights of this pond's content for every viewer. The color is automatically adjusted per light/dark mode so text stays readable.",
"save": "Save accent color",
"saved": "Saved"
}
}