baustelle-pwa/icons/icon.svg
Eduard Wisch 91a6560f7e
All checks were successful
Deploy baustelle-pwa / deploy (push) Successful in 1s
feat: Neues PWA-Logo — Klemmbrett mit Schraubenschlüssel (SVG + PNG)
Icon ersetzt das PHP/GD-generierte Placeholder durch ein echtes
Baustelle-Doku-Motiv:
- Dunkelblauer Radial-Gradient Hintergrund (rounded rectangle)
- Oranges Klemmbrett mit weißem Papier, Text-Zeilen und grüner
  Checkbox (symbolisiert fertige Arbeit)
- Metallische Klemme oben mit Riegel
- Blauer Schraubenschlüssel diagonal über dem Brett

SVG als Single-Source-of-Truth, PNG-Versionen in 192 und 512 px via
Chromium-Headless aus HTML-Wrapper gerendert (damit viewBox richtig
skaliert wird).

index.html verlinkt jetzt zusätzlich icon.svg als Favicon für Browser
die SVG-Favicons unterstützen.

SW-Cache auf v7.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
[deploy]
2026-04-09 01:12:47 +02:00

47 lines
2.6 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<defs>
<radialGradient id="bg" cx="50%" cy="40%" r="70%">
<stop offset="0%" stop-color="#2a4a7f"/>
<stop offset="100%" stop-color="#0e1220"/>
</radialGradient>
<linearGradient id="board" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#f8b25a"/>
<stop offset="100%" stop-color="#e0903a"/>
</linearGradient>
<linearGradient id="metal" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#e8ecf0"/>
<stop offset="100%" stop-color="#9aa3ad"/>
</linearGradient>
<linearGradient id="wrench" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#7aa2f7"/>
<stop offset="100%" stop-color="#3a6ed0"/>
</linearGradient>
</defs>
<rect width="512" height="512" rx="96" fill="url(#bg)"/>
<g transform="translate(112 96)">
<rect x="0" y="24" width="288" height="360" rx="18" fill="url(#board)"/>
<rect x="0" y="24" width="288" height="360" rx="18" fill="none" stroke="#b56e1a" stroke-width="4" opacity="0.5"/>
<rect x="24" y="64" width="240" height="296" rx="6" fill="#fdfdfd"/>
<rect x="48" y="110" width="192" height="6" rx="3" fill="#1a1a1f"/>
<rect x="48" y="140" width="160" height="4" rx="2" fill="#7a7a7f"/>
<rect x="48" y="158" width="176" height="4" rx="2" fill="#7a7a7f"/>
<rect x="48" y="176" width="130" height="4" rx="2" fill="#7a7a7f"/>
<rect x="48" y="210" width="192" height="6" rx="3" fill="#1a1a1f"/>
<rect x="48" y="240" width="150" height="4" rx="2" fill="#7a7a7f"/>
<rect x="48" y="258" width="170" height="4" rx="2" fill="#7a7a7f"/>
<rect x="48" y="298" width="24" height="24" rx="4" fill="#5cb85c"/>
<path d="M54 310 l7 7 l13 -13" stroke="#fff" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
<rect x="84" y="304" width="130" height="12" rx="4" fill="#2a2a30"/>
<rect x="96" y="0" width="96" height="52" rx="8" fill="url(#metal)"/>
<rect x="96" y="0" width="96" height="52" rx="8" fill="none" stroke="#5a6068" stroke-width="3"/>
<rect x="112" y="8" width="64" height="18" rx="4" fill="#5a6068"/>
<circle cx="144" cy="42" r="5" fill="#3a4048"/>
</g>
<g transform="translate(330 300) rotate(-35)">
<rect x="-22" y="-110" width="44" height="180" rx="10" fill="url(#wrench)"/>
<circle cx="0" cy="-140" r="46" fill="url(#wrench)"/>
<circle cx="0" cy="-140" r="22" fill="#0e1220"/>
<path d="M -36 60 Q -36 100 0 100 Q 36 100 36 60 L 36 80 Q 20 60 0 60 Q -20 60 -36 80 Z" fill="url(#wrench)"/>
<rect x="-16" y="-100" width="8" height="160" rx="4" fill="#ffffff" opacity="0.18"/>
</g>
</svg>