The reason why anions are larger is mainly because of the increase in the electron shell. As anions receive electrons, the shell becomes larger. But the shielding effect also takes effect. Because there are more electrons, the repulsion between the inner and outer electrons will increase. Therefore, anions become larger.
The reason why cations are smaller is because of the decrease in the shielding effect. Because the electrons decrease, the repulsion also decreases.