📂 FileMgr
📍
/home/kientructhaiha/htdocs/kientructhaiha.com/admin/assets/css
✏️ Edit File: /home/kientructhaiha/htdocs/kientructhaiha.com/admin/assets/css/admin.css
⬅ Kembali
/* Admin Dashboard CSS */ :root { --primary: #000000; --primary-dark: #1c1b1b; --primary-light: #e5e2e1; --secondary: #7b5800; --secondary-light: #fdc34d; --background: #fbf9f9; --surface: #ffffff; --surface-variant: #e3e2e2; --on-surface: #1b1c1c; --error: #ba1a1a; --success: #2e7d32; --warning: #f57c00; --info: #0277bd; } * { margin: 0; padding: 0; box-sizing: border-box; } html, body { height: 100%; font-family: 'Inter', sans-serif; } body { background-color: var(--background); color: var(--on-surface); } /* ===== ADMIN WRAPPER ===== */ .admin-wrapper { display: flex; min-height: 100vh; background-color: var(--background); } /* ===== SIDEBAR ===== */ .sidebar { width: 260px; background: var(--primary); color: white; position: fixed; left: 0; top: 0; height: 100vh; overflow-y: auto; z-index: 1000; box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); } .sidebar-header { padding: 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); display: flex; justify-content: space-between; align-items: center; } .logo { display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 600; } .logo i { font-size: 24px; } .sidebar-toggle { background: none; border: none; color: white; font-size: 20px; cursor: pointer; display: none; } .sidebar-nav { padding: 20px 0; } .nav-menu { list-style: none; } .nav-item a { display: flex; align-items: center; gap: 12px; padding: 12px 20px; color: rgba(255, 255, 255, 0.7); text-decoration: none; transition: all 0.3s ease; position: relative; } .nav-item a:hover { background: rgba(255, 255, 255, 0.1); color: white; padding-left: 25px; } .nav-item.active a { background: var(--secondary-light); color: var(--primary); border-left: 4px solid var(--secondary); padding-left: 16px; } .nav-item a i { font-size: 16px; width: 20px; } .nav-item a span { flex: 1; font-size: 14px; } .nav-item .badge { font-size: 11px; padding: 3px 8px; } .nav-divider { border-top: 1px solid rgba(255, 255, 255, 0.1); margin: 10px 0; } /* ===== MAIN CONTENT ===== */ .main-content { flex: 1; margin-left: 260px; display: flex; flex-direction: column; min-height: 100vh; } .top-header { background: var(--surface); border-bottom: 1px solid var(--surface-variant); padding: 15px 30px; display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); } .header-left { display: flex; align-items: center; } .btn-sidebar-toggle { background: none; border: none; font-size: 20px; color: var(--on-surface); cursor: pointer; display: none; margin-right: 15px; } .header-right { display: flex; align-items: center; gap: 20px; } .btn-homepage { background-color: var(--primary); color: #ffffff; border: 1px solid var(--primary); } .btn-homepage:hover, .btn-homepage:focus { background-color: var(--primary-dark); color: #ffffff; } .search-box { position: relative; flex: 0 1 300px; } .search-box .form-control { padding: 8px 12px 8px 35px; border: 1px solid var(--surface-variant); border-radius: 6px; font-size: 13px; transition: all 0.3s ease; } .search-box .form-control:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1); } .search-box i { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--on-surface); font-size: 13px; } .user-menu { position: relative; } .user-info { display: flex; align-items: center; gap: 12px; cursor: pointer; padding: 8px 12px; border-radius: 6px; transition: all 0.3s ease; } .user-info:hover { background: var(--primary-light); } .user-avatar { width: 40px; height: 40px; background: var(--secondary-light); color: var(--primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 16px; } .user-details { display: flex; flex-direction: column; } .user-name { font-size: 14px; font-weight: 600; color: var(--on-surface); } .user-role { font-size: 12px; color: #666; } .dropdown-menu { position: absolute; top: 100%; right: 0; background: var(--surface); border: 1px solid var(--surface-variant); border-radius: 6px; min-width: 180px; display: none; flex-direction: column; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); z-index: 1001; margin-top: 5px; } .user-menu:hover .dropdown-menu, .user-menu:focus-within .dropdown-menu { display: flex; } .dropdown-menu a { padding: 12px 16px; color: var(--on-surface); text-decoration: none; transition: all 0.3s ease; display: flex; align-items: center; gap: 10px; font-size: 14px; border-bottom: 1px solid var(--surface-variant); } .dropdown-menu a:last-child { border-bottom: none; } .dropdown-menu a:hover { background: var(--primary-light); color: var(--primary); } /* ===== PAGE CONTENT ===== */ .page-content { flex: 1; padding: 30px; } .page-header { margin-bottom: 30px; } .page-title { font-size: 28px; font-weight: 600; color: var(--on-surface); margin-bottom: 10px; } .page-subtitle { font-size: 14px; color: #666; } /* ===== DASHBOARD CARDS ===== */ .dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 30px; } .card-stat { background: var(--surface); border-radius: 12px; padding: 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; border: 1px solid var(--surface-variant); } .card-stat:hover { box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); transform: translateY(-5px); } .stat-icon { width: 50px; height: 50px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 24px; margin-bottom: 15px; } .stat-icon.primary { background: rgba(0, 0, 0, 0.1); color: var(--primary); } .stat-icon.secondary { background: rgba(123, 88, 0, 0.1); color: var(--secondary); } .stat-icon.success { background: rgba(46, 125, 50, 0.1); color: var(--success); } .stat-icon.warning { background: rgba(245, 124, 0, 0.1); color: var(--warning); } .stat-value { font-size: 28px; font-weight: 700; color: var(--on-surface); margin-bottom: 5px; } .stat-label { font-size: 14px; color: #666; } /* ===== TABLES ===== */ .table-container { background: var(--surface); border-radius: 12px; padding: 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); border: 1px solid var(--surface-variant); margin-bottom: 30px; } .table-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid var(--surface-variant); } .table-title { font-size: 18px; font-weight: 600; color: var(--on-surface); } .table-actions { display: flex; gap: 10px; } .btn-primary { background: var(--primary); color: white; border: none; padding: 8px 16px; border-radius: 6px; font-size: 13px; cursor: pointer; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 6px; } .btn-primary:hover { background: var(--primary-dark); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); } .btn-secondary { background: var(--secondary); color: white; border: none; padding: 8px 16px; border-radius: 6px; font-size: 13px; cursor: pointer; transition: all 0.3s ease; } .btn-secondary:hover { background: #653c00; } .btn-success { background: var(--success); color: white; } .btn-success:hover { background: #1b5e20; } .btn-danger { background: var(--error); color: white; } .btn-danger:hover { background: #9d0f0f; } .btn-warning { background: var(--warning); color: white; } .btn-sm { padding: 6px 10px; font-size: 12px; } table { width: 100%; border-collapse: collapse; } thead th { background: var(--primary-light); color: var(--primary); padding: 12px; text-align: left; font-weight: 600; font-size: 13px; border: none; } tbody td { padding: 12px; border-bottom: 1px solid var(--surface-variant); font-size: 14px; } tbody tr:hover { background: var(--primary-light); } tbody tr:last-child td { border-bottom: none; } .badge { display: inline-block; padding: 4px 8px; border-radius: 12px; font-size: 12px; font-weight: 600; } .badge-primary { background: rgba(0, 0, 0, 0.1); color: var(--primary); } .badge-secondary { background: rgba(123, 88, 0, 0.1); color: var(--secondary); } .badge-success { background: rgba(46, 125, 50, 0.1); color: var(--success); } .badge-danger { background: rgba(186, 26, 26, 0.1); color: var(--error); } /* ===== MODALS ===== */ .modal-content { border-radius: 12px; border: none; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2); } .modal-header { background: var(--primary); color: white; border-radius: 12px 12px 0 0; border: none; } .modal-title { font-weight: 600; font-size: 16px; } .btn-close { filter: brightness(0) invert(1); } .modal-body { padding: 25px; } .form-group { margin-bottom: 20px; } .form-label { font-weight: 600; color: var(--on-surface); margin-bottom: 8px; font-size: 14px; } .form-control { border: 1px solid var(--surface-variant); border-radius: 6px; padding: 10px 12px; font-size: 14px; transition: all 0.3s ease; } .form-control:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1); } textarea.form-control { resize: vertical; min-height: 100px; } /* ===== ALERTS ===== */ .alert { border-radius: 8px; border: none; padding: 15px; margin-bottom: 20px; font-size: 14px; } .alert-success { background: rgba(46, 125, 50, 0.1); color: var(--success); border-left: 4px solid var(--success); } .alert-danger { background: rgba(186, 26, 26, 0.1); color: var(--error); border-left: 4px solid var(--error); } .alert-warning { background: rgba(245, 124, 0, 0.1); color: var(--warning); border-left: 4px solid var(--warning); } .alert-info { background: rgba(2, 119, 189, 0.1); color: var(--info); border-left: 4px solid var(--info); } /* ===== TOAST ===== */ .toast { border-radius: 8px; border: none; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); min-width: 300px; } .toast-container { position: fixed; top: 20px; right: 20px; z-index: 9999; } /* ===== RESPONSIVE ===== */ @media (max-width: 991px) { .sidebar { transform: translateX(-100%); transition: transform 0.3s ease; } .sidebar.active { transform: translateX(0); } .main-content { margin-left: 0; } .btn-sidebar-toggle { display: block; } .header-right { gap: 10px; } .search-box { display: none; } .page-content { padding: 15px; } .dashboard-grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } } @media (max-width: 768px) { .sidebar { width: 80%; max-width: 250px; } .page-title { font-size: 22px; } .dashboard-grid { grid-template-columns: 1fr; } .table-container { padding: 15px; } table { font-size: 12px; } thead th, tbody td { padding: 8px; } } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--background); } ::-webkit-scrollbar-thumb { background: var(--surface-variant); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--primary); }
💾 Simpan File
Batal
⬅ Naik ke assets
1 item
Nama
Tipe
Ukuran
Diubah
Aksi
🎨
admin.css
css
13 KB
2026-06-07 15:58
✏️ Edit
👁️ View
🗑 Hapus