Comprehensive UI polish, dark mode fixes, responsive scaling, and statistics visualisation enhancements.
| Fix | Description | Status |
|---|---|---|
| Cmd-R Soft Refresh | Intercept browser reload, show confirmation dialogue | ✅ Complete |
| Dark Mode (CollectionToast) | Fix black text on black background | ✅ Complete |
| Dark Mode (CollectionPicker) | Fix CSS variable naming | ✅ Complete |
| App Logo (Inline SVG) | Convert to inline SVG for currentColor support | ✅ Complete |
| Card Border Scaling | Proportional border width for card sizes | ✅ Complete |
| Rank Badge Scaling | Size-responsive padding and font | ✅ Complete |
| iPhone Large Cards | Disable large card size on small screens | ✅ Complete |
| Game Overlay z-index | Fix completion modal overlapping stats bar | ✅ Complete |
| Settings Footer | Remove Reset button, reposition Accept/Cancel | ✅ Complete |
| Drag Handle Visibility | Keep visible but inactive during flip | ✅ Complete |
| Background Zoom | Change from cover to 110% | ✅ Complete |
| YouTube Thumbnails | Fix compact mode thumbnail for video URLs | ✅ Complete |
| Change | Description | Status |
|---|---|---|
| Hardcoded Sources Removed | Dynamic discovery via REPPL/MyPlausibleMe | ✅ Complete |
| Card Back Default | Changed from "year" to "logo" | ✅ Complete |
| Component | Description | Status |
|---|---|---|
| BarChart.tsx | Horizontal bar distribution visualisation | ✅ Complete |
| StatisticsBar Update | Expanded panel with bar charts | ✅ Complete |
| Component | Description | Status |
|---|---|---|
| Settings.tsx | Card count and difficulty options | ✅ Complete |
| types.ts | Memory mechanic type definitions | ✅ Complete |
- v0.11.5: UI Refinements & Documentation Sync (prerequisite)
CSS Modules require explicit dark mode selectors for each class:
[data-theme="dark"] .className,
[data-colour-scheme="dark"] .className {
color: #f9fafb;
}When SVG needs to inherit colour from CSS, use inline components:
function AppLogoIcon({ className }) {
return (
<svg viewBox="0 0 100 100" fill="currentColor" className={className}>
{/* paths */}
</svg>
);
}Use CSS custom properties with calc for proportional sizing:
.card[data-card-size="small"] { --card-border-width-scale: 0.5; }
.card[data-card-size="large"] { --card-border-width-scale: 1.5; }
.cardFace {
border: calc(var(--card-border-width) * var(--card-border-width-scale)) solid var(--card-border-colour);
}src/components/Statistics/BarChart.tsxsrc/components/Statistics/BarChart.module.csssrc/mechanics/memory/Settings.tsxsrc/mechanics/memory/Settings.module.csssrc/mechanics/memory/types.tssrc/loaders/githubDiscovery.ts
CollectionToast.module.css- Dark mode fixesCollectionPicker.module.css- CSS variable fixCard.module.css- Border scaling, drag handle inactiveCardBack.tsx- Inline SVG, drag handle visibilityRankBadge.module.css- Size scalingSettingsPanel.tsx- Remove Reset buttonStatisticsBar.tsx- Bar chart integrationmemory.module.css- z-index fixmain.tsx- Cmd-R interception
sourceStore.ts- Remove hardcoded sourcessettingsStore.ts- Default cardBackDisplay
- All features implemented
- Tests passing
- Documentation updated
- Devlog created
- Retrospective written
The following features originally planned for v0.12.0 have been moved to v0.12.5:
| ID | Feature | New Target |
|---|---|---|
| F-057 | Memory Game Mechanic (full) | ✅ v0.11.0 |
| F-058 | Collection Mechanic | ✅ v0.14.0 |
| F-061 | Snap Ranking Mechanic | ✅ v0.12.5 |
| F-037 | Card Sorting | |
| F-091 | Entity Auto-Discovery | ✅ v0.11.5 |
Status: Complete