perf: self-host fonts, eliminate CLS, a11y and contrast fixes

- Self-host Inter and JetBrains Mono (woff2, 69KB total)
- Remove Google Fonts dependency entirely (no external requests)
- Service Worker pre-caches font files
- Eliminate font-swap layout shifts
- WCAG contrast fix: disabled button uses solid color instead of opacity
- Footer link always underlined for distinguishability
- Translated aria-labels via data-i18n-aria
- Dimmed QR with "Bezahlt" stamp on paid invoices
- Hide wallet/address buttons when invoice is paid
This commit is contained in:
Alexander Schmidt
2026-03-25 16:56:10 +01:00
parent 8bcdb33fa3
commit 6a9a5b6a75
5 changed files with 20 additions and 20 deletions

6
sw.js
View File

@@ -5,8 +5,10 @@ var ASSETS = [
'/app.js',
'/i18n.js',
'/style.css',
'/lib/qrcode.min.js'
// xmr-crypto.bundle.js is lazy-loaded and runtime-cached
'/lib/qrcode.min.js',
'/fonts/inter-400.woff2',
'/fonts/jetbrains-400.woff2'
// xmr-crypto.bundle.js and jspdf.min.js are lazy-loaded and runtime-cached
];
self.addEventListener('install', function (e) {