From 55f56525724b05767c4a480e07b429108e0cf646 Mon Sep 17 00:00:00 2001 From: nessi Date: Thu, 12 Feb 2026 14:05:51 +0100 Subject: [PATCH] Improve action button styling and structure across pages Introduced a new design and layout for action buttons on AlertsPage, DashboardPage, and TargetsPage with consistent styles and added SVG icons. Updated styles.css to support these changes with reusable button classes for better maintainability and UI consistency. --- frontend/src/pages/AlertsPage.jsx | 24 +++++++--- frontend/src/pages/DashboardPage.jsx | 9 +++- frontend/src/pages/TargetsPage.jsx | 33 +++++++++++-- frontend/src/styles.css | 72 ++++++++++++++++++++++++++++ 4 files changed, 128 insertions(+), 10 deletions(-) diff --git a/frontend/src/pages/AlertsPage.jsx b/frontend/src/pages/AlertsPage.jsx index 5efcd73..3124986 100644 --- a/frontend/src/pages/AlertsPage.jsx +++ b/frontend/src/pages/AlertsPage.jsx @@ -442,12 +442,24 @@ export function AlertsPage() { {d.alert_threshold} {d.enabled ? "Enabled" : "Disabled"} - {" "} - +
+ + +
))} diff --git a/frontend/src/pages/DashboardPage.jsx b/frontend/src/pages/DashboardPage.jsx index 310a3fc..553db06 100644 --- a/frontend/src/pages/DashboardPage.jsx +++ b/frontend/src/pages/DashboardPage.jsx @@ -110,7 +110,14 @@ export function DashboardPage() {

DB: {t.dbname}

- Details + + + Details +
); diff --git a/frontend/src/pages/TargetsPage.jsx b/frontend/src/pages/TargetsPage.jsx index 867c16f..307d87f 100644 --- a/frontend/src/pages/TargetsPage.jsx +++ b/frontend/src/pages/TargetsPage.jsx @@ -339,9 +339,36 @@ export function TargetsPage() { - Details{" "} - {canManage && } - {canManage && } +
+ + + Details + + {canManage && ( + + )} + {canManage && ( + + )} +
))} diff --git a/frontend/src/styles.css b/frontend/src/styles.css index 2e81812..9c8d07f 100644 --- a/frontend/src/styles.css +++ b/frontend/src/styles.css @@ -825,6 +825,78 @@ details[open] .collapse-chevron { font-weight: 600; } +.row-actions { + display: inline-flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.table-action-btn { + display: inline-flex; + align-items: center; + gap: 6px; + border-radius: 10px; + padding: 6px 10px; + min-height: 32px; + font-weight: 650; + font-size: 13px; + border: 1px solid transparent; + color: #eaf4ff; + background: #132d54; + text-decoration: none; +} + +.table-action-btn.details { + border-color: #47c4f6; + background: linear-gradient(180deg, #155c8f, #124a76); +} + +.table-action-btn.details:hover { + border-color: #8ce8ff; + filter: brightness(1.06); +} + +.table-action-btn.edit { + border-color: #4f8ed4; + background: linear-gradient(180deg, #184b7f, #143f69); +} + +.table-action-btn.edit:hover { + border-color: #7ec3ff; + filter: brightness(1.06); +} + +.table-action-btn.delete { + border-color: #d36a85; + background: linear-gradient(180deg, #5c1e32, #451626); +} + +.table-action-btn.delete:hover { + border-color: #ff93ad; + filter: brightness(1.06); +} + +.table-action-btn.toggle.enabled { + border-color: #d38f3a; + background: linear-gradient(180deg, #5a3513, #3f240f); +} + +.table-action-btn.toggle.enabled:hover { + border-color: #f4be6a; + filter: brightness(1.06); +} + +.table-action-btn.toggle.disabled { + border-color: #3f6ea9; + background: linear-gradient(180deg, #153963, #112d4d); +} + +.table-action-btn.toggle.disabled:hover { + border-color: #77b1eb; + filter: brightness(1.06); +} + .danger-btn { margin-left: 8px; border-color: #7a2e43;