but what are you trying to difference here? If you have a command after the
offset close bracket and before the difference close bracket, then you will
take a difference of that line from the offset icon(), otherwise it's just
going to render the same as "offset(r=2) icon();" (for short commands, you
don't need the brackets, provided the command comes before the object.)
> linear_extrude(height = 10, center = false, convexity = 10)
And the other problem is you've created several, separate instances of
icon() and done different things to them. You need to call icon(), place a
command around it (or before it without brackets), place the next command
around or before that for the next command, and so on...
linear_extrude(height=10,convexity=10) offset(r=2) icon(); <-- Yes, you CAN
write it this way!
If your SVG files don't have open space, you'll create solid tiles. For
example, if I created an SVG of this Apple Music icon, I'd need to cut the
white note pair out before making the the SVG for import into OpenSCAD, as
OpenSCAD has no colour sensing and SVGs are simply paths.