Files
perinco-CRM/public/themes/outdoor-header.svg
T
Sascha WolfandClaude Opus 5 dc701f8522 feat(ui): Hintergrundgrafiken fuer Leiste und Seitenleiste je Theme
Pixel Art, Outdoor und Cyberpunk legen jetzt eine Grafik hinter die obere
Leiste und die Seitenleiste: 8-bit-Himmel mit Wolken und Huegelkante
sowie eine Steinmauer, blauer Himmel mit Schleierwolken sowie eine Wiese,
Neonroehren im Regen sowie eine regnerische Gasse. perinco bleibt
einfarbig.

Sechs SVG in public/themes/, von Hand gezeichnet - stilisierte Grafik
statt Foto, damit sie in jeder Aufloesung scharf bleibt; zusammen 36 kB.
Die Pixel-Grafiken haben einen absichtlich winzigen viewBox (eine Einheit
= ein Bildpunkt) und shape-rendering="crispEdges", damit die Kanten beim
Hochskalieren hart bleiben; die Mauer blendet nach oben stufenweise aus
und nicht mit einem Verlauf - Pixelgrafik kennt keine Zwischentoene.

Im Markup nur zwei Anker: app-header und app-sidebar. Den Rest machen
zwei Variablen mit Rueckfall auf none, weshalb perinco unberuehrt bleibt.

Die Variable enthaelt zwei Ebenen: einen Schleier aus der Flaechenfarbe
des Themes und darunter die Grafik. Das erledigt zwei Dinge zugleich -
derselbe blaue Himmel wird im Dunkelmodus zur Nacht (keine zweite Datei
noetig), und die Schrift bleibt lesbar, weil der Schleier in der Leiste an
den Raendern dicht liegt und in der Seitenleiste oben ueber den
Menuepunkten.

Aus dem ersten Versuch gelernt: die Cyberpunk-Grafik hatte eine deckende
Nachtflaeche. Im hellen Modus wurde daraus unter dem weissen Schleier ein
grauer Schmutzstreifen. Sie ist jetzt durchsichtig und zeigt nur Licht -
ueber Dunkel leuchtet das Neon, ueber Weiss bleiben blasse farbige
Linien. Ebenso zurueckgenommen wurde der Schleier ueber der Steinmauer:
"Einstellungen" und der Benutzername stehen darauf.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 15:08:17 +02:00

58 lines
2.3 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 80" width="1600" height="80" preserveAspectRatio="xMidYMid slice">
<!--
Outdoor, obere Leiste: blauer Himmel mit Schleierwolken.
Die Leiste ist nur 80 px hoch und traegt Text - deshalb keine kraeftigen
Kontraste, sondern ein weicher Verlauf und Wolken aus unscharfen Ellipsen.
Der Schleier darueber kommt aus dem Theme (index.css), nicht aus dieser
Datei: so tont derselbe Himmel im Dunkelmodus zur Nacht ab.
-->
<defs>
<linearGradient id="himmel" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#5eb3e4" />
<stop offset="0.55" stop-color="#8fcdec" />
<stop offset="1" stop-color="#cfe8f5" />
</linearGradient>
<filter id="weich" x="-30%" y="-120%" width="160%" height="340%">
<feGaussianBlur stdDeviation="9" />
</filter>
<filter id="sehrWeich" x="-40%" y="-200%" width="180%" height="500%">
<feGaussianBlur stdDeviation="20" />
</filter>
</defs>
<rect width="1600" height="80" fill="url(#himmel)" />
<!-- Sonnenschein oben links, gerade so sichtbar -->
<ellipse cx="240" cy="4" rx="260" ry="60" fill="#fff6d8" opacity="0.5" filter="url(#sehrWeich)" />
<!-- Wolkenbaenke: je drei bis vier Ellipsen, damit die Kanten unregelmaessig sind -->
<g fill="#ffffff" filter="url(#weich)">
<g opacity="0.85">
<ellipse cx="150" cy="52" rx="120" ry="20" />
<ellipse cx="230" cy="44" rx="80" ry="16" />
<ellipse cx="86" cy="58" rx="70" ry="14" />
</g>
<g opacity="0.6">
<ellipse cx="520" cy="30" rx="150" ry="17" />
<ellipse cx="610" cy="24" rx="90" ry="13" />
</g>
<g opacity="0.8">
<ellipse cx="880" cy="58" rx="170" ry="22" />
<ellipse cx="960" cy="50" rx="110" ry="16" />
<ellipse cx="800" cy="62" rx="90" ry="15" />
</g>
<g opacity="0.55">
<ellipse cx="1240" cy="26" rx="140" ry="16" />
<ellipse cx="1330" cy="34" rx="100" ry="14" />
</g>
<g opacity="0.78">
<ellipse cx="1520" cy="56" rx="150" ry="20" />
<ellipse cx="1440" cy="62" rx="90" ry="14" />
</g>
</g>
<!-- Dunstband am unteren Rand: laesst die Leiste sauber in den Inhalt uebergehen -->
<rect y="60" width="1600" height="20" fill="#ffffff" opacity="0.28" filter="url(#weich)" />
</svg>