diff --git a/frontend/src/lib/shared/dashboard/ReaderHeaderBar.svelte b/frontend/src/lib/shared/dashboard/ReaderHeaderBar.svelte index 7d94ab56..08509393 100644 --- a/frontend/src/lib/shared/dashboard/ReaderHeaderBar.svelte +++ b/frontend/src/lib/shared/dashboard/ReaderHeaderBar.svelte @@ -37,11 +37,11 @@ const timeLabel = $derived.by(() => {
{documents ?? '—'} { {persons ?? '—'} {m.dashboard_reader_all_persons()} diff --git a/frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte.spec.ts b/frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte.spec.ts index 03c3e1f9..20e63879 100644 --- a/frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte.spec.ts +++ b/frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte.spec.ts @@ -92,11 +92,11 @@ describe('ReaderPersonChips', () => { await expect.element(allLink).toHaveAttribute('href', '/persons'); }); - it('"Alle Personen" link has text-link-quiet class', async () => { + it('"Alle Personen" link has text-ink-2 class', async () => { render(ReaderPersonChips, { persons: [person1] }); const allLink = page.getByRole('link', { name: /Alle Personen/i }); const cls = ((await allLink.element()) as HTMLElement).className; - expect(cls).toMatch(/text-link-quiet/); + expect(cls).toMatch(/text-ink-2/); }); it('exposes a focus-visible ring on the "Alle Personen" link', async () => { diff --git a/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte b/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte index 2f671bae..9f54d6b5 100644 --- a/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte +++ b/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte @@ -24,7 +24,7 @@ function isNew(doc: Document): boolean { {m.dashboard_all_documents()} @@ -61,7 +61,7 @@ function isNew(doc: Document): boolean { {doc.title} {#if isNew(doc)} {m.dashboard_badge_new()} diff --git a/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts b/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts index e3f7b3e8..c13c92b1 100644 --- a/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts +++ b/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts @@ -88,12 +88,12 @@ describe('ReaderRecentDocs', () => { expect(thumb!.className).toMatch(/rounded-/); }); - it('shows "Neu" mint-pill badge when createdAt equals updatedAt', async () => { + it('shows "Neu" accent-pill badge when createdAt equals updatedAt', async () => { render(ReaderRecentDocs, { documents: [baseDoc] }); const badge = page.getByText(/^Neu$/i); await expect.element(badge).toBeInTheDocument(); const cls = ((await badge.element()) as HTMLElement).className; - expect(cls).toMatch(/bg-mint-soft/); + expect(cls).toMatch(/bg-accent-bg/); expect(cls).toMatch(/rounded-full/); expect(cls).toMatch(/\btext-ink\b/); }); diff --git a/frontend/src/lib/shared/dashboard/ReaderRecentStories.svelte b/frontend/src/lib/shared/dashboard/ReaderRecentStories.svelte index e903a9da..95c446f7 100644 --- a/frontend/src/lib/shared/dashboard/ReaderRecentStories.svelte +++ b/frontend/src/lib/shared/dashboard/ReaderRecentStories.svelte @@ -32,7 +32,7 @@ function excerpt(body: string | undefined): string { {m.dashboard_reader_all_stories()} diff --git a/frontend/src/routes/layout.css b/frontend/src/routes/layout.css index 9137a68f..85c41e67 100644 --- a/frontend/src/routes/layout.css +++ b/frontend/src/routes/layout.css @@ -80,12 +80,6 @@ /* Static brand tokens (not themed) */ --color-brand-navy: var(--palette-navy); --color-brand-mint: var(--palette-mint); - - /* Reader dashboard tokens */ - --color-mint-soft: var(--c-mint-soft); /* Mint-Pill background */ - --color-line-soft: var(--c-line-soft); /* Stat-column dividers, row borders */ - --color-link-quiet: var(--c-link-quiet); /* "Alle …" secondary links */ - --color-ink-4: var(--c-ink-4); /* Card-head labels (light = ink-3, dark = #7080a8) */ } /* ─── 4. Light mode (default) ─────────────────────────────────────────────── */ @@ -166,12 +160,6 @@ with axe (tracked in #480) before tweaking the palette. */ --timeline-bar-idle: rgba(161, 220, 216, 0.35); --timeline-bar-outside: var(--c-line); - - /* Reader dashboard tokens — light mode */ - --c-mint-soft: #d4f0ee; /* Mint-Pill BG — decorative fill (1.1:1 on white, WCAG carve-out) */ - --c-line-soft: #f0ede6; /* Stat-column dividers, card row separator */ - --c-link-quiet: #4a6e8a; /* Quiet link — 4.65:1 on #f0efe9 canvas WCAG AA ✓ */ - --c-ink-4: #6b7280; /* Card-head labels (= ink-3 in light) */ } /* ─── 5. Dark mode ─────────────────────────────────────────────────────────── */ @@ -248,12 +236,6 @@ clears WCAG 1.4.11 non-text contrast for large UI elements. */ --timeline-bar-idle: #3a6e8c; --timeline-bar-outside: #1a2735; - - /* Reader dashboard tokens — dark mode */ - --c-mint-soft: rgba(161, 218, 216, 0.14); - --c-line-soft: rgba(255, 255, 255, 0.06); - --c-link-quiet: var(--palette-mint); - --c-ink-4: #7080a8; /* 5.0:1 on #011526 WCAG AA ✓ */ } } @@ -326,12 +308,6 @@ clears WCAG 1.4.11 non-text contrast for large UI elements. */ --timeline-bar-idle: #3a6e8c; --timeline-bar-outside: #1a2735; - - /* Reader dashboard tokens — dark mode */ - --c-mint-soft: rgba(161, 218, 216, 0.14); - --c-line-soft: rgba(255, 255, 255, 0.06); - --c-link-quiet: var(--palette-mint); - --c-ink-4: #7080a8; /* 5.0:1 on #011526 WCAG AA ✓ */ } /* ─── 6. Icon inversion — De Gruyter icons are black SVGs loaded as ──── */