Files
Flaro/docs/superpowers/specs/2026-09-14-einstellungen-ueberall-gleich-design.md
ScarriffleandClaude Opus 5 baf8003445 Einstellungen sollen überall dieselben sein
Plan für den Abgleich zwischen App und Web. Beim Bau des Webfrontends
sind zwei Einstellungen entstanden, die es in der App nicht gibt, und
eine dritte, die ihrer Gestaltung widerspricht: Plakate oder Querformat
entscheidet die App bewusst selbst, weil man Angefangenes am Szenenbild
wiedererkennt und Neues am Plakat aussucht.

Gleiche Gliederung, Werte pro Gerät — am Fernseher größere Kacheln als
am Laptop, ohne dass eins das andere umstellt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 16:40:38 +02:00

87 lines
5.4 KiB
Markdown

# Einstellungen überall gleich
## Kontext
Flixy gibt es inzwischen als App (iPhone, iPad, Mac) und als Weboberfläche für Rechner, auf denen es keine App gibt und geben wird — Windows vor allem.
Beim Bau des Webfrontends sind die Einstellungen auseinandergelaufen. Ich habe dort zwei erfunden, die es in der App nicht gibt, und eine dritte, die der Gestaltung der App ausdrücklich widerspricht:
| | App | Web |
|---|---|---|
| Akzentfarbe (Palette) | ✅ | ✅ |
| Eigene Farbe (Hex) | ✅ | ❌ |
| Aufmacher: Quelle, Anzahl | ✅ | ✅ |
| Weiterschauen zusammenlegen, Gesehenes ausblenden | ✅ | ✅ |
| Reihen ordnen und ausblenden | ✅ | ❌ |
| Wiedergabe (Tempo, Spulweite, Qualität) | ✅ | ❌ |
| Sprachen (Ton, Untertitel) | ✅ | ❌ |
| Kachelgröße | ❌ | ✅ |
| Aufmacherhöhe | ❌ | ✅ |
| Plakate/Querformat | ❌ | ⚠️ |
Die letzte Zeile ist keine Lücke, sondern ein Fehler. Die App entscheidet die Kachelform **bewusst automatisch**: Weiterschauen zeigt das Szenenbild, weil man daran die Stelle wiedererkennt, alles andere das Plakat, weil man danach aussucht. Das zur Einstellung zu machen hieße, eine getroffene Entscheidung zurückzunehmen.
## Entscheidungen (mit dem Nutzer abgestimmt)
| Thema | Entscheidung |
|---|---|
| „Am gleichen Ort" | **Gleiche Gliederung, Werte pro Gerät.** Überall dieselben Einstellungen mit denselben Namen an derselben Stelle — aber jedes Gerät merkt sich seine eigenen. Am Fernseher größere Kacheln als am Laptop, ohne dass eins das andere umstellt. |
| Umfang | **Alles, was es im Web auch gibt.** Downloads und Diagnose bleiben draußen — dort fehlt die *Funktion*, nicht die Einstellung. |
| Plakate/Querformat | **Entfällt.** Zurück zur automatischen Wahl wie in der App. |
Verworfen wurde die Synchronisierung über den Server: Jellyfin könnte sie über `DisplayPreferences`, Plex nicht auf dieselbe Art — das hieße ein eigener Ablageweg und ein Backend, bei dem die Sache ausfällt.
## Die gemeinsame Gliederung
Beide Seiten, in dieser Reihenfolge:
1. **Darstellung** — Akzentfarbe, eigene Farbe, Kachelgröße
2. **Startseite** — Aufmacher (Quelle, Anzahl, Höhe), Reihen (zusammenlegen, Gesehenes ausblenden, ordnen und ausblenden)
3. **Wiedergabe** — Standardtempo, Spulweite vor/zurück, Qualität
4. **Sprachen** — Ton, Untertitel
5. **Server** — Adresse, Abmelden
Die App führt darunter weiter **Downloads** und **Diagnose**. Das ist kein Verstoß gegen den Grundsatz: Wo die Funktion fehlt, fehlt auch ihre Einstellung.
**Speicherschlüssel dürfen sich unterscheiden** (`UserDefaults` gegen `localStorage`), Bedeutung und Wertebereich nicht. Ein Regler von 70 % bis 180 % heißt auf beiden Seiten dasselbe.
## Phase 1 — Was der App fehlt
`HomeLayoutSettings` bekommt zwei Werte, beide mit Voreinstellung auf dem heutigen festen Verhalten, damit sich ohne Zutun nichts ändert:
- `cardScale: Double` (0.7 … 1.8, Standard 1.0) — multipliziert die Kachelbreiten in `MediaRow` (heute fest 220 für Querformat, 116 für Plakate) und die Mindestbreite im Mediathek-Raster.
- `heroHeight: Double` (0.4 … 0.95, Standard 0.82) — tritt an die Stelle des festen Werts in `HeroCarousel`.
In der Oberfläche: **Kachelgröße** unter Darstellung (es geht ums Aussehen, nicht um die Startseite), **Aufmacherhöhe** unter Startseite, direkt bei Quelle und Anzahl.
Das ist zugleich der Zoom-Wunsch, der die ganze Sache angestoßen hat.
## Phase 2 — Web aufräumen und angleichen
- Plakate/Querformat entfernen, automatische Wahl wie in der App.
- Gliederung auf die fünf Abschnitte oben bringen.
- Eigene Akzentfarbe als Hex-Eingabe, mit derselben Kontrastprüfung wie die App: eine Farbe, die auf dem dunklen Grund nicht lesbar ist, wird aufgehellt statt übernommen.
## Phase 3 — Reihen ordnen und ausblenden im Web
Die App kann Reihen der Startseite umsortieren und einzeln ausblenden (`Arrangement` in MediaKit). Im Web fehlt das ganz. Es kommt als Liste mit Ziehgriff und Häkchen.
## Phase 4 — Wiedergabe und Sprachen im Web
- **Wiedergabe**: Standardtempo, Spulweite vor und zurück, Qualität. Die App unterscheidet WLAN und Mobilfunk; im Browser gibt es diese Unterscheidung nicht verlässlich, deshalb dort **eine** Qualitätsstufe. Das ist kein Auseinanderlaufen, sondern derselbe Begriff unter anderen Bedingungen.
- **Sprachen**: bevorzugte Ton- und Untertitelspur, dieselben Werte wie in der App.
## Risiken
1. **Die Kachelgröße greift an mehreren Stellen.** `MediaRow`, das Mediathek-Raster, vielleicht die Detailseiten. Wird eine vergessen, sieht die Startseite anders aus als die Mediathek — und das fällt erst beim Danebenhalten auf.
2. **`heroHeight` und der Aufmacher-Überlappungsgriff.** Der Aufmacher zieht sich um die Inselhöhe nach oben und rechnet seine Höhe aus einem Anteil plus dieser Strecke. Ein veränderlicher Anteil darf diese Rechnung nicht zerlegen.
3. **Der Web-Player ist einfach.** Tempo und Spulweite brauchen dort erst Bedienelemente; heute steht da das nackte `<video>`-Element des Browsers.
## Fertig ist es, wenn
- App und Web zeigen dieselben fünf Abschnitte in derselben Reihenfolge mit denselben Bezeichnungen.
- Kachelgröße und Aufmacherhöhe wirken in der App — auf Startseite **und** Mediathek.
- Im Web gibt es keine Einstellung mehr, die die App nicht kennt.
- Downloads und Diagnose stehen weiterhin nur in der App, und der Grund dafür ist aufgeschrieben.
- Voreinstellungen entsprechen überall dem bisherigen Verhalten: wer nichts anfasst, merkt nichts.