Fonts: carry uploaded faces through export/import + embed in SVG export

This commit is contained in:
2026-06-16 23:52:16 +03:00
parent 2ed9db3792
commit d8a7bcb7c1
16 changed files with 810 additions and 90 deletions
-21
View File
@@ -500,21 +500,6 @@ surfaces.
---
## Open divergences (spec ↔ code)
Surfaced by the full-docs consistency review — each needs a deliberate resolution,
not a silent drift:
- ~~**Storage-monitor scope.** Spec §02 frames the indicator as the **snippet** storage
budget specifically; the shipped estimate instead reported **whole-origin** usage/quota.~~
**Resolved** — rather than pick "snippet budget" vs. "whole-origin", the monitor was
redesigned into a **composition breakdown** (snippets · datasets · app) that drops the
unreliable browser quota entirely and shows real measured sizes. Spec §02 + §10 and
[arch 02 §6](architecture/02-persistence.md) updated; council resolution recorded in
[arch 10](architecture/10-interaction-and-feedback.md).
---
## Open items (carried from the exploration memos)
Deferred features whose reasoning lives in `docs/exploration/`; pulled here so the backlog
@@ -522,13 +507,7 @@ is in the maintained plan, not the archive.
**Chart theming** (`exploration/chart-theming-scope.md`):
- ~~**User font upload** — FontFace-from-IndexedDB tier~~ ✅ (incl. variable-font weight
support; arch 05 → User-uploaded fonts). Font dependencies derive from the config, not a
theme field.
- **Google Fonts opt-in CDN tier** — keyless catalog, opt-in only.
- **SVG export font embedding** — embed face data so exported SVGs render off-app; carries
the **§08 export font-byte round-trip** too (shared base64 machinery — user fonts don't yet
travel with an exported workspace).
- **Theme↔font pairing metadata** — a suggestion nicety.
- **Built-in expressive theme preset gallery** — e.g. "Editorial", "Terminal", "Sketch".
- **Color panel swatch reorder** — the remaining slice-4b control (reorder a materialized