Sunil Prasad c48a11b13c feat: Add smooth 5-second auto-rotation to Hero stories and ProductShowcase cards
- Hero auto-rotates story backdrops every 5 seconds with 500ms fade transitions
- ProductShowcase cards rotate with mint ring highlight on the active card
- Inactive cards fade to 60% opacity on mobile, full opacity on desktop
- New components: StoryBackdrop, StoryOnboarding, CountUp, lib/stories
- Manual Another-story control still works

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 14:10:48 -07:00

40 lines
1.7 KiB
TypeScript

import { GaugeChart } from "@/components/charts/GaugeChart";
import { Card } from "@/components/ui/Card";
import { Chip } from "@/components/ui/Chip";
import { ProgressBar } from "@/components/ui/ProgressBar";
import { PhoneFrame } from "./PhoneFrame";
import { StoryOnboarding } from "./StoryOnboarding";
export function MobileScreens() {
return (
<div className="grid gap-8 lg:grid-cols-3">
<PhoneFrame title="Onboarding — rotating goal story">
<StoryOnboarding />
</PhoneFrame>
<PhoneFrame title="Dashboard">
<div>
<p className="text-sm text-ink/50 dark:text-paper/50">Good morning</p>
<h2 className="font-display text-4xl text-forest dark:text-mint">$93</h2>
<p className="text-sm font-semibold text-ink/60 dark:text-paper/60">safe to spend today</p>
<Card className="mt-5 p-4"><GaugeChart value={72} label="Flex pace" /></Card>
<div className="mt-4 space-y-3">
<ProgressBar label="Groceries" value={84} />
<ProgressBar label="Dining" value={109} />
</div>
</div>
</PhoneFrame>
<PhoneFrame title="Credit & AI">
<div>
<Chip tone="indigo">FICO 8</Chip>
<h2 className="mt-4 font-display text-6xl text-forest dark:text-mint">742</h2>
<p className="text-sm text-ink/60 dark:text-paper/60">+21 since April</p>
<Card className="mt-6 p-4">
<h3 className="font-bold text-ink dark:text-paper">Ask Aartha</h3>
<p className="mt-3 text-sm leading-6 text-ink/65 dark:text-paper/65">Utilization improved. Keep cards below 30% before statement close to protect the gain.</p>
</Card>
</div>
</PhoneFrame>
</div>
);
}