FormidableLabs / victory

A collection of composable React components for building interactive data visualizations
http://commerce.nearform.com/open-source/victory/
Other
11.02k stars 524 forks source link

Tooltip line height not correctly applied to both flyout and text elements #2908

Open webroo opened 1 month ago

webroo commented 1 month ago

Is there an existing issue for this?

Code of Conduct

Victory version

37.1.1

Code Sandbox link

https://codesandbox.io/p/sandbox/victory-starter-forked-4kq4n4?file=%2Fsrc%2FApp.tsx

Bug report

When specifying Theme.tooltip.style.lineHeight the value is used to calculate the height of the tooltip flyout but not the positioning of text elements inside. This causes a visual mismatch, especially on multiline tooltips.

image

It seems the only workaround is to also supply line height to the tooltip label via props, but this means the value now has to be maintained across two separate places in the code:

<VictoryTooltip labelComponent={<VictoryLabel lineHeight={2} />} />

Ideally we'd only need to maintain line height in one place, the theme.

Steps to reproduce

1. Go to Code Sandbox link and open `Theme.ts`
2. Modify the value of `Theme.tooltip.style.lineHeight`
3. Observe how the height of the tooltip Flyout changes but not the positioning of text elements

Expected behavior

`Theme.tooltip.style.lineHeight` should be used to calculate both the height of the flyout and the position of the text elements.

Actual behavior

`Theme.tooltip.style.lineHeight` is only used to calculate the height of the flyout.

Environment

- Device: Desktop
- OS: MacOS 14.6.1
- Browser: Chrome v129
carbonrobot commented 2 weeks ago

Related to #2835