diff --git a/apps/web/src/app/layout/top-bar/top-bar.component.html b/apps/web/src/app/layout/top-bar/top-bar.component.html index b94ed41..055a500 100644 --- a/apps/web/src/app/layout/top-bar/top-bar.component.html +++ b/apps/web/src/app/layout/top-bar/top-bar.component.html @@ -4,7 +4,7 @@ @if (character(); as character) {
{{ character.name }} - Renown {{ character.renown }} + Ansehen {{ character.renown }}
{{ character.currentHp }} / {{ character.maxHp }} diff --git a/apps/web/src/app/layout/top-bar/top-bar.component.scss b/apps/web/src/app/layout/top-bar/top-bar.component.scss index fd68c3e..4fb0f27 100644 --- a/apps/web/src/app/layout/top-bar/top-bar.component.scss +++ b/apps/web/src/app/layout/top-bar/top-bar.component.scss @@ -53,7 +53,7 @@ font-size: 1.1rem; } -.top-bar__level, +.top-bar__renown, .top-bar__loading { color: var(--ar-text-muted); font-size: var(--ar-font-sm); diff --git a/apps/web/src/app/layout/top-bar/top-bar.component.spec.ts b/apps/web/src/app/layout/top-bar/top-bar.component.spec.ts index a904e11..fb1d48c 100644 --- a/apps/web/src/app/layout/top-bar/top-bar.component.spec.ts +++ b/apps/web/src/app/layout/top-bar/top-bar.component.spec.ts @@ -37,10 +37,10 @@ describe('TopBarComponent', () => { expect(element.querySelector('[data-top-bar-silver]')?.textContent).toContain('120'); }); - it('shows Renown instead of Level, and displays no XP value', async () => { + it('shows Ansehen instead of Level, and displays no XP value', async () => { const element = await render(characterFixture({ renown: 3 })); - expect(element.textContent).toContain('Renown 3'); + expect(element.textContent).toContain('Ansehen 3'); expect(element.querySelector('[data-top-bar-experience]')).toBeNull(); }); diff --git a/docs/superpowers/specs/2026-08-21-renown-reputation-foundation-design.md b/docs/superpowers/specs/2026-08-21-renown-reputation-foundation-design.md index 4e21d9e..1eaa045 100644 --- a/docs/superpowers/specs/2026-08-21-renown-reputation-foundation-design.md +++ b/docs/superpowers/specs/2026-08-21-renown-reputation-foundation-design.md @@ -259,7 +259,9 @@ POST /api/turn-ins → { turnInKey: string; quantity: number } → TurnInR ## 11. Frontend changes - **`game-api.models.ts`**: `CharacterResponse.level`/`.experience` → `.renown: number`. New `ReputationEntry`/`TurnInResult` interfaces mirroring the API DTOs. `InventoryItem.item.type` (if surfaced) reflects the new `ItemType` values; `requiredLevel` removed if present anywhere in the web model. -- **Topbar** (`top-bar.component.html`): `Stufe {{ character.level }}` → `Renown {{ character.renown }}`; `data-top-bar-experience` XP block deleted entirely. +- **Topbar** (`top-bar.component.html`): `Stufe {{ character.level }}` → `Ansehen {{ character.renown }}`; `data-top-bar-experience` XP block deleted entirely. The wrapping span's class is renamed `top-bar__level` → `top-bar__renown` to match. + + **R17 — the German display term for Renown is "Ansehen", not "Renown" and not "Ruf".** Earlier drafts of this line said `Renown`, which contradicted the global constraint that all user-facing copy is German — the working language of this document leaking into copy-locked text. `Ruf` is unavailable: it is the German term this project already uses for the separate per-faction *Reputation* system (see the reputation display's `factionName + ' Ruf'`), and the two systems are deliberately kept distinct. `Ansehen` (standing/prestige) is unclaimed and matches §2.2's definition of Renown as the character's overall significance in the world. - **Combat victory screen** (`combat-page.component.html`/`.spec.ts`): `data-reward-experience` block and its three referencing tests deleted (R16); `rewards.silver` block stays. - **New `ReputationDisplayComponent`** (`apps/web/src/app/shared/reputation-display/`): standalone component, input `entry: ReputationEntry`, renders faction name, rank label, `current / nextThreshold` (or just current if `nextThreshold` is null, at Esteemed), a progress bar. Built and unit-tested; not wired into any page (R15).