diff --git a/src/main/java/com/example/HomeSecurity/Controllers/Events.java b/src/main/java/com/example/HomeSecurity/Controllers/Events.java new file mode 100644 index 0000000..90dcd24 --- /dev/null +++ b/src/main/java/com/example/HomeSecurity/Controllers/Events.java @@ -0,0 +1,14 @@ +package com.example.HomeSecurity.Controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class Events { + + @GetMapping("/events") + public String eventsPage(){ + return "events"; + } + +} diff --git a/src/main/java/com/example/HomeSecurity/Controllers/Settings.java b/src/main/java/com/example/HomeSecurity/Controllers/Settings.java new file mode 100644 index 0000000..0371c17 --- /dev/null +++ b/src/main/java/com/example/HomeSecurity/Controllers/Settings.java @@ -0,0 +1,14 @@ +package com.example.HomeSecurity.Controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class Settings { + + @GetMapping("/settings") + public String settingsPage(){ + return "systemSettings"; + } + +} diff --git a/src/main/resources/static/css/events.css b/src/main/resources/static/css/events.css new file mode 100644 index 0000000..43b5f61 --- /dev/null +++ b/src/main/resources/static/css/events.css @@ -0,0 +1,28 @@ +.table tbody td { + padding: 1rem; + border-bottom: 1px solid #f1f5f9; +} + +/* Monospace font for logs/time */ +.timestamp { + font-family: 'JetBrains Mono', monospace; + font-size: 0.8rem; + color: #94a3b8; +} + +/* Severity color strips for table rows */ +.severity-strip { + width: 4px; + padding: 0 !important; +} + +/* Dark theme overrides for buttons */ +.btn-primary { + background-color: #0f172a; + border-color: #0f172a; +} + +.btn-primary:hover { + background-color: #334155; + border-color: #334155; +} \ No newline at end of file diff --git a/src/main/resources/static/css/home.css b/src/main/resources/static/css/home.css new file mode 100644 index 0000000..ab8c0a1 --- /dev/null +++ b/src/main/resources/static/css/home.css @@ -0,0 +1,18 @@ +/* Vertical strip on the left of sensor cards */ +.sensor-card { + position: relative; + overflow: hidden; +} + +.status-strip { + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; +} + +/* Specific button variant for Panic/Arm */ +.btn-outline-danger { + border-width: 2px; +} \ No newline at end of file diff --git a/src/main/resources/static/css/main.css b/src/main/resources/static/css/main.css new file mode 100644 index 0000000..80aa511 --- /dev/null +++ b/src/main/resources/static/css/main.css @@ -0,0 +1,72 @@ +:root { + --bg-color: #f4f6f8; + --hover-shadow: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05); + --navbar-dark: #1e293b; + --transition-speed: 0.25s; +} + +body { + background: var(--bg-color); + font-family: 'Segoe UI', Roboto, Arial, sans-serif; + color: #1e293b; + -webkit-font-smoothing: antialiased; +} + +/* --- GLOBAL SHARP UI --- */ +.card, .btn, .form-control, .form-select, .badge, +.input-group-text, .modal-content, .dropdown-menu { + border-radius: 0 !important; +} + +/* --- SHARED CARD STYLE --- */ +.card { + border: 1px solid rgba(0, 0, 0, .05); + box-shadow: 0 1px 3px rgba(0, 0, 0, .1); + transition: all var(--transition-speed) ease; + background: #fff; +} + +.card:hover { + transform: translateY(-2px); + box-shadow: var(--hover-shadow); +} + +/* --- SHARED NAVBAR --- */ +.navbar { + background: var(--navbar-dark) !important; + box-shadow: 0 2px 4px rgba(0, 0, 0, .05); +} + +/* --- SHARED TABLE HEADERS --- */ +.table thead th { + font-size: .7rem; + text-transform: uppercase; + color: #64748b; + letter-spacing: 0.5px; + font-weight: 700; +} + +/* --- SHARED LIVE STATUS DOT --- */ +.live-dot { + width: 8px; + height: 8px; + background: #22c55e; + border-radius: 50% !important; + display: inline-block; + animation: pulse 2s infinite; +} + +@keyframes pulse { + 0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(34, 197, 94, .7); } + 70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(34, 197, 94, 0); } + 100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); } +} + +/* --- SHARED BUTTON SIZING --- */ +.btn-lg { + font-size: .8rem; + letter-spacing: 1px; + font-weight: 600; + text-transform: uppercase; + padding: 1rem 1.5rem; +} \ No newline at end of file diff --git a/src/main/resources/static/css/systemSettings.css b/src/main/resources/static/css/systemSettings.css new file mode 100644 index 0000000..0b10f56 --- /dev/null +++ b/src/main/resources/static/css/systemSettings.css @@ -0,0 +1,32 @@ +/* Label styling for forms */ +.form-label { + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.5px; + font-weight: 700; + color: #64748b; + margin-bottom: 0.5rem; +} + +.input-group-text { + background-color: #f8fafc; + font-size: 0.75rem; + font-weight: 600; + color: #94a3b8; +} + +.form-control:focus { + box-shadow: none; + border-color: #0dcaf0; +} + +/* Sticky Action Bar at bottom */ +.action-bar { + position: sticky; + bottom: 0; + background: rgba(255, 255, 255, 0.9); + backdrop-filter: blur(8px); + border-top: 1px solid rgba(0, 0, 0, .1); + z-index: 1000; + margin-top: 3rem; +} \ No newline at end of file diff --git a/src/main/resources/templates/events.html b/src/main/resources/templates/events.html index 211b745..ef18180 100644 --- a/src/main/resources/templates/events.html +++ b/src/main/resources/templates/events.html @@ -8,122 +8,15 @@ - + + -
- +