tahamajs/IE / Projects /front /src /components /layout /AdminLayout.tsx
tahamajs's picture
download
raw
1.47 kB
// src/components/layout/AdminLayout.tsx
import { Outlet } from "react-router-dom";
import { AdminHeader } from "@/components/admin/AdminHeader";
import { AdminSidebar } from "@/components/admin/AdminSidebar";
import { motion } from "framer-motion";
export default function AdminLayout() {
return (
<div className="min-h-screen bg-slate-50/50 dark:bg-slate-900/50 text-slate-900 dark:text-slate-50 transition-colors duration-300 relative overflow-hidden">
<AdminHeader />
<div className="flex relative z-10">
<AdminSidebar />
<main className="flex-1 p-6 relative">
<motion.div
initial={{ opacity: 0, y: 15 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.5, ease: "easeOut" }}
className="w-full min-h-[calc(100vh-6rem)] p-6 rounded-3xl premium-glass bg-white/40 dark:bg-slate-950/20 backdrop-blur-md border border-white/30 dark:border-white/10 shadow-[0_8px_32px_0_rgba(31,38,135,0.07)] hover-lift"
>
<Outlet />
</motion.div>
</main>
</div>
{/* Decorative glowing gradient background */}
<div className="absolute top-1/4 right-1/4 -z-0 w-[40rem] h-[40rem] bg-indigo-500/10 blur-[120px] rounded-full opacity-50 pointer-events-none" />
<div className="absolute bottom-0 left-1/4 -z-0 w-[40rem] h-[40rem] bg-purple-500/10 blur-[120px] rounded-full opacity-50 pointer-events-none" />
</div>
);
}

Xet Storage Details

Size:
1.47 kB
·
Xet hash:
51413d44d9276a2042235b46ec52eb9a99bb199a24dfddd0d241d1fe3b3a3a38

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.