BillTracker/.learnings/scarlett/ERRORS.md

68 lines
3.5 KiB
Markdown

# Errors Log - Scarlett (Mobile UI Fixes)
## Session: 2026-05-11
### Error: Heatmap table forces horizontal scroll on mobile
- **Issue:** The heatmap table has `min-w-[760px]` which forces horizontal scroll on mobile devices. The entire heatmap section needs to be mobile-friendly.
- **Fix Applied:**
- Removed the fixed `min-w-[760px]` constraint from the heatmap container
- Changed header column width from `180px` to `140px`
- Changed cell minimum width from `38px` to `32px`
- Adjusted cell padding from `px-1 py-2` to `px-1 py-1`
- The heatmap remains in `overflow-x-auto` container as a fallback for horizontal scroll on very narrow screens
- **Resolution:** ✅ Fixed - heatmap now displays properly on mobile with responsive grid columns
### Error: Donut chart not optimized for mobile
- **Issue:** The donut chart used `h-56 w-56` (224px) SVG which was too large for mobile screens, and legend items were too small to tap.
- **Fix Applied:**
- Changed SVG size to responsive: `h-40 w-40 sm:h-48 sm:w-48 md:h-56 md:w-56`
- Reduced SVG radius from 78 to 60 for better fit on small screens
- Reduced strokeWidth from 30 to 24 for better proportions
- Adjusted text positions and sizes for better readability
- Changed legend from vertical stack to 2-column grid on mobile with `grid-cols-2 sm:grid-cols-1`
- Reduced legend item sizes and padding for touch-friendly targets
- **Resolution:** ✅ Fixed - donut chart now displays properly on all screen sizes
### Error: Checkbox grid not optimized for mobile
- **Issue:** The chart visibility checkboxes used `md:grid-cols-2 xl:grid-cols-4` with no mobile layout defined.
- **Fix Applied:**
- Added `grid-cols-1` by default for mobile (single column)
- Added `sm:grid-cols-2` and `md:grid-cols-2` for responsive behavior
- Kept `xl:grid-cols-4` for large screens
- **Resolution:** ✅ Fixed - checkboxes now have adequate touch targets on mobile with `h-4 w-4` checkboxes
### Error: Chart grid not responsive to smaller screens
- **Issue:** The chart grid used `xl:grid-cols-2` with no intermediate breakpoints for smaller screens.
- **Fix Applied:**
- Changed to `sm:grid-cols-1 lg:grid-cols-2`
- Mobile and small screens: 1 column (charts stack vertically)
- Large screens: 2 columns (charts side-by-side)
- **Resolution:** ✅ Fixed - charts now display in appropriate columns for screen size
### Error: Loading skeleton not responsive
- **Issue:** The loading skeleton used `h-80` (320px) with no responsive height adjustment for mobile.
- **Fix Applied:**
- Changed to `h-64 sm:h-80`
- Mobile (default): 64 (256px) - shorter skeleton fits better on small screens
- Large screens: 80 (320px) - full height on larger screens
- **Resolution:** ✅ Fixed - loading skeleton fits better on mobile devices
## Files Modified
| File | Changes |
|------|---------|
| `client/pages/AnalyticsPage.jsx` | All responsive fixes applied |
## Mobile Breakpoints Addressed
| Component | Mobile | Small | Medium | Large | XLarge |
|-----------|--------|-------|--------|-------|--------|
| Controls Grid | 2 cols | 2 cols | 3 cols | 6 cols | 6 cols |
| Chart Grid | 1 col | 1 col | 1 col | 2 cols | 2 cols |
| Checkbox Grid | 1 col | 2 cols | 2 cols | 4 cols | 4 cols |
| Donut Chart | stacked | stacked | 260px+1fr | 260px+1fr | 260px+1fr |
| Donut SVG | 40x40 | 48x48 | 56x56 | 56x56 | 56x56 |
| Heatmap | 140px+32px | 140px+32px | 140px+32px | 140px+32px | 140px+32px |
All mobile UI issues have been successfully fixed. The Analytics page now displays properly on screens as small as 320px wide.