Lesereisen — Reader-Integration

Typauswahl bei /geschichten/new, Journey-Badge auf der Übersichtsliste und die neue geordnete Leseansicht auf /geschichten/[id] wenn type === 'JOURNEY'. Bestehende Story-Ansichten bleiben unverändert.

Familienarchiv
Final Spec
2026-06-07 · @leonievoss
Issue #752
R

Lesereisen — Reader

Alle angemeldeten Familienmitglieder können Lesereisen entdecken und in Briefsequenzen mit Kuratoren-Notizen eintauchen. BLOG_WRITERs sehen zusätzlich Bearbeiten/Löschen-Aktionen.

/geschichten · /geschichten/new · /geschichten/[id]
Konzept

Eine Lesereise ist eine Geschichte mit type === 'JOURNEY'. Ihr Kerninhalt ist eine geordnete Sequenz von Briefen (JourneyItems mit document_id) und Zwischentexten (JourneyItems ohne document_id). Das optionale Feld body dient als Einleitung/Preface.

Diese Spec deckt drei Änderungen ab: (1) die Typauswahl auf /geschichten/new als vorgelagerter Schritt, (2) das „REISE"-Badge in der Übersichtsliste, und (3) die neue Journey-Leseansicht auf der Detailseite, die den bestehenden Prosa-Body durch eine nummerierte Briefliste ersetzt.

Dokument-Items zeigen Titel, Datum, Sender→Empfänger und einen Link zum Brief. Optionale Kuratoren-Notizen erscheinen als Annotation mit Mint-Linker-Rand unter dem Briefeintrag. Interlude-Items (kein Dokument) erscheinen als eingerückte Absätze mit orangenem linken Rand — klar vom Dokumenttyp unterscheidbar, aber harmonisch im Lesefluss.

Screens — Typauswahl

LR-0 — Typauswahl /geschichten/new

Issue #752 · LR-0

Neuer vorgelagerter Schritt beim Erstellen einer Geschichte. Zwei Karten zur Auswahl: „Geschichte" (Prosa) und „Lesereise" (Briefsequenz). Die ausgewählte Karte wird hervorgehoben. Erst nach Auswahl wird der „Weiter"-Button aktiv. Auswahl bleibt im URL-Param erhalten (?type=JOURNEY).

Varianten: Keine Auswahl (Weiter-Button inaktiv) · Lesereise gewählt (hier gezeigt) · Geschichte gewählt

Desktop — 1040px · Lesereise gewählt
Dokumente Personen Geschichten Chronik
MR
Neue Geschichte
ENTWURF
Was möchtest du erstellen?
✍️
Geschichte
Freier Prosatext über Familienerlebnisse, Erinnerungen oder historische Einordnungen — mit verlinkten Personen und Dokumenten.
📜
Lesereise
Geordnete Briefsequenz mit optionalen Kuratoren-Notizen zwischen den Briefen — für chronologische Korrespondenz-Sammlungen.

impl-ref — LR-0 Typauswahl

ElementWertHinweise
Layout
Selector areaflex flex-1 items-center justify-center bg-canvas px-6 py-10zentriert, füllt restliche Höhe
Fragefont-serif text-sm text-ink-2 text-center mb-4
Karten-Gridflex gap-42 gleich breite Karten; auf Mobile flex-col
Type-Karte
Karte (inaktiv)border border-line rounded-md p-4 bg-white cursor-pointer hover:border-primary hover:bg-surfacefocus-visible:ring-2 focus-visible:ring-primary
Karte (ausgewählt)border-2 border-orange-500 bg-orange-50 shadow-smaria-pressed="true"; kein Tailwind-Kürzel — nutze CSS-var(--orange)
Check-Kreisw-5 h-5 rounded-full bg-orange-500 flex items-center justify-center self-end mt-2nur sichtbar wenn ausgewählt
Kartentitelfont-serif text-sm text-ink
Kartenbeschreibungtext-xs text-ink-3 leading-relaxed mt-1
Navigation
Weiter-Buttonrounded border border-primary bg-primary text-white px-4 py-2 text-sm font-medium disabled:opacity-40disabled wenn keine Karte ausgewählt
URL-Param?type=STORY | ?type=JOURNEYper goto() nach Klick auf Weiter; lesefreundlich bookmarkbar
Mobileflex-col Karten; volle Breitekein Scrollbedarf auf 320px
Screens — Übersichtsliste

LR-1 — Reise-Badge in /geschichten

Issue #752 · LR-1

Die Übersichtsliste erhält ein kleines „REISE"-Badge in der Metaspalte einer Journey-Zeile — unterhalb von Datum und Personenchip. Zeilen mit type === 'STORY' bleiben unverändert. Das Badge ist nicht klickbar, dient als reine visuelle Unterscheidung.

Varianten: Mischte Liste (hier gezeigt) · Nur-Journey-Filter · Nur-Story-Ansicht (unverändert)

Desktop — 1040px · gemischte Liste
Dokumente Personen Geschichten Chronik
MR
Geschichten
Alle Franz Raddatz Emma Müller + Person wählen
MR
Maria Raddatz
14. März 2025
FR Franz Raddatz
Der Sommer in Breslau
Oma erzählte oft vom letzten Sommer vor dem Krieg, als die Familie noch vollständig zusammen war und niemand ahnte, was kommen würde…
KR
Klaus Raddatz
15. Mai 2025
FR Franz Raddatz REISE
Briefe aus Breslau 1938–1942
Eine Lesereise durch den Briefwechsel zwischen Franz und Emma — von den letzten Friedenssommern bis zum Ende des Krieges.
GK
Gertrud Koch
18. Okt. 2024
EM Emma Müller
Die Hochzeit im Krieg
1943, mitten im Chaos — Emma bestand darauf, dass das Fest stattfand. Ihr Bruder kam auf Fronturlaub, drei Tage nur, aber es reichte…
Mobile — 320px
9:41●●●
Geschichten
Alle Franz Raddatz + Person…
MR
Maria Raddatz 14. Mrz. 2025
Der Sommer in Breslau
Oma erzählte oft vom letzten Sommer vor dem Krieg…
KR
Klaus Raddatz 15. Mai 2025
Briefe aus Breslau 1938–1942
REISE
Eine Lesereise durch den Briefwechsel zwischen Franz und Emma…

impl-ref — LR-1 Journey-Badge in der Liste

ElementWertHinweise
Badge
Journey badgeinline-flex items-center px-1.5 py-px rounded-sm text-[10px] font-bold uppercase tracking-wide bg-orange-50 text-orange-700 border border-orange-200nur wenn type === 'JOURNEY'
Position Desktopunterhalb Datum-Text und Personenchip in der Metaspalte (g-meta)kein extra Abstand nötig — gap-1 der Flex-Spalte reicht
Position Mobileinline flex items-center gap-1.5 neben TitelTitel + Badge in einem flex-Wrapper; badge shrink-0
aria-labelaria-label="Lesereise"Badge ist span, kein interaktives Element
Bedingte Logik
Svelte guard{#if geschichte.type === 'JOURNEY'}<span …>REISE</span>{/if}kein Badge für STORY
Screens — Journey-Leseansicht

LR-2 — Journey-Detail /geschichten/[id]

Issue #752 · LR-2

Wenn type === 'JOURNEY' ersetzt die geordnete Briefliste den Prosa-Body. Optional zeigt ein Einleitungsabsatz (body) vor den Items. Jedes Item ist entweder ein Briefeintrag (Kartentitel, Datum, Link) oder ein Interlude-Absatz (orangener linker Rand, kursiv). Die Reihenfolge ergibt sich von oben nach unten — keine Nummern. Briefeinträge können eine optionale Kuratoren-Annotation unter dem Link zeigen.

Varianten: Leserin ohne Schreibrecht · BLOG_WRITER (Bearbeiten/Löschen sichtbar — hier gezeigt) · Mobile

Desktop — 1040px · BLOG_WRITER-Ansicht
Dokumente Personen Geschichten Chronik
MR
Zurück zu Geschichten
LESEREISE
Briefe aus Breslau 1938–1942
KR
Klaus Raddatz
zusammengestellt am 15. Mai 2025
Löschen
Der Briefwechsel zwischen Franz Raddatz und seiner Schwester Emma umspannt vier Jahre — von den letzten unbeschwerten Sommerwochen 1938 bis zum Kriegsende. Diese Lesereise folgt den Briefen in chronologischer Reihenfolge.
Brief vom 12. Juli 1938
12. Juli 1938 · von Franz Raddatz an Emma Müller
Im Sommer 1938 schrieb Franz voller Zuversicht — er hatte kaum eine Ahnung, wie bald sich die Welt um ihn herum verändern würde. Seine Briefe aus dieser Zeit tragen eine Leichtigkeit, die in den späteren Kriegsjahren vollständig verschwindet.
Postkarte aus Breslau, August 1938
22. Aug. 1938 · von Franz Raddatz an Emma Müller
Diese Karte ist ungewöhnlich kurz für Franz — vier Zeilen, fast hastig. Ein Zeichen der aufkommenden Unruhe in den Nachrichten, oder schlicht die Hitze des Augusts?
Brief vom 3. September 1939
3. Sept. 1939 · von Emma Müller an Franz Raddatz
Mobile — 320px · Leserin
9:41●●●
Zurück
LESEREISE
Briefe aus Breslau 1938–1942
KR
Klaus Raddatz
15. Mai 2025
···
Der Briefwechsel zwischen Franz und Emma — von 1938 bis Kriegsende.
Brief vom 12. Juli 1938
12. Juli 1938 · Franz → Emma
Im Sommer 1938 schrieb Franz voller Zuversicht — er hatte kaum eine Ahnung, wie bald sich die Welt um ihn herum verändern würde.
Postkarte Aug. 1938
22. Aug. 1938 · Franz → Emma

impl-ref — LR-2 Journey-Leseansicht

ElementWertHinweise
Seitenstruktur
Bedingte Logik{#if geschichte.type === 'JOURNEY'} JourneyReader {:else} StoryReader {/if}in +page.svelte von /geschichten/[id]
Artikel-Containermax-w-3xl mx-auto px-4 py-8gleich wie StoryReader
Journey-Badgeinline-flex px-2 py-px rounded-sm text-[10px] font-bold uppercase tracking-widest bg-orange-50 text-orange-700 border border-orange-200 mb-2über dem Titel; nicht für STORY
Titelfont-serif text-3xl text-ink leading-tight mb-4gleich wie Story
Metabarflex items-center gap-3 pb-4 border-b border-subtle mb-4gleich wie Story
Bearbeiten/Löschennur BLOG_WRITE; auf Mobile im ··· BottomSheetgleich wie Story
Intro-Absatz
Intro (body)font-serif text-sm text-ink-2 italic leading-relaxed mb-6 pb-4 border-b border-dashed border-subtlenur rendern wenn body nicht leer; kein HTML-Rendering — plaintext
Dokument-Item
Item-Zeilemb-3kein flex nötig — Karte ist full-width
Dokumentkartebg-white border border-line rounded-sm p-3
Brieftitelfont-serif text-sm text-ink leading-snug mb-0.5document.title
Briefmetatext-xs text-ink-3 mb-2formatDate(document.documentDate) · "von X an Y"
Brief öffnen Linkinline-flex items-center gap-1 text-xs font-semibold text-ink hover:text-primaryhref="/documents/{item.document.id}"
Kuratoren-Annotation
Annotationmt-3 pl-3 border-l-2 border-mint bg-surface rounded-r-sm py-1.5 pr-2nur rendern wenn item.note vorhanden
Annotations-Texttext-xs italic text-ink-2 leading-relaxed
Interlude-Item
Interlude-Blockpl-3 border-l-2 border-orange-400 bg-orange-50 rounded-r-sm py-2 pr-3 my-4item.document === null
Interlude-Texttext-xs italic text-ink leading-relaxeditem.note; plaintext
Mobile
··· Menüml-auto text-ink-3; öffnet BottomSheet mit Bearbeiten + LöschenBLOG_WRITE; gleich wie Story
Touch Target (Brief öffnen)min-h-[44px] durch padding auf der KarteWCAG 2.2 AA

Implementation Guide — Lesereisen Reader

Geänderte Views und Routen

ViewRouteÄnderung
Neue Geschichte/geschichten/newNeuer Typauswahl-Schritt als first render; setzt ?type=STORY|JOURNEY
Geschichten-Liste/geschichtenJourney-Badge in GeschichtenCard wenn type === 'JOURNEY'
Geschichte-Detail/geschichten/[id]Bedingte Verzweigung: JourneyReader | StoryReader

Neue Komponenten

Datenmodell (nach #750)

Typauswahl — Implementierungshinweise

Journey-Badge — Implementierungshinweise

Journey-Reader — Implementierungshinweise

Berechtigungen

Barrierefreiheit