Initial StaySense landing page

This commit is contained in:
Oliver 2026-02-22 13:39:25 +01:00
commit 289b808771
No known key found for this signature in database
15 changed files with 844 additions and 0 deletions

67
assets/hero-van.svg Normal file
View file

@ -0,0 +1,67 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" role="img" aria-label="Illustration: Campervan und Standort-Analyse">
<defs>
<linearGradient id="g1" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
<radialGradient id="glow" cx="30%" cy="25%" r="70%">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.35"/>
<stop offset="1" stop-color="#0b1220" stop-opacity="0"/>
</radialGradient>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="18" stdDeviation="18" flood-color="#000" flood-opacity="0.45"/>
</filter>
</defs>
<rect width="1200" height="800" rx="28" fill="#0f1a2f"/>
<rect width="1200" height="800" rx="28" fill="url(#glow)"/>
<!-- Road -->
<path d="M0 640 C 240 600, 420 740, 680 700 C 900 666, 1000 610, 1200 640 L1200 800 L0 800 Z"
fill="#0b1220" opacity="0.85"/>
<path d="M0 665 C 260 635, 430 760, 700 730 C 920 707, 1020 650, 1200 675"
fill="none" stroke="#ffffff" stroke-opacity="0.12" stroke-width="6"/>
<!-- Location pin -->
<g transform="translate(840 210)" filter="url(#shadow)">
<path d="M120 20c-55 0-100 44-100 98 0 77 100 186 100 186s100-109 100-186c0-54-45-98-100-98z"
fill="url(#g1)" />
<circle cx="120" cy="118" r="44" fill="#071022" opacity="0.88"/>
<circle cx="120" cy="118" r="22" fill="#eaf0ff" opacity="0.95"/>
</g>
<!-- Camper -->
<g transform="translate(170 430)" filter="url(#shadow)">
<rect x="0" y="70" rx="26" ry="26" width="620" height="220" fill="#101f3a" stroke="#ffffff" stroke-opacity="0.12" stroke-width="3"/>
<path d="M40 70h300c40 0 70-30 90-55 30-38 70-55 120-55h30c25 0 45 20 45 45v65H40z"
fill="#12264a" stroke="#ffffff" stroke-opacity="0.12" stroke-width="3"/>
<rect x="80" y="110" width="170" height="90" rx="16" fill="#0b1220" stroke="#5eead4" stroke-opacity="0.35" stroke-width="3"/>
<rect x="270" y="110" width="160" height="90" rx="16" fill="#0b1220" stroke="#7c5cff" stroke-opacity="0.35" stroke-width="3"/>
<rect x="460" y="115" width="120" height="150" rx="18" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14" stroke-width="3"/>
<circle cx="150" cy="300" r="54" fill="#071022" stroke="#ffffff" stroke-opacity="0.14" stroke-width="10"/>
<circle cx="150" cy="300" r="22" fill="#eaf0ff" opacity="0.9"/>
<circle cx="490" cy="300" r="54" fill="#071022" stroke="#ffffff" stroke-opacity="0.14" stroke-width="10"/>
<circle cx="490" cy="300" r="22" fill="#eaf0ff" opacity="0.9"/>
<!-- Headlights -->
<rect x="600" y="210" width="18" height="30" rx="6" fill="#5eead4" opacity="0.6"/>
</g>
<!-- Small UI chips -->
<g transform="translate(120 120)">
<rect x="0" y="0" width="380" height="70" rx="18" fill="#0b1220" opacity="0.75" stroke="#ffffff" stroke-opacity="0.12"/>
<circle cx="40" cy="35" r="14" fill="#5eead4" opacity="0.85"/>
<rect x="70" y="24" width="260" height="10" rx="5" fill="#eaf0ff" opacity="0.75"/>
<rect x="70" y="42" width="210" height="10" rx="5" fill="#eaf0ff" opacity="0.45"/>
</g>
<g transform="translate(120 210)">
<rect x="0" y="0" width="420" height="80" rx="18" fill="#0b1220" opacity="0.70" stroke="#ffffff" stroke-opacity="0.12"/>
<rect x="26" y="22" width="160" height="14" rx="7" fill="#7c5cff" opacity="0.85"/>
<rect x="26" y="46" width="320" height="12" rx="6" fill="#eaf0ff" opacity="0.38"/>
</g>
<text x="64" y="708" font-family="Inter, system-ui, Arial" font-size="20" fill="#8ea0bf">
StaySense • Standort-Check im Browser
</text>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

11
assets/icon-browser.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Icon Browser">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
</defs>
<rect x="6" y="6" width="52" height="52" rx="16" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14"/>
<circle cx="20" cy="22" r="6" fill="url(#g)"/>
<text x="32" y="40" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="22" fill="#eaf0ff">🌐</text>
</svg>

After

Width:  |  Height:  |  Size: 612 B

11
assets/icon-fast.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Icon Schnell">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
</defs>
<rect x="6" y="6" width="52" height="52" rx="16" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14"/>
<circle cx="20" cy="22" r="6" fill="url(#g)"/>
<text x="32" y="40" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="22" fill="#eaf0ff"></text>
</svg>

After

Width:  |  Height:  |  Size: 611 B

11
assets/icon-focus.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Icon Fokus">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
</defs>
<rect x="6" y="6" width="52" height="52" rx="16" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14"/>
<circle cx="20" cy="22" r="6" fill="url(#g)"/>
<text x="32" y="40" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="22" fill="#eaf0ff">🎯</text>
</svg>

After

Width:  |  Height:  |  Size: 610 B

11
assets/icon-leaf.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Icon Respekt">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
</defs>
<rect x="6" y="6" width="52" height="52" rx="16" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14"/>
<circle cx="20" cy="22" r="6" fill="url(#g)"/>
<text x="32" y="40" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="22" fill="#eaf0ff">🌿</text>
</svg>

After

Width:  |  Height:  |  Size: 612 B

11
assets/icon-location.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Icon Standort">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
</defs>
<rect x="6" y="6" width="52" height="52" rx="16" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14"/>
<circle cx="20" cy="22" r="6" fill="url(#g)"/>
<text x="32" y="40" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="22" fill="#eaf0ff">📍</text>
</svg>

After

Width:  |  Height:  |  Size: 613 B

11
assets/icon-sense.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Icon Einschätzung">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
</defs>
<rect x="6" y="6" width="52" height="52" rx="16" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14"/>
<circle cx="20" cy="22" r="6" fill="url(#g)"/>
<text x="32" y="40" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="22" fill="#eaf0ff">🧠</text>
</svg>

After

Width:  |  Height:  |  Size: 618 B

11
assets/icon-shield.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Icon Sicherheit">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
</defs>
<rect x="6" y="6" width="52" height="52" rx="16" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14"/>
<circle cx="20" cy="22" r="6" fill="url(#g)"/>
<text x="32" y="40" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="22" fill="#eaf0ff">🛡</text>
</svg>

After

Width:  |  Height:  |  Size: 615 B

11
assets/icon-world.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Icon Überall">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
</defs>
<rect x="6" y="6" width="52" height="52" rx="16" fill="#0b1220" stroke="#ffffff" stroke-opacity="0.14"/>
<circle cx="20" cy="22" r="6" fill="url(#g)"/>
<text x="32" y="40" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="22" fill="#eaf0ff">🗺</text>
</svg>

After

Width:  |  Height:  |  Size: 613 B

40
assets/roadmap.svg Normal file
View file

@ -0,0 +1,40 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 520" role="img" aria-label="Roadmap Illustration">
<defs>
<linearGradient id="g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#7c5cff" stop-opacity="0.95"/>
<stop offset="1" stop-color="#5eead4" stop-opacity="0.55"/>
</linearGradient>
<filter id="s" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="14" stdDeviation="16" flood-color="#000" flood-opacity="0.35"/>
</filter>
</defs>
<rect width="800" height="520" rx="26" fill="#0b1220" opacity="0.55"/>
<path d="M60 380 C 180 280, 280 460, 410 360 C 540 260, 650 360, 740 260"
fill="none" stroke="#ffffff" stroke-opacity="0.16" stroke-width="10" stroke-linecap="round"/>
<g filter="url(#s)">
<circle cx="150" cy="320" r="22" fill="url(#g)"/>
<circle cx="150" cy="320" r="10" fill="#071022" opacity="0.9"/>
<text x="150" y="290" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="18" fill="#eaf0ff">Heute</text>
<circle cx="410" cy="360" r="22" fill="url(#g)"/>
<circle cx="410" cy="360" r="10" fill="#071022" opacity="0.9"/>
<text x="410" y="330" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="18" fill="#eaf0ff">StandortCheck</text>
<circle cx="700" cy="290" r="22" fill="url(#g)"/>
<circle cx="700" cy="290" r="10" fill="#071022" opacity="0.9"/>
<text x="700" y="260" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="18" fill="#eaf0ff">2026</text>
<text x="700" y="235" text-anchor="middle" font-family="Inter, system-ui, Arial" font-size="14" fill="#8ea0bf">Spots in der Nähe</text>
</g>
<g transform="translate(70 70)">
<rect x="0" y="0" width="660" height="140" rx="24" fill="#0f1a2f" stroke="#ffffff" stroke-opacity="0.12"/>
<text x="28" y="52" font-family="Inter, system-ui, Arial" font-size="26" fill="#eaf0ff" font-weight="700">Roadmap</text>
<text x="28" y="88" font-family="Inter, system-ui, Arial" font-size="16" fill="#d6e2ff">
Fokus bleibt: erst verstehen, dann entscheiden NearbySpots kommen als Ergänzung.
</text>
<rect x="28" y="104" width="240" height="10" rx="5" fill="#7c5cff" opacity="0.85"/>
<rect x="280" y="104" width="310" height="10" rx="5" fill="#eaf0ff" opacity="0.18"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB