Skip to content

feat(claw-app): re-skin to ease-health green palette#1530

Merged
Nikhil (shadowfax92) merged 5 commits into
mainfrom
feat/claw-app-ease-health-theme
Jul 2, 2026
Merged

feat(claw-app): re-skin to ease-health green palette#1530
Nikhil (shadowfax92) merged 5 commits into
mainfrom
feat/claw-app-ease-health-theme

Conversation

@shadowfax92

Copy link
Copy Markdown
Contributor

Summary

  • Re-skins the BrowserClaw newtab app from the warm-cream + orange cockpit palette to the ease-health palette: cream #fffefc surfaces, deep-green #0f3e17 primary/accent, sage #cfe7d3 secondary, mint #e1f4df muted, #b7301b destructive.
  • Sweeps all component-level hard-coded brand oranges (onboarding gradient, pulse-dot glows, gradient tails, agent color arrays) and unifies dark chrome strips on a new ink-deep (#0a1810) token.
  • Colors only: fonts, radii, and dark-mode enablement unchanged. Status ambers, macOS traffic lights, teal live-viewport chrome, and the server-mirrored audit.colors.ts tab-group palette are intentionally kept.

Design

In-place token-value swap in entrypoints/newtab/styles.css: the @theme inline literals re-point every shadcn primitive and bespoke BrowserOS token at the green palette, so all token-driven utilities re-skin for free; the trailing :root/.dark blocks carry ease-health values verbatim (keeping --radius: 0.45rem). accent deliberately stays equal to primary — the app uses accent as its vivid brand color (~150 call sites), not shadcn's pale hover tint. LIVE chips on dark caption blocks use light palette green #b1dbb8 because the near-black brand green is unreadable there (caught and fixed in local adversarial review).

Test plan

  • bun run typecheck, bun run lint, bun test green in apps/claw-app (145 tests)
  • Monorepo bun run check + bun run test green at packages/browseros-agent
  • Built app screenshotted (cockpit + MCP screens): sage/mint canvas, deep-green accents, no orange chrome
  • Grep gate: no #F26B2A/#E0561C/#F6A05A/hsl(19 89%…) family left outside intentionally-kept files
  • Load dist/chrome-mv3-dev as an unpacked extension and eyeball audit/replay screens with live data

@shadowfax92

Copy link
Copy Markdown
Contributor Author

Greptile (@greptileai) review

@shadowfax92

Copy link
Copy Markdown
Contributor Author

Claude (@claude) review

@claude

claude Bot commented Jul 2, 2026

Copy link
Copy Markdown

Claude finished Nikhil (@shadowfax92)'s task in 2m 17s —— View job


Code Review: feat(claw-app): re-skin to ease-health green palette

Todo:

  • Load tools
  • Read CLAUDE.md for repo guidelines
  • Review styles.css theme token changes
  • Review component-level color replacements
  • Check for color contrast / accessibility issues
  • Check for any remaining hardcoded old palette values
  • Post review feedback

Overall this is a well-executed, tightly-scoped palette swap. The ink-deep token unification, the LIVE chip two-tier approach (light green on dark surfaces, accent on light), and the deliberate preservation of status ambers and teal live-viewport chrome are all sound calls. A few things worth addressing before merge:

Findings

Medium — Hardcoded #b1dbb8 scattered across 4 files, no CSS token

AgentRunningCard.tsx, LeadRunTile.tsx, SupportingTile.tsx, and AuditHoverPreview.tsx all inline text-[#b1dbb8] / bg-[#b1dbb8] for the LIVE chip on dark caption blocks. The logic is correct (light palette green for readability on ink-deep), but the hex is now a magic value scattered across 4 call sites. styles.css already has --chart-4: #b1dbb8 in the :root block, and could easily house a named bespoke token here.

Suggested addition to @theme inline in styles.css:

/* Light-surface indicator green — used on dark (ink-deep) backgrounds
   where accent (#0f3e17) is near-invisible. */
--color-live-surface: #b1dbb8;

Then the 4 files become text-live-surface / bg-live-surface, and a future palette adjustment only requires one edit. Fix this →


Low — Agent PALETTE now has two near-identical dark greens

cockpit.helpers.ts replaced the two orange slots with #2d7a3a (medium sage) and #0f3e17 (near-black forest). When two agents are hashed to those adjacent palette slots they'll look essentially identical at small sizes (the AgentDot and color-coded cards). The rest of the palette (#2F6FE0, #7A5AF8, #10A37F, #0EA5E9, #F59E0B, #DB2777) is nicely distinct. Consider swapping one of the two greens for another neutral-but-distinct hue (e.g., a slate or navy) to restore differentiation. This is cosmetic only, but worth noting since the original orange pair were visually distinct from each other.


Low — :root { --accent } diverges from @theme inline { --color-accent }

styles.css lines 226/36: the @theme inline block sets --color-accent: #0f3e17 (deep green), but the trailing :root block has --accent: #b6ced5 (soft teal). The comment explains this is intentional ("no utility reads them"), but a developer who reaches for --accent directly in a future inline style or CSS rule will silently get the wrong value. Could add a short comment on the :root --accent line to make this even more explicit, e.g.:

/* Inert — shadcn internal only. No utility class reads this; @theme inline
   above overrides it at the Tailwind layer. Do not use directly. */
--accent: #b6ced5;

Non-issues / well-handled

  • ink-deep token unification across all dark chrome strips (EndpointStrip, McpRow, ConnectorPreviewRail, ConnectStep, BrowserViewport, ReplayViewport) is clean and correct — one edit point going forward.
  • The LIVE chip on light surfaces (RunningGrid, audit.columns) continuing to use text-accent / bg-accent (resolving to the dark #0f3e17) is correct; it's readable on cream/mint backgrounds.
  • Onboarding gradient migration (Onboarding.tsx) is clean; the radial overlay correctly updated from orange RGBA to green RGBA.
  • ApprovalCard.tsx accent header strip: from-accent to-accent-2 is a correct monochromatic shift from from-accent to-[#F6A05A]. The gradient is subtle but on-brand.
  • Terminal code text color shift from warm #EDEAE2 to cool #e9f2ea is consistent across McpRow, ConnectorPreviewRail, ConnectStep, ReplayViewport.
  • WCAG reduced-motion media query, selection highlight, and BrowserViewport's amber paused badge are all correctly preserved.
  • Mock data (activity.hooks.ts, agents.hooks.ts) color fields updated — dev-only but consistent.

Checklist

# Finding Severity Action
1 #b1dbb8 hardcoded in 4 LIVE chip sites Medium Add --color-live-surface token
2 Palette has two near-identical dark greens Low Consider swapping one for a distinct hue
3 :root --accent@theme --color-accent trap Low Add "do not use directly" inline comment

Overall the PR is in good shape — the strategy is sound and the execution is thorough. #1 is the most actionable fix.

@shadowfax92 Nikhil (shadowfax92) merged commit 1de348b into main Jul 2, 2026
17 of 18 checks passed
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

✅ Tests passed — 1407/1411

Suite Passed Failed Skipped
agent 282/282 0 0
build 24/24 0 0
⚠️ claw-app 0/0 0 0
⚠️ claw-onboard 0/0 0 0
⚠️ claw-server 0/0 0 0
eval 91/91 0 0
server-agent 301/301 0 0
server-api 145/145 0 0
server-browser 10/10 0 0
server-integration 10/10 0 0
server-lib 257/258 0 1
server-root 33/36 0 3
server-tools 254/254 0 0

View workflow run

@greptile-apps

greptile-apps Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR re-skins the BrowserClaw newtab app from its warm-cream/orange cockpit palette to the ease-health palette: cream #fffefc surfaces, deep-green #0f3e17 primary/accent, sage #cfe7d3 secondary, and a new ink-deep (#0a1810) token that unifies all dark chrome strips. The change is scoped to colors only — fonts, radii, and dark-mode enablement are unchanged.

  • styles.css: Single source of truth for the palette swap; @theme inline re-points all shadcn primitives and BrowserOS bespoke tokens at the green palette so ~150 Tailwind utility callsites re-skin for free.
  • Component sweep: All hardcoded orange hex values, orange glow HSL shadows, and bg-ink caption strips replaced with tokenized equivalents; LIVE indicators on dark caption blocks are intentionally hardcoded to #b1dbb8 (light sage) since the brand green #0f3e17 is near-invisible on ink-deep backgrounds.
  • Agent palette: Two orange entries in cockpit.helpers.ts's identity PALETTE replaced with green-family values; some hardcoded gradient mid-stops remain in onboarding and the copy-card components.

Confidence Score: 4/5

Colors-only change with no logic or schema modifications; the main risk is the LIVE readability special-case becoming a maintenance burden as more dark-background surfaces are added.

The palette swap is thorough and well-reasoned. The deliberate divergence between theme! (@theme) inline accent (#0f3e17) and :root --accent (#b6ced5) is documented but is a latent foot-gun for any future shadcn upgrade that ships CSS using var(--accent) directly. The agent identity PALETTE placing the brand primary #0f3e17 as one of eight identity colors is a minor but real UX concern. A handful of hardcoded gradient values escaped tokenization. None of these block shipping.

cockpit.helpers.ts (PALETTE green duplication) and styles.css (--color-blue semantic mismatch) deserve a second look; all other files are straightforward token substitutions.

Important Files Changed

Filename Overview
packages/browseros-agent/apps/claw-app/entrypoints/newtab/styles.css Core palette swap from warm orange to ease-health green; adds ink-deep token, updates all shadcn primitives, :root, and .dark blocks. --color-blue now resolves to teal (#3e7285), not blue, which is semantically misleading.
packages/browseros-agent/apps/claw-app/screens/cockpit/cockpit.helpers.ts Agent identity PALETTE replaces two orange entries with #2d7a3a and #0f3e17; #0f3e17 is also the brand primary/accent color, reducing visual separation between agent identity dots and primary UI chrome.
packages/browseros-agent/apps/claw-app/components/cockpit/AgentRunningCard.tsx bg-ink → bg-ink-deep on caption strip; LIVE dot and text correctly switch to hardcoded #b1dbb8 (light green) so the indicator stays readable on the dark chrome background.
packages/browseros-agent/apps/claw-app/components/cockpit/LeadRunTile.tsx Same bg-ink → bg-ink-deep and LIVE indicator migration as AgentRunningCard; consistent treatment.
packages/browseros-agent/apps/claw-app/components/cockpit/SupportingTile.tsx bg-ink → bg-ink-deep on caption; LIVE text/dot hardcoded to #b1dbb8 for legibility on dark strip; consistent with other tile components.
packages/browseros-agent/apps/claw-app/screens/onboarding/Onboarding.tsx Brand column gradient updated from orange to green tokens; radial overlay rgba switched to green family. The via-[#e9f5e6] mid-stop is still a hardcoded hex rather than a design token.
packages/browseros-agent/apps/claw-app/screens/new-agent/CopyFromExistingCard.tsx Gradient terminus updated but still uses hardcoded hsl(140_40%_96%) instead of a design token; suggestion to replace with to-bg-canvas filed.
packages/browseros-agent/apps/claw-app/screens/mcp/McpRow.tsx Hardcoded #15140F background replaced with bg-ink-deep token; text color updated from #EDEAE2 to #e9f2ea (warm-green tint matching new palette).
packages/browseros-agent/apps/claw-app/screens/live-run/ApprovalCard.tsx Gradient top bar updated from hard-coded orange end-stop to accent-2 token; clean token-driven change.
packages/browseros-agent/apps/claw-app/screens/onboarding/ConnectStep.tsx CLI block background tokenized to bg-ink-deep; text updated to #e9f2ea; $ prompt retains #6FCF8E (intentional terminal-green, consistent with PR scope).
packages/browseros-agent/apps/claw-app/screens/replay/ReplayViewport.tsx Caption pill tokenized from #1B1A17 to bg-ink-deep; caption text updated from #EDEAE2 to #e9f2ea; straightforward and correct.
packages/browseros-agent/apps/claw-app/modules/api/activity.hooks.ts One mock activity entry color updated from orange #E0561C to brand green #0f3e17; mock-only change with no functional impact.
packages/browseros-agent/apps/claw-app/modules/api/agents.hooks.ts One mock agent entry color updated from orange #F26B2A to brand green #0f3e17; mock-only change.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    CSS["styles.css\n@theme inline\n(single source of truth)"]

    CSS -->|"--color-accent: #0f3e17\n--color-ink-deep: #0a1810\n--color-primary: #0f3e17"| UTILS["Tailwind utility classes\nbg-accent, text-accent\nbg-ink-deep, bg-primary…"]

    CSS -->|"--accent: #b6ced5 (inert)\n--background, --primary…"| ROOT[":root / .dark\nCSS variable block\n(shadcn generator output)"]

    UTILS --> LIGHT["Light-bg components\nAudit table, RunningGrid\nConnectionRow, EndpointStrip\n→ text-accent = #0f3e17 ✓"]

    UTILS --> DARK["Dark caption strips\nbg-ink-deep (#0a1810)\nAgentRunningCard, LeadRunTile\nSupportingTile, AuditHoverPreview"]

    DARK -->|"LIVE indicator override\ntext-[#b1dbb8] / bg-[#b1dbb8]"| LIVE["#b1dbb8 sage\n(readable on #0a1810) ✓"]

    PALETTE["cockpit.helpers.ts\nPALETTE array\n8 agent identity colors"]
    PALETTE -->|"slug hash % 8"| DOT["AgentDot color\nIndex 0: #2d7a3a\nIndex 4: #0f3e17 ⚠️ = accent"]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    CSS["styles.css\n@theme inline\n(single source of truth)"]

    CSS -->|"--color-accent: #0f3e17\n--color-ink-deep: #0a1810\n--color-primary: #0f3e17"| UTILS["Tailwind utility classes\nbg-accent, text-accent\nbg-ink-deep, bg-primary…"]

    CSS -->|"--accent: #b6ced5 (inert)\n--background, --primary…"| ROOT[":root / .dark\nCSS variable block\n(shadcn generator output)"]

    UTILS --> LIGHT["Light-bg components\nAudit table, RunningGrid\nConnectionRow, EndpointStrip\n→ text-accent = #0f3e17 ✓"]

    UTILS --> DARK["Dark caption strips\nbg-ink-deep (#0a1810)\nAgentRunningCard, LeadRunTile\nSupportingTile, AuditHoverPreview"]

    DARK -->|"LIVE indicator override\ntext-[#b1dbb8] / bg-[#b1dbb8]"| LIVE["#b1dbb8 sage\n(readable on #0a1810) ✓"]

    PALETTE["cockpit.helpers.ts\nPALETTE array\n8 agent identity colors"]
    PALETTE -->|"slug hash % 8"| DOT["AgentDot color\nIndex 0: #2d7a3a\nIndex 4: #0f3e17 ⚠️ = accent"]
Loading

Comments Outside Diff (1)

  1. packages/browseros-agent/apps/claw-app/screens/cockpit/cockpit.helpers.ts, line 10-19 (link)

    P2 Brand primary used as agent identity color

    The PALETTE now contains #0f3e17 at index 4, which is identical to --color-accent / --color-primary — the green used for CTA buttons, focus rings, active sidebar items, and LIVE pulse dots on light backgrounds. Any agent whose slug hashes to index 4 will render agent-dot and avatar colors that are visually indistinguishable from primary UI chrome, making it hard for operators to separate agent identity from interaction affordances at a glance. Additionally, indices 0 (#2d7a3a) and 4 (#0f3e17) are both in the same green family, which reduces differentiability between the first and fifth distinct agent colors in the palette.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: packages/browseros-agent/apps/claw-app/screens/cockpit/cockpit.helpers.ts
    Line: 10-19
    
    Comment:
    **Brand primary used as agent identity color**
    
    The PALETTE now contains `#0f3e17` at index 4, which is identical to `--color-accent` / `--color-primary` — the green used for CTA buttons, focus rings, active sidebar items, and LIVE pulse dots on light backgrounds. Any agent whose slug hashes to index 4 will render agent-dot and avatar colors that are visually indistinguishable from primary UI chrome, making it hard for operators to separate agent identity from interaction affordances at a glance. Additionally, indices 0 (`#2d7a3a`) and 4 (`#0f3e17`) are both in the same green family, which reduces differentiability between the first and fifth distinct agent colors in the palette.
    
    How can I resolve this? If you propose a fix, please make it concise.

    Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix All With AI
Fix the following 3 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 3
packages/browseros-agent/apps/claw-app/screens/cockpit/cockpit.helpers.ts:10-19
**Brand primary used as agent identity color**

The PALETTE now contains `#0f3e17` at index 4, which is identical to `--color-accent` / `--color-primary` — the green used for CTA buttons, focus rings, active sidebar items, and LIVE pulse dots on light backgrounds. Any agent whose slug hashes to index 4 will render agent-dot and avatar colors that are visually indistinguishable from primary UI chrome, making it hard for operators to separate agent identity from interaction affordances at a glance. Additionally, indices 0 (`#2d7a3a`) and 4 (`#0f3e17`) are both in the same green family, which reduces differentiability between the first and fifth distinct agent colors in the palette.

### Issue 2 of 3
packages/browseros-agent/apps/claw-app/entrypoints/newtab/styles.css:74-78
**`--color-blue` token now resolves to teal/cyan**

`#3e7285` is closer to HSL 196° 37% 37% — a desaturated teal — not blue. Any component using the `text-blue`, `bg-blue`, or `border-blue` Tailwind utilities will render teal where the old palette rendered a recognizable blue (`hsl(217 75% 53%)`). If `blue` is semantically used for informational states, links, or data series in charts (`chart-3` is `#6ea8b8`, another teal), the mismatch between the token name and actual hue will create confusion for future contributors maintaining these color slots.

### Issue 3 of 3
packages/browseros-agent/apps/claw-app/screens/new-agent/CopyFromExistingCard.tsx:19
The gradient terminus `to-[hsl(140_40%_96%)]` is a hardcoded value that escaped the token sweep. It sits between `accent-tint` (`#e1f4df`) and `bg-canvas` (`#fbfdf8`), so using a design token keeps it in sync if those surfaces change again.

```suggestion
    <div className="rounded-2xl border border-accent-tint-2 bg-gradient-to-br from-accent-tint to-bg-canvas p-4">
```

Reviews (1): Last reviewed commit: "chore: merge origin/main into feat/claw-..." | Re-trigger Greptile

@greptile-apps

greptile-apps Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR re-skins the BrowserClaw newtab app from the warm-cream/orange cockpit palette to an ease-health green palette (#fffefc surfaces, #0f3e17 primary/accent, sage/mint tints, #b7301b destructive). All changes are cosmetic — fonts, radii, dark-mode enablement, status ambers, and the server-mirrored audit.colors.ts tab-group palette are explicitly left untouched.

  • styles.css: The @theme inline token block, :root, and .dark blocks are fully rewritten to the green palette; --color-accent in @theme intentionally equals --color-primary (#0f3e17), while the shadcn legacy --accent in :root carries a distinct tint value (#b6ced5) that is documented as inert.
  • Component sweep: All hard-coded orange hex literals (#F26B2A, #E0561C, hsl(19 89%…) shadows, #15140F/#1B1A17 dark strips) replaced with design tokens (bg-ink-deep, accent-2) or the light-palette green #b1dbb8 where the brand dark green is unreadable on near-black caption blocks.
  • Data/helpers: Agent color PALETTE in cockpit.helpers.ts and mock color entries in the API hooks updated from orange to green variants.

Confidence Score: 4/5

Safe to merge; the changes are purely cosmetic token swaps with no logic, API, or data-model impact.

All 21 changed files contain only color value replacements. The AgentDot on dark strips correctly continues to use the unchanged audit.colors.ts bright palette, so no existing indicator becomes invisible. The two observations — green-palette concentration in the fallback PALETTE and the unregistered #b1dbb8 LIVE-chip color — are presentational and do not affect runtime correctness.

cockpit.helpers.ts (three visually close green shades in the agent PALETTE) and the four cockpit caption components (AgentRunningCard, LeadRunTile, SupportingTile, AuditHoverPreview) where #b1dbb8 is repeated as a hardcoded literal rather than a named token.

Important Files Changed

Filename Overview
packages/browseros-agent/apps/claw-app/entrypoints/newtab/styles.css Core palette swap: @theme inline tokens, :root, and .dark blocks all updated to the ease-health green palette; intentional divergence between --color-accent (#0f3e17) in @theme and --accent (#b6ced5) in the inert :root block is documented in comments.
packages/browseros-agent/apps/claw-app/screens/cockpit/cockpit.helpers.ts Agent hash-to-color PALETTE updated; now contains three close green-family shades (#2d7a3a, #10A37F, #0f3e17) that reduce visual differentiation for the ActivityRow indicator dot.
packages/browseros-agent/apps/claw-app/components/cockpit/AgentRunningCard.tsx bg-ink → bg-ink-deep for caption strip; LIVE chip correctly uses hardcoded #b1dbb8 instead of accent for readability on near-black, but the value is not a named token.
packages/browseros-agent/apps/claw-app/components/cockpit/LeadRunTile.tsx Caption strip updated to bg-ink-deep; LIVE indicator correctly switched to #b1dbb8 with updated shadow HSL for the green palette.
packages/browseros-agent/apps/claw-app/components/cockpit/SupportingTile.tsx Caption strip and LIVE chip updated to ease-health tokens; straightforward and consistent with other cockpit caption components.
packages/browseros-agent/apps/claw-app/components/cockpit/RunningGrid.tsx Only the pulse-dot glow shadow HSL updated; text-accent and bg-accent retained (correct on light canvas background).
packages/browseros-agent/apps/claw-app/screens/onboarding/Onboarding.tsx Brand column gradient updated from warm-orange to sage-green tokens; radial highlight overlay color updated from orange rgba to green rgba.
packages/browseros-agent/apps/claw-app/screens/mcp/McpRow.tsx Hard-coded dark strip #15140F replaced with bg-ink-deep token; mono text changed from #EDEAE2 (warm cream) to #e9f2ea (green-tinted cream).
packages/browseros-agent/apps/claw-app/screens/live-run/ApprovalCard.tsx Gradient tail updated from hard-coded #F6A05A to the accent-2 token; clean and token-driven.
packages/browseros-agent/apps/claw-app/modules/api/agents.hooks.ts Single mock agent color updated from orange (#F26B2A) to deep-green (#0f3e17); affects only dev/mock state.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["styles.css @theme inline\n(Tailwind 4 design tokens)\n--color-accent: #0f3e17\n--color-ink-deep: #0a1810"] --> B["Tailwind utility classes\nbg-accent, text-accent\nbg-ink-deep, etc."]
    A2["styles.css :root / .dark\n(shadcn legacy CSS vars)\n--accent: #b6ced5 inert\n--background: #fffefc"] --> C["shadcn component CSS\n(no Tailwind utility reads this)"]
    B --> D["Light surface components\nRunningGrid, audit.columns\ntext-accent = #0f3e17"]
    B --> E["Dark caption strips\nbg-ink-deep #0a1810\nLeadRunTile, AgentRunningCard\nSupportingTile, AuditHoverPreview"]
    E --> F["LIVE chip\ntext-#b1dbb8 hardcoded\nNOT via token"]
    G["cockpit.helpers PALETTE\n#2d7a3a, #0f3e17, #10A37F\n3 green-family slots / 8"] --> H["colorForSlug to ActivityRow dot\n12px indicator on cream bg-card"]
    I["audit.colors.ts hexForSlug\nTAB_GROUP_HEX unchanged\nIncludes orange #F26B2A"] --> J["AgentDot on dark caption\nStill uses bright palette"]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A["styles.css @theme inline\n(Tailwind 4 design tokens)\n--color-accent: #0f3e17\n--color-ink-deep: #0a1810"] --> B["Tailwind utility classes\nbg-accent, text-accent\nbg-ink-deep, etc."]
    A2["styles.css :root / .dark\n(shadcn legacy CSS vars)\n--accent: #b6ced5 inert\n--background: #fffefc"] --> C["shadcn component CSS\n(no Tailwind utility reads this)"]
    B --> D["Light surface components\nRunningGrid, audit.columns\ntext-accent = #0f3e17"]
    B --> E["Dark caption strips\nbg-ink-deep #0a1810\nLeadRunTile, AgentRunningCard\nSupportingTile, AuditHoverPreview"]
    E --> F["LIVE chip\ntext-#b1dbb8 hardcoded\nNOT via token"]
    G["cockpit.helpers PALETTE\n#2d7a3a, #0f3e17, #10A37F\n3 green-family slots / 8"] --> H["colorForSlug to ActivityRow dot\n12px indicator on cream bg-card"]
    I["audit.colors.ts hexForSlug\nTAB_GROUP_HEX unchanged\nIncludes orange #F26B2A"] --> J["AgentDot on dark caption\nStill uses bright palette"]
Loading
Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 2
packages/browseros-agent/apps/claw-app/screens/cockpit/cockpit.helpers.ts:10-19
**Agent palette now has three visually close greens**

The updated `PALETTE` has `#2d7a3a` (slot 0), `#10A37F` (slot 3, a teal-green), and `#0f3e17` (slot 4) — three green-family entries out of eight. `#0f3e17` (near-black forest green) and `#2d7a3a` (dark forest green) are perceptually very close as 12 px indicator dots in `ActivityRow`, making it hard to distinguish agents that hash to slots 0 vs. 4. Replacing `#0f3e17` at slot 4 with a non-green hue (e.g., a warm amber or a medium-contrast teal already distinct from `#10A37F`) would restore visual differentiation without re-introducing orange.

### Issue 2 of 2
packages/browseros-agent/apps/claw-app/components/cockpit/AgentRunningCard.tsx:60-66
**Hardcoded hex for LIVE chips on dark caption blocks (4 components)**

The `#b1dbb8` hex and its shadow HSL `hsl(130_37%_78%/0.7)` appear verbatim in `AgentRunningCard.tsx`, `LeadRunTile.tsx`, `SupportingTile.tsx`, and `AuditHoverPreview.tsx`. If the palette changes again these spots won't update with the token sweep. Adding a CSS token (e.g., `--color-live-on-dark: #b1dbb8` in the `@theme inline` block) would let the next re-skin touch one line instead of four, and documents the design intent ("readable on near-black") as a named concept.

Reviews (2): Last reviewed commit: "chore: merge origin/main into feat/claw-..." | Re-trigger Greptile

@DaniAkash Dani Akash (DaniAkash) deleted the feat/claw-app-ease-health-theme branch July 3, 2026 08:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant