Empty State
A dashed placeholder with icon, title, description and call to action.
No components yet
Install your first component from the treasury to get started.
Installation
npx shadcn@latest add @hazine/empty-stateSource
import * as React from "react"
import { cn } from "@/lib/utils"
interface EmptyStateProps extends React.ComponentProps<"div"> {
icon?: React.ReactNode
title: string
description?: string
action?: React.ReactNode
}
export function EmptyState({
icon,
title,
description,
action,
className,
...props
}: EmptyStateProps) {
return (
<div
className={cn(
"flex flex-col items-center justify-center gap-2 rounded-lg border border-dashed px-6 py-12 text-center",
className
)}
{...props}
>
{icon && (
<div className="mb-2 flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground [&_svg]:size-6">
{icon}
</div>
)}
<h3 className="text-base font-semibold">{title}</h3>
{description && (
<p className="max-w-sm text-sm text-muted-foreground">{description}</p>
)}
{action && <div className="mt-3">{action}</div>}
</div>
)
}