Hi,
One typical solution I usually recommend is to NOT render something which you know can cause issues on the page/design tab. If you need to preview your page you can simply use the preview functionality so you are not loosing this options.
It depends on your particular case, but the way how you can hide certain things is by:
1) Using K# macro to check view mode in web part's visibility condition. E.g:
{% PortalContext.ViewMode == "LiveSite" |(identity)GlobalAdministrator%}
will render web part only on live site.
2) Using API to do the same thing as the macro (its again PortalContext.ViewMode property). This can be used anywhere you like.
If you want to create some "hooks" then I would recommend to check Kentico's global events which are here just for the purpose of extending base functionality.
For example this event will be bound to updating your CSS in UI:
CssStylesheetInfo.TYPEINFO.Events.Update.Before += Update_Before;
You can similarly use the global event to any other object type inside Kentico.