Skip to content

#238 — latte ov-tooltip AA stand-in + guard extension to .ov-key - #280

Merged
cmbays merged 2 commits into
mainfrom
render-238-ov-tooltip-latte-aa
Jun 12, 2026
Merged

cmbays merged 2 commits into
mainfrom
render-238-ov-tooltip-latte-aa

Conversation

@cmbays

@cmbays cmbays commented Jun 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

.ov-tooltip .ov-key (the overrides-tooltip key text) ships an all-theme color-mix(in oklab, var(--accent) 50%, white) inside the always-dark --tooltip-bg fill. On latte (the lightest fill of the 8, #4c4f69, with the light themes' darkest accent — deepened further by #273 for light-page surfaces) that mix measures 3.69:1, below the WCAG AA 4.5:1 floor. This is the accent family's dark-fill surface the #273 token matrix never measured.

The fix

The symmetric twin of #233 D4's .ct-key latte stand-in: a latte-scoped 35% mix in templates/report.css, leaving the other 7 themes' 50% mix pinned.

Measured before/after (8-theme sweep, alpha-composited effective backdrop, real showOvTip reveal path)

theme before (main fbdcf86) after AA 4.5:1
light 7.89 7.89 PASS
solarized 6.12 6.12 PASS
latte 3.69 FAIL 4.76 PASS
rosepine 6.85 6.85 PASS
dark 13.92 13.92 PASS
tokyo 12.28 12.28 PASS
gruvbox 10.32 10.32 PASS
dracula 10.49 10.49 PASS

35% measures 4.76 PASS exactly as the issue's measurement predicted (40% still fails at 4.38).

RED-proof

The new guard ov_tooltip_ov_key_meets_aa_contrast_on_every_theme (tests/headless_toggle.rs) was run against the unfixed CSS first and failed exactly on latte:

ov-tooltip .ov-key contrast     latte = 3.69  (oklab(0.759132 ...) on rgb(76, 79, 105))
.ov-tooltip .ov-key below the WCAG AA 4.5:1 floor (cute-dbt#238 ...): ["latte = 3.69 ..."]

With the fix it passes all 8 themes. Guard methodology follows the family: the #233 sweep's canvas-normalized color-mix fg + the #273 matrix's alpha-composited effective backdrop, transition kill, checkVisibility hygiene, and the real showOvTip reveal (focusing the overrides · N badge — keyboard parity), with the bg==tipbg methodology pin.

Goldens

report.css is inlined, so all golden examples were regenerated per the example-report-check recipes (jaffle-shop, playground, diff-showcase; the explore pages are byte-identical — they don't inline report.css). git diff --text -U0 -- examples/ audited: the only delta is the new CSS rule + comment. The jaffle chrome insta snapshot re-accepted with the same single-rule delta.

Gates (run directly — fresh-worktree lefthook skip rule)

  • cargo fmt --check: PASS
  • cargo clippy --all-targets --locked -- -D warnings: PASS
  • cargo nextest run: 1390 passed
  • cargo test --test bdd: 1079 steps passed
  • cargo test --test headless_zero_egress --locked -- --ignored: 10 passed
  • cargo test --test headless_toggle --locked -- --ignored: 76 passed (incl. the new guard)
  • RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --locked (and --document-private-items): PASS
  • cargo deny check: advisories/bans/licenses/sources ok

Closes #238

🤖 Generated with Claude Code


Open in Stage

The all-theme 50% accent mix for .ov-tooltip .ov-key lands 3.69:1 on
latte's #4c4f69 tooltip fill (WCAG AA floor 4.5:1) — the accent-family
dark-fill surface the #273 token matrix never measured. Add the
latte-scoped 35% stand-in (the symmetric twin of #233 D4's .ct-key
repair; measured 4.76 PASS, 40% still fails at 4.38) and extend the AA
guard family with ov_tooltip_ov_key_meets_aa_contrast_on_every_theme:
canvas-normalized color-mix fg, alpha-composited effective backdrop,
transition kill, checkVisibility hygiene, through the real showOvTip
reveal path. RED-proven: the guard fails latte = 3.69 on the unfixed
CSS. Goldens regenerated per the example-report-check recipes (the
only delta is the new rule); jaffle chrome snapshot re-accepted.

Closes #238

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 12, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@cmbays, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 11 minutes and 30 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5b4f47cd-222c-4b92-98a9-cc363e11a5d0

📥 Commits

Reviewing files that changed from the base of the PR and between 580baca and 102b32a.

⛔ Files ignored due to path filters (1)
  • tests/snapshots/render_integration__rendered_chrome_jaffle_shop.snap is excluded by !**/*.snap
📒 Files selected for processing (5)
  • examples/diff-showcase-report.html
  • examples/jaffle-shop-report.html
  • examples/playground-report.html
  • templates/report.css
  • tests/headless_toggle.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch render-238-ov-tooltip-latte-aa

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 and usage tips.

@ghost

ghost commented Jun 12, 2026 •

Copy link
Copy Markdown

Ready to review this PR? Stage has broken it down into 4 individual chapters for you:

Title
1 Adjust Latte theme contrast for tooltip keys
2 Add headless contrast guard for tooltip keys
3 Update example reports with contrast fix
4 Other changes
Open in Stage

Chapters generated by Stage for commit 102b32a on Jun 12, 2026 4:41am UTC.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request resolves a WCAG AA contrast ratio issue on the 'latte' theme by adjusting the color mix of .ov-tooltip .ov-key and associated code elements from 50% to 35% accent mix. A new headless integration test, ov_tooltip_ov_key_meets_aa_contrast_on_every_theme, has been added to verify the contrast ratios across all eight themes, and the integration test snapshot has been updated accordingly. There are no review comments, and I have no additional feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@github-actions

github-actions Bot commented Jun 12, 2026 •

Copy link
Copy Markdown
Contributor

📄 Rendered report preview

All golden examples regenerated cleanly.

🟡 Golden examples

Committed to examples/ and byte-identity gated — the canonical reports contributors and consumers browse. Stable across PRs.

Report View Download
jaffle-shop-report.html ▶ Open ↗ ⬇ Download
playground-report.html ▶ Open ↗ ⬇ Download
diff-showcase-report.html ▶ Open ↗ ⬇ Download

🐶 Live dogfood preview

This PR doesn't touch dbt-project/, so there's no live dogfood preview.

▶ Open ↗ opens the report in your browser in one click —
published to this repo's GitHub Pages under /pr-280/.
⬇ Download fetches the same self-contained HTML as a workflow
artifact (auth-gated; works fully offline). Either way the report
makes zero external resource requests.

The Pages preview may take ~1 min to update after this comment
posts. On PRs from forks the Open link is unavailable (read-only
token) — use Download.

Alternative: GitHub CLI
# gh CLI >= 2.63 extracts into ./report-preview-playground/.
gh run download 27394957263 -R breezy-bays-labs/cute-dbt -n report-preview-playground
open report-preview-playground/playground-report.html

Posted by report-preview.yml for 102b32ade7e4bc5247d6c60ccf43eccce2063beb. Affordance only — never blocks merge.

@cmbays
cmbays merged commit 7248705 into main Jun 12, 2026
33 checks passed
@cmbays
cmbays deleted the render-238-ov-tooltip-latte-aa branch June 12, 2026 04:47
github-actions Bot added a commit that referenced this pull request Jun 12, 2026
@cmbays

cmbays commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

Overnight orchestration wrap-up

Merged as 7248705 (squash) under Christopher's overnight authority — CI fully green on the updated head, 0 unresolved review threads, push verified. Issue #238 auto-closed ✔.

What shipped: the latte-scoped 35% accent stand-in for .ov-tooltip .ov-key/.ov-row code (measured 3.69 → 4.76 PASS; the other 7 themes unchanged and passing 6.12–13.92) + the AA guard family extended to this surface across all 8 themes. RED-proof on record: the new guard failed solely on latte=3.69 against unfixed CSS, 8/8 after.

Story for the morning: #238 was queued as a re-measure after the #251 token repair; the measurement (this issue's earlier comment) showed the hypothesis was false — accent-family in the dark tooltip fill, not muted — and that #273 had nudged it slightly worse. The measured repair landed within the same overnight run, with the guard extension that would have caught the regression direction.

🤖 Generated with Claude Code

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.

polish: .ov-tooltip .ov-key sub-AA on latte (~4.0:1) — same family as #233 D4

1 participant