diff --git a/app/projects/[id]/loading.tsx b/app/projects/[id]/loading.tsx
new file mode 100644
index 0000000..8a8b769
--- /dev/null
+++ b/app/projects/[id]/loading.tsx
@@ -0,0 +1,48 @@
+import { Skeleton } from '@/components/ui/skeleton';
+
+export default function Loading() {
+ return (
+
+
+ {/* Primary Sidebar Skeleton */}
+
+
+
+
+
+
+ {/* Project Sidebar Skeleton */}
+
+
+ {/* Main Content Area Skeleton */}
+
+
+
+ {/* Status Bar Skeleton */}
+
+
+
+
+
+ );
+}
diff --git a/components/features/projectList/ProjectCardSkeleton.tsx b/components/features/projectList/ProjectCardSkeleton.tsx
new file mode 100644
index 0000000..928c054
--- /dev/null
+++ b/components/features/projectList/ProjectCardSkeleton.tsx
@@ -0,0 +1,36 @@
+import { Card, CardFooter, CardHeader } from '@/components/ui/card';
+import { Skeleton } from '@/components/ui/skeleton';
+
+export default function ProjectCardSkeleton() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/components/features/projectList/ProjectListContent.tsx b/components/features/projectList/ProjectListContent.tsx
index d983e66..8cbb158 100644
--- a/components/features/projectList/ProjectListContent.tsx
+++ b/components/features/projectList/ProjectListContent.tsx
@@ -3,7 +3,7 @@
import EmptyProjectCard from '@/components/features/projectList/EmptyProjectCard';
import ProjectCard from '@/components/features/projectList/ProjectCard';
-import { Spinner } from '@/components/ui/spinner';
+import ProjectCardSkeleton from '@/components/features/projectList/ProjectCardSkeleton';
import { useProjects } from '@/hooks/use-projects';
export default function ProjectListContent() {
@@ -13,10 +13,11 @@ export default function ProjectListContent() {
if (isLoading) {
return (
-
-
-
-
Loading projects...
+
+
+ {Array.from({ length: 3 }).map((_, i) => (
+
+ ))}
);