From c199a3161b738cb59d9489efec8595aae46b24ce Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Thu, 29 Jan 2026 21:00:44 +0100 Subject: [PATCH] ux: centralize pill + small state utilities --- .../components/ui/DesignSystemStyles.astro | 78 +++++++++++++++ .../src/pages/communities/[slug]/index.astro | 5 - .../communities/[slug]/proposals/index.astro | 5 - frontend/src/pages/dashboard.astro | 96 +++---------------- frontend/src/pages/notifications.astro | 5 - frontend/src/pages/proposals.astro | 5 - frontend/src/pages/proposals/[id].astro | 10 +- frontend/src/pages/users/[username].astro | 5 - 8 files changed, 93 insertions(+), 116 deletions(-) diff --git a/frontend/src/components/ui/DesignSystemStyles.astro b/frontend/src/components/ui/DesignSystemStyles.astro index a470f6b..6c50369 100644 --- a/frontend/src/components/ui/DesignSystemStyles.astro +++ b/frontend/src/components/ui/DesignSystemStyles.astro @@ -231,6 +231,69 @@ margin-bottom: 1.5rem; } + .ui-hero { + padding: 1.25rem; + margin-bottom: 1rem; + } + + .ui-hero-top { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 1rem; + flex-wrap: wrap; + } + + .ui-hero-title { + margin: 0; + font-size: 2.125rem; + letter-spacing: -0.02em; + } + + .ui-hero-subtitle { + margin: 0.25rem 0 0; + color: var(--color-text-muted); + } + + .ui-hero-actions { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; + align-items: center; + } + + .ui-hero-kpis { + margin-top: 1rem; + } + + .ui-hero-kpis-label { + color: var(--color-text-muted); + font-size: 0.8125rem; + margin-bottom: 0.5rem; + letter-spacing: 0.02em; + text-transform: uppercase; + } + + .ui-insights { + display: grid; + gap: 0.75rem; + } + + .ui-insights-title { + font-weight: 700; + letter-spacing: -0.01em; + } + + .ui-insights-list { + margin: 0; + padding-left: 1.1rem; + color: var(--color-text-muted); + font-size: 0.9375rem; + line-height: 1.5; + display: grid; + gap: 0.35rem; + } + :where(.panels, .proposal-panels) { display: grid; gap: 1rem; @@ -569,6 +632,21 @@ white-space: nowrap; } + .loading-small, .empty-small, .error-small { + color: var(--color-text-muted); + font-size: 0.875rem; + } + + .status-draft { background: var(--color-neutral-muted); color: var(--color-on-primary); } + .status-discussion { background: var(--color-info); color: var(--color-on-primary); } + .status-voting { background: var(--color-success); color: var(--color-on-primary); } + .status-closed { background: var(--color-neutral); color: var(--color-on-primary); } + + .type-comment { background: var(--ui-pill-type-comment-bg, var(--color-info)); color: var(--color-on-primary); } + .type-vote { background: var(--ui-pill-type-vote-bg, var(--color-success)); color: var(--color-on-primary); } + .type-proposal { background: var(--ui-pill-type-proposal-bg, var(--color-secondary)); color: var(--color-on-primary); } + .type-community { background: var(--ui-pill-type-community-bg, var(--color-warning)); color: var(--color-on-primary); } + :where(input.ui-input, select.ui-select) { width: 100%; border-radius: var(--radius-md); diff --git a/frontend/src/pages/communities/[slug]/index.astro b/frontend/src/pages/communities/[slug]/index.astro index 7e20a22..6217a1f 100644 --- a/frontend/src/pages/communities/[slug]/index.astro +++ b/frontend/src/pages/communities/[slug]/index.astro @@ -570,11 +570,6 @@ const { slug } = Astro.params; font-weight: 600; } - .status-draft { background: var(--color-neutral-muted); color: var(--color-on-primary); } - .status-discussion { background: var(--color-info); color: var(--color-on-primary); } - .status-voting { background: var(--color-success); color: var(--color-on-primary); } - .status-closed { background: var(--color-neutral); color: var(--color-on-primary); } - .loading, .error { text-align: center; padding: 3rem; diff --git a/frontend/src/pages/communities/[slug]/proposals/index.astro b/frontend/src/pages/communities/[slug]/proposals/index.astro index 60d58c4..e9c68d4 100644 --- a/frontend/src/pages/communities/[slug]/proposals/index.astro +++ b/frontend/src/pages/communities/[slug]/proposals/index.astro @@ -338,11 +338,6 @@ const { slug } = Astro.params; margin-bottom: 0.5rem; } - .status-draft { background: var(--color-neutral-muted); color: var(--color-on-primary); } - .status-discussion { background: var(--color-info); color: var(--color-on-primary); } - .status-voting { background: var(--color-success); color: var(--color-on-primary); } - .status-closed { background: var(--color-neutral); color: var(--color-on-primary); } - .description { color: var(--color-text-muted); font-size: 0.875rem; diff --git a/frontend/src/pages/dashboard.astro b/frontend/src/pages/dashboard.astro index b2b64eb..60aff11 100644 --- a/frontend/src/pages/dashboard.astro +++ b/frontend/src/pages/dashboard.astro @@ -130,9 +130,9 @@ import { API_BASE as apiBase } from '../lib/api'; setBadge('badge-insights', bullets.length); container.innerHTML = ` -
-
What stands out
-