diff --git a/public/file.svg b/public/file.svg
index 004145c..adfd2a9 100644
--- a/public/file.svg
+++ b/public/file.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/globe.svg b/public/globe.svg
index 567f17b..4af126a 100644
--- a/public/globe.svg
+++ b/public/globe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/window.svg b/public/window.svg
index b2b2a44..98febf2 100644
--- a/public/window.svg
+++ b/public/window.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/app/components/icons/document.tsx b/src/app/components/icons/document.tsx
new file mode 100644
index 0000000..a8cbcb6
--- /dev/null
+++ b/src/app/components/icons/document.tsx
@@ -0,0 +1,5 @@
+export function DocumentIcon(props: {className?: string}) {
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/components/icons/home.tsx b/src/app/components/icons/home.tsx
new file mode 100644
index 0000000..8270d4e
--- /dev/null
+++ b/src/app/components/icons/home.tsx
@@ -0,0 +1,5 @@
+export default function HomeIcon(props: {className?: string}) {
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/components/icons/user.tsx b/src/app/components/icons/user.tsx
new file mode 100644
index 0000000..02b56ed
--- /dev/null
+++ b/src/app/components/icons/user.tsx
@@ -0,0 +1,7 @@
+export function UserIcon(props: {className?: string}) {
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/src/app/components/skeleton/skeletons.tsx b/src/app/components/skeleton/skeletons.tsx
new file mode 100644
index 0000000..52b8a87
--- /dev/null
+++ b/src/app/components/skeleton/skeletons.tsx
@@ -0,0 +1,218 @@
+// Loading animation
+const shimmer =
+ 'before:absolute before:inset-0 before:-translate-x-full before:animate-[shimmer_2s_infinite] before:bg-gradient-to-r before:from-transparent before:via-white/60 before:to-transparent';
+
+export function CardSkeleton() {
+ return (
+