summaryrefslogtreecommitdiff
path: root/src/core/components/elements/Skeleton
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/components/elements/Skeleton')
-rw-r--r--src/core/components/elements/Skeleton/BrandSkeleton.jsx8
-rw-r--r--src/core/components/elements/Skeleton/ImageSkeleton.jsx10
-rw-r--r--src/core/components/elements/Skeleton/ProductCardSkeleton.jsx15
3 files changed, 33 insertions, 0 deletions
diff --git a/src/core/components/elements/Skeleton/BrandSkeleton.jsx b/src/core/components/elements/Skeleton/BrandSkeleton.jsx
new file mode 100644
index 00000000..ce5a994d
--- /dev/null
+++ b/src/core/components/elements/Skeleton/BrandSkeleton.jsx
@@ -0,0 +1,8 @@
+const BrandSkeleton = () => (
+ <div role="status" className="animate-pulse">
+ <div className="h-12 bg-gray-200 rounded"></div>
+ <span className="sr-only">Loading...</span>
+ </div>
+)
+
+export default BrandSkeleton \ No newline at end of file
diff --git a/src/core/components/elements/Skeleton/ImageSkeleton.jsx b/src/core/components/elements/Skeleton/ImageSkeleton.jsx
new file mode 100644
index 00000000..2cda9536
--- /dev/null
+++ b/src/core/components/elements/Skeleton/ImageSkeleton.jsx
@@ -0,0 +1,10 @@
+const ImageSkeleton = () => (
+ <div role="status" className="animate-pulse">
+ <div className="flex items-center justify-center h-56 mb-4 bg-gray-300 rounded" aria-busy>
+ <svg className="w-12 h-12 text-gray-200" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" viewBox="0 0 640 512"><path d="M480 80C480 35.82 515.8 0 560 0C604.2 0 640 35.82 640 80C640 124.2 604.2 160 560 160C515.8 160 480 124.2 480 80zM0 456.1C0 445.6 2.964 435.3 8.551 426.4L225.3 81.01C231.9 70.42 243.5 64 256 64C268.5 64 280.1 70.42 286.8 81.01L412.7 281.7L460.9 202.7C464.1 196.1 472.2 192 480 192C487.8 192 495 196.1 499.1 202.7L631.1 419.1C636.9 428.6 640 439.7 640 450.9C640 484.6 612.6 512 578.9 512H55.91C25.03 512 .0006 486.1 .0006 456.1L0 456.1z"/></svg>
+ </div>
+ <span className="sr-only">Loading...</span>
+ </div>
+)
+
+export default ImageSkeleton \ No newline at end of file
diff --git a/src/core/components/elements/Skeleton/ProductCardSkeleton.jsx b/src/core/components/elements/Skeleton/ProductCardSkeleton.jsx
new file mode 100644
index 00000000..66b48f79
--- /dev/null
+++ b/src/core/components/elements/Skeleton/ProductCardSkeleton.jsx
@@ -0,0 +1,15 @@
+const ProductCardSkeleton = () => (
+ <div role="status" className="p-4 max-w-sm rounded border border-gray-300 shadow animate-pulse md:p-6">
+ <div className="flex items-center justify-center h-36 mb-4 bg-gray-300 rounded" aria-busy>
+ <svg className="w-12 h-12 text-gray-200" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" viewBox="0 0 640 512"><path d="M480 80C480 35.82 515.8 0 560 0C604.2 0 640 35.82 640 80C640 124.2 604.2 160 560 160C515.8 160 480 124.2 480 80zM0 456.1C0 445.6 2.964 435.3 8.551 426.4L225.3 81.01C231.9 70.42 243.5 64 256 64C268.5 64 280.1 70.42 286.8 81.01L412.7 281.7L460.9 202.7C464.1 196.1 472.2 192 480 192C487.8 192 495 196.1 499.1 202.7L631.1 419.1C636.9 428.6 640 439.7 640 450.9C640 484.6 612.6 512 578.9 512H55.91C25.03 512 .0006 486.1 .0006 456.1L0 456.1z"/></svg>
+ </div>
+ <div className="h-2 bg-gray-200 rounded-full w-10 mb-1"></div>
+ <div className="h-2.5 bg-gray-200 rounded-full w-full mb-4"></div>
+ <div className="h-2 bg-gray-200 rounded-full mb-2.5"></div>
+ <div className="h-2 bg-gray-200 rounded-full mb-2.5"></div>
+ <div className="h-2 bg-gray-200 rounded-full"></div>
+ <span className="sr-only">Loading...</span>
+ </div>
+)
+
+export default ProductCardSkeleton \ No newline at end of file