diff --git a/frontend/src/components/ui/DesignSystemStyles.astro b/frontend/src/components/ui/DesignSystemStyles.astro
index 61b31cc..9e9acd8 100644
--- a/frontend/src/components/ui/DesignSystemStyles.astro
+++ b/frontend/src/components/ui/DesignSystemStyles.astro
@@ -345,6 +345,20 @@
font-weight: var(--ui-font-weight-bold);
}
+ .ui-pill {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0.125rem 0.5rem;
+ border-radius: 999px;
+ font-size: 0.625rem;
+ font-weight: var(--ui-font-weight-semibold);
+ letter-spacing: 0.04em;
+ text-transform: uppercase;
+ line-height: 1.2;
+ white-space: nowrap;
+ }
+
:where(input.ui-input, select.ui-select) {
width: 100%;
border-radius: var(--radius-md);
diff --git a/frontend/src/pages/dashboard.astro b/frontend/src/pages/dashboard.astro
index a1f34d0..07e6f87 100644
--- a/frontend/src/pages/dashboard.astro
+++ b/frontend/src/pages/dashboard.astro
@@ -189,7 +189,7 @@ import { API_BASE as apiBase } from '../lib/api';
if (!safeLink.startsWith('/')) safeLink = '#';
return `
- ${type}
+ ${type}
${safeTitle}
`;
@@ -218,12 +218,13 @@ import { API_BASE as apiBase } from '../lib/api';
}
container.innerHTML = proposals.slice(0, 7).map((p) => {
- const safeTitle = escapeHtml(p.title);
+ const safeTitle = escapeHtml(p.title || 'Untitled');
const status = normalizeStatus(p.status);
+
return `
${safeTitle}
- ${escapeHtml(status)}
+ ${escapeHtml(status)}
`;
}).join('');
@@ -422,14 +423,6 @@ import { API_BASE as apiBase } from '../lib/api';
color: var(--color-primary);
}
- .activity-type {
- font-size: 0.625rem;
- padding: 0.125rem 0.5rem;
- border-radius: 4px;
- text-transform: uppercase;
- font-weight: 600;
- }
-
.type-proposal { background: var(--color-success); color: var(--color-on-primary); }
.type-community { background: var(--color-secondary); color: var(--color-on-primary); }
@@ -441,14 +434,6 @@ import { API_BASE as apiBase } from '../lib/api';
flex: 1;
}
- .item-status {
- font-size: 0.625rem;
- padding: 0.125rem 0.5rem;
- border-radius: 4px;
- text-transform: uppercase;
- 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); }