Repository navigation
Favicon und Logo halbiert: 126 → 65 KB und 108 → 64 KB (v71) - #68
Merged
Merged
Conversation
favicon.svg war das vollstaendige Logo (252 Pfade) mit zwei Nachkomma- stellen in einem 2.835er-Raster, im Rahmen eines Favicon-Generators - 126 KB fuer eine Darstellung bei 16 bis 64 px, wo eine Rastereinheit 0,02 px misst. tools/shrink-svg.py (eigenes Werkzeug, kein Fremdpaket): echter Pfad-Parser, der Bogen-Flags zeichenweise liest; Rundung absolut auf ganze Einheiten und erst danach relative Schreibweise; je Segment die kuerzere Form; gruppierte Klassen. Pfade werden bewusst nicht zusammengelegt (Fuellregel). Beweise: - Rundlauf ohne Browser: alle 252 Pfade neu eingelesen, null Abweichungen gegen die gerundeten Absolutwerte. - Pixelvergleich im Browser bei 16-512 px. Grundrausch-Pegel bestimmt: schon der Umbau ohne Rundung erzeugt bis 13/255 (der Browser summiert relative Koordinaten in float32). Ganzzahlige Rundung: Oe 0,35, die groesste Einzelabweichung zehnfach vergroessert nicht zu unterscheiden. - Verworfen: groeberes Raster (4-8 KB mehr Ersparnis, aber Pixel kippen bei 180 px um bis zu 200/255). Die Option ist wieder entfernt. Tests messen gegen ein Referenzbild des Originals (tests/fixtures/), nicht gegen sich selbst. Drei Mutationen einzeln geprueft: Original zurueck -> Groessentest rot; groeberes Raster und vertauschte Bogen-Flags -> Pixeltest rot. 2 neue Tests, 388 gesamt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QxDJcLg9h8zdL9ZpTTty7
Beim Rundlauf-Test von tools/shrink-svg.py entstand tools/__pycache__/ und rutschte mit in den vorigen Commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QxDJcLg9h8zdL9ZpTTty7
Dasselbe Werkzeug und derselbe Aufruf wie beim Favicon: Koordinaten absolut auf ganze Rastereinheiten gerundet, dann relativ geschrieben. gzip 41 → 26 KB. Das Ladegewicht-Budget der Startseite hat damit wieder rund 48 KB Luft statt 5,5. Gemessen gegen das Original bei 44 bis 1024 px; im Test bei 344 px (Hero bei doppelter Pixeldichte, die größte Darstellung in der App) gegen tests/fixtures/logo-referenz-344.png: Ø 0,37, höchstens 88/255. Drei Mutationen einzeln rot (Original zurück, Raster auf Zehner, vertauschte Bogen-Flags). Pixelvergleich in eine gemeinsame Hilfsfunktion gezogen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QxDJcLg9h8zdL9ZpTTty7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
favicon.svgundlogo.svgsind dasselbe Logo: 252 Pfade in einem Raster von 2.835 Einheiten. Das Favicon trug Koordinaten mit zwei Nachkommastellen und steckte im Rahmen eines Favicon-Generators (126 KB). Das Logo trägt seit v45 eine Nachkommastelle (108 KB) und ist die größte Einzeldatei der Startseite.Jetzt 65 KB (−49 %) und 64 KB (−41 %, gzip 41 → 26 KB). Optisch sind beide nicht vom Original zu unterscheiden.
Wie
tools/shrink-svg.pyist ein eigenes Werkzeug, kein Fremdpaket:a5 5 0 01 10 10) und werden zeichenweise gelesen. Eine Zahlen-Regex zerlegt das falsch – derselbe Fehlertyp wie1.5.5, der in v45 schon einmal eine Grafik zerstört hat.Wie geprüft
Tests messen gegen das Original
Die Referenzbilder zeigen die Originale:
tests/fixtures/favicon-referenz-180.png– Favicon bei 180 pxtests/fixtures/logo-referenz-344.png– Logo bei 344 px, also der Hero (172 px) bei doppelter PixeldichteBeide Tests verlangen Ø < 1 und keinen Farbkanal mit mehr als 120 Abweichung. Dazu kommt je eine Größengrenze von 70 KB. Der Pixelvergleich steckt in einer gemeinsamen Hilfsfunktion.
Drei Mutationen, je Datei einzeln geprüft:
Lokal sind alle 390 Tests grün (3,5 Minuten).
Ladegewicht
Das Budget der Startseite (700 KB, ohne den Zähl-Aufruf) hat wieder rund 48 KB Luft statt 5,5. Das Favicon zählt nicht mit, weil es meist erst nach
networkidlelädt; jeder Besucher lädt es trotzdem.Nebenbei
Beim Rundlauf-Test war
tools/__pycache__/entstanden und in den ersten Commit geraten. Ein späterer Commit entfernt es, und__pycache__/steht jetzt in.gitignore.🤖 Generated with Claude Code
https://claude.ai/code/session_011QxDJcLg9h8zdL9ZpTTty7