murad-sinatra

Loaders

Component

About

A set of loading indicators — a spinner for short indeterminate waits, skeleton placeholders for content whose shape is known, and a progress bar for measurable completion.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Loaders to your project and fits it to your theme.

Code

How Loaders is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

import { Progress, Skeleton, Spinner } from "@/components/ui/loaders";

export default function LoadersDemo() {
  return (
    <div
      className="flex w-full flex-col items-center gap-10 p-10"
      style={{
        background: "var(--mors-color-canvas)",
        color: "var(--mors-color-text)",
      }}
    >
      <div className="flex items-center gap-6">
        <Spinner size="sm" />
        <Spinner size="md" />
        <Spinner size="lg" />
      </div>

      <div className="mors-card mors-card--raised" style={{ width: 320 }}>
        <div className="mors-card-header">
          <div className="mors-card-heading">
            <h3 className="mors-card-title">Loading card</h3>
          </div>
        </div>
        <div className="mors-card-body">
          <div
            style={{
              display: "flex",
              flexDirection: "column",
              gap: "var(--mors-space-4)",
            }}
          >
            <div
              style={{
                display: "flex",
                alignItems: "center",
                gap: "var(--mors-space-4)",
              }}
            >
              <Skeleton variant="circle" width={40} height={40} />
              <Skeleton variant="text" width="8rem" />
            </div>
            <Skeleton variant="text" lines={3} />
            <Skeleton variant="rect" height={80} />
          </div>
        </div>
      </div>

      <div className="flex flex-col gap-4" style={{ width: 320 }}>
        <Progress value={64} label="Uploading assets" showValue />
        <Progress
          value={92}
          tone="success"
          label="Almost done"
          showValue
          size="sm"
        />
        <Progress label="Syncing" />
      </div>
    </div>
  );
}

More by murad-sinatra

View all
  • Number Field

    Number Field

    1
  • Table

    Table

  • Command Palette

    Command Palette

  • Tooltip

    Tooltip

  • Popover

    Popover

  • Mors Card

    Mors Card

  • Swatch

    Swatch

  • Divider

    Divider