soroban-abacus-flashcards/apps/web
Thomas Hallock 9b1d47d4c7 feat(complement-race): implement per-car adaptive opacity for ghost trains
Ghost train cars now individually adjust opacity based on proximity to local
train, reducing visual clutter when overlapping while maintaining clarity
when separated.

Changes:
- Calculate local train car positions array in SteamTrainJourney
- Pass positions to GhostTrain for overlap detection
- Rewrite GhostTrain to render locomotive and each car separately
- Each car calculates opacity independently (0.35 when <20% from any local car, 1.0 otherwise)
- Smooth 0.3s CSS transitions between opacity states
- Overlap threshold: 20% of track length

Benefits:
- Reduced clutter when trains overlap
- Clear visibility when trains separated
- Per-car granularity for mixed scenarios

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 13:06:32 -05:00
..
.claude feat: add vibrant gradients and equal heights to game cards 2025-10-20 17:13:09 -05:00
.storybook
__tests__ refactor(types): consolidate type system - eliminate fragmentation 2025-10-16 06:51:20 -05:00
data
docs feat(arcade): migrate matching pairs - phases 1-4 and 7 complete 2025-10-16 00:38:08 -05:00
drizzle
e2e
public
scripts fix(arcade): add host-only game selection with clear messaging 2025-10-19 11:59:43 -05:00
src feat(complement-race): implement per-car adaptive opacity for ghost trains 2025-10-22 13:06:32 -05:00
.gitignore
CARD_SORTING_PORT_PLAN.md feat(card-sorting): implement Provider with arcade session integration 2025-10-18 14:11:52 -05:00
COMPLEMENT_RACE_PORT_PLAN.md
DEVELOPMENT_STANDARDS.md
LINTING.md
biome.jsonc
drizzle.config.ts
eslint.config.js
next-env.d.ts
next.config.js
package.json feat(homepage): add interactive draggable flashcards with physics 2025-10-20 17:37:48 -05:00
panda.config.ts
playwright.config.ts
pnpm-lock.yaml
server.js
svg-processing-test.js
test-arcade-api.sh
test-flashcards-final.pdf
test-flashcards.pdf
test-simplified.pdf
test_fullscreen_persistence.html
test_panda_simple.html
tsconfig.json
tsconfig.server.json
vitest.config.ts