uploadLimiter now only applies to POST /api/cats (uploads), not GET
reads — previously users were getting 429 after ~10 page navigations.
Also remove duplicate file input in ProfilePage and cancel stale rAF
on route transition cleanup.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- button.tsx: primary gets gradient + shadow + hover glow + -translate-y-px
lift; outline gets border-2 for visibility on dark bg; all variants
get active:scale-[0.96] press feel; lg size h-12 for auth forms
- Remove hardcoded bg-[var(--accent)] overrides from Login, Register,
Feed, Profile, Upload — variants now handle all coloring
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- CSS: refined shadows with border ring, dark bg #0A0A0A, larger card
radius (16/22px), modal-backdrop blur, scrollbar styling, new
dropzone + profile-grid CSS classes
- Navbar: paw emoji logo, labels under icons, accent gradient bar,
active-state ring on avatar
- Login / Register: auth card with decorative background blobs,
form wrapped in card, cleaner spacing
- CatModal: two-column layout on desktop (photo left, info right),
modal-backdrop blur, comment input with user avatar, like label
- ProfilePage: 88px avatar with camera overlay, inline stat bar with
icons, grid section divider, Stat helper component
- CatCard: points badge in header (amber), caption text secondary
color, ring on avatar
- FeedSidebar: color-coded rank badges, hover rows, star icon
- UploadPage: new dropzone-idle/dropzone-active CSS classes,
filename chip on preview, UserAvatar in caption row, HEIC/AVIF in
accepted formats hint, 500-char counter
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add light/dark/system theme switcher with localStorage persistence
and automatic prefers-color-scheme detection
- New pastel Instagram-inspired palette: rose accent (#C9445D light,
#E8687E dark), clean #FAFAFA / #000000 backgrounds
- Replace all hardcoded bg-white / red-* colors with CSS variables
so every page and modal respects the active theme
- Smooth card hover: translateY elevation + image zoom (no layout shift)
- Micro-animations on action buttons with spring cubic-bezier
- Editorial navbar: 3px accent top bar, uppercase wordmark
- Theme toggle button (sun/moon/monitor) added to navbar
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>