Bevy Nested Tooltips
A library for creating headless(unstyled) tooltips that can be arbitrarily nested and highlight other nodes.
(Colours are chosen by end user!)

Features
This library strives to handle the logic behind common tooltip features, while you focus on your unique data and design needs.
- Tooltips can be spawned by hovering or by user pressing the middle mouse button, your choice which and you can change at runtime.
- Nesting to arbitrary levels, the only limitation is memory.
- Despawns if the user hasn't interacted with them in a configurable time period, or they mouse away after interacting with them.
- Locking by pressing of the middle mouse button. using observers you can implement your specific design to inform your users.
- Highlight other Entites using a linked text, highlight designs are up to you.
- Tooltips that are locked can be clicked and dragged around.
Usage
Import the prelude
use *;
Add the plugin
.add_plugins
(Optional) Configure tooltips
commands.insert_resource;
Load your tooltips
let mut tooltip_map = TooltipMap ;
tooltip_map.insert;
tooltip_map.insert;
Add links to relevant entities
TooltipHighlight,
Or
new,
Style your tooltips
Create an observer with at least these parameters.
Fetch the data.
let tooltip_info = tooltip_info
.tooltip_child_entities
.unwrap;
Use the entities to style your node using commands or mutatable queries!
commands
.get_entity
.unwrap
.insert;
React to changes.
// When highlighted change the colour, how you highlight is up to you
// maybe fancy animations
// remove highlighting
Limitations
This plugin assumes a single fullscreen and camera is used.
Bevy compatability
bevy |
bevy_nested_tooltips |
|---|---|
| 0.19 | 0.4-0.5 |
| 0.18 | 0.3 |
| 0.17 | 0.1-0.2 |