Ok here is how I would do this. It’s a much more literal way of controlling the ring.
First, you use a spheremask to create a gradient for the “Final Size” of your effect. Param “Final Size” defines the size of your ring at its largest, or the end of the animation:
Next, do “1-x” on that SphereMask and then place another spheremask node connected like so:
phase=0.1
In this example “Phase” is the parameter that moves the ring along the gradient. It should be in the range of 0 to 1. 0 means the very center of the circle (as a soft dot), and 1 means the outer edge. Phase could either be timeline driven or Time-SpawnTime with a divide for speed and clamp to keep 0-1.
Notice that Phase is multiplied by 1-RingWidth. That is to keep the black area outside of the radius of the initial gradient from turning white when the ring reaches the outer edge (aka phase=1). It’s really rescaling the circle by however wide your ring is to maintain the full animation range of the given gradient.
phase=0.9