Having problems with mouse drag mesh vertex deformation in 2D

enter image description here

This is in 2D space. I want to create a mouse dragging mechanic like the one shown in the picture where I find a range of vertices relative to the position I first clicked where the red vertices have the most “weight” and the grey vertices have less weight. Then I move them depending on where I drag my mouse but also curve the outer side vertices so it looks more smooth.

So far I’m able to move a stack of vertices around my mouse but the outer vertices are not deforming the way I want because I want the grey outer edge vertices in front of the direction I drag to move forward and the grey vertices in the opposite direction to move inward. I’m not sure how I can differentiate the outer vertices from the inner ones.