diff --git a/src/components/SkeletonCard.tsx b/src/components/SkeletonCard.tsx
new file mode 100644
index 0000000..98bc621
--- /dev/null
+++ b/src/components/SkeletonCard.tsx
@@ -0,0 +1,94 @@
+import Skeleton from "react-loading-skeleton";
+import AspectRatio from "./AspectRatio";
+import classNames from "classnames";
+
+/* -------------------------------------------------------------------------- */
+/* Props */
+/* -------------------------------------------------------------------------- */
+type Props = {
+ /**
+ * Card component accept children
+ */
+ children?: React.ReactNode;
+ /**
+ * Styling the card component
+ */
+ className?: string | undefined;
+};
+
+const SkeletonCard = ({ className, children }: Props) => {
+ return (
+
+ {children}
+
+ );
+};
+
+// Media
+SkeletonCard.Media = function SkeletonCardCardMedia() {
+ return (
+
+
+
+
+
+ );
+};
+
+// Content
+SkeletonCard.Content = function SkeletonCardCardContent({
+ children,
+ className,
+}: Props) {
+ return (
+
+ {children}
+
+ );
+};
+
+// Header
+SkeletonCard.Header = function SkeletonCardCardHeader({
+ children,
+ className,
+}: Props) {
+ return (
+
+ {children}
+
+ );
+};
+
+// Avatar
+SkeletonCard.Avatar = function SkeletonCardCardAvatar() {
+ return ;
+};
+
+// Title
+SkeletonCard.Title = function SkeletonCardCardTitle() {
+ return ;
+};
+
+// Body
+SkeletonCard.Body = function SkeletonCardCardBody({
+ children,
+ className,
+}: Props) {
+ return ;
+};
+
+// Action
+SkeletonCard.Action = function SkeletonCardCardAction({ className }: Props) {
+ return (
+
+
+
+ );
+};
+
+export default SkeletonCard;