Skip to content

Commit 361ab31

Browse files
feat(web): finalize dashboard group list and details pages with neo-brutalist style
1 parent 0fc5ecb commit 361ab31

2 files changed

Lines changed: 29 additions & 22 deletions

File tree

apps/web/app/dashboard/groups/[groupId]/page.tsx

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,33 +28,38 @@ export default async function GroupDetailPage({ params }: GroupDetailPageProps)
2828

2929
return (
3030
<DashboardLayout>
31-
<header className="mb-8">
31+
<header className="mb-12 border-b-4 border-white pb-8">
3232
<div className="flex items-center justify-between">
33-
<h1 className="text-3xl font-bold text-text-primary">{group.name}</h1>
34-
<div className="rounded-full bg-brand/10 px-4 py-1.5 text-xs font-semibold uppercase tracking-wider text-brand">
35-
{group.currency}
33+
<div className="space-y-1">
34+
<h1 className="text-4xl font-black uppercase italic tracking-tighter text-white">{group.name}</h1>
35+
<div className="flex items-center gap-2">
36+
<div className="h-1.5 w-1.5 rounded-full bg-cyan-400 animate-pulse" />
37+
<p className="text-[10px] font-mono font-bold text-zinc-500 uppercase tracking-widest">
38+
SYNC_STATUS // LIVE // {groupId.slice(0, 8)}
39+
</p>
40+
</div>
41+
</div>
42+
<div className="neo-border border-2 border-white bg-white px-6 py-2 text-sm font-black uppercase tracking-tighter text-black shadow-[4px_4px_0px_0px_#22d3ee]">
43+
VAL: {group.currency}
3644
</div>
3745
</div>
38-
<p className="mt-2 text-text-secondary">
39-
Manage members and track shared expenses.
40-
</p>
4146
</header>
4247

43-
<div className="grid gap-6 lg:grid-cols-[1fr_320px]">
44-
<div className="space-y-6">
48+
<div className="grid gap-12 lg:grid-cols-[1fr_350px]">
49+
<div className="space-y-12">
4550
<ExpenseTable expenses={expenses.items} />
4651
</div>
4752

48-
<aside className="space-y-6">
53+
<aside className="space-y-12">
4954
<MemberList groupId={groupId} members={members} />
5055

51-
<div className="rounded-2xl border border-border bg-card p-5 shadow-glass backdrop-blur-glass">
52-
<h3 className="text-sm font-semibold text-text-primary">Quick Actions</h3>
53-
<div className="mt-4 grid gap-2">
54-
<button className="w-full rounded-xl bg-brand py-2.5 text-sm font-semibold text-white transition-opacity hover:opacity-90">
55-
Add Expense
56+
<div className="neo-border bg-zinc-900 p-8 shadow-[6px_6px_0px_0px_#facc15]">
57+
<h3 className="text-2xl font-black uppercase italic tracking-tighter text-white mb-8">Override Panel</h3>
58+
<div className="grid gap-4">
59+
<button className="neo-pop-hover bg-white p-4 font-black uppercase text-black shadow-[4px_4px_0px_0px_#facc15] hover:bg-zinc-100 transition-all text-sm tracking-tighter">
60+
+ Record Expense
5661
</button>
57-
<button className="w-full rounded-xl border border-border bg-surface/10 py-2.5 text-sm font-semibold text-text-primary transition-colors hover:bg-surface/20">
62+
<button className="neo-pop-hover border-2 border-white bg-black p-4 font-black uppercase text-white shadow-[4px_4px_0px_0px_#a855f7] hover:bg-zinc-900 transition-all text-sm tracking-tighter">
5863
Invite Member
5964
</button>
6065
</div>
@@ -63,6 +68,7 @@ export default async function GroupDetailPage({ params }: GroupDetailPageProps)
6368
</div>
6469
</DashboardLayout>
6570
);
71+
6672
} catch (error) {
6773
console.error('Failed to fetch group details:', error);
6874
return notFound();

apps/web/app/dashboard/groups/page.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ export default async function DashboardGroupsPage() {
1313

1414
return (
1515
<DashboardLayout>
16-
<div className="mb-6 flex items-center justify-between">
17-
<h1 className="text-2xl font-bold text-text-primary">Your Groups</h1>
16+
<div className="mb-12 border-b-4 border-white pb-6">
17+
<h1 className="text-4xl font-black uppercase italic tracking-tighter text-white">Squad Directory</h1>
18+
<p className="text-[10px] font-mono font-bold uppercase tracking-widest text-zinc-500 mt-2">ACCESSING_ALL_ACTIVE_NODES</p>
1819
</div>
1920

20-
<section className="grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
21+
<section className="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
2122
{groups.map((group) => (
2223
<GroupCard
2324
key={group.id}
@@ -29,9 +30,9 @@ export default async function DashboardGroupsPage() {
2930
))}
3031

3132
{groups.length === 0 && (
32-
<div className="col-span-full rounded-2xl border border-border bg-card p-10 text-center text-text-secondary shadow-glass backdrop-blur-glass">
33-
<p className="text-lg font-medium text-text-primary">No groups yet</p>
34-
<p className="mt-1">Create or join a group to start sharing expenses.</p>
33+
<div className="col-span-full neo-border bg-zinc-900 p-20 text-center">
34+
<p className="text-2xl font-black uppercase tracking-tighter text-zinc-500 mb-2">NO_GROUPS_INITIALIZED</p>
35+
<p className="text-sm font-mono text-zinc-600">Create or join a squad to synchronize records.</p>
3536
</div>
3637
)}
3738
</section>

0 commit comments

Comments
 (0)