feat(design): apply Monolith Editorial design system to all Fase 1 screens

- Remove all 1px border separators (sidebar border-r, page header border-b,
  section border-t, member list divide-y, invite card border). Separation is
  now achieved via background color shifts and whitespace per the "No-Line" rule.
- Fix sidebar: bg-surface-raised vs bg-background creates tonal separation.
- Correct dark background to #020617 (slate-950) per spec.
- Add surface-container-low, text-primary/secondary/muted, destructive tokens.
- Fix CSS variable color space: all tokens are RGB triplets; switch Tailwind
  config and app.css from hsl() to rgb() to prevent yellow/warm color bleed.
- Replace emoji nav icons with Lucide icons at 16px / 1.5 stroke-width.
- Apply Masthead typography (uppercase Label-MD + Title-LG) to all page headers
  and section labels across lists, tasks, notes, search, settings, manage.
- Destructive action (sign out) uses bg-destructive per spec.
- Add `just serve` command: builds and runs the prod Node server at :3000
  against the dev Docker stack for production build testing.
- Add nav_collective i18n key (en + es).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-12 22:09:25 +02:00
parent b297d253d9
commit ce1bcfb7a6
17 changed files with 240 additions and 515 deletions

View File

@@ -136,25 +136,32 @@
}
</script>
<div class="flex-1 overflow-y-auto p-6">
<h1 class="mb-6 text-xl font-bold text-slate-900 dark:text-slate-50">
<div class="flex flex-1 flex-col overflow-hidden">
<div class="flex-1 overflow-y-auto">
<div class="px-8 pb-4 pt-8">
<p class="mb-1 text-[13px] font-semibold uppercase tracking-[0.05em] text-text-secondary">
{m.nav_collective()}
</p>
<h1 class="text-[20px] font-semibold tracking-[-0.01em] text-slate-900 dark:text-slate-50">
{m.manage_title()}
</h1>
</div>
<div class="px-8 py-6">
{#if error}
<p class="mb-4 text-sm text-red-600">{error}</p>
{/if}
<!-- Members list -->
<!-- Members list — no dividers, vertical padding creates separation -->
<section class="mb-8">
<h2 class="mb-3 text-sm font-semibold uppercase tracking-wide text-text-secondary">
<h2 class="mb-4 text-[13px] font-semibold uppercase tracking-[0.05em] text-text-secondary">
{m.manage_members()}
</h2>
{#if loading}
<p class="text-sm text-text-secondary">{m.loading()}</p>
{:else}
<ul class="divide-y divide-slate-100 dark:divide-slate-700">
<ul>
{#each members as member}
<li class="flex items-center gap-3 py-3">
<Avatar
@@ -202,10 +209,10 @@
{/if}
</section>
<!-- Invite link generator (admins only) -->
<!-- Invite link generator — background shift instead of border -->
{#if isAdmin}
<section class="rounded-lg border border-slate-200 p-4 dark:border-slate-700">
<h2 class="mb-3 text-sm font-semibold text-slate-900 dark:text-slate-50">
<section class="rounded-lg bg-surface-container-low p-4 dark:bg-surface-raised">
<h2 class="mb-3 text-[13px] font-semibold uppercase tracking-[0.05em] text-text-secondary">
{m.manage_invite_title()}
</h2>
@@ -232,8 +239,7 @@
</button>
{#if generatedLink}
<div class="flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 p-2
dark:border-slate-700 dark:bg-slate-800">
<div class="flex items-center gap-2 rounded-lg bg-surface p-2 dark:bg-surface-raised">
<code class="min-w-0 flex-1 truncate text-xs text-slate-600 dark:text-slate-400">
{generatedLink}
</code>
@@ -250,3 +256,5 @@
</section>
{/if}
</div>
</div>
</div>