From 4bd444f147d36abb9903cd49a6b6f17e2733239d Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Tue, 23 Jun 2026 12:29:46 -0500 Subject: [PATCH] revert: remove custom color palette, restore standard Tailwind v4 colors --- assets/css/app.css | 98 +++---------------- lib/towerops_web/components/breadcrumbs.ex | 2 +- .../user_settings_html/edit.html.heex | 4 +- .../live/activity_feed_live.html.heex | 6 +- lib/towerops_web/live/changelog_live.ex | 10 +- lib/towerops_web/live/config_timeline_live.ex | 38 +++---- .../live/coverage_live/form.html.heex | 2 +- .../live/coverage_live/map.html.heex | 2 +- .../live/coverage_live/show.html.heex | 4 +- .../live/device_live/show.html.heex | 2 +- .../live/insights_live/index.html.heex | 4 +- .../live/org/settings_live.html.heex | 4 +- .../live/site_live/index.html.heex | 2 +- .../live/site_live/show.html.heex | 8 +- lib/towerops_web/live/trace_live/index.ex | 18 ++-- .../live/trace_live/index.html.heex | 56 +++++------ .../config_timeline_live_helpers_test.exs | 4 +- 17 files changed, 97 insertions(+), 167 deletions(-) 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}

    • {item}
    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

    <.link navigate={~p"/coverage/#{@coverage.id}/edit"} - class="btn text-sm !py-1 !px-3 border border-cool-steel-300 bg-transparent dark:border-cool-steel-600 gap-1.5" + class="btn text-sm !py-1 !px-3 border border-gray-300 bg-transparent dark:border-gray-600 gap-1.5" > <.icon name="hero-pencil-square" class="h-4 w-4" /> {t("Edit")} diff --git a/lib/towerops_web/live/device_live/show.html.heex b/lib/towerops_web/live/device_live/show.html.heex index 50980ec8..e11ec6f1 100644 --- a/lib/towerops_web/live/device_live/show.html.heex +++ b/lib/towerops_web/live/device_live/show.html.heex @@ -770,7 +770,7 @@ {s} diff --git a/lib/towerops_web/live/insights_live/index.html.heex b/lib/towerops_web/live/insights_live/index.html.heex index 5d04d8ca..2ccc5e1d 100644 --- a/lib/towerops_web/live/insights_live/index.html.heex +++ b/lib/towerops_web/live/insights_live/index.html.heex @@ -178,7 +178,7 @@
    <%= if @insights == [] do %>
    -
    +
    <.icon @@ -202,7 +202,7 @@ <% end %>

    - + {t("Go to your org settings to connect an integration.")}
    diff --git a/lib/towerops_web/live/org/settings_live.html.heex b/lib/towerops_web/live/org/settings_live.html.heex index 0d125f41..e2ab170c 100644 --- a/lib/towerops_web/live/org/settings_live.html.heex +++ b/lib/towerops_web/live/org/settings_live.html.heex @@ -1098,14 +1098,14 @@ <%= if @organization.subscription_plan == "free" do %> <.button phx-click="upgrade_to_paid" - class="bg-sweet-salmon-500 text-white hover:bg-sweet-salmon-600 dark:bg-sweet-salmon-600 dark:hover:bg-sweet-salmon-700" + class="bg-red-500 text-white hover:bg-red-600 dark:bg-red-600 dark:hover:bg-red-700" > {t("Upgrade to Paid Plan")} <% else %> <.button phx-click="manage_billing" - class="bg-cerulean-500 text-white hover:bg-cerulean-600 dark:bg-cerulean-600 dark:hover:bg-cerulean-700" + class="bg-blue-500 text-white hover:bg-blue-600 dark:bg-blue-600 dark:hover:bg-blue-700" > {t("Manage Billing")} diff --git a/lib/towerops_web/live/site_live/index.html.heex b/lib/towerops_web/live/site_live/index.html.heex index bbbe9b17..26142955 100644 --- a/lib/towerops_web/live/site_live/index.html.heex +++ b/lib/towerops_web/live/site_live/index.html.heex @@ -10,7 +10,7 @@ <:actions> <.link navigate={~p"/sites-map"} - class="btn text-sm !py-1 !px-3 border border-cool-steel-300 bg-transparent dark:border-cool-steel-600 gap-1.5 mr-2" + class="btn text-sm !py-1 !px-3 border border-gray-300 bg-transparent dark:border-gray-600 gap-1.5 mr-2" > <.icon name="hero-map" class="h-4 w-4" /> Map View diff --git a/lib/towerops_web/live/site_live/show.html.heex b/lib/towerops_web/live/site_live/show.html.heex index 56c44253..7ca6f720 100644 --- a/lib/towerops_web/live/site_live/show.html.heex +++ b/lib/towerops_web/live/site_live/show.html.heex @@ -290,7 +290,7 @@
    <.link navigate={~p"/sites/#{@site.parent_site.id}"} - class="text-sm text-cerulean-600 hover:text-cerulean-700 hover:underline dark:text-cerulean-400 dark:hover:text-cerulean-300" + class="text-sm text-blue-600 hover:text-blue-700 hover:underline dark:text-blue-400 dark:hover:text-blue-300" > {@site.parent_site.name} @@ -311,7 +311,7 @@ <% end %> <%= if @site.child_sites != [] do %> -
    +

    {t("Child Sites")}

    @@ -319,7 +319,7 @@
  • <.link navigate={~p"/sites/#{child.id}"} - class="text-sm text-cerulean-600 hover:text-cerulean-700 hover:underline dark:text-cerulean-400 dark:hover:text-cerulean-300" + class="text-sm text-blue-600 hover:text-blue-700 hover:underline dark:text-blue-400 dark:hover:text-blue-300" > {child.name} @@ -396,7 +396,7 @@

  • {change_size_label(change.diff_size || 0)} diff --git a/lib/towerops_web/live/trace_live/index.ex b/lib/towerops_web/live/trace_live/index.ex index 9a156383..fcb4ad34 100644 --- a/lib/towerops_web/live/trace_live/index.ex +++ b/lib/towerops_web/live/trace_live/index.ex @@ -33,7 +33,7 @@ defmodule ToweropsWeb.TraceLive.Index do ~H"""
    <.icon name="hero-exclamation-triangle" class="h-5 w-5" />
    @@ -56,14 +56,14 @@ defmodule ToweropsWeb.TraceLive.Index do :good -> "border-green-200 dark:border-green-800" :warning -> "border-yellow-200 dark:border-yellow-800" :bad -> "border-red-200 dark:border-red-800" - _ -> "border-cool-steel-200 dark:border-cool-steel-700" + _ -> "border-gray-200 dark:border-gray-700" end assigns = assign(assigns, :color, color) ~H""" -
    -
    {@label}
    +
    +
    {@label}
    {@value}
    """ @@ -136,14 +136,13 @@ defmodule ToweropsWeb.TraceLive.Index do |> push_patch(to: ~p"/trace")} end - def type_badge_class(:account), - do: "bg-sweet-salmon-100 text-sweet-salmon-800 dark:bg-sweet-salmon-900/30 dark:text-sweet-salmon-400" + def type_badge_class(:account), do: "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400" def type_badge_class(:inventory_item), do: "bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400" def type_badge_class(:site), do: "bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400" def type_badge_class(:device), do: "bg-cyan-100 text-cyan-800 dark:bg-cyan-900/30 dark:text-cyan-400" def type_badge_class(:access_point), do: "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400" - def type_badge_class(_), do: "text-cool-steel-700 dark:text-cool-steel-300" + def type_badge_class(_), do: "text-gray-700 dark:text-gray-300" def type_badge_label(:account), do: "Account" def type_badge_label(:inventory_item), do: "Inventory" @@ -156,10 +155,9 @@ defmodule ToweropsWeb.TraceLive.Index do def status_badge_class("active"), do: "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400" def status_badge_class("suspended"), do: "bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400" - def status_badge_class("cancelled"), - do: "bg-sweet-salmon-100 text-sweet-salmon-800 dark:bg-sweet-salmon-900/30 dark:text-sweet-salmon-400" + def status_badge_class("cancelled"), do: "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400" - def status_badge_class(_), do: "text-cool-steel-700 dark:text-cool-steel-300" + def status_badge_class(_), do: "text-gray-700 dark:text-gray-300" @doc false def device_status_color(:up), do: "text-green-600 dark:text-green-400" diff --git a/lib/towerops_web/live/trace_live/index.html.heex b/lib/towerops_web/live/trace_live/index.html.heex index d005161f..bb8ea5d2 100644 --- a/lib/towerops_web/live/trace_live/index.html.heex +++ b/lib/towerops_web/live/trace_live/index.html.heex @@ -21,7 +21,7 @@
    <%!-- Search Bar --%> -
    +
    <.icon name="hero-magnifying-glass" class="h-6 w-6 text-gray-400 flex-shrink-0" /> @@ -35,7 +35,7 @@ "Search by customer name, IP address, account ID, serial number, site name, or device name..." ) } - class="w-full 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 w-full dark:bg-gray-800 dark:border-white/10 dark:text-white" + class="w-full 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 w-full dark:bg-gray-800 dark:border-white/10 dark:text-white" phx-debounce="300" autofocus /> @@ -43,7 +43,7 @@ @@ -54,19 +54,19 @@ <%!-- Search Results --%>
    -
    +