diff --git a/src/components/__snapshots__/skeleton.spec.tsx.snap b/src/components/__snapshots__/skeleton.spec.tsx.snap
new file mode 100644
index 0000000..6d56606
--- /dev/null
+++ b/src/components/__snapshots__/skeleton.spec.tsx.snap
@@ -0,0 +1,9 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`Skeleton component > renders correctly 1`] = `
+
+`;
diff --git a/src/components/skeleton.spec.tsx b/src/components/skeleton.spec.tsx
new file mode 100644
index 0000000..b962fb5
--- /dev/null
+++ b/src/components/skeleton.spec.tsx
@@ -0,0 +1,10 @@
+import { render } from "@testing-library/react";
+import { describe, expect, it } from "vitest";
+import { Skeleton } from "./skeleton";
+
+describe("Skeleton component", () => {
+ it("renders correctly", () => {
+ const { container } = render();
+ expect(container).toMatchSnapshot();
+ });
+});
diff --git a/src/components/skeleton.stories.tsx b/src/components/skeleton.stories.tsx
new file mode 100644
index 0000000..02161e0
--- /dev/null
+++ b/src/components/skeleton.stories.tsx
@@ -0,0 +1,42 @@
+import type { Meta, StoryObj } from "@storybook/react";
+
+import { Skeleton } from "./skeleton";
+
+const meta = {
+ title: "Skeleton",
+ component: Skeleton,
+ parameters: {
+ layout: "centered",
+ },
+} satisfies Meta;
+
+export default meta;
+type Story = StoryObj;
+
+export const Example: Story = {
+ render() {
+ return (
+
+ );
+ },
+};
+
+export const Card: Story = {
+ render() {
+ return (
+
+ );
+ },
+};
diff --git a/src/components/skeleton.tsx b/src/components/skeleton.tsx
new file mode 100644
index 0000000..1a47743
--- /dev/null
+++ b/src/components/skeleton.tsx
@@ -0,0 +1,15 @@
+import { cn } from "@/lib/utils";
+
+function Skeleton({
+ className,
+ ...props
+}: React.HTMLAttributes) {
+ return (
+
+ );
+}
+
+export { Skeleton };