v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024): - app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs) - app/templates/v2/: base.html + 11 Screens + 8 Component-Macros - AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features (ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores) - v2 ist jetzt Default unter / — classic unter /classic - Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129) - Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle - Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie, Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze Backend-Erweiterungen: - main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout}, /api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.) - og_card.py + og_template: Open-Graph-Bilder via Playwright (#141) - wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138) - auswertungen.py: BL-Filter + get_wahlperioden Helper (#137) - auth.py: Direct-Access-Grant + Refresh-Token-Cookie Classic-Updates: - Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
1.4 KiB
CSS
33 lines
1.4 KiB
CSS
/*
|
||
* fonts.css — Nunito Sans self-hosted (Fallback für Avenir)
|
||
* Google Fonts v19, Latin-Subset, woff2
|
||
* font-display: swap verhindert FOIT; size-adjust korrigiert metrischen
|
||
* Versatz gegenüber Avenir Next (ca. 95 % — empirisch grob gemessen).
|
||
*/
|
||
|
||
/* ── Normal (variable font, deckt Gewichte 300–900 ab) ──────────── */
|
||
@font-face {
|
||
font-family: "Nunito Sans";
|
||
font-style: normal;
|
||
font-weight: 300 900;
|
||
font-display: swap;
|
||
src: url("/static/v2/fonts/nunito-sans-latin-variable.woff2") format("woff2");
|
||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
|
||
U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
|
||
U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||
size-adjust: 95%;
|
||
}
|
||
|
||
/* ── Italic 400 ─────────────────────────────────────────────────── */
|
||
@font-face {
|
||
font-family: "Nunito Sans";
|
||
font-style: italic;
|
||
font-weight: 400;
|
||
font-display: swap;
|
||
src: url("/static/v2/fonts/nunito-sans-italic-latin.woff2") format("woff2");
|
||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
|
||
U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
|
||
U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||
size-adjust: 95%;
|
||
}
|