Называется checkbox, просто в таком дизайне.
В CSS-фреймворках, чтобы отделить от классического чекбокса, его называют toggle checkbox
Реализуется без JS с помощью псевдоэлементов :before и :after у input и label, на основе состояния чекбокса (атрибут checkbox у input).
Но никто не запрещает заюзать вместе с JS