Increase mobile phone frame from 192×440 to 240×520 (max-w-60,
max-h-130) with paired aspect-ratio constraints. Widen carousel
step to 260 to maintain gap between slides. Remove py-3 from
phone media to eliminate black letterboxing. Cap track height to
match phone so description stays close via justify-center.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Emotes now animate (fade + deblur) only after each image loads from
cdn.7tv.app, with stagger based on load order. Also reduces network
requests by lazily assigning src to only the active particle count,
adds preconnect for the CDN, and marks emotes with decoding=async
and fetchpriority=low.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- expand emote list from 36 to 118 (xQc channel + 7TV global + trending)
- scale particle count dynamically from 12 (mobile) to 100 (4K) via container diagonal
- scale emote size (28–44px), opacity (0.25–0.35), and repulse radius per breakpoint
- enable on mobile with touch repulsion (was desktop-only)
- shuffle emotes per visit via Fisher-Yates in useEffect
- replace motion.img with plain img + motion animate() for blur+fade entrance
- move opacity to container layer for single-point control and WCAG AA safety
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- header/footer are now flex children instead of absolute overlays
- mobile grid uses auto+1fr rows so intro sizes to content
- h-dvh + overflow-hidden + overscroll-none prevents mobile scroll bounce
- add horizontal padding to intro section
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
next-themes enableColorScheme (default true) already sets this
dynamically to match the active theme.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* migrate web to next-template stack (next 16, react 19, tailwind 4)
replace all infrastructure with next-template conventions:
- next.js 14 -> 16 (turbopack default, typed routes, react compiler)
- react 18 -> 19
- tailwind css 3 -> 4 (css-first config, oklch theme system)
- eslint 8 (.eslintrc) -> 9 (flat config with stricter rules)
- add shadcn/ui, base-ui, cva component primitives
- upgrade theme toggle to light/dark/system dropdown
- migrate hardcoded neutral classes to semantic oklch tokens
- drop unused @tailwindcss/forms, autoprefixer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add no-misused-promises config for async JSX handlers, warn on array index keys
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* base-vega
* sync frosty web with next-template runtime and claude tooling for cloudflare parity
* gitignore .dev.vars per cloudflare best practice
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add observability configuration to wrangler.jsonc
* remove marquee emote background from hero section
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* improve CLAUDE.md and AGENTS.md files across project
Remove redundant root CLAUDE.md (kept in .claude/ instead), add Commands
and Source Structure sections to Flutter AGENTS.md, clarify global vs
feature store placement, and fill gaps in web AGENTS.md (shadcn base-vega
style, constants.ts, no-array-index-key rule, commit conventions).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* switch shadcn theme from neutral to violet, replace twitch-purple with primary token
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* initial redesign
* auto-infer nativeButton in Button wrapper when render prop is used
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* replace skeleton carousel with real screenshots and video, add responsive phone scaling and mobile menu
- Replace PhoneSkeleton with PhoneFrame/PhoneMedia using actual app screenshots and video
- Fluid phone sizing via aspect-ratio with responsive max-h/max-w caps
- Non-circular carousel with swipe gestures, dot indicator, and hover opacity boost
- Video plays only when focused, pauses when off-screen
- Collapse header actions into dropdown menu on mobile, add Contact link
- Viewport-height layout with no scrolling on any screen size
- Remove footer, move contact to header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* improve header consistency, carousel layout, and responsive centering
- add icons to all header buttons (Contact, Donate, GitHub)
- switch theme toggle to ghost variant for consistency
- bump header collapse breakpoint from md to lg
- move carousel arrows to overlay positions with animated enter/exit
- hide arrows at first/last slide
- fix vertical centering of phone+description group across all screen sizes
- add smooth blur+slide transition for description text
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add contact dropdown with copy email toast
- replace direct mailto link with dropdown: send email or copy email
- install sonner for toast notifications, show top-center on copy
- extract emailAddress constant for clipboard use
- add copy option to mobile hamburger menu too
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* replace mobile hamburger menu with icon buttons
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* redesign hero copy, badge-style download buttons, and mobile layout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add consistent padding and object-contain to carousel media
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add emote physics background to hero section
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* move container styling to hero panel, refresh emote set with 2025 trending picks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add staggered entrance animations and remove grid gap
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add 30-day cache headers for video and logo assets
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add emote collisions and aspect-ratio tracking, refine hero layout
Emote physics: add particle-particle elastic collisions, per-particle
width measurement for correct aspect ratios, new emotes (aga, WW, o7,
FLASHBANG, LULW, Deadass), bump count to 30. Layout: absolute-position
header with z-20, increase mobile carousel ratio to 2fr/4fr, reserve
min-h-10 for description text, remove panel rounding.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix carousel lint warnings: useSyncExternalStore, ref naming, stable keys
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add seo metadata, sitemap, and robots.txt
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* add privacy link to header and footer credit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* update privacy policy content and restyle with mono layout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* reorder header nav and add mobile hamburger menu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refresh web dependencies and smooth footer credit hover transition
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- align IPHONEOS_DEPLOYMENT_TARGET from 13.0 to 15.0 across all build
configurations to match Podfile platform version
- update AppFrameworkInfo.plist MinimumOSVersion from 13.0 to 15.0
- add PrivacyInfo.xcprivacy for App Store compliance (required since May 2024)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Enable Claude Code plugins for project development workflow and track
settings.json while keeping local settings ignored.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>