Skip to content

fix(stats): portal chart tooltips out of transformed dashboard tiles - #153

Merged
bndct-devops merged 1 commit into
mainfrom
fix/stats-tooltip-portal
Jul 20, 2026
Merged

fix(stats): portal chart tooltips out of transformed dashboard tiles#153
bndct-devops merged 1 commit into
mainfrom
fix/stats-tooltip-portal

Conversation

@bndct-devops

Copy link
Copy Markdown
Owner

Fixes #151.

The stats dashboard tiles are react-grid-layout items, which carry a CSS transform. A transformed ancestor becomes the containing block for position: fixed descendants and opens its own stacking context, so the mouse-anchored tooltips inside tiles were positioned relative to the tile instead of the viewport (tooltip far from the cursor, first screenshot in the issue) and could not escape the tile's z-order (tooltip behind neighbouring tiles, second screenshot).

Affected all three mouse-anchored chart tooltips:

  • 365-day activity heatmap (shared.tsx)
  • hour-by-day heatmap on Habits (HourDowHeatmap.tsx)
  • timeline ribbon (TimelineRibbon.tsx)

They now render through createPortal into document.body, restoring viewport-relative positioning and z-index. No visual or behavioural change outside the broken cases.

Verified with Playwright against the showcase: all three tooltips render at the cursor (+12/-44 px offset as designed) and on top of adjacent tiles.

The stats dashboard tiles are react-grid-layout items, which carry a CSS
transform. A transformed ancestor becomes the containing block for
position:fixed descendants and opens its own stacking context, so the
mouse-anchored tooltips in the activity heatmap, hour-by-day heatmap, and
timeline ribbon rendered far from the cursor and behind sibling tiles
(#151). Render them through createPortal into document.body so viewport
coordinates and z-index apply again.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@bndct-devops
bndct-devops merged commit a451736 into main Jul 20, 2026
2 checks passed
bndct-devops pushed a commit that referenced this pull request Jul 20, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

In stats the information pop up if behind elements

1 participant