NEW
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
shadcn registry is live·
Learn more
Skip to content
Docs

Three

Bento grid with 3 items

Loading...

Installation

CLI

pnpm dlx shadcn@latest add https://animata.design/r/bento-grid/three.json

Manual

Run the following command

It will create a new file called three.tsx inside the components/animata/bento-grid directory.

mkdir -p components/animata/bento-grid && touch components/animata/bento-grid/three.tsx

Paste the code

Open the newly created file and paste the following code:

import { CarFront, Utensils } from "lucide-react";
 
import ExpenseTracker, { spendingTrackerProps } from "@/animata/widget/expense-tracker";
import { cn } from "@/lib/utils";
 
function BentoCard({ children, className }: { children: React.ReactNode; className?: string }) {
  return (
    <div className={cn("relative h-full w-full overflow-hidden rounded-3xl p-4", className)}>
      {children}
    </div>
  );
}
 
function FeatureOne() {
  return (
    <BentoCard className="p-0 sm:row-span-2">
      <ExpenseTracker {...spendingTrackerProps} />
    </BentoCard>
  );
}
 
function FeatureTwo() {
  return (
    <BentoCard className="flex flex-col gap-2 border bg-background dark:border-zinc-700">
      <span className="text-xs font-semibold uppercase text-muted-foreground">Total income</span>
      <div className="text-3xl font-black text-green-600">$7,000</div>
    </BentoCard>
  );
}
 
function FeatureThree() {
  return (
    <BentoCard className="flex flex-col gap-2 border bg-background dark:border-zinc-700">
      <span className="text-xs font-semibold uppercase text-muted-foreground">Top categories</span>
      <div className="flex w-full gap-2">
        <Utensils size={16} className="text-foreground" />
        <span className="text-xs text-foreground">Food</span>
        <span className="ml-auto text-xs font-black text-red-600 dark:text-red-400">$2,000</span>
      </div>
      <div className="flex w-full gap-2">
        <CarFront size={16} className="text-foreground" />
        <span className="text-xs text-foreground">Transport</span>
        <span className="ml-auto text-xs font-black text-red-600 dark:text-red-400">$1,000</span>
      </div>
    </BentoCard>
  );
}
 
export default function Three() {
  return (
    <div className="grid w-fit min-w-0 grid-cols-1 grid-rows-1 gap-3 sm:grid-cols-2 sm:grid-rows-2">
      <FeatureOne />
      <FeatureTwo />
      <FeatureThree />
    </div>
  );
}

Credits

Built by hari