Hotels Admin Dashboard
Preview
Edit
Download
Run
Download Options
HTML File
Download as .html file
CSS File
Download as .css file
JavaScript File
Download as .js file
Combined HTML
All code in one HTML file
Project ZIP
All files in a ZIP archive
Cancel
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Hotels Admin Dashboard</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> </head> <body> <div class="dashboard"> <!-- Sidebar --> <div class="sidebar" id="sidebar"> <div class="sidebar-header"> <i class="fas fa-utensils fa-2x" style="color: var(--accent);"></i> <h3>Hotels</h3> </div> <ul class="sidebar-menu"> <li class="active"> <a href="#"> <i class="fas fa-tachometer-alt"></i> <span>Dashboard</span> </a> </li> <li> <a href="#"> <i class="fas fa-shopping-bag"></i> <span>Orders</span> </a> </li> <li> <a href="#"> <i class="fas fa-utensils"></i> <span>Menu Items</span> </a> </li> <li> <a href="#"> <i class="fas fa-users"></i> <span>Customers</span> </a> </li> <li> <a href="#"> <i class="fas fa-money-bill-wave"></i> <span>Payments</span> </a> </li> <li> <a href="#"> <i class="fas fa-chart-line"></i> <span>Analytics</span> </a> </li> <li> <a href="#"> <i class="fas fa-cog"></i> <span>Settings</span> </a> </li> </ul> </div> <!-- Main Content --> <div class="main-content"> <div class="header"> <div class="menu-toggle" id="menuToggle"> <i class="fas fa-bars"></i> </div> <div class="page-title"> <h1>Dashboard Overview</h1> <p>Welcome back, Admin! Here's what's happening with your business today.</p> </div> <div class="header-actions"> <div class="search-bar"> <i class="fas fa-search text-muted"></i> <input type="text" placeholder="Search orders, customers..."> </div> <div class="user-area"> <div class="notification"> <i class="fas fa-bell"></i> <span class="badge">3</span> </div> <div class="user-profile"> <img src="https://randomuser.me/api/portraits/women/45.jpg" alt="User"> <div class="user-info"> <span class="user-name">Admin User</span> <span class="user-role">Super Admin</span> </div> </div> </div> </div> </div> <!-- Cards --> <div class="cards mb-4"> <div class="card"> <div class="card-header"> <div> <h3>1,245</h3> <p>Total Orders</p> </div> <div class="card-icon orders"> <i class="fas fa-shopping-bag"></i> </div> </div> <div class="card-footer"> <i class="fas fa-arrow-up positive"></i> <span class="positive">12.5%</span> from last week </div> </div> <div class="card"> <div class="card-header"> <div> <h3>$12,540</h3> <p>Total Revenue</p> </div> <div class="card-icon revenue"> <i class="fas fa-dollar-sign"></i> </div> </div> <div class="card-footer"> <i class="fas fa-arrow-up positive"></i> <span class="positive">8.3%</span> from last week </div> </div> <div class="card"> <div class="card-header"> <div> <h3>856</h3> <p>Active Customers</p> </div> <div class="card-icon customers"> <i class="fas fa-users"></i> </div> </div> <div class="card-footer"> <i class="fas fa-arrow-up positive"></i> <span class="positive">5.2%</span> new customers </div> </div> <div class="card"> <div class="card-header"> <div> <h3>4.8</h3> <p>Average Rating</p> </div> <div class="card-icon rating"> <i class="fas fa-star"></i> </div> </div> <div class="card-footer"> <i class="fas fa-arrow-down negative"></i> <span class="negative">0.2</span> from last month </div> </div> </div> <!-- Charts --> <div class="charts mb-4"> <div class="chart-container"> <h2><i class="fas fa-chart-bar"></i> Orders Overview</h2> <div class="chart-placeholder"> Order trends chart will be displayed here </div> </div> <div class="chart-container"> <h2><i class="fas fa-chart-pie"></i> Revenue Sources</h2> <div class="chart-placeholder"> Revenue breakdown by category will be displayed here </div> </div> </div> <!-- Recent Orders --> <div class="recent-orders"> <h2><i class="fas fa-clock"></i> Recent Orders</h2> <table> <thead> <tr> <th>Order ID</th> <th>Customer</th> <th>Items</th> <th>Amount</th> <th>Status</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>#FE-1254</td> <td>John Smith</td> <td>3</td> <td>$24.50</td> <td><span class="status completed">Completed</span></td> <td><button class="action-btn"><i class="fas fa-ellipsis-v"></i></button></td> </tr> <tr> <td>#FE-1253</td> <td>Sarah Johnson</td> <td>5</td> <td>$42.75</td> <td><span class="status pending">Pending</span></td> <td><button class="action-btn"><i class="fas fa-ellipsis-v"></i></button></td> </tr> <tr> <td>#FE-1252</td> <td>Michael Brown</td> <td>2</td> <td>$18.20</td> <td><span class="status delivering">Delivering</span></td> <td><button class="action-btn"><i class="fas fa-ellipsis-v"></i></button></td> </tr> <tr> <td>#FE-1251</td> <td>Emily Davis</td> <td>4</td> <td>$35.90</td> <td><span class="status cancelled">Cancelled</span></td> <td><button class="action-btn"><i class="fas fa-ellipsis-v"></i></button></td> </tr> <tr> <td>#FE-1250</td> <td>Robert Wilson</td> <td>1</td> <td>$12.00</td> <td><span class="status completed">Completed</span></td> <td><button class="action-btn"><i class="fas fa-ellipsis-v"></i></button></td> </tr> </tbody> </table> </div> </div> </div> </body> </html>
CSS
:root { --primary: #FF6B6B; --primary-dark: #e05a5a; --secondary: #4ECDC4; --secondary-dark: #3bb9b0; --dark: #292F36; --dark-light: #3a424b; --light: #F7FFF7; --light-gray: #f5f7fa; --accent: #FFE66D; --accent-dark: #f5d84e; --text-primary: #2d3748; --text-secondary: #4a5568; --border-color: #e2e8f0; --success: #48BB78; --warning: #ED8936; --danger: #F56565; --info: #4299E1; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; } body { background-color: var(--light-gray); color: var(--text-primary); line-height: 1.5; } .dashboard { display: flex; min-height: 100vh; } /* Sidebar */ .sidebar { width: 280px; background: var(--dark); color: var(--light); padding: 20px 0; transition: all 0.3s ease; position: relative; z-index: 100; box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); } .sidebar-header { display: flex; align-items: center; padding: 0 25px 25px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .sidebar-header h3 { margin-left: 12px; font-size: 1.3rem; font-weight: 600; color: var(--light); } .sidebar-menu { padding: 20px 0; } .sidebar-menu li { list-style: none; margin: 5px 15px; border-radius: 8px; transition: all 0.3s; } .sidebar-menu li:hover { background: rgba(255, 255, 255, 0.1); } .sidebar-menu li.active { background: var(--primary); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .sidebar-menu li.active:hover { background: var(--primary-dark); } .sidebar-menu li a { color: var(--light); text-decoration: none; display: flex; align-items: center; padding: 12px 20px; font-weight: 500; font-size: 0.95rem; } .sidebar-menu li a i { margin-right: 12px; font-size: 1.1rem; width: 20px; text-align: center; } /* Main Content */ .main-content { flex: 1; padding: 25px 30px; transition: all 0.3s; } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; padding-bottom: 20px; border-bottom: 1px solid var(--border-color); } .page-title h1 { font-size: 1.8rem; font-weight: 700; color: var(--dark); } .page-title p { font-size: 0.9rem; color: var(--text-secondary); margin-top: 5px; } .header-actions { display: flex; align-items: center; gap: 20px; } .search-bar { display: flex; align-items: center; background: white; padding: 10px 18px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); border: 1px solid var(--border-color); transition: all 0.3s; } .search-bar:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(255, 107, 107, 0.2); } .search-bar input { border: none; outline: none; padding: 5px 10px; width: 250px; font-size: 0.95rem; color: var(--text-primary); } .search-bar input::placeholder { color: #a0aec0; } .user-area { display: flex; align-items: center; gap: 20px; } .user-area .notification { position: relative; font-size: 1.2rem; color: var(--text-secondary); cursor: pointer; transition: color 0.2s; } .notification:hover { color: var(--primary); } .notification .badge { position: absolute; top: -5px; right: -5px; background: var(--danger); color: white; border-radius: 50%; width: 18px; height: 18px; font-size: 0.7rem; display: flex; align-items: center; justify-content: center; font-weight: 600; } .user-profile { display: flex; align-items: center; cursor: pointer; padding: 5px 10px; border-radius: 8px; transition: all 0.3s; } .user-profile:hover { background: rgba(0, 0, 0, 0.05); } .user-profile img { width: 40px; height: 40px; border-radius: 50%; margin-right: 12px; object-fit: cover; border: 2px solid white; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); } .user-profile .user-info { display: flex; flex-direction: column; } .user-profile .user-name { font-weight: 600; font-size: 0.95rem; } .user-profile .user-role { font-size: 0.8rem; color: var(--text-secondary); margin-top: 2px; } /* Cards */ .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 25px; margin-bottom: 35px; } .card { background: white; border-radius: 12px; padding: 25px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); transition: transform 0.3s, box-shadow 0.3s; border: 1px solid var(--border-color); } .card:hover { transform: translateY(-5px); box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1); } .card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; } .card-icon { width: 55px; height: 55px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; color: white; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .card-icon.orders { background: var(--primary); background: linear-gradient(135deg, var(--primary), var(--primary-dark)); } .card-icon.revenue { background: var(--secondary); background: linear-gradient(135deg, var(--secondary), var(--secondary-dark)); } .card-icon.customers { background: var(--accent); background: linear-gradient(135deg, var(--accent), var(--accent-dark)); color: var(--dark); } .card-icon.rating { background: #6B5B95; background: linear-gradient(135deg, #6B5B95, #5a4a84); } .card h3 { font-size: 1.8rem; margin-bottom: 5px; font-weight: 700; color: var(--text-primary); } .card p { color: var(--text-secondary); font-size: 0.95rem; font-weight: 500; } .card-footer { margin-top: 15px; font-size: 0.85rem; display: flex; align-items: center; color: var(--text-secondary); } .card-footer i { margin-right: 5px; font-size: 0.8rem; } .positive { color: var(--success); } .negative { color: var(--danger); } /* Charts and Tables */ .charts { display: grid; grid-template-columns: 2fr 1fr; gap: 25px; margin-bottom: 35px; } .chart-container, .recent-orders { background: white; border-radius: 12px; padding: 25px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); border: 1px solid var(--border-color); } .chart-container h2, .recent-orders h2 { margin-bottom: 20px; font-size: 1.4rem; font-weight: 600; color: var(--text-primary); display: flex; align-items: center; } .chart-container h2 i, .recent-orders h2 i { margin-right: 10px; color: var(--primary); } .chart-placeholder { height: 350px; background: #f9f9f9; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #999; font-size: 1rem; border: 1px dashed var(--border-color); } /* Recent Orders */ .recent-orders { overflow-x: auto; } .recent-orders h2 { margin-bottom: 25px; } table { width: 100%; border-collapse: collapse; min-width: 800px; } table th, table td { padding: 15px; text-align: left; border-bottom: 1px solid var(--border-color); font-size: 0.95rem; } table th { color: var(--text-secondary); font-weight: 600; text-transform: uppercase; font-size: 0.85rem; letter-spacing: 0.5px; background: rgba(247, 250, 252, 0.8); } table tr:last-child td { border-bottom: none; } table tr:hover td { background: rgba(247, 250, 252, 0.8); } .status { padding: 6px 12px; border-radius: 20px; font-size: 0.8rem; font-weight: 600; display: inline-block; min-width: 90px; text-align: center; } .status.pending { background: #FFF3CD; color: #856404; } .status.completed { background: #D4EDDA; color: #155724; } .status.cancelled { background: #F8D7DA; color: #721C24; } .status.delivering { background: #CCE5FF; color: #004085; } .action-btn { background: none; border: none; color: var(--text-secondary); cursor: pointer; padding: 5px; border-radius: 4px; transition: all 0.3s; } .action-btn:hover { background: rgba(0, 0, 0, 0.05); color: var(--primary); } /* Responsive */ @media (max-width: 1200px) { .sidebar { width: 250px; } .charts { grid-template-columns: 1fr; } } @media (max-width: 992px) { .sidebar { position: fixed; left: -280px; height: 100vh; z-index: 1000; } .sidebar.active { left: 0; } .main-content { margin-left: 0; } .cards { grid-template-columns: 1fr 1fr; } } @media (max-width: 768px) { .header { flex-direction: column; align-items: flex-start; gap: 20px; } .header-actions { width: 100%; justify-content: space-between; } .search-bar input { width: 180px; } .cards { grid-template-columns: 1fr; } } @media (max-width: 576px) { .main-content { padding: 20px 15px; } .search-bar { width: 100%; } .search-bar input { width: 100%; } .user-profile .user-info { display: none; } } .menu-toggle { display: none; font-size: 1.5rem; cursor: pointer; color: var(--text-primary); padding: 5px; border-radius: 4px; transition: all 0.3s; } .menu-toggle:hover { background: rgba(0, 0, 0, 0.05); color: var(--primary); } @media (max-width: 992px) { .menu-toggle { display: block; } } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .card { animation: fadeIn 0.5s ease forwards; } .card:nth-child(2) { animation-delay: 0.1s; } .card:nth-child(3) { animation-delay: 0.2s; } .card:nth-child(4) { animation-delay: 0.3s; } /* Utility Classes */ .text-muted { color: var(--text-secondary); } .mb-4 { margin-bottom: 1.5rem; } .mt-3 { margin-top: 1rem; }
JavaScript
// Toggle sidebar on mobile document.getElementById('menuToggle').addEventListener('click', function() { document.getElementById('sidebar').classList.toggle('active'); }); // Close sidebar when clicking outside on mobile document.addEventListener('click', function(event) { const sidebar = document.getElementById('sidebar'); const menuToggle = document.getElementById('menuToggle'); if (window.innerWidth <= 992 && !sidebar.contains(event.target) && event.target !== menuToggle && !menuToggle.contains(event.target)) { sidebar.classList.remove('active'); } }); // Simulate loading data setTimeout(() => { // This would be replaced with actual chart initialization console.log('Charts would be loaded here with Chart.js or similar'); }, 500);
Output Preview
Desktop
Mobile
Fullscreen