diff --git a/docs/05-frontend.md b/docs/05-frontend.md index dcb959d..edf8760 100644 --- a/docs/05-frontend.md +++ b/docs/05-frontend.md @@ -271,6 +271,7 @@ ist `theme-aura`, der Unterschied kommt wie immer aus `.dark`. | --- | --- | | **Leiste** | Vier Hintergrundebenen statt zwei: Sonne bzw. Mond (`aura-sun.svg`, `aura-moon.svg`, 130 px in der Ecke oben rechts, halb angeschnitten), Schleier, Sterne (`aura-stars.svg`, nur nachts) und ein Himmelsverlauf. Weil jede Ebene eigene Lage und Größe braucht, stehen die in `--aura-header-position` und `--aura-header-size` | | **Ziehende Wolken** | Reines CSS: `.app-header::before` mit zwei nahtlosen 800-px-Kacheln (`aura-clouds-near.svg`, `aura-clouds-far.svg`). `@keyframes aura-clouds` schiebt sie in 150 s um genau 1600 bzw. 800 px - Neustart ohne Ruck, vordere Lage doppelt so schnell. Nachts auf `--aura-cloud-opacity` 0,28 abgedunkelt | +| **Schaukelnde Hügel** | Reines CSS, nur hell: `@keyframes aura-hills` schiebt in der Seitenleiste allein die Grafik-Ebene (`aura-sidebar.svg`) 26 s lang um ±9 px waagerecht und 4 px senkrecht. Der Schleier davor bleibt stehen, sonst würde die Schrift wandern. Die Grafik ist unten verankert und wird beschnitten (`preserveAspectRatio="xMidYMax slice"`), deshalb reißt am Rand keine Lücke auf | | **Sonnenstrahlen** | `src/components/AuraWeather.tsx`, nur hell. Alle 16–24 s zwei oder drei `.aura-ray`-Elemente: vom Sonnenmittelpunkt in Richtung Ecke unten links, leicht aufgefächert, per `clip-path` zur Sonne hin verjüngt und weichgezeichnet. Web Animations API: 4 s anschwellen, leicht schwenken, verblassen, danach entfernt | Zwei Stolperstellen: @@ -284,6 +285,10 @@ Zwei Stolperstellen: `AuraWeather.tsx` sind aus Position und Größe der Sonne in `index.css` gerechnet. Wer die Sonne verschiebt, muss beide mitziehen, sonst kommen die Strahlen aus dem Nichts. +3. **Hügel bewegen, Schleier nicht.** `background-position` gilt je Ebene. + Wer im Keyframe nur einen Wert schreibt, verschiebt auch den Schleier - die + Menüpunkte bekommen dann wandernde Helligkeit. Deshalb stehen dort immer + zwei Werte: `center top` für den Schleier, die Bewegung für die Grafik. ### Was ein neues Theme können muss diff --git a/src/index.css b/src/index.css index 1935872..3766c34 100644 --- a/src/index.css +++ b/src/index.css @@ -1113,6 +1113,19 @@ html.theme-aura.dark { animation: aura-clouds 150s linear infinite; } + /* + * Aura, hell: die Huegel in der Seitenleiste schaukeln langsam hin und her. + * + * Bewegt wird nur die Grafik-Ebene (zweiter Wert), der Schleier darueber + * bleibt stehen. Die Grafik ist an der Unterkante verankert und wird + * beschnitten (preserveAspectRatio slice), deshalb entsteht am Rand keine + * Luecke. 26 Sekunden pro Runde: als Bewegung kaum zu bemerken, aber die + * Leiste wirkt nicht mehr wie ein Standbild. + */ + html.theme-aura:not(.dark) .app-sidebar { + animation: aura-hills 26s ease-in-out infinite; + } + /* Sonnenstrahl (components/AuraWeather.tsx): verjuengt zur Sonne hin. */ .aura-ray { position: absolute; @@ -1130,7 +1143,8 @@ html.theme-aura.dark { } @media (prefers-reduced-motion: reduce) { - html.theme-aura .app-header::before { + html.theme-aura .app-header::before, + html.theme-aura:not(.dark) .app-sidebar { animation: none; } } @@ -1253,3 +1267,26 @@ html.theme-aura.dark { background-position: 1600px 0, 800px 0; } } + +/* + * Schaukelnde Huegel in der Seitenleiste (Theme Aura, hell). Der erste Wert ist + * der Schleier und bleibt stehen, der zweite die Grafik: 9 px nach rechts, + * dabei 4 px tiefer, und zurueck. + */ +@keyframes aura-hills { + 0% { + background-position: + center top, + calc(50% - 9px) bottom; + } + 50% { + background-position: + center top, + calc(50% + 9px) calc(100% + 4px); + } + 100% { + background-position: + center top, + calc(50% - 9px) bottom; + } +}