Skip to content

fix(ui): make tooltip labels readable - #99

Open
D-Lite wants to merge 1 commit into
mainfrom
tooltip-fix
Open

fix(ui): make tooltip labels readable#99
D-Lite wants to merge 1 commit into
mainfrom
tooltip-fix

Conversation

@D-Lite

@D-Lite D-Lite commented Aug 29, 2026

Copy link
Copy Markdown

Summary

Sidebar (and every other) tooltip rendered as a near-black chip with unreadable text. Garden maps --background to transparent so parchment shows through the page; the shadcn inverted pair bg-foreground text-background therefore painted ink fill with invisible (transparent) text.

Tooltips now use the opaque popover surface (bg-popover / text-popover-foreground) already used by HoverCard and Popover — ink on vellum, with the matching arrow. Keyboard hint styles that assumed an inverted tooltip were dropped so they don't go invisible on the light surface.

Impact: rail labels, settings, issue actions, and any other TooltipContent are readable. No product behavior change.

Scope

  • In scope:
    • packages/ui/components/ui/tooltip.tsx surface + arrow tokens
    • packages/ui/components/ui/kbd.tsx tooltip-inverted kbd overrides
  • Out of scope:
    • --background remaining transparent (intentional for page atmosphere)
    • other bg-foreground text-background call sites (onboarding CTAs, automation chips)
    • tooltip delay, placement, or content

Invariants

List the business and engineering rules that must remain true.

  • Canonical identity is defined where records/events are involved. N/A — presentation only.
  • Re-running the operation does not duplicate effects. N/A — no writes.
  • Partial failure cannot silently corrupt state. N/A — no persistence.
  • Public outputs do not expose private or internal data. Tooltip copy is unchanged; only colors/shadow.

Design

Source of truth for floating chrome is --popover / --popover-foreground (vellum-heavy + ink). --background stays transparent by design; it is not a text color. Read path is CSS only. No error/retry surface. Simplest safe fix is reuse the existing opaque popover tokens instead of introducing new ones or making --background opaque (which would flatten the parchment ground).

Duplicate and idempotency review

  • Stable idempotency/dedupe key: N/A
  • Persisted-data duplicate check: N/A
  • Same-batch duplicate check: N/A
  • Retry behavior: N/A
  • Conflict behavior: N/A

Privacy and security review

  • Data classification: none — UI chrome
  • Public fields explicitly allowlisted: N/A
  • Private links/identifiers suppressed: N/A
  • Secrets and permissions reviewed: no auth, API, or grant changes

Data, migration, and rollback

  • Schema/data changes: none
  • Backup completed or not applicable: N/A
  • Dry-run/preview result: N/A
  • Expected affected-record count: 0
  • Rollback procedure: revert the commit

Verification

  • Syntax/build/compile — not run for this CSS-only change
  • Formatting/lint — not run
  • Type checks — not run
  • Unit tests — none added; no tooltip unit coverage existed
  • Integration tests — N/A
  • Repeat-run/idempotency test — N/A
  • Malformed-input test — N/A
  • Partial-failure test — N/A
  • Privacy-output test — N/A
  • Before/after reconciliation — computed styles on the running local app

Commands and actual results:

Runtime.evaluate getComputedStyle on live localhost:3000

css vars:
  --background: transparent
  --foreground: #1a1f1c
  --popover: rgba(255, 255, 255, 0.96)
  --popover-foreground: #1a1f1c

old pair (bg-foreground text-background):
  backgroundColor: rgb(26, 31, 28)
  color: rgba(0, 0, 0, 0)          # invisible text

new pair (bg-popover text-popover-foreground):
  backgroundColor: rgba(255, 255, 255, 0.96)
  color: rgb(26, 31, 28)           # ink on vellum

Manual: hover a collapsed-rail icon (e.g. Connections) and confirm the label is ink on a light chip, not a black empty blob. Could not hover the authenticated sidebar from the agent browser (redirected to login); token measurement used the same live stylesheet.

Operations

  • Configuration changes: none
  • Deployment/restart steps: normal web deploy; no extra restart
  • Health checks: none added
  • Monitoring/alerts: none
  • Post-deploy verification: hover any rail icon in a collapsed sidebar

Agent declaration

  • I read the applicable AGENTS.md instructions.
  • I did not perform unapproved destructive production actions.
  • I have clearly stated any checks I could not run.
  • The patch does not include unrelated refactoring.

Media

Screenshot 2026-08-29 at 11 05 55 AM Screenshot 2026-08-29 at 11 25 51 AM

@D-Lite
D-Lite requested a review from Konan69 August 29, 2026 10:26
@D-Lite D-Lite self-assigned this Aug 29, 2026
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 13c8a96d-07ba-4e48-9305-99b9df6ee71e


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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