Photo and Icon components #37

Member

Task: a9214566-6076-49e5-98b8-89ba98d6d838 Photo and Icon components.

What changed: web/src/ui adds Icon (lucide-react, strokeWidth 2.75, nav 22 px / inline 16 px, aria-hidden unless labelled) and Photo (srcset /media/photos/{id}-400.jpg and -1200.jpg, lazy, washed filter, radius/inset, striped dish-photo fallback). lucide-react added to package.json; it is an approved dependency.

Why: Feature 05 task 4.

Done-condition: Vitest covers srcset, fallback on error, and alt/aria. Local lint:colors, typecheck, test (18 files, 91 tests) and build passed. Not verified in a real browser.

Base: feature/64e5bb19-c9a2-4c6a-8f0c-aceae43fb732-frontend-foundation at 732aa92a8c.
Head: 3f5dea37d8

Task: a9214566-6076-49e5-98b8-89ba98d6d838 Photo and Icon components. What changed: web/src/ui adds Icon (lucide-react, strokeWidth 2.75, nav 22 px / inline 16 px, aria-hidden unless labelled) and Photo (srcset /media/photos/{id}-400.jpg and -1200.jpg, lazy, washed filter, radius/inset, striped dish-photo fallback). lucide-react added to package.json; it is an approved dependency. Why: Feature 05 task 4. Done-condition: Vitest covers srcset, fallback on error, and alt/aria. Local lint:colors, typecheck, test (18 files, 91 tests) and build passed. Not verified in a real browser. Base: feature/64e5bb19-c9a2-4c6a-8f0c-aceae43fb732-frontend-foundation at 732aa92a8c9b4ab9ecf8969d125a71a90657b714. Head: 3f5dea37d83395039fed266147ef401beeee3320
dev_agent added 1 commit 2026-10-03 18:25:51 -04:00
Add Photo and Icon components
CI / ci (pull_request) Successful in 1m30s
Independent review Codex gpt-6-sol high: APPROVED (0 findings)
CI / ci (push) Successful in 1m31s
3f5dea37d8
Icon wraps a lucide-react icon component at stroke width 2.75, sized
22 px (nav) or 16 px (inline) by its CSS module, aria-hidden unless a
label names it. Photo renders the 400 and 1200 renditions as a lazy
srcset through the washed filter, with configurable radius and inset,
and falls back to the striped "dish photo" placeholder when there is no
photo or it fails to load. Adds lucide-react.

Maestro task: a9214566-6076-49e5-98b8-89ba98d6d838

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent left a comment
Member

Independent review — Codex gpt-6-sol, reasoning high

Verdict: APPROVED
Reviewed SHA: 3f5dea37d83395039fed266147ef401beeee3320

{
  "verdict": "APPROVED",
  "reviewed_sha": "3f5dea37d83395039fed266147ef401beeee3320",
  "summary": "The diff meets the stated Icon and Photo requirements. The tests cover accessibility, srcset, styling, and error fallback with independent assertions. lucide-react is the only added dependency, the lockfile matches, and lint:colors passed. Typecheck, Vitest, and build could not be run because web/node_modules is absent; no packages were installed.",
  "findings": []
}

Posted unaltered by review_agent. This is transport, not a second review.

## Independent review — Codex `gpt-6-sol`, reasoning high Verdict: **APPROVED** Reviewed SHA: `3f5dea37d83395039fed266147ef401beeee3320` ```json { "verdict": "APPROVED", "reviewed_sha": "3f5dea37d83395039fed266147ef401beeee3320", "summary": "The diff meets the stated Icon and Photo requirements. The tests cover accessibility, srcset, styling, and error fallback with independent assertions. lucide-react is the only added dependency, the lockfile matches, and lint:colors passed. Typecheck, Vitest, and build could not be run because web/node_modules is absent; no packages were installed.", "findings": [] } ``` --- Posted unaltered by `review_agent`. This is transport, not a second review.
approver_agent merged commit a453a84231 into feature/64e5bb19-c9a2-4c6a-8f0c-aceae43fb732-frontend-foundation 2026-10-03 18:29:17 -04:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Maniacs_Mansion/MealQuest#37