Web-Frontend: Umbau Spokes/Hub, Kontakt-Widget (contact-launcher)

Startseiten/Feeds/Kategorie/Rechtsseiten ueberarbeitet, Kontakt-Modal durch
schwebendes contact-launcher-Widget ersetzt, legal-language-notice ergaenzt;
Platzhalter-SVGs + Theme-CSS angepasst.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-09 15:45:58 +00:00
parent fd8e050cb7
commit d1939f6f2a
39 changed files with 1110 additions and 810 deletions

View file

@ -4,13 +4,13 @@
<stop offset="0" stop-color="#1a2540"/>
<stop offset="1" stop-color="#2e3d66"/>
</linearGradient>
<pattern id="waves" width="260" height="120" patternUnits="userSpaceOnUse">
<path d="M-20 70C30 30 80 30 130 70S230 110 280 70" fill="none" stroke="#ffffff" stroke-opacity="0.10" stroke-width="4"/>
<path d="M-20 110C30 70 80 70 130 110S230 150 280 110" fill="none" stroke="#ffffff" stroke-opacity="0.06" stroke-width="3"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect width="1600" height="900" fill="url(#waves)"/>
<circle cx="1270" cy="260" r="220" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="360" cy="690" r="180" fill="#ffffff" fill-opacity="0.055"/>
<path d="M0 470C133 400 267 400 400 470S667 540 800 470 1067 400 1200 470 1467 540 1600 470" fill="none" stroke="#ffffff" stroke-opacity="0.11" stroke-width="4"/>
<path d="M0 550C133 480 267 480 400 550S667 620 800 550 1067 480 1200 550 1467 620 1600 550" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="3.5"/>
<path d="M0 630C133 560 267 560 400 630S667 700 800 630 1067 560 1200 630 1467 700 1600 630" fill="none" stroke="#ffffff" stroke-opacity="0.07" stroke-width="3"/>
<path d="M0 710C133 640 267 640 400 710S667 780 800 710 1067 640 1200 710 1467 780 1600 710" fill="none" stroke="#ffffff" stroke-opacity="0.055" stroke-width="3"/>
<path d="M0 790C133 720 267 720 400 790S667 860 800 790 1067 720 1200 790 1467 860 1600 790" fill="none" stroke="#ffffff" stroke-opacity="0.04" stroke-width="2.5"/>
<circle cx="1270" cy="250" r="220" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="340" cy="220" r="140" fill="#ffffff" fill-opacity="0.045"/>
</svg>

Before

Width:  |  Height:  |  Size: 932 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -4,13 +4,13 @@
<stop offset="0" stop-color="#1f2e22"/>
<stop offset="1" stop-color="#3a5a3a"/>
</linearGradient>
<pattern id="waves" width="260" height="120" patternUnits="userSpaceOnUse">
<path d="M-20 70C30 30 80 30 130 70S230 110 280 70" fill="none" stroke="#ffffff" stroke-opacity="0.10" stroke-width="4"/>
<path d="M-20 110C30 70 80 70 130 110S230 150 280 110" fill="none" stroke="#ffffff" stroke-opacity="0.06" stroke-width="3"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect width="1600" height="900" fill="url(#waves)"/>
<circle cx="1270" cy="260" r="220" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="360" cy="690" r="180" fill="#ffffff" fill-opacity="0.055"/>
<path d="M0 470C133 400 267 400 400 470S667 540 800 470 1067 400 1200 470 1467 540 1600 470" fill="none" stroke="#ffffff" stroke-opacity="0.11" stroke-width="4"/>
<path d="M0 550C133 480 267 480 400 550S667 620 800 550 1067 480 1200 550 1467 620 1600 550" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="3.5"/>
<path d="M0 630C133 560 267 560 400 630S667 700 800 630 1067 560 1200 630 1467 700 1600 630" fill="none" stroke="#ffffff" stroke-opacity="0.07" stroke-width="3"/>
<path d="M0 710C133 640 267 640 400 710S667 780 800 710 1067 640 1200 710 1467 780 1600 710" fill="none" stroke="#ffffff" stroke-opacity="0.055" stroke-width="3"/>
<path d="M0 790C133 720 267 720 400 790S667 860 800 790 1067 720 1200 790 1467 860 1600 790" fill="none" stroke="#ffffff" stroke-opacity="0.04" stroke-width="2.5"/>
<circle cx="1270" cy="250" r="220" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="340" cy="220" r="140" fill="#ffffff" fill-opacity="0.045"/>
</svg>

Before

Width:  |  Height:  |  Size: 932 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -4,13 +4,13 @@
<stop offset="0" stop-color="#2e2117"/>
<stop offset="1" stop-color="#8a5e27"/>
</linearGradient>
<pattern id="waves" width="260" height="120" patternUnits="userSpaceOnUse">
<path d="M-20 70C30 30 80 30 130 70S230 110 280 70" fill="none" stroke="#ffffff" stroke-opacity="0.10" stroke-width="4"/>
<path d="M-20 110C30 70 80 70 130 110S230 150 280 110" fill="none" stroke="#ffffff" stroke-opacity="0.06" stroke-width="3"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect width="1600" height="900" fill="url(#waves)"/>
<circle cx="1270" cy="260" r="220" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="360" cy="690" r="180" fill="#ffffff" fill-opacity="0.055"/>
<path d="M0 470C133 400 267 400 400 470S667 540 800 470 1067 400 1200 470 1467 540 1600 470" fill="none" stroke="#ffffff" stroke-opacity="0.11" stroke-width="4"/>
<path d="M0 550C133 480 267 480 400 550S667 620 800 550 1067 480 1200 550 1467 620 1600 550" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="3.5"/>
<path d="M0 630C133 560 267 560 400 630S667 700 800 630 1067 560 1200 630 1467 700 1600 630" fill="none" stroke="#ffffff" stroke-opacity="0.07" stroke-width="3"/>
<path d="M0 710C133 640 267 640 400 710S667 780 800 710 1067 640 1200 710 1467 780 1600 710" fill="none" stroke="#ffffff" stroke-opacity="0.055" stroke-width="3"/>
<path d="M0 790C133 720 267 720 400 790S667 860 800 790 1067 720 1200 790 1467 860 1600 790" fill="none" stroke="#ffffff" stroke-opacity="0.04" stroke-width="2.5"/>
<circle cx="1270" cy="250" r="220" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="340" cy="220" r="140" fill="#ffffff" fill-opacity="0.045"/>
</svg>

Before

Width:  |  Height:  |  Size: 932 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -4,14 +4,18 @@
<stop offset="0" stop-color="#1a2540"/>
<stop offset="1" stop-color="#2e3d66"/>
</linearGradient>
<pattern id="rules" width="1600" height="56" patternUnits="userSpaceOnUse">
<line x1="0" y1="55" x2="1600" y2="55" stroke="#ffffff" stroke-opacity="0.04" stroke-width="1"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect x="170" y="190" width="520" height="42" rx="10" fill="#ffffff" fill-opacity="0.12"/>
<rect x="170" y="282" width="820" height="22" rx="8" fill="#ffffff" fill-opacity="0.08"/>
<rect x="170" y="334" width="690" height="22" rx="8" fill="#ffffff" fill-opacity="0.07"/>
<rect x="170" y="386" width="760" height="22" rx="8" fill="#ffffff" fill-opacity="0.06"/>
<rect x="1030" y="250" width="330" height="240" rx="20" fill="#ffffff" fill-opacity="0.055"/>
<path d="M1100 430L1190 340L1260 400L1305 355L1360 430H1100Z" fill="#ffffff" fill-opacity="0.10"/>
<circle cx="1290" cy="315" r="28" fill="#ffffff" fill-opacity="0.11"/>
<circle cx="1280" cy="700" r="180" fill="#ffffff" fill-opacity="0.04"/>
<rect width="1600" height="900" fill="url(#rules)"/>
<rect x="440" y="270" width="96" height="10" rx="5" fill="#ffffff" fill-opacity="0.14"/>
<rect x="440" y="320" width="620" height="40" rx="10" fill="#ffffff" fill-opacity="0.12"/>
<rect x="440" y="384" width="480" height="40" rx="10" fill="#ffffff" fill-opacity="0.10"/>
<rect x="440" y="472" width="720" height="18" rx="9" fill="#ffffff" fill-opacity="0.07"/>
<rect x="440" y="516" width="660" height="18" rx="9" fill="#ffffff" fill-opacity="0.06"/>
<rect x="440" y="560" width="540" height="18" rx="9" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="1280" cy="240" r="200" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="300" cy="700" r="150" fill="#ffffff" fill-opacity="0.055"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -4,14 +4,18 @@
<stop offset="0" stop-color="#1f2e22"/>
<stop offset="1" stop-color="#3a5a3a"/>
</linearGradient>
<pattern id="rules" width="1600" height="56" patternUnits="userSpaceOnUse">
<line x1="0" y1="55" x2="1600" y2="55" stroke="#ffffff" stroke-opacity="0.04" stroke-width="1"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect x="170" y="190" width="520" height="42" rx="10" fill="#ffffff" fill-opacity="0.12"/>
<rect x="170" y="282" width="820" height="22" rx="8" fill="#ffffff" fill-opacity="0.08"/>
<rect x="170" y="334" width="690" height="22" rx="8" fill="#ffffff" fill-opacity="0.07"/>
<rect x="170" y="386" width="760" height="22" rx="8" fill="#ffffff" fill-opacity="0.06"/>
<rect x="1030" y="250" width="330" height="240" rx="20" fill="#ffffff" fill-opacity="0.055"/>
<path d="M1100 430L1190 340L1260 400L1305 355L1360 430H1100Z" fill="#ffffff" fill-opacity="0.10"/>
<circle cx="1290" cy="315" r="28" fill="#ffffff" fill-opacity="0.11"/>
<circle cx="1280" cy="700" r="180" fill="#ffffff" fill-opacity="0.04"/>
<rect width="1600" height="900" fill="url(#rules)"/>
<rect x="440" y="270" width="96" height="10" rx="5" fill="#ffffff" fill-opacity="0.14"/>
<rect x="440" y="320" width="620" height="40" rx="10" fill="#ffffff" fill-opacity="0.12"/>
<rect x="440" y="384" width="480" height="40" rx="10" fill="#ffffff" fill-opacity="0.10"/>
<rect x="440" y="472" width="720" height="18" rx="9" fill="#ffffff" fill-opacity="0.07"/>
<rect x="440" y="516" width="660" height="18" rx="9" fill="#ffffff" fill-opacity="0.06"/>
<rect x="440" y="560" width="540" height="18" rx="9" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="1280" cy="240" r="200" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="300" cy="700" r="150" fill="#ffffff" fill-opacity="0.055"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -4,14 +4,18 @@
<stop offset="0" stop-color="#2e2117"/>
<stop offset="1" stop-color="#8a5e27"/>
</linearGradient>
<pattern id="rules" width="1600" height="56" patternUnits="userSpaceOnUse">
<line x1="0" y1="55" x2="1600" y2="55" stroke="#ffffff" stroke-opacity="0.04" stroke-width="1"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect x="170" y="190" width="520" height="42" rx="10" fill="#ffffff" fill-opacity="0.12"/>
<rect x="170" y="282" width="820" height="22" rx="8" fill="#ffffff" fill-opacity="0.08"/>
<rect x="170" y="334" width="690" height="22" rx="8" fill="#ffffff" fill-opacity="0.07"/>
<rect x="170" y="386" width="760" height="22" rx="8" fill="#ffffff" fill-opacity="0.06"/>
<rect x="1030" y="250" width="330" height="240" rx="20" fill="#ffffff" fill-opacity="0.055"/>
<path d="M1100 430L1190 340L1260 400L1305 355L1360 430H1100Z" fill="#ffffff" fill-opacity="0.10"/>
<circle cx="1290" cy="315" r="28" fill="#ffffff" fill-opacity="0.11"/>
<circle cx="1280" cy="700" r="180" fill="#ffffff" fill-opacity="0.04"/>
<rect width="1600" height="900" fill="url(#rules)"/>
<rect x="440" y="270" width="96" height="10" rx="5" fill="#ffffff" fill-opacity="0.14"/>
<rect x="440" y="320" width="620" height="40" rx="10" fill="#ffffff" fill-opacity="0.12"/>
<rect x="440" y="384" width="480" height="40" rx="10" fill="#ffffff" fill-opacity="0.10"/>
<rect x="440" y="472" width="720" height="18" rx="9" fill="#ffffff" fill-opacity="0.07"/>
<rect x="440" y="516" width="660" height="18" rx="9" fill="#ffffff" fill-opacity="0.06"/>
<rect x="440" y="560" width="540" height="18" rx="9" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="1280" cy="240" r="200" fill="#ffffff" fill-opacity="0.05"/>
<circle cx="300" cy="700" r="150" fill="#ffffff" fill-opacity="0.055"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -4,13 +4,15 @@
<stop offset="0" stop-color="#1a2540"/>
<stop offset="1" stop-color="#2e3d66"/>
</linearGradient>
<pattern id="rings" width="180" height="180" patternUnits="userSpaceOnUse">
<circle cx="90" cy="90" r="38" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="3"/>
<circle cx="90" cy="90" r="4" fill="#ffffff" fill-opacity="0.13"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect width="1600" height="900" fill="url(#rings)"/>
<path d="M260 680C510 540 710 560 960 410C1140 302 1260 260 1410 288" fill="none" stroke="#ffffff" stroke-opacity="0.12" stroke-width="8" stroke-linecap="round"/>
<circle cx="960" cy="410" r="100" fill="#ffffff" fill-opacity="0.045"/>
<circle cx="1150" cy="450" r="90" fill="none" stroke="#ffffff" stroke-opacity="0.12" stroke-width="3"/>
<circle cx="1150" cy="450" r="180" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="2.5"/>
<circle cx="1150" cy="450" r="280" fill="none" stroke="#ffffff" stroke-opacity="0.065" stroke-width="2"/>
<circle cx="1150" cy="450" r="390" fill="none" stroke="#ffffff" stroke-opacity="0.045" stroke-width="2"/>
<circle cx="1150" cy="450" r="510" fill="none" stroke="#ffffff" stroke-opacity="0.03" stroke-width="1.5"/>
<circle cx="1150" cy="450" r="10" fill="#ffffff" fill-opacity="0.16"/>
<circle cx="330" cy="450" r="5" fill="#ffffff" fill-opacity="0.12"/>
<line x1="345" y1="450" x2="1130" y2="450" stroke="#ffffff" stroke-opacity="0.08" stroke-width="2" stroke-dasharray="2 14" stroke-linecap="round"/>
<circle cx="320" cy="210" r="130" fill="#ffffff" fill-opacity="0.045"/>
</svg>

Before

Width:  |  Height:  |  Size: 944 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -4,13 +4,15 @@
<stop offset="0" stop-color="#1f2e22"/>
<stop offset="1" stop-color="#3a5a3a"/>
</linearGradient>
<pattern id="rings" width="180" height="180" patternUnits="userSpaceOnUse">
<circle cx="90" cy="90" r="38" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="3"/>
<circle cx="90" cy="90" r="4" fill="#ffffff" fill-opacity="0.13"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect width="1600" height="900" fill="url(#rings)"/>
<path d="M260 680C510 540 710 560 960 410C1140 302 1260 260 1410 288" fill="none" stroke="#ffffff" stroke-opacity="0.12" stroke-width="8" stroke-linecap="round"/>
<circle cx="960" cy="410" r="100" fill="#ffffff" fill-opacity="0.045"/>
<circle cx="1150" cy="450" r="90" fill="none" stroke="#ffffff" stroke-opacity="0.12" stroke-width="3"/>
<circle cx="1150" cy="450" r="180" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="2.5"/>
<circle cx="1150" cy="450" r="280" fill="none" stroke="#ffffff" stroke-opacity="0.065" stroke-width="2"/>
<circle cx="1150" cy="450" r="390" fill="none" stroke="#ffffff" stroke-opacity="0.045" stroke-width="2"/>
<circle cx="1150" cy="450" r="510" fill="none" stroke="#ffffff" stroke-opacity="0.03" stroke-width="1.5"/>
<circle cx="1150" cy="450" r="10" fill="#ffffff" fill-opacity="0.16"/>
<circle cx="330" cy="450" r="5" fill="#ffffff" fill-opacity="0.12"/>
<line x1="345" y1="450" x2="1130" y2="450" stroke="#ffffff" stroke-opacity="0.08" stroke-width="2" stroke-dasharray="2 14" stroke-linecap="round"/>
<circle cx="320" cy="210" r="130" fill="#ffffff" fill-opacity="0.045"/>
</svg>

Before

Width:  |  Height:  |  Size: 944 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -4,13 +4,15 @@
<stop offset="0" stop-color="#2e2117"/>
<stop offset="1" stop-color="#8a5e27"/>
</linearGradient>
<pattern id="rings" width="180" height="180" patternUnits="userSpaceOnUse">
<circle cx="90" cy="90" r="38" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="3"/>
<circle cx="90" cy="90" r="4" fill="#ffffff" fill-opacity="0.13"/>
</pattern>
</defs>
<rect width="1600" height="900" fill="url(#bg)"/>
<rect width="1600" height="900" fill="url(#rings)"/>
<path d="M260 680C510 540 710 560 960 410C1140 302 1260 260 1410 288" fill="none" stroke="#ffffff" stroke-opacity="0.12" stroke-width="8" stroke-linecap="round"/>
<circle cx="960" cy="410" r="100" fill="#ffffff" fill-opacity="0.045"/>
<circle cx="1150" cy="450" r="90" fill="none" stroke="#ffffff" stroke-opacity="0.12" stroke-width="3"/>
<circle cx="1150" cy="450" r="180" fill="none" stroke="#ffffff" stroke-opacity="0.09" stroke-width="2.5"/>
<circle cx="1150" cy="450" r="280" fill="none" stroke="#ffffff" stroke-opacity="0.065" stroke-width="2"/>
<circle cx="1150" cy="450" r="390" fill="none" stroke="#ffffff" stroke-opacity="0.045" stroke-width="2"/>
<circle cx="1150" cy="450" r="510" fill="none" stroke="#ffffff" stroke-opacity="0.03" stroke-width="1.5"/>
<circle cx="1150" cy="450" r="10" fill="#ffffff" fill-opacity="0.16"/>
<circle cx="330" cy="450" r="5" fill="#ffffff" fill-opacity="0.12"/>
<line x1="345" y1="450" x2="1130" y2="450" stroke="#ffffff" stroke-opacity="0.08" stroke-width="2" stroke-dasharray="2 14" stroke-linecap="round"/>
<circle cx="320" cy="210" r="130" fill="#ffffff" fill-opacity="0.045"/>
</svg>

Before

Width:  |  Height:  |  Size: 944 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After