This should really be an <input type="checkbox"> with bonus CSS/JS so that it's backward compatible and doesn't break the world of accessibility, tabs, focus, forms, etc.
I think it's fine for design to explore visual representations of an input but the HTML should try to stay clean.