Dashboard Preview Hero

v2.0 Live

Manage your workflow intelligently

An all-in-one management platform designed for modern teams. Visualize your data, sync with your team, and accelerate your work.

DashboardAnalyticsReports
Total Sales
$124,500
+12.5% from last month
Active Users
1,204
+4.2%increase

Weekly Performance

New sale: $250

Just now

Conversion

24.8%

About this block

Dashboard Preview HeroPRO

Split-layout hero with interactive dashboard mockup featuring stats cards, line chart, and recent activity feed. Perfect for SaaS and analytics platforms.

Hero25: Dashboard Preview Hero

Split-layout SaaS hero where the right column is a simulated product screenshot rather than an image: a browser-chrome mock (traffic-light dots, a tab bar, a settings icon) wraps a live stats grid, a real Recharts line chart, and a recent-activity row, with a small floating stat chip bobbing beside the card.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/hero25?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/hero25?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/hero25.tsx, the Badge, Button, Card, and Chart (shadcn ChartContainer/ChartTooltip) primitives it uses, and recharts as an npm dependency.

Quick start

The installed file exports hero25Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.

tsx
import { Hero25, hero25Demo } from "@/components/beste/block/hero25";

export default function Page() {
  return <Hero25 {...hero25Demo} />;
}

Then replace the demo with your own props. Written out, the same setup looks like this:

tsx
import { BarChart3, Users } from "lucide-react";
import { Hero25 } from "@/components/beste/block/hero25";

export default function Page() {
  return (
    <Hero25
      heading="Manage your workflow intelligently"
      description="Visualize your data, sync with your team, and accelerate your work."
      buttons={[{ label: "Get Started Now", href: "/signup" }]}
      stats={[
        { icon: BarChart3, label: "Total Sales", value: "$124,500", change: "+12.5% from last month", variant: "primary" },
        { icon: Users, label: "Active Users", value: "1,204", change: "+4.2% increase" },
      ]}
      chart={{
        title: "Weekly Performance",
        data: [
          { label: "Mon", value: 186 },
          { label: "Tue", value: 305 },
          { label: "Wed", value: 237 },
        ],
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Optional pill badge above the heading
headingstringMain headline (required, no fallback)
descriptionstringSupporting paragraph
buttonsHeroButton[][]CTA buttons under the description
browserTabsBrowserTab[][]Tab labels shown in the mock browser header
statsStatCard[][]Two stat tiles inside the dashboard card
chart{ title: string; data: ChartDataPoint[]; dataKey?: string }Recharts line chart inside the dashboard card
recentActivityRecentActivitySingle activity row at the bottom of the card
floatingCardFloatingCardSmall stat chip floating beside the dashboard card
displayPosition"left" | "right""left"Which side the text column renders on
classNamestringExtra classes for the outer <section>
ts
type HeroButton = {
  label: string;
  href: string;
  variant?: "default" | "outline" | "secondary" | "ghost" | "link";
};

type BrowserTab = { label: string; active?: boolean };

type StatCard = {
  icon: LucideIcon;
  label: string;
  value: string;
  change: string;
  variant?: "primary" | "default";
};

type ChartDataPoint = { label: string; value: number };

type RecentActivity = {
  type: "sale" | "signup" | "upgrade";
  message: string;
  time: string;
};

type FloatingCard = { icon: LucideIcon; label: string; value: string };

Behavior notes

  • The right column is not an image: it is a live Card styled to look like a browser window (three colored dots, a tab row where the active tab gets a bg-primary/10 chip, a settings icon), containing a real stats grid, a Recharts LineChart wrapped in the shadcn ChartContainer/ChartTooltip, and an activity row, all driven entirely by props.
  • A StatCard with variant: "primary" renders with tinted border-primary/20 bg-primary/5 styling and shows its full change string in primary-tinted text; other stat cards split change on the first space so the leading token (e.g. "+12.5%") renders as a small muted chip and the rest as trailing text.
  • recentActivity.type swaps the leading icon: "sale" uses DollarSign, "signup" uses UserPlus, "upgrade" uses ArrowUpCircle.
  • floatingCard, when present, is positioned with a fixed offset (-right-6 top-44) relative to the dashboard card and bobs continuously via an inline @keyframes float block (defined with <style jsx>), animating translateY by 8px over a 3s loop; this is the only animation in the component.
  • displayPosition: "right" flips the two-column grid using a CSS child-combinator class (lg:[&>*:first-child]:order-2) applied to the grid container rather than an order class on each column individually.
  • The stats grid is hardcoded to grid-cols-2, so passing more than two stats entries will wrap to additional rows rather than reflow into more columns.

More Hero blocks

View all Hero
PRO

hero96

Split Hero with Metric Dashboard

50/50 split hero with content left and metric dashboard cards with trend badges over video right

PRO

hero77

Calendar Schedule Hero

Split-layout hero with weekly calendar mockup showing events, attendees, and floating reminder notification. Perfect for scheduling and calendar apps.

PRO

hero61

Split Hero with Floating Feature Cards

Two-column hero with announcement banner, social proof metrics, and three floating feature cards with hover animations. Perfect for SaaS product launches.

PRO

hero43

Email App Hero with Inbox Mockup

Split-layout hero with interactive email client mockup featuring sidebar, message list, and floating notification. Perfect for email and communication apps.

PRO

hero48

Metrics Dashboard Hero

Centered hero with four-column metrics panel showing values and trend indicators below the CTA buttons. Perfect for analytics dashboards and business tools.

PRO

hero76

Kanban Board Hero

Split-layout hero with interactive kanban board mockup showing tasks with priorities, tags, assignees, and floating completion stats. Perfect for project management tools.