Hi,
thanks for your feedback!
Yes, option three would require some sort of reset as you mention it, although that should be very small in most cases.
Due to that, and for easier code, I think, then the best approach should actually be option two. Adding that one line to either the functions.php of a child theme of the actual theme (or even better: to a small new plugin) will be that “reset” that you mention. You would then just have to extract the relevant code for the JS functions and copy those into the “Custom CSS”.
If you put the code into the functions.php of a child theme, the update problem would be eliminated (that’s what child theme are there for). Also, the argument with switching the theme or the theme changing markup is not really valid, as removing that one line will then automatically give your tables the TablePress default styling again, so that everything will still look good.
And an option really is no alternative: For the vast majority of users, there’s just no need for it (you are the first one to ask for this ?? ). Also, doing this would have a performance penalty: This would require two HTTP requests to two CSS files. Additionally, another option (as a checkbox) would even clutter the user interface even more, making it harder for inexperienced users to understand all the options and settings. Less options is better here, as that’s the philosophy that WordPress follows, too (Decisions, Not Options).
I understand that this would be an easy solution for you, but for the majority of people it would bring no benefit and even make things slightly worse.
So, option two should then be your way to go, as that would have the reset and the usage of the filter to turn off the default CSS would be your option.
Regards,
Tobias