Files
initiative/specs/033-fix-concentration-glow-clip/tasks.md
Lukas 55d322a727 Fix concentration glow clipping at container edges
Add padding to the inner combatant list container so the box-shadow glow
from the concentration-damage animation renders fully on all sides,
preventing clipping by the scrollable parent's implicit overflow-x.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 11:54:22 +01:00

116 lines
4.2 KiB
Markdown

# Tasks: Fix Concentration Shake Glow Clipping
**Input**: Design documents from `/specs/033-fix-concentration-glow-clip/`
**Prerequisites**: plan.md (required), spec.md (required for user stories), research.md, data-model.md, quickstart.md
**Tests**: No test tasks — this is a CSS-only visual fix. Verification is done via manual inspection per quickstart.md.
**Organization**: Tasks are grouped by user story to enable independent implementation and testing of each story.
## Format: `[ID] [P?] [Story] Description`
- **[P]**: Can run in parallel (different files, no dependencies)
- **[Story]**: Which user story this task belongs to (e.g., US1, US2)
- Include exact file paths in descriptions
## Phase 1: Setup
**Purpose**: No setup needed — existing project, no new dependencies or configuration changes.
*(No tasks in this phase)*
---
## Phase 2: Foundational (Blocking Prerequisites)
**Purpose**: No foundational work needed — the fix modifies existing CSS layout only.
*(No tasks in this phase)*
---
## Phase 3: User Story 1 - Concentration Damage Glow Visible (Priority: P1) MVP
**Goal**: The concentration-damage glow effect is fully visible on both left and right edges without clipping.
**Independent Test**: Deal damage to a concentrating creature and verify the purple glow extends fully on all sides without being cut off at container edges.
### Implementation for User Story 1
- [x] T001 [US1] Add horizontal padding (`px-2`) to the inner combatant list container `<div className="flex flex-col pb-2">` in `apps/web/src/App.tsx` (line ~158) so the `box-shadow` glow renders within the overflow area instead of being clipped
**Checkpoint**: At this point, the glow should be fully visible on left and right edges.
---
## Phase 4: User Story 2 - No Layout Side Effects (Priority: P1)
**Goal**: The padding fix does not introduce horizontal scrollbars, layout shifts, or visual artifacts.
**Independent Test**: Trigger the animation at desktop and mobile widths (320px+), confirm no horizontal scrollbar appears and no elements shift position.
### Implementation for User Story 2
- [x] T002 [US2] Verify at desktop and mobile viewports (320px+) that the padding added in T001 does not cause a horizontal scrollbar or layout shift in `apps/web/src/App.tsx`; also verify that multiple concentrating rows animating simultaneously display independent glows without overlap artifacts; adjust padding value if needed
**Checkpoint**: Animation renders correctly at all viewport widths with no side effects.
---
## Phase 5: Polish & Cross-Cutting Concerns
**Purpose**: Final validation and quality gates.
- [x] T003 Run `pnpm check` to ensure all quality gates pass (lint, typecheck, tests, coverage)
- [x] T004 Run quickstart.md validation steps from `specs/033-fix-concentration-glow-clip/quickstart.md`
---
## Dependencies & Execution Order
### Phase Dependencies
- **Phase 3 (US1)**: No prerequisites — single file change
- **Phase 4 (US2)**: Depends on T001 completion (verifies T001 doesn't regress)
- **Phase 5 (Polish)**: Depends on T001 and T002 completion
### User Story Dependencies
- **User Story 1 (P1)**: Independent — core fix
- **User Story 2 (P1)**: Depends on US1 — verification of no side effects
### Within Each User Story
- US1: Single task (T001)
- US2: Single verification task (T002) dependent on T001
### Parallel Opportunities
- No parallel opportunities — this is a 1-file, 1-line fix with sequential verification
---
## Implementation Strategy
### MVP First (User Story 1 Only)
1. Complete T001: Add padding to inner container
2. **STOP and VALIDATE**: Visually verify glow is no longer clipped
3. Complete T002: Verify no layout side effects
4. Complete T003-T004: Quality gates and quickstart validation
### Incremental Delivery
1. T001 → Glow fix applied
2. T002 → No regressions confirmed
3. T003-T004 → Quality gates pass, ready to merge
---
## Notes
- This is a minimal CSS-only fix: one Tailwind class addition to one file
- The root cause is CSS spec behavior: `overflow-y: auto` forces `overflow-x: auto`, clipping `box-shadow`
- `box-shadow` is paint-only and does not affect layout, so padding accommodates the glow without shifting content
- If `px-2` (8px) is insufficient for the 6px glow spread, increase to `px-3` (12px)