18Switch language to العربية
Tailwind CSSGet Started with Tailwind v4

Templates for the Web

Clean, modern templates. Copy and paste into your apps. Works with all React frameworks. Open Source. Free forever.

Files
app/dashboard-01/page.tsx
import { AppSidebar } from "./components/app-sidebar"
import { ChartAreaInteractive } from "./components/chart-area-interactive"
import { DataTable } from "./components/data-table"
import { SectionCards } from "./components/section-cards"
import { SiteHeader } from "./components/site-header"
import {
  SidebarInset,
  SidebarProvider,
} from "@/components/ui/sidebar"

import data from "./data.json"

export default function Page() {
  return (
    <SidebarProvider
      style={
        {
          "--sidebar-width": "calc(var(--spacing) * 72)",
          "--header-height": "calc(var(--spacing) * 12)",
        } as React.CSSProperties
      }
    >
      <AppSidebar variant="inset" />
      <SidebarInset>
        <SiteHeader />
        <div className="flex flex-1 flex-col">
          <div className="@container/main flex flex-1 flex-col gap-2">
            <div className="flex flex-col gap-4 py-4 md:ga md:py-6">
              <SectionCards />
              <div className="">
                <ChartAreaInteractive />
              </div>
              <DataTable data={data} />
            </div>
          </div>
        </div>
      </SidebarInset>
    </SidebarProvider>
  )
}
A dashboard with sidebar, charts and data table.
dashboard-01
dashboard-01
Files
app/hero-07/page.tsx
import { Hero } from "@/components/hero-07"
import { dictionary } from "@/registry/bases/base/blocks/hero-07/hero-07-dictionary"

export default async function Page({
  params,
}: {
  params?: Promise<{ lang?: string }>
}) {
  const { lang } = (await params) ?? {}
  const locale = lang === "ar" ? "ar" : "en"
  return <Hero dictionary={dictionary[locale]} lang={locale} />
}
A full-screen photo or video hero with a word-by-word 3D headline reveal and a pill search field.
hero-07
hero-07
Files
app/pricing-01/page.tsx
import { Pricing } from "@/components/pricing-01"
import { dictionary } from "@/registry/bases/base/blocks/pricing-01/pricing-01-dictionary"

export default async function Page({
  params,
}: {
  params?: Promise<{ lang?: string }>
}) {
  const { lang } = (await params) ?? {}
  const locale = lang === "ar" ? "ar" : "en"
  return <Pricing dictionary={dictionary[locale]} lang={locale} />
}
Three plan cards with a monthly/yearly billing toggle, animated prices and a highlighted plan.
pricing-01
pricing-01
Files
app/login-03/page.tsx
import { GalleryVerticalEnd } from "lucide-react"

import { LoginForm } from "./components/login-form"

export default function LoginPage() {
  return (
    <div className="bg-muted flex min-h-svh flex-col items-center justify-center ga ">
      <div className="flex w-full max-w-sm flex-col ga">
        <a href="#" className="flex items-center gap-2 self-center font-medium">
          <div className="bg-primary text-primary-foreground flex size-6 items-center justify-center rounded-md">
            <GalleryVerticalEnd className="size-4" />
          </div>
          Acme Inc.
        </a>
        <LoginForm />
      </div>
    </div>
  )
}
Login form with muted card layout
login-03
login-03