Allows customization of the rendering of graphic elements when the user hovers over them with the cursor (mouse pointer). Use opts_hover for interactive geometries in panels, opts_hover_key for interactive scales/guides and opts_hover_theme for interactive theme elements. Use opts_hover_inv for the effect on the rest of the geometries, while one is hovered (inverted operation).

opts_hover(css = NULL, reactive = FALSE)

opts_hover_inv(css = NULL)

opts_hover_key(css = NULL, reactive = FALSE)

opts_hover_theme(css = NULL, reactive = FALSE)



css to associate with elements when they are hovered. It must be a scalar character. It can also be constructed with girafe_css, to give more control over the css for different element types.


if TRUE, in Shiny context, hovering will set Shiny input values.


IMPORTANT: When applying a fill style with the css argument, be aware that the browser's CSS engine will apply it also to line elements, if there are any that use the hovering feature. This will cause an undesired effect.

To overcome this, supply the argument css using girafe_css, in order to set the fill style only for the desired elements.

See also

Other girafe animation options: girafe_options(), opts_selection(), opts_sizing(), opts_toolbar(), opts_tooltip(), opts_zoom()


library(ggplot2) dataset <- mtcars dataset$carname = row.names(mtcars) gg <- ggplot( data = dataset, mapping = aes(x = wt, y = qsec, color = disp, tooltip = carname, data_id = carname) ) + geom_point_interactive() + theme_minimal() x <- girafe(ggobj = gg) x <- girafe_options(x, opts_hover(css = "fill:wheat;stroke:orange;r:5pt;") ) if( interactive() ) print(x)