This filter adds a drop shadow to the element it is applied to.
create_filter_drop_shadow( id, dx = 10, dy = dx, std_dev = 3, colour = "#bbb", ... )
id | id to use for filter. |
---|---|
dx, dy | offset of shadow in x and y directions. default: 10 |
std_dev | standard deviation of the gaussian for the blur. default: 3 |
colour | default: #bbb |
... | other arguments ignored |
minisvg::SVGElement object representing a filter
The drop shadow effect is a combination of 4 primitive SVG filters:
Blur the element
Offset this blurred image
Fill the blurred image with the given colour using a flood and a composite
Layer the drop shadow behind the original image
For more information see the MDN SVG docs for feGaussianBlur
if (FALSE) { # Create an SVG document library(minisvg) doc <- minisvg::svg_doc() # Create the filter and add to the SVG definitions drop_shadow_filter <- create_filter_drop_shadow(id = 'dshadow') doc$defs(drop_shadow_filter) # Create a rectangle with the animation rect <- stag$rect( x = "10%", y = "10%", width = "80%", height = "80%", fill = "lightblue", stroke = 'black', filter = drop_shadow_filter ) # Add this rectangle to the document, show the SVG text, then render it doc$append(rect) doc doc$show() }