Redesign top bar with dedicated round badge and centered combatant name
Replace the combined "Round N — Name" string with a three-zone flex layout:
left (prev button + R{n} pill badge), center (prominent combatant name with
truncation), right (action buttons + next button). Adds 13 unit tests
covering all user stories including layout robustness and empty state.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
29
specs/034-topbar-redesign/data-model.md
Normal file
29
specs/034-topbar-redesign/data-model.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Data Model: Redesign Top Bar with Dedicated Round and Turn Fields
|
||||
|
||||
**Feature**: 034-topbar-redesign | **Date**: 2026-03-11
|
||||
|
||||
## Summary
|
||||
|
||||
No data model changes required. This feature is a purely presentational refactor of the `TurnNavigation` component. All data needed for the new layout already exists in the `Encounter` type:
|
||||
|
||||
- `encounter.roundNumber` — displayed in the round badge
|
||||
- `encounter.combatants[encounter.activeIndex].name` — displayed as the centered combatant name
|
||||
- `encounter.combatants.length` — used to determine the no-combatants state
|
||||
|
||||
## Existing Entities (no changes)
|
||||
|
||||
- **Encounter**: Contains `roundNumber` (number), `activeIndex` (number), and `combatants` (array). Already passed to `TurnNavigation` as a prop.
|
||||
- **Combatant**: Contains `name` (string). Already accessed via `encounter.combatants[encounter.activeIndex]`.
|
||||
|
||||
## Component Interface (no changes)
|
||||
|
||||
The `TurnNavigationProps` interface remains unchanged:
|
||||
|
||||
```
|
||||
encounter: Encounter
|
||||
onAdvanceTurn: () => void
|
||||
onRetreatTurn: () => void
|
||||
onClearEncounter: () => void
|
||||
onRollAllInitiative: () => void
|
||||
onOpenSourceManager: () => void
|
||||
```
|
||||
Reference in New Issue
Block a user