diff --git a/assets/css/app.css b/assets/css/app.css
index 72ec14e9..c644d401 100644
--- a/assets/css/app.css
+++ b/assets/css/app.css
@@ -6,74 +6,6 @@
@source "../js";
@source "../../lib/towerops_web";
-/* ── Custom color palette ── */
-@theme {
- --color-sweet-salmon-50: #ffe7e6;
- --color-sweet-salmon-100: #fed0cd;
- --color-sweet-salmon-200: #fea19a;
- --color-sweet-salmon-300: #fd7268;
- --color-sweet-salmon-400: #fd4235;
- --color-sweet-salmon-500: #fc1303;
- --color-sweet-salmon-600: #ca0f02;
- --color-sweet-salmon-700: #970c02;
- --color-sweet-salmon-800: #650801;
- --color-sweet-salmon-900: #320401;
- --color-sweet-salmon-950: #230300;
-
- --color-desert-sand-50: #faf0eb;
- --color-desert-sand-100: #f5e2d6;
- --color-desert-sand-200: #ebc5ad;
- --color-desert-sand-300: #e0a885;
- --color-desert-sand-400: #d68b5c;
- --color-desert-sand-500: #cc6e33;
- --color-desert-sand-600: #a35829;
- --color-desert-sand-700: #7a421f;
- --color-desert-sand-800: #522c14;
- --color-desert-sand-900: #29160a;
- --color-desert-sand-950: #1d0f07;
-
- --color-wheat-50: #faf4eb;
- --color-wheat-100: #f5e9d6;
- --color-wheat-200: #ebd3ad;
- --color-wheat-300: #e0bd85;
- --color-wheat-400: #d6a75c;
- --color-wheat-500: #cc9133;
- --color-wheat-600: #a37429;
- --color-wheat-700: #7a571f;
- --color-wheat-800: #523a14;
- --color-wheat-900: #291d0a;
- --color-wheat-950: #1d1407;
-
- --color-cool-steel-50: #f0f3f4;
- --color-cool-steel-100: #e1e7ea;
- --color-cool-steel-200: #c4cfd4;
- --color-cool-steel-300: #a6b7bf;
- --color-cool-steel-400: #89a0a9;
- --color-cool-steel-500: #6b8894;
- --color-cool-steel-600: #566d76;
- --color-cool-steel-700: #405159;
- --color-cool-steel-800: #2b363b;
- --color-cool-steel-900: #151b1e;
- --color-cool-steel-950: #0f1315;
-
- --color-cerulean-50: #edf4f8;
- --color-cerulean-100: #dbe9f0;
- --color-cerulean-200: #b6d3e2;
- --color-cerulean-300: #92bcd3;
- --color-cerulean-400: #6da6c5;
- --color-cerulean-500: #4990b6;
- --color-cerulean-600: #3a7392;
- --color-cerulean-700: #2c566d;
- --color-cerulean-800: #1d3a49;
- --color-cerulean-900: #0f1d24;
- --color-cerulean-950: #0a141a;
-
- /* Design tokens (replaces daisyUI semantic variables) */
- --radius-selector: 0.25rem;
- --radius-field: 0.25rem;
- --radius-box: 0.5rem;
-}
-
/* Heroicons plugin */
@plugin "../vendor/heroicons";
@@ -89,14 +21,14 @@
/* Card — replaces daisyUI `card card-body bg-base-100 border-base-200` */
@utility card {
- border-radius: var(--radius-box);
- border: 1px solid var(--color-cool-steel-200);
- background: var(--color-cool-steel-50);
+ border-radius: 0.5rem;
+ border: 1px solid #e5e7eb;
+ background: #f9fafb;
padding: 1.5rem;
}
[data-theme="dark"] .card {
- border-color: var(--color-cool-steel-700);
- background: var(--color-cool-steel-900);
+ border-color: #374151;
+ background: #111827;
}
/* Badge — replaces daisyUI `badge` */
@@ -116,7 +48,7 @@
display: inline-flex;
align-items: center;
gap: 0.5rem;
- border-radius: var(--radius-field);
+ border-radius: 0.25rem;
padding-inline: 1rem;
padding-block: 0.5rem;
font-size: 0.875rem;
@@ -124,13 +56,13 @@
line-height: 1.25rem;
cursor: pointer;
border: 1px solid transparent;
- background: var(--color-cool-steel-200);
- color: var(--color-cool-steel-900);
+ background: #e5e7eb;
+ color: #111827;
transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
[data-theme="dark"] .btn {
- background: var(--color-cool-steel-700);
- color: var(--color-cool-steel-50);
+ background: #374151;
+ color: #f9fafb;
}
/* ── Base element styles (replaces daisyUI resets) ── */
@@ -238,12 +170,12 @@ html.sidebar-collapsed [data-sidebar-tooltip]:hover::after {
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.25); }
/* Table row hover highlight */
-tbody tr:hover td { background-color: rgba(73, 144, 182, 0.06); }
-[data-theme="dark"] tbody tr:hover td { background-color: rgba(73, 144, 182, 0.12); }
+tbody tr:hover td { background-color: rgba(59, 130, 246, 0.04); }
+[data-theme="dark"] tbody tr:hover td { background-color: rgba(59, 130, 246, 0.08); }
/* Focus ring styling */
:focus-visible {
- outline: 2px solid var(--color-cerulean-500);
+ outline: 2px solid #3b82f6;
outline-offset: 2px;
}
@@ -253,7 +185,7 @@ a, button, input, select, textarea {
}
/* Password strength indicator (JS-driven via classes) */
-.password-strength-bar.strength-weak { background-color: var(--color-sweet-salmon-500); }
-.password-strength-bar.strength-fair { background-color: var(--color-wheat-500); }
+.password-strength-bar.strength-weak { background-color: #ef4444; }
+.password-strength-bar.strength-fair { background-color: #eab308; }
.password-strength-bar.strength-good { background-color: #22c55e; }
.password-strength-bar.strength-strong { background-color: #16a34a; }
diff --git a/lib/towerops_web/components/breadcrumbs.ex b/lib/towerops_web/components/breadcrumbs.ex
index 4d765740..cea1f030 100644
--- a/lib/towerops_web/components/breadcrumbs.ex
+++ b/lib/towerops_web/components/breadcrumbs.ex
@@ -25,7 +25,7 @@ defmodule ToweropsWeb.Components.Breadcrumbs do
def breadcrumb(assigns) do
~H"""
-
+
<%= for {item, idx} <- Enum.with_index(@items) do %>
-
diff --git a/lib/towerops_web/controllers/user_settings_html/edit.html.heex b/lib/towerops_web/controllers/user_settings_html/edit.html.heex
index fdb478f3..48833f35 100644
--- a/lib/towerops_web/controllers/user_settings_html/edit.html.heex
+++ b/lib/towerops_web/controllers/user_settings_html/edit.html.heex
@@ -20,7 +20,7 @@
-
+
<.form :let={f} for={@password_changeset} action={~p"/users/settings"} id="update_password">
@@ -44,7 +44,7 @@
-
+
diff --git a/lib/towerops_web/live/activity_feed_live.html.heex b/lib/towerops_web/live/activity_feed_live.html.heex
index 1b0e3718..8df4029c 100644
--- a/lib/towerops_web/live/activity_feed_live.html.heex
+++ b/lib/towerops_web/live/activity_feed_live.html.heex
@@ -32,7 +32,7 @@
value={@search}
placeholder={t("Search by device name, IP, site, or keyword...")}
phx-debounce="300"
- class="w-full pl-10 pr-10 rounded-field border border-cool-steel-300 bg-cool-steel-50 px-3 py-2 text-sm text-cool-steel-900 placeholder:text-cool-steel-400 focus:border-cerulean-500 focus:ring-1 focus:ring-cerulean-500 dark:border-cool-steel-600 dark:bg-cool-steel-900 dark:text-cool-steel-100 dark:placeholder:text-cool-steel-500"
+ class="w-full pl-10 pr-10 rounded-field border border-gray-300 bg-gray-50 px-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-900 dark:text-gray-100 dark:placeholder:text-gray-500"
/>
@@ -285,7 +285,7 @@
diff --git a/lib/towerops_web/live/changelog_live.ex b/lib/towerops_web/live/changelog_live.ex
index 7abee550..a0effe56 100644
--- a/lib/towerops_web/live/changelog_live.ex
+++ b/lib/towerops_web/live/changelog_live.ex
@@ -19,25 +19,25 @@ defmodule ToweropsWeb.ChangelogLive do
>
What's New
-
+
Latest updates and improvements to TowerOps.
-
+
-
+
{Calendar.strftime(entry.date, "%b %d, %Y")}
{entry.title}
diff --git a/lib/towerops_web/live/config_timeline_live.ex b/lib/towerops_web/live/config_timeline_live.ex
index 901ef20e..8aec7904 100644
--- a/lib/towerops_web/live/config_timeline_live.ex
+++ b/lib/towerops_web/live/config_timeline_live.ex
@@ -89,10 +89,10 @@ defmodule ToweropsWeb.ConfigTimelineLive do
Config Timeline
-
+
<.link
navigate={~p"/devices/#{@device.id}?tab=overview"}
- class="text-cerulean-600 hover:text-cerulean-700 hover:underline dark:text-cerulean-400 dark:hover:text-cerulean-300"
+ class="text-blue-600 hover:text-blue-700 hover:underline dark:text-blue-400 dark:hover:text-blue-300"
>
{@device.name}
@@ -102,7 +102,7 @@ defmodule ToweropsWeb.ConfigTimelineLive do