diff --git a/docs/specs/lesereisen-reader-spec.html b/docs/specs/lesereisen-reader-spec.html
index 2ae036e3..785cd052 100644
--- a/docs/specs/lesereisen-reader-spec.html
+++ b/docs/specs/lesereisen-reader-spec.html
@@ -631,7 +631,7 @@
| Bedingte Logik | {#if geschichte.type === 'JOURNEY'} JourneyReader {:else} StoryReader {/if} | in +page.svelte von /geschichten/[id] |
| Artikel-Container | max-w-3xl mx-auto px-4 py-8 | gleich wie StoryReader |
| Artikel-Sheet | rounded-sm border border-line bg-sheet shadow-sm px-5 py-6 sm:px-10 sm:py-10 | Lesebogen-Panel zwischen Canvas und weißen Karten (Token --color-sheet), gleich wie Story (R-2); BackButton bleibt außerhalb |
- | Journey-Badge | inline-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 |
+ | Journey-Badge | inline-flex px-2 py-px rounded-sm text-[10px] font-bold uppercase tracking-widest bg-journey-tint text-journey border border-journey-border mb-2 | über dem Titel; nicht für STORY |
| Titel | font-serif text-3xl text-ink leading-tight mb-4 | gleich wie Story |
| Metabar | flex items-center gap-3 pb-4 border-b border-subtle mb-4 | gleich wie Story |
| Bearbeiten/Löschen | nur BLOG_WRITE; auf Mobile im ··· BottomSheet | gleich wie Story |
@@ -647,7 +647,7 @@
| Annotation | mt-3 pl-3 border-l-2 border-brand-mint bg-muted rounded-r-sm py-1.5 pr-2 | nur rendern wenn item.note vorhanden |
| Annotations-Text | text-base italic text-ink-2 leading-relaxed | |
| Interlude-Item |
- | Interlude-Block | pl-3 border-l-2 border-orange-400 bg-orange-50 rounded-r-sm py-2 pr-3 my-4 | item.document === null |
+ | Interlude-Block | pl-3 border-l-2 border-journey-border bg-journey-tint rounded-r-sm py-2 pr-3 my-4 | item.document === null |
| Interlude-Text | text-base italic text-ink leading-relaxed | item.note; plaintext |
| Mobile |
| ··· Menü | ml-auto text-ink-3; öffnet BottomSheet mit Bearbeiten + Löschen | BLOG_WRITE; gleich wie Story |
diff --git a/frontend/src/lib/geschichte/JourneyInterlude.svelte b/frontend/src/lib/geschichte/JourneyInterlude.svelte
index cd66fd4b..dfb66cd7 100644
--- a/frontend/src/lib/geschichte/JourneyInterlude.svelte
+++ b/frontend/src/lib/geschichte/JourneyInterlude.svelte
@@ -11,7 +11,7 @@ let { note }: Props = $props();
{note}
diff --git a/frontend/src/lib/geschichte/JourneyInterlude.svelte.spec.ts b/frontend/src/lib/geschichte/JourneyInterlude.svelte.spec.ts
index 3764542c..506903ec 100644
--- a/frontend/src/lib/geschichte/JourneyInterlude.svelte.spec.ts
+++ b/frontend/src/lib/geschichte/JourneyInterlude.svelte.spec.ts
@@ -35,6 +35,15 @@ describe('JourneyInterlude', () => {
expect(el?.getAttribute('aria-label')).toBe(m.journey_interlude_aria_label());
});
+ it('uses mode-aware journey tokens, not raw orange utilities (#801)', async () => {
+ render(JourneyInterlude, { props: { note: 'Notiz' } });
+
+ const block = document.querySelector('[role="note"]');
+ expect(block!.className).toContain('bg-journey-tint');
+ expect(block!.className).toContain('border-journey-border');
+ expect(block!.className).not.toContain('bg-orange-50');
+ });
+
it('note text uses readable body size (text-base, #800)', async () => {
render(JourneyInterlude, { props: { note: 'Notiz' } });
diff --git a/frontend/src/routes/geschichten/[id]/+page.svelte b/frontend/src/routes/geschichten/[id]/+page.svelte
index 0c2b85ad..fa0731a3 100644
--- a/frontend/src/routes/geschichten/[id]/+page.svelte
+++ b/frontend/src/routes/geschichten/[id]/+page.svelte
@@ -60,7 +60,7 @@ async function handleDelete() {
{#if isJourney}
{m.journey_badge_detail()}
diff --git a/frontend/src/routes/geschichten/[id]/page.svelte.test.ts b/frontend/src/routes/geschichten/[id]/page.svelte.test.ts
index 26f5bcd0..b4b13aae 100644
--- a/frontend/src/routes/geschichten/[id]/page.svelte.test.ts
+++ b/frontend/src/routes/geschichten/[id]/page.svelte.test.ts
@@ -84,6 +84,18 @@ describe('geschichten/[id] page', () => {
}
});
+ it('journey badge uses mode-aware journey tokens, not raw orange utilities (#801)', async () => {
+ render(GeschichtePage, {
+ context: new Map([[CONFIRM_KEY, createConfirmService()]]),
+ props: { data: baseData({ geschichte: baseGeschichte({ type: 'JOURNEY' }) }) }
+ });
+
+ const badge = document.querySelector('h1')!.parentElement!.querySelector('span');
+ expect(badge!.className).toContain('bg-journey-tint');
+ expect(badge!.className).toContain('text-journey');
+ expect(badge!.className).not.toContain('bg-orange-50');
+ });
+
it('renders the author full name from firstName + lastName', async () => {
render(GeschichtePage, {
context: new Map([[CONFIRM_KEY, createConfirmService()]]),