331 lines
13 KiB
HTML
331 lines
13 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>BMC Hub - Material Blue</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
|
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
|
|
<style>
|
|
:root {
|
|
/* Blue Theme Tokens */
|
|
--md-sys-color-primary: #0061A4;
|
|
--md-sys-color-on-primary: #FFFFFF;
|
|
--md-sys-color-primary-container: #D1E4FF;
|
|
--md-sys-color-on-primary-container: #001D36;
|
|
--md-sys-color-surface: #FDFCFF;
|
|
--md-sys-color-surface-container: #F0F5FA;
|
|
--md-sys-color-on-surface: #1A1C1E;
|
|
--md-sys-color-outline: #73777F;
|
|
--md-sys-shape-corner-large: 16px;
|
|
--md-sys-shape-corner-medium: 12px;
|
|
--md-sys-shape-corner-full: 100px;
|
|
}
|
|
|
|
body {
|
|
background-color: var(--md-sys-color-surface);
|
|
color: var(--md-sys-color-on-surface);
|
|
font-family: 'Roboto', sans-serif;
|
|
padding-top: 80px;
|
|
}
|
|
|
|
.top-app-bar {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 80px;
|
|
background: var(--md-sys-color-surface-container);
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 0 24px;
|
|
z-index: 1000;
|
|
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
|
}
|
|
|
|
.nav-pills-material {
|
|
display: flex;
|
|
gap: 8px;
|
|
margin-left: 40px;
|
|
}
|
|
|
|
.nav-pill {
|
|
padding: 8px 24px;
|
|
border-radius: 100px;
|
|
text-decoration: none;
|
|
color: var(--md-sys-color-on-surface);
|
|
font-weight: 500;
|
|
font-size: 14px;
|
|
transition: all 0.2s;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.nav-pill:hover {
|
|
background-color: rgba(0, 97, 164, 0.08);
|
|
}
|
|
|
|
.nav-pill.active {
|
|
background-color: var(--md-sys-color-primary-container);
|
|
color: var(--md-sys-color-on-primary-container);
|
|
}
|
|
|
|
.card-md {
|
|
background: var(--md-sys-color-surface-container);
|
|
border-radius: var(--md-sys-shape-corner-large);
|
|
padding: 24px;
|
|
border: none;
|
|
height: 100%;
|
|
}
|
|
|
|
.btn-filled {
|
|
background: var(--md-sys-color-primary);
|
|
color: var(--md-sys-color-on-primary);
|
|
border-radius: 100px;
|
|
padding: 10px 24px;
|
|
border: none;
|
|
font-weight: 500;
|
|
letter-spacing: 0.1px;
|
|
transition: box-shadow 0.2s;
|
|
}
|
|
|
|
.btn-filled:hover {
|
|
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
|
|
}
|
|
|
|
.search-bar {
|
|
background: var(--md-sys-color-surface);
|
|
border-radius: 28px;
|
|
padding: 0 16px;
|
|
height: 48px;
|
|
display: flex;
|
|
align-items: center;
|
|
width: 300px;
|
|
border: 1px solid transparent;
|
|
}
|
|
|
|
.search-bar:focus-within {
|
|
border-color: var(--md-sys-color-primary);
|
|
background: var(--md-sys-color-surface-container);
|
|
}
|
|
|
|
.search-bar input {
|
|
border: none;
|
|
background: transparent;
|
|
margin-left: 12px;
|
|
width: 100%;
|
|
outline: none;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.profile-section {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 4px 8px 4px 4px;
|
|
border-radius: 100px;
|
|
background: var(--md-sys-color-primary);
|
|
color: white;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.profile-img {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: 50%;
|
|
background: white;
|
|
border: 2px solid white;
|
|
}
|
|
|
|
.table th {
|
|
font-weight: 500;
|
|
color: var(--md-sys-color-outline);
|
|
border-bottom: 1px solid #E7E0EC;
|
|
}
|
|
|
|
.table td {
|
|
padding: 16px 8px;
|
|
vertical-align: middle;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<header class="top-app-bar">
|
|
<div class="d-flex align-items-center">
|
|
<div class="bg-primary text-white rounded-circle d-flex align-items-center justify-content-center me-2" style="width: 40px; height: 40px; background-color: var(--md-sys-color-primary) !important;">
|
|
<i class="bi bi-grid-fill"></i>
|
|
</div>
|
|
<span class="fw-bold fs-5">BMC Hub</span>
|
|
</div>
|
|
|
|
<nav class="nav-pills-material">
|
|
<a href="index.html" class="nav-pill active">
|
|
<i class="bi bi-grid"></i> Dashboard
|
|
</a>
|
|
<a href="customers.html" class="nav-pill">
|
|
<i class="bi bi-people"></i> Kunder
|
|
</a>
|
|
<a href="#" class="nav-pill">
|
|
<i class="bi bi-hdd"></i> Hardware
|
|
</a>
|
|
<a href="#" class="nav-pill">
|
|
<i class="bi bi-gear"></i> Opsætning
|
|
</a>
|
|
</nav>
|
|
|
|
<div class="d-flex align-items-center gap-3 ms-auto">
|
|
<div class="search-bar">
|
|
<i class="bi bi-search text-muted"></i>
|
|
<input type="text" placeholder="Søg...">
|
|
</div>
|
|
|
|
<div class="profile-section">
|
|
<img src="https://ui-avatars.com/api/?name=CT&background=fff&color=0061A4" class="profile-img">
|
|
<span class="small fw-medium pe-2">Christian</span>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="container py-4">
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<h2 class="m-0 fw-normal">Dashboard</h2>
|
|
<button class="btn-filled"><i class="bi bi-plus-lg me-2"></i>Ny Opgave</button>
|
|
</div>
|
|
|
|
<div class="row g-3 mb-4">
|
|
<div class="col-md-3">
|
|
<div class="card-md">
|
|
<div class="d-flex align-items-center mb-3">
|
|
<i class="bi bi-people fs-4 me-2" style="color: var(--md-sys-color-primary)"></i>
|
|
<span class="fw-medium">Kunder</span>
|
|
</div>
|
|
<h2 class="display-5 fw-bold mb-0">124</h2>
|
|
<small class="text-muted">Aktive abonnementer</small>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card-md">
|
|
<div class="d-flex align-items-center mb-3">
|
|
<i class="bi bi-hdd-network fs-4 me-2" style="color: var(--md-sys-color-primary)"></i>
|
|
<span class="fw-medium">Hardware</span>
|
|
</div>
|
|
<h2 class="display-5 fw-bold mb-0">856</h2>
|
|
<small class="text-muted">Enheder registreret</small>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card-md">
|
|
<div class="d-flex align-items-center mb-3">
|
|
<i class="bi bi-exclamation-circle fs-4 me-2 text-danger"></i>
|
|
<span class="fw-medium">Support</span>
|
|
</div>
|
|
<h2 class="display-5 fw-bold mb-0">12</h2>
|
|
<small class="text-muted">Åbne sager</small>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card-md">
|
|
<div class="d-flex align-items-center mb-3">
|
|
<i class="bi bi-graph-up fs-4 me-2 text-success"></i>
|
|
<span class="fw-medium">Omsætning</span>
|
|
</div>
|
|
<h2 class="display-5 fw-bold mb-0">450k</h2>
|
|
<small class="text-muted">Denne måned</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row g-3">
|
|
<div class="col-md-8">
|
|
<div class="card-md">
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<h5 class="m-0">Seneste aktivitet</h5>
|
|
<button class="btn btn-sm btn-outline-secondary rounded-pill px-3">Se alle</button>
|
|
</div>
|
|
<table class="table table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Kunde</th>
|
|
<th>Handling</th>
|
|
<th>Status</th>
|
|
<th>Tid</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>
|
|
<div class="d-flex align-items-center">
|
|
<div class="rounded-circle text-white d-flex align-items-center justify-content-center me-2" style="width: 32px; height: 32px; font-size: 14px; background: var(--md-sys-color-primary);">A</div>
|
|
<span class="fw-medium">Advokatgruppen A/S</span>
|
|
</div>
|
|
</td>
|
|
<td>Firewall konfiguration</td>
|
|
<td><span class="badge rounded-pill text-bg-success bg-opacity-25 text-success">Fuldført</span></td>
|
|
<td class="text-muted">10:23</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div class="d-flex align-items-center">
|
|
<div class="rounded-circle bg-secondary text-white d-flex align-items-center justify-content-center me-2" style="width: 32px; height: 32px; font-size: 14px;">B</div>
|
|
<span class="fw-medium">Byg & Bo ApS</span>
|
|
</div>
|
|
</td>
|
|
<td>Licens fornyelse</td>
|
|
<td><span class="badge rounded-pill text-bg-warning bg-opacity-25 text-warning">Afventer</span></td>
|
|
<td class="text-muted">I går</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div class="d-flex align-items-center">
|
|
<div class="rounded-circle bg-danger text-white d-flex align-items-center justify-content-center me-2" style="width: 32px; height: 32px; font-size: 14px;">C</div>
|
|
<span class="fw-medium">Cafe Møller</span>
|
|
</div>
|
|
</td>
|
|
<td>Netværksnedbrud</td>
|
|
<td><span class="badge rounded-pill text-bg-danger bg-opacity-25 text-danger">Kritisk</span></td>
|
|
<td class="text-muted">I går</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card-md h-100">
|
|
<h5 class="mb-4">System Status</h5>
|
|
|
|
<div class="mb-4">
|
|
<div class="d-flex justify-content-between mb-1">
|
|
<span class="text-muted small">CPU</span>
|
|
<span class="fw-bold small">24%</span>
|
|
</div>
|
|
<div class="progress" style="height: 8px; border-radius: 4px;">
|
|
<div class="progress-bar" style="width: 24%; background-color: var(--md-sys-color-primary);"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-4">
|
|
<div class="d-flex justify-content-between mb-1">
|
|
<span class="text-muted small">RAM</span>
|
|
<span class="fw-bold small">56%</span>
|
|
</div>
|
|
<div class="progress" style="height: 8px; border-radius: 4px;">
|
|
<div class="progress-bar" style="width: 56%; background-color: var(--md-sys-color-primary);"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-auto p-3 rounded-4" style="background-color: var(--md-sys-color-primary-container); color: var(--md-sys-color-on-primary-container);">
|
|
<div class="d-flex">
|
|
<i class="bi bi-info-circle-fill me-2"></i>
|
|
<small class="fw-medium">System backup kører kl. 03:00</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html> |