← back to Wine Finder Next

components/membership/LoadingSkeleton.tsx

47 lines

export default function LoadingSkeleton() {
  return (
    <div className="min-h-screen bg-gradient-to-br from-purple-900 via-indigo-900 to-blue-900">
      {/* Header Skeleton */}
      <div className="bg-black/30 backdrop-blur-sm border-b border-white/10">
        <div className="max-w-7xl mx-auto px-4 py-6">
          <div className="h-10 bg-white/10 rounded-lg w-3/4 mb-3 animate-pulse" />
          <div className="h-6 bg-white/5 rounded-lg w-full mb-4 animate-pulse" />
          <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
            {[1, 2, 3].map((i) => (
              <div key={i} className="h-6 bg-white/5 rounded-lg animate-pulse" />
            ))}
          </div>
        </div>
      </div>

      {/* Navigation Skeleton */}
      <div className="max-w-7xl mx-auto px-4 py-6">
        <div className="flex gap-2 mb-8 bg-black/20 p-2 rounded-xl backdrop-blur-sm">
          {[1, 2, 3, 4].map((i) => (
            <div key={i} className="flex-1 h-12 bg-white/10 rounded-lg animate-pulse" />
          ))}
        </div>

        {/* Content Skeleton */}
        <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
          {[1, 2, 3].map((i) => (
            <div
              key={i}
              className="bg-white/10 backdrop-blur-sm rounded-xl p-6 border border-white/20 animate-pulse"
            >
              <div className="h-6 bg-white/20 rounded w-3/4 mb-4" />
              <div className="space-y-3">
                <div className="h-4 bg-white/10 rounded w-full" />
                <div className="h-4 bg-white/10 rounded w-5/6" />
                <div className="h-4 bg-white/10 rounded w-4/6" />
              </div>
              <div className="mt-6 h-32 bg-white/5 rounded-lg" />
              <div className="mt-4 h-12 bg-gradient-to-r from-purple-500/20 to-pink-500/20 rounded-lg" />
            </div>
          ))}
        </div>
      </div>
    </div>
  );
}