Command Palette

Search for a command to run...

Docs
Sales AI Hero

Sales AI Hero

An oversized centered hero with a floating announcement pill, paired square + landscape media tiles, and a divider-flanked trusted-by logo strip.

Installation

Usage

import { SalesAiHero } from "@/components/ruixen/sales-ai-hero";
 
export default function Page() {
  return (
    <SalesAiHero
      announcement={{
        label: "240+ Marketing Blocks Now Live In v4",
        href: "https://ruixen.com/docs",
      }}
      title={
        <>
          Ship landing pages <br className="hidden md:block" />
          that look like 2026.
        </>
      }
      description="Heroes that earn the click. Pricing tables that close the deal. Footers customers actually read — every block your modern landing page needs, in one place."
      leftMedia={
        <img
          src="/hero/portrait.jpg"
          alt="Portrait"
          className="size-full object-cover"
        />
      }
      rightMedia={
        <img
          src="/hero/dashboard.png"
          alt="Dashboard"
          className="size-full object-cover"
        />
      }
      trustedBy={{
        prefix: "Powered By ",
        highlight: "240+ Sections",
        suffix: " Across 4 Registry Variants For Every shadcn Stack",
        logos: [
          { name: "Cosmos", src: "https://ruixen.com/logos/cosmos.svg" },
          {
            name: "Geckoboard",
            src: "https://ruixen.com/logos/geckoboard.svg",
          },
          { name: "Gong", src: "https://ruixen.com/logos/gong.svg" },
          { name: "Parade", src: "https://ruixen.com/logos/parade.svg" },
          { name: "Ternary", src: "https://ruixen.com/logos/ternary.svg" },
        ],
      }}
    />
  );
}

Props

PropTypeDefaultDescription
titleReactNodeRequiredCentered headline content. Use <br /> to force a line break on desktop.
descriptionReactNode-Muted subhead rendered under the title.
announcementAnnouncement-Floating pill above the title. Renders as a link when href is provided.
leftMediaReactNode-Content for the left (portrait) media tile. Falls back to a labelled placeholder.
rightMediaReactNode-Content for the right (landscape) media tile with a pink accent placeholder fallback.
trustedByTrustedBy | false-Divider-flanked headline plus logo strip below the media. Pass false to hide.
classNamestring-Extra classes appended to the outer <section>.

Types

interface Announcement {
  label: string;
  href?: string;
  icon?: React.ReactNode;
}
 
interface LogoItem {
  name: string;
  src?: string;
  logo?: React.ReactNode;
  href?: string;
}
 
interface TrustedBy {
  prefix?: string;
  highlight?: string;
  suffix?: string;
  logos: LogoItem[];
}

Features

  • Floating announcement pill — soft elevated card with a lightning glyph, copy, and filled arrow chip; converts to a Link when href is supplied.
  • Oversized display headline — scales from text-[44px] on mobile to text-[88px] on lg, with tracking-[-0.04em] and a tight 1.02 line-height to mimic editorial SaaS hero typography.
  • Paired media tiles — a 1:3 split: a portrait tile on the left and a 16:9 landscape tile on the right with a built-in pink accent gradient placeholder. Both accept any ReactNode, so drop in <img>, <video>, or a custom inline mock.
  • Divider-flanked trusted-by line — two bg-border rules pinch a centered headline, with a bold highlight slot for stats like "10,000+".
  • Logo strip with vertical separators — auto-inserted h-6 w-px bg-border rules between logos at md+; logos are desaturated with [filter:brightness(0)_saturate(0)] (inverted in dark mode) to feel uniform.
  • Theme adaptive — every surface uses shadcn tokens (bg-background, bg-card, bg-muted, text-foreground, text-muted-foreground, border-border), so the block inherits your theme without overrides.