complete admin CSS refactor: delete utilities.css, add layout primitives
- Delete utilities.css (701 lines / 24 KB of Tailwind utility clones) - Add layout.css with admin-stack, admin-row, admin-cluster, admin-grid primitives and gap variants (sm, md, lg, xl) - Add transitions.css import and layout.css import to admin.css entry point - Replace all Tailwind utility classes across 26 admin templates with semantic admin-*/theme-*/page-specific CSS classes - Replace all non-dynamic inline styles with semantic classes - Add ~100 new semantic classes to components.css (analytics, dashboard, order detail, settings, theme editor, generic utilities) - Fix stray text-error → admin-text-error in media.ex - Add missing .truncate definition to admin CSS - Only remaining inline styles are dynamic data values (progress bars, chart dimensions) and one JS.toggle target Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -132,7 +132,7 @@ defmodule BerrypodWeb.Admin.Activity do
|
||||
</.header>
|
||||
|
||||
<%!-- tabs --%>
|
||||
<div class="flex gap-2 mt-6 mb-4 flex-wrap">
|
||||
<div class="admin-filter-row">
|
||||
<button
|
||||
phx-click="tab"
|
||||
phx-value-tab="all"
|
||||
@@ -156,7 +156,7 @@ defmodule BerrypodWeb.Admin.Activity do
|
||||
Needs attention
|
||||
<span
|
||||
:if={@attention_count > 0}
|
||||
class="admin-badge admin-badge-sm admin-badge-warning ml-1"
|
||||
class="admin-badge admin-badge-sm admin-badge-warning admin-badge-count"
|
||||
>
|
||||
{@attention_count}
|
||||
</span>
|
||||
@@ -164,31 +164,36 @@ defmodule BerrypodWeb.Admin.Activity do
|
||||
</div>
|
||||
|
||||
<%!-- category chips + search --%>
|
||||
<div class="flex flex-wrap items-center gap-2 mb-4">
|
||||
<.category_chip category={nil} active={@category} label="All" />
|
||||
<.category_chip category="orders" active={@category} label="Orders" />
|
||||
<.category_chip category="syncs" active={@category} label="Syncs" />
|
||||
<.category_chip category="emails" active={@category} label="Emails" />
|
||||
<.category_chip category="carts" active={@category} label="Carts" />
|
||||
<div class="ml-auto">
|
||||
<.form for={%{}} phx-submit="search" as={:search} class="flex gap-2">
|
||||
<input
|
||||
type="text"
|
||||
name="search[query]"
|
||||
value={@search}
|
||||
placeholder="Search by order number"
|
||||
class="admin-input admin-input-sm"
|
||||
/>
|
||||
<button type="submit" class="admin-btn admin-btn-sm admin-btn-ghost">
|
||||
<.icon name="hero-magnifying-glass-mini" class="size-4" />
|
||||
</button>
|
||||
</.form>
|
||||
<div class="admin-filter-row admin-filter-row-between">
|
||||
<div class="admin-cluster">
|
||||
<.category_chip category={nil} active={@category} label="All" />
|
||||
<.category_chip category="orders" active={@category} label="Orders" />
|
||||
<.category_chip category="syncs" active={@category} label="Syncs" />
|
||||
<.category_chip category="emails" active={@category} label="Emails" />
|
||||
<.category_chip category="carts" active={@category} label="Carts" />
|
||||
</div>
|
||||
<.form
|
||||
for={%{}}
|
||||
phx-submit="search"
|
||||
as={:search}
|
||||
class="admin-row"
|
||||
>
|
||||
<input
|
||||
type="text"
|
||||
name="search[query]"
|
||||
value={@search}
|
||||
placeholder="Search by order number"
|
||||
class="admin-input admin-input-sm"
|
||||
/>
|
||||
<button type="submit" class="admin-btn admin-btn-sm admin-btn-ghost">
|
||||
<.icon name="hero-magnifying-glass-mini" class="size-4" />
|
||||
</button>
|
||||
</.form>
|
||||
</div>
|
||||
|
||||
<%!-- entries --%>
|
||||
<div id="activity-entries" phx-update="stream">
|
||||
<div id="activity-empty" class="hidden only:block text-sm text-base-content/60 py-8 text-center">
|
||||
<div id="activity-empty" class="admin-stream-empty">
|
||||
No activity to show.
|
||||
</div>
|
||||
<div :for={{dom_id, entry} <- @streams.entries} id={dom_id} class="admin-activity-row">
|
||||
@@ -201,7 +206,7 @@ defmodule BerrypodWeb.Admin.Activity do
|
||||
<.link
|
||||
:if={entry.order_id}
|
||||
navigate={~p"/admin/orders/#{entry.order_id}"}
|
||||
class="text-primary hover:underline text-xs ml-1"
|
||||
class="admin-activity-link"
|
||||
>
|
||||
View order →
|
||||
</.link>
|
||||
@@ -336,9 +341,9 @@ defmodule BerrypodWeb.Admin.Activity do
|
||||
defp activity_icon("warning"), do: "hero-exclamation-triangle-mini"
|
||||
defp activity_icon(_), do: "hero-check-circle-mini"
|
||||
|
||||
defp activity_icon_class("error"), do: "text-red-500"
|
||||
defp activity_icon_class("warning"), do: "text-amber-500"
|
||||
defp activity_icon_class(_), do: "text-green-500"
|
||||
defp activity_icon_class("error"), do: "admin-activity-icon-error"
|
||||
defp activity_icon_class("warning"), do: "admin-activity-icon-warning"
|
||||
defp activity_icon_class(_), do: "admin-activity-icon-ok"
|
||||
|
||||
defp format_event_type(event_type) do
|
||||
event_type
|
||||
|
||||
Reference in New Issue
Block a user