I see rendering variant as a separate component compare to traditional Sitecore renderings. Currently Sitecore supports personalization on Renderings directly but not Rendering Variants. You can still achieve the personalization within the rendering variant, but not between the variants.
This solution will allow a content author to personalize the rendering with the available variants through the personalization dialogue screen.
If a rendering variant personalization has been setup by the content author, then whenever personalization rule matches it will apply the rendering variant setting to the given component at runtime.
Experience Editor: A user cannot see the variant applied when they change the personalization from the dropdown list during edit mode.
Developers are welcome to provided the suggestion or contribute their improvements to this repository OR drop an email at it.mrunal@gmail.com
This module is developed using Sitecore 9.2 and SXA 1.9