I’ve been trying to recreate this effect for ages, but have never been able to figure out how to cut the inner circle off so it doesn’t fill over the edges of the frame (like this)
It actually does overfill the frame. The bevel on the corners is only a total 3 pixels with only one of those pixels being being entirely transparent. As long as you do not make your bevels very large and keep the effect relatively transparent it is pretty much unnoticeable till you get to the point where you are counting pixels
I’m working on a material ui library atm, and afaik, there’s no way to do stop it overlapping the border radius.
one option i can suggest is creating the inverse image of the button (so an image with just the corners filled), and placing that over the button so the ripple is between the two layers, but obviously this would only work if you have the button on a background with a solid colour.
a blend mode option would probably be more useful though imo because you can create filters and effects that use stuff like Screen or Multiply or Subtract blending instead of the default Mix/Blend and since the alpha channels come into play too (if toggled) it can be used for masking also
There’s no easy way to avoid this one. You can definitely (ab)use clip descendants to do this, but at the cost of multiple frames and a lot of extra math. I don’t think this is worth.