Repository navigation
fix: preserve reduced motion with targeted CSS rules - #60
Conversation
Generated-by: Codex <noreply@openai.com> Signed-off-by: Ashley Childress <anchildress1@gmail.com>
Generated-by: Codex <noreply@openai.com> Signed-off-by: Ashley Childress <anchildress1@gmail.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Reviewed the actual diff and relevant surrounding code/tests at |
There was a problem hiding this comment.
🟢 Approval recommended
No unresolved review issues remain, and the supplied assessments unanimously support approval.
No open issues 🎉
What changed in this PR
This pull request improves reduced-motion accessibility by replacing broad CSS overrides with targeted component rules, narrowing transitions to the properties that change, and adding browser regression coverage.
Changes:
- Replaced blanket reduced-motion overrides with targeted animation, opacity, transform, and transition rules.
- Replaced
transition: allwith explicit color and border-color transitions. - Added Playwright coverage for static, readable landing and loading states under reduced motion.
| File | Description |
|---|---|
tests/e2e/card.spec.ts |
Verifies reduced-motion behavior across landing controls and the loading visualization. |
src/client/styles.css |
Adds targeted reduced-motion rules and narrows component transitions to relevant properties. |
Review effort: Lite
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|



Replace four blanket reduced-motion !important overrides with targeted component rules, preserving the static reduced-motion state. Replace two transition: all declarations with the properties that actually change. Add a browser regression for reduced motion.
Initial main inventory: six findings, four addressed by this PR and two retained sequential-await candidates. The exact PR scan also surfaced two new CSS S9449 findings; both are addressed separately from the initial count.
The retained retry await in src/server/queue.ts enforces dependent attempts and 250/500ms backoff. Success or definitive refusal must prevent later attempts; concurrent retries would violate that contract. The retained redraw await in src/server/rerender.ts accepts an unbounded list, including duplicate slugs, and completes each synchronous PNG render plus ordered PNG/payload publication before starting another target. Promise.all would change fail-fast behavior, retain concurrent image buffers, and permit duplicate-slug writes to interleave. The four-connection Snowflake pool does not bound outstanding uploads. Recursion or promise reduction would merely disguise the same sequential work, so neither finding was suppressed or marked resolved.
Validation on final signed head
5fc1872250d761e8bcc038b8f80ce37f23ddb066: make ai-checks passed formatting, lint, typecheck, build and 316 tests with 96.57% line coverage; all nine Playwright tests passed. Normal commit/push hooks and signature verification passed. Exact-head Sonar PR analysis reports zero findings and quality gate OK; Semgrep passed. After promotion to ready, hosted Verify, End-to-end, CodeQL, Sonar, Semgrep, and Codecov checks passed on the same head.Main remains unchanged until merge and reanalysis. Zero PR findings does not mean main is zero. No exclusions, suppressions, issue-status changes, or draft-policy changes were used.