[FEAT] PWA installabile Android/iOS conforme AGID (v1.15.0)

- manifest.webmanifest + service worker (offline shell, /api network-only, asset stale-while-revalidate)
- set icone (192/512 + maskable + apple-touch + favicon), generate zero-deps (pure Node+zlib)
- tag PWA + viewport viewport-fit=cover (zoom mantenuto, WCAG 1.4.4) in 77 pagine HTML
- AGID/WCAG 2.1 AA: touch target >=44px, orientamento/zoom liberi, safe-area standalone
- generatori riproducibili: scripts/gen-pwa-icons.mjs + scripts/inject-pwa-head.mjs
- bump version 1.14.1 -> 1.15.0

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-14 21:09:54 +02:00
co-authored by Claude Opus 4.8
parent b80bf2361c
commit 36513fa722
95 changed files with 2050 additions and 78 deletions
+41
View File
@@ -2411,3 +2411,44 @@ tbody tr.clickable:active {
.feedback-resolve-actions { flex-direction: column; }
.feedback-password-row { flex-direction: column; }
}
/* ── PWA / AGID — Accessibilità mobile ──────────────────────────────
Touch target >= 44x44px (WCAG 2.5.5 / Linee guida di design AGID) e
gestione safe-area in modalità installata (notch). Solo aggiunte. */
@media (pointer: coarse) {
.btn,
button,
input[type="submit"],
input[type="button"],
.nav-link,
.sidebar a,
a.btn,
.icon-btn,
.sidebar-toggle {
min-height: 44px;
}
.btn,
a.btn,
input[type="submit"],
input[type="button"],
.icon-btn {
display: inline-flex;
align-items: center;
justify-content: center;
}
.icon-btn,
.sidebar-toggle {
min-width: 44px;
}
}
/* Safe-area inset quando l'app gira installata (standalone) */
@media all and (display-mode: standalone) {
.content-header { padding-top: max(16px, env(safe-area-inset-top)); }
.main-content {
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right);
padding-bottom: env(safe-area-inset-bottom);
}
.sidebar { padding-top: env(safe-area-inset-top); }
}