Skip to content
Black FridayBlack Friday launch price: Lifetime $149 until 30 Nov. Regular price $299 from 1 Dec.ends in 15d 03:13:38Get Lifetime →
loopkit
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 Pro

How 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.