gwoe-antragspruefer/app/templates/v2/screens
Dotty Dotter f59286d15f fix: PNG-Export-Canvas + Doppel-Borders bei field-chip/party-pill
User: 'immer noch doppelte Borders ... Inhalte zu klein skaliert
nach oben links gerutscht (800 px breit statt 1080)'

Ursachen:

1. Canvas-Content-Mismatch (Inhalt 75% der PNG-Breite):
   WeasyPrint rechnet 1 CSS-px = 0.75 PDF-pt (96dpi → 72dpi). @page
   war auf {width}pt × {height}pt (1080×1350) gesetzt, body aber auf
   1080×1350 CSS-px. Folge: Body fuellte nur 1080*0.75=810pt der
   1080pt-Page → Content top-left, 25% rechts/unten leer; PyMuPDF
   rasterisiert mit zoom=1 → 1080×1350 PNG, Content nur in den linken
   810×1012 px → 'Inhalte zu klein nach oben links gerutscht'.

   Fix: @page-Groesse auf (width * 0.75)pt × (height * 0.75)pt setzen.
   Body fuellt jetzt die volle Canvas-Breite. PyMuPDF kompensiert mit
   zoom = scale * 4/3, damit die PNG wieder die gewuenschten Pixel-
   Dimensionen hat (1080×1350 für scale=1).

2. Doppel-Borders auf field-chip + party-pill:
   WeasyPrint hat einen bekannten Render-Bug bei
   'border + border-radius' auf inline-flex-Elementen — der Border
   wird zweimal gezeichnet (innen + aussen). 1.5px → 2px hat das
   nicht behoben, weil's nicht am Subpixel-Wert lag.

   Fix: border ersetzt durch box-shadow: inset 0 0 0 2px var(--rule).
   Inset-Shadow rendert sauber, kein Doppel-Effekt. border-radius
   bleibt erhalten.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 14:37:55 +02:00
..
abos.html ux(v2): Partei-Dropdown statt Freitext in /v2/abos und /v2/feed 2026-04-25 22:37:31 +02:00
admin_abos.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
admin_freischaltungen.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
admin_queue.html fix(#183): Browser-Speicher — Modal-Chart-destroy, Force-Sim-stop, Polling-Pause 2026-05-07 09:01:48 +02:00
admin_stand.html feat: PDF-Generierung auf v3-Layout, Werkstatt-Link im Admin, Share nur bei Login 2026-05-07 13:48:19 +02:00
admin_wahlprogramme.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
aktuelle-themen.html refactor(Phase 17 follow-up): copyDraftToClipboard nutzt data-pm-id statt JSON.stringify im onclick 2026-05-07 08:01:00 +02:00
antrag_detail.html feat: PDF-Generierung auf v3-Layout, Werkstatt-Link im Admin, Share nur bei Login 2026-05-07 13:48:19 +02:00
auswertungen.html fix(#183): Browser-Speicher — Modal-Chart-destroy, Force-Sim-stop, Polling-Pause 2026-05-07 09:01:48 +02:00
batch.html feat: Batch-Analyse mit "Alle Bundeslaender"-Modus 2026-05-06 02:00:03 +02:00
cluster.html fix(#183): Browser-Speicher — Modal-Chart-destroy, Force-Sim-stop, Polling-Pause 2026-05-07 09:01:48 +02:00
durchsuchen.html feat(v2): globaler BL-Selector im Header + Auth-gated Sidebar + Queue-Widget 2026-04-25 21:50:36 +02:00
feed.html ux(v2): Partei-Dropdown statt Freitext in /v2/abos und /v2/feed 2026-04-25 22:37:31 +02:00
landtag_suche.html feat(#6 Phase 11): Bundesrats-Drucksachen erkennen + markieren + ablehnen 2026-05-06 23:29:12 +02:00
legal.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
merkliste.html fix: Merkliste-Lösch-Row blieb im DOM — ID-Lookup vs. escAttr inkonsistent 2026-05-06 22:40:27 +02:00
methodik.html feat(methodik): Aktualisiert auf Stand Mai 2026 — neue Sektion Stimmverhalten, Versionsstand, partei-skopierte Verifikation 2026-05-07 12:08:17 +02:00
neu.html feat(v2): globaler BL-Selector im Header + Auth-gated Sidebar + Queue-Widget 2026-04-25 21:50:36 +02:00
quellen.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
scorecard_portrait.html fix: PNG-Export-Canvas + Doppel-Borders bei field-chip/party-pill 2026-05-07 14:37:55 +02:00
scorecard_werkstatt.html feat: Scorecard-Werkstatt — Live-Editor unter /v2/scorecard-werkstatt 2026-05-07 13:39:45 +02:00
scorecard.html fix: Matrix groesser (110px Cells statt 88px) — fuellt mehr Vertikalraum 2026-05-07 13:34:02 +02:00
tags.html fix: Topbar-Wrap auf Mobile, Klassische-Ansicht raus, Tags-Greying + Title-Bug 2026-05-07 12:05:10 +02:00