fix sidebar

This commit is contained in:
Muzakki Parsaoran Siregar 2025-09-02 13:47:29 +07:00
parent e6565fc33a
commit 31a39e9642

View File

@ -7,10 +7,9 @@
<title>@yield('title', 'Admin Panel')</title> <title>@yield('title', 'Admin Panel')</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css">
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
<style> <style>
body { body {
background-color: #f8f9fa; background-color: #f1f5f9;
font-family: 'Poppins', sans-serif; font-family: 'Poppins', sans-serif;
} }
@ -18,56 +17,64 @@
.sidebar { .sidebar {
width: 250px; width: 250px;
height: 100vh; height: 100vh;
background-color: #fff; background: #fff;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); box-shadow: 2px 0 8px rgba(0, 0, 0, 0.05);
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
padding: 20px 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
transition: all 0.3s ease;
} }
.sidebar .logo { .sidebar .logo {
text-align: center; text-align: center;
margin-bottom: 20px; padding: 20px 0;
border-bottom: 1px solid #eee;
} }
.sidebar .logo img { .sidebar .logo img {
width: 120px; width: 130px;
} }
.sidebar .menu-title { .sidebar .menu-title {
font-size: 12px; font-size: 11px;
font-weight: 600; font-weight: 600;
padding-left: 20px; padding: 15px 20px 5px;
color: #6c757d; color: #6c757d;
margin-top: 10px; text-transform: uppercase;
margin-bottom: 5px; letter-spacing: .5px;
} }
.sidebar ul { .sidebar ul {
list-style: none; list-style: none;
padding-left: 0; padding: 0;
margin: 0; margin: 0;
} }
.sidebar ul li a { .sidebar ul li a {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 10px 20px; padding: 12px 20px;
color: #333; color: #495057;
text-decoration: none; text-decoration: none;
font-weight: 500; font-weight: 500;
transition: all 0.3s; font-size: 14px;
cursor: pointer; border-left: 3px solid transparent;
transition: all 0.25s ease-in-out;
}
.sidebar ul li a:hover {
background-color: #f1f5ff;
color: #0d6efd;
border-left: 3px solid #0d6efd;
} }
.sidebar ul li a:hover,
.sidebar ul li a.active { .sidebar ul li a.active {
background-color: #eef4ff; background-color: #eef4ff;
color: #0d6efd; color: #0d6efd;
border-left: 3px solid #0d6efd;
} }
.sidebar ul li a i { .sidebar ul li a i {
@ -75,29 +82,37 @@
margin-right: 10px; margin-right: 10px;
} }
/* Dropdown submenu */ /* Submenu */
.submenu { .submenu {
padding-left: 40px; padding-left: 55px;
display: none;
} }
.submenu.show { .submenu a {
display: block; font-size: 13px;
padding: 8px 20px;
color: #6c757d;
}
.submenu a:hover {
color: #0d6efd;
background: transparent;
border-left: none;
} }
/* BOTTOM PROFILE */ /* BOTTOM PROFILE */
.sidebar-bottom { .sidebar-bottom {
padding: 20px; padding: 15px 20px;
border-top: 1px solid #eaeaea; border-top: 1px solid #eee;
background: #fafafa;
} }
.sidebar-bottom .logout { .sidebar-bottom .logout {
color: red; color: #dc3545;
display: flex; display: flex;
align-items: center; align-items: center;
text-decoration: none;
font-weight: 600; font-weight: 600;
cursor: pointer; text-decoration: none;
font-size: 14px;
} }
.sidebar-bottom .logout i { .sidebar-bottom .logout i {
@ -112,100 +127,122 @@
} }
.sidebar-bottom .profile img { .sidebar-bottom .profile img {
width: 35px; width: 38px;
height: 35px; height: 38px;
border-radius: 50%; border-radius: 50%;
object-fit: cover; object-fit: cover;
border: 2px solid #ddd;
}
.sidebar-bottom .profile p {
margin: 0;
font-size: 14px;
font-weight: 600;
color: #333;
}
.sidebar-bottom .profile small {
font-size: 12px;
color: #6c757d;
} }
/* MAIN CONTENT */ /* MAIN CONTENT */
.main-content { .main-content {
margin-left: 250px; margin-left: 250px;
padding: 20px; padding: 25px;
min-height: 100vh;
} }
</style> </style>
</head> </head>
<body> <body>
<!-- SIDEBAR --> <!-- Sidebar -->
<div class="sidebar"> <div id="sidebar" class="sidebar bg-white d-flex flex-column">
<div>
<!-- LOGO -->
<div class="logo">
<img src="{{ asset('images/logo.png') }}" alt="Logo">
</div>
<!-- MENU --> <!-- LOGO -->
<p class="menu-title">Menu Utama</p> <div class="sidebar-header text-center py-4">
<ul> <img src="{{ asset('images/logo.png') }}" alt="Logo" class="img-fluid mb-2" style="max-height: 80px;">
<!-- Dashboard tetap punya route --> </div>
<li>
<a href="{{ route('admin.dashboard') }}"
class="{{ request()->is('admin/dashboard') ? 'active' : '' }}">
<i class="bi bi-house-door"></i> Dasbor
</a>
</li>
<!-- Dummy menu --> <!-- MENU -->
<li> <div class="sidebar-menu flex-grow-1">
<a href="{{ route('admin.kategori.index') }}" <p class="menu-title text-muted px-3 mb-2">Menu Utama</p>
class="{{ request()->is('admin/kategori*') ? 'active' : '' }}"> <ul class="list-unstyled px-2">
<i class="bi bi-diagram-3"></i> Kategori <li>
</a> <a href="{{ route('admin.dashboard') }}"
</li> class="d-flex align-items-center py-2 px-3 {{ request()->is('admin/dashboard') ? 'active' : '' }}">
<i class="bi bi-house-door me-2"></i> Dasbor
</a>
</li>
<li>
<a href="{{ route('admin.kategori.index') }}"
class="d-flex align-items-center py-2 px-3 {{ request()->is('admin/kategori*') ? 'active' : '' }}">
<i class="bi bi-diagram-3 me-2"></i> Kategori
</a>
</li>
<li>
<a href="{{ route('admin.fitur.index') }}"
class="d-flex align-items-center py-2 px-3 {{ request()->is('admin/fitur*') ? 'active' : '' }}">
<i class="bi bi-grid me-2"></i> Fitur
</a>
</li>
<li> <!-- Dropdown Templat -->
<a href="{{ route('admin.fitur.index') }}" <li>
class="{{ request()->is('admin/fitur*') ? 'active' : '' }}"> <a href="#templatSubmenu" data-bs-toggle="collapse" aria-expanded="false"
<i class="bi bi-diagram-3"></i> Fitur class="d-flex align-items-center py-2 px-3">
</a> <i class="bi bi-card-list me-2"></i> Templat
</li> <i class="bi bi-chevron-down ms-auto"></i>
</a>
<ul id="templatSubmenu" class="submenu collapse list-unstyled ms-4">
<li><a href="javascript:void(0)" class="d-block py-2">Pernikahan</a></li>
<li><a href="javascript:void(0)" class="d-block py-2">Ulang Tahun</a></li>
<li><a href="javascript:void(0)" class="d-block py-2">Khitan</a></li>
</ul>
</li>
<li>
<a href="javascript:void(0)" class="d-flex align-items-center py-2 px-3">
<i class="bi bi-people me-2"></i> Pelanggan
</a>
</li>
<li>
<a href="{{ route('admin.reviews.index') }}"
class="d-flex align-items-center py-2 px-3 {{ request()->is('admin/ulasan') ? 'active' : '' }}">
<i class="bi bi-chat-dots me-2"></i> Ulasan
</a>
</li>
</ul>
<!-- Dropdown dummy --> <!-- MENU AKUN -->
<li> <p class="menu-title text-muted px-3 mt-4 mb-2">Akun</p>
<a href="#templatSubmenu" data-bs-toggle="collapse" aria-expanded="false"> <ul class="list-unstyled px-2">
<i class="bi bi-card-list"></i> Templat <li>
<i class="bi bi-chevron-down ms-auto"></i> <a href="{{ route('admin.logout') }}"
</a> onclick="event.preventDefault(); document.getElementById('logout-form').submit();"
<ul id="templatSubmenu" class="submenu collapse"> class="d-flex align-items-center py-2 px-3 text-danger fw-bold">
<li><a href="javascript:void(0)">Pernikahan</a></li> <i class="bi bi-box-arrow-right me-2 text-danger"></i> Keluar
<li><a href="javascript:void(0)">Ulang Tahun</a></li> </a>
<li><a href="javascript:void(0)">Khitan</a></li> <form id="logout-form" action="{{ route('admin.logout') }}" method="POST" class="d-none">
</ul> @csrf
</li> </form>
</li>
</ul>
</div>
<li><a href="javascript:void(0)"><i class="bi bi-people"></i> Pelanggan</a></li> <!-- PROFILE BOX DI PALING BAWAH -->
<li> <div class="sidebar-bottom border-top p-3">
<a href="{{ route('admin.reviews.index') }}" <div class="d-flex align-items-center">
class="{{ request()->is('admin/ulasan') ? 'active' : '' }}"> <img src="{{ asset('default-avatar.png') }}" alt="Admin" class="rounded-circle me-2"
<i class="bi bi-chat-dots"></i> Ulasan style="width:40px; height:40px;">
</a> <div>
</li> <p class="mb-0 fw-semibold">{{ auth('admin')->user()->name }}</p>
<small class="text-muted">{{ auth('admin')->user()->email }}</small>
</ul>
</div>
<!-- BOTTOM SIDEBAR -->
<div class="sidebar-bottom">
<a href="{{ route('admin.logout') }}" class="logout"
onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
<i class="bi bi-box-arrow-right"></i> Keluar
</a>
<form id="logout-form" action="{{ route('admin.logout') }}" method="POST" class="d-none">
@csrf
</form>
<div class="profile">
<img src="{{ asset('default-avatar.png') }}" alt="Admin">
<div>
<p class="m-0 fw-bold">{{ auth('admin')->user()->name }}</p>
<small class="text-muted">{{ auth('admin')->user()->email }}</small>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
<!-- MAIN CONTENT --> <!-- MAIN CONTENT -->
<div class="main-content"> <div class="main-content">