proNew206 lines · framer-motion
Hero Chat Demo
A conversation that plays itself, on loop. A split hero: copy and two CTAs on the left, a looping chat-bubble conversation demo on the right, complete with a brief 'typing' beat before each assistant reply.
- Use it for
- AI assistants, support copilots or on-call tools whose pitch is best shown as an actual conversation rather than described in prose.
- Themes
- Light + dark
- License
- Commercial use
Live
Live · Assistant
An assistant that actually answers
Replies pick up context automatically, whether it's support, sales or an on-call handoff.
Assistant · online
tsx
"use client";
import * as React from "react";
import { AnimatePresence, motion, useReducedMotion } from "framer-motion";
import { cn } from "@/lib/utils";
function useReducedMotionSafe() {
const prefersReduced = useReducedMotion();
const [mounted, setMounted] = React.useState(false);
React.useEffect(() => setMounted(true), []);
return mounted ? !!prefersReduced : false;
}
/**
* Split hero: copy on the left, a looping chat-bubble conversation demo on
* the right. Messages appear one at a time with a brief "typing" beat before
* each assistant reply, then the whole thread restarts.
*/
export interface HeroChatDemoProps {
eyebrow?: string;
headline?: string;The rest is in Pro.
Full source, the rebuild prompt and registry install unlock with Pro or Lifetime.
Get ProHow it behaves
- →A small step counter reveals one message at a time from the chosen persona thread (support, sales or engineering); before every assistant line, a three-dot 'typing' indicator shows for a beat first.
- →speed scales every delay in the sequence; once the thread finishes it pauses, then restarts from the first message.
- →User bubbles are right-aligned and inverted (bg-foreground/text-background); assistant bubbles are left-aligned on bg-muted.
- →The whole panel is role=log with aria-live=polite, so new messages are announced as they arrive, the way a real chat widget would.
- →prefers-reduced-motion reveals the full thread immediately and skips the typing indicator and loop.
Accessibility
- ✓The conversation panel is a labelled, live-announcing log; message text is real text, not canvas, so it's selectable and readable by assistive tech.
- ✓Headline is a single <h1>; layout stacks to a single column under 1024px with the chat panel below the copy.
- ✓CTAs keep the design system's visible focus ring.
- ✓Honours prefers-reduced-motion.