shadimage
Shadcn Table
componentdata-grid-skeletonsource: ok · hit

Data Grid Skeleton

A composable skeleton component for the data grid with toolbar and grid parts

npx shadcn add "https://tablecn.com/r/data-grid-skeleton.json"
free

No selection tags yet — empty means no evidence, not lack of support.

Dependencies

Bundle weight · light

Registry dependencies

skeleton

Files1 · source cached 10/9/2026, 3:26:07 AM

src/registry/bases/base/components/data-grid/data-grid-skeleton.tsx
import type * as React from "react";

import { cn } from "cn";

import { Skeleton } from "@/registry/bases/base/ui/skeleton";

interface DivProps extends React.ComponentProps<"div"> {}

function DataGridSkeleton({ className, ...props }: DivProps) {
  return (
    <div
      data-slot="grid-skeleton"
      className={cn(
        "flex h-[calc(100dvh-(--spacing(16)))] w-full flex-col gap-4 has-[>[data-slot=grid-skeleton-toolbar]]:h-[calc(100dvh-(--spacing(20)))]",
        className,
      )}
      {...props}
    />
  );
}

interface DataGridSkeletonToolbarProps extends DivProps {
  align?: "start" | "center" | "end";
  actionCount?: number;
}

function DataGridSkeletonToolbar({
  align = "end",
  actionCount = 4,
  className,
  ...props
}: DataGridSkeletonToolbarProps) {
  return (
    <div
      data-slot="grid-skeleton-toolbar"
      className={cn(
        "flex items-center gap-2",
        {
          "justify-start": align === "start",
          "justify-center": align === "center",
          "justify-end": align === "end",
        },
        className,
      )}
      {...props}
    >
      {Array.from({ length: actionCount }).map((_, i) => (
        <Skeleton key={i} className="h-8 w-20 shrink-0 rounded-lg" />
      ))}
    </div>
  );
}

function DataGridSkeletonGrid({ className, ...props }: DivProps) {
  return (
    <Skeleton
      data-slot="grid-skeleton-grid"
      className={cn("flex-1", className)}
      {...props}
    />
  );
}

export { DataGridSkeleton, DataGridSkeletonGrid, DataGridSkeletonToolbar };

More from Shadcn Table

Browse all components in this library →