fix(theme): align avatar gradients to Crewli brand teal + diverse palette

P7 token audit (8330e93f §10) found two off-brand color bugs:

- utils/v2/gradient.ts GRADIENT_PALETTE used Tailwind blue-green
  anchors (teal-500/600 #0d9488, cyan, emerald, sky) clustered in a
  single hue family. Two problems: the brand-anchor slot used Tailwind
  teal #0d9488, NOT Crewli's #0D9394, AND orgs in multi-workspace
  views all rendered as similar teal/green squares (poor
  distinguishability). Replaced with the crewli-starter SoT palette:
    [0] #0D9394 → #075F60  (Crewli teal — brand anchor)
    [1] #7C3AED → #4C1D95  (purple)
    [2] #EA580C → #9A3412  (orange)
    [3] #16A34A → #14532D  (green)
    [4] #F59E0B → #92400E  (amber)
    [5] #EC4899 → #9D174D  (pink)
    [6] #4F46E5 → #312E81  (indigo — added for org-distinguishability)
    [7] #E11D48 → #881337  (rose — added for org-distinguishability)
  Palette stays 8-entry; only the values change. Indexing logic
  (djb2 hash % 8) unchanged. Per-org avatar colors are not persisted
  pre-launch, so the slot reshuffle is safe.

- AppTopbar.vue user-avatar gradient (two sites: the trigger Avatar +
  the user-menu header Avatar). Fallback in the CSS var was #0d9488
  (Tailwind teal-600), NOT Crewli #0D9394 — if the var ever fails to
  resolve, the chrome would render off-brand. Fixed to #0D9394.
  The hardcoded pink #f472b6 in the gradient's from-color was kept
  intentionally: it matches the crewli-starter SoT (user avatars are
  a pink/purple gradient distinct from workspace chrome's teal — the
  visual contrast between "your account" and "your workspace" is
  by design).

Regression locks:
- gradient.spec.ts +2 specs: brand-anchor slot is #0D9394 (and
  defensively, #0d9488 must not appear anywhere in the palette);
  palette spans diverse hue families (purple + orange present
  beyond the teal anchor).

Suite delta: 564 → 566 (+2). vue-tsc clean. Scoped ESLint clean
(0 errors, pre-existing warnings only).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-21 02:38:27 +02:00
parent 8330e93fe5
commit cd118bd165
3 changed files with 47 additions and 16 deletions

View File

@@ -382,7 +382,7 @@ const userMenuItems = computed<MenuItem[]>(() => [
:label="userInitials"
shape="circle"
class="cursor-pointer"
:pt="{ root: { style: 'background: linear-gradient(135deg, #f472b6, var(--p-primary-500, #0d9488)); color: #fff;' } }"
:pt="{ root: { style: 'background: linear-gradient(135deg, #f472b6, var(--p-primary-500, #0D9394)); color: #fff;' } }"
aria-label="User menu"
@click="toggleUserMenu"
/>
@@ -397,7 +397,7 @@ const userMenuItems = computed<MenuItem[]>(() => [
<Avatar
:label="userInitials"
shape="circle"
:pt="{ root: { style: 'background: linear-gradient(135deg, #f472b6, var(--p-primary-500, #0d9488)); color: #fff; width:40px; height:40px; font-size:14px;' } }"
:pt="{ root: { style: 'background: linear-gradient(135deg, #f472b6, var(--p-primary-500, #0D9394)); color: #fff; width:40px; height:40px; font-size:14px;' } }"
/>
<div class="min-w-0">
<div class="truncate text-[13.5px] font-semibold text-[var(--p-text-color)]">