01 Disabled state

Disabled button states are always weak design and poorly planned forms or the interface as a whole. It is always possible to find a better solution, such as not showing what is off until certain actions are taken.

Sometimes the disabled state is made for technical purposes. For example, when the form is submitted, avoid a second click. But there is another way to get rid of resending the form and also show the feedback.

You can change the button label and show that the form is being submitted or data is being checked. At the same time, you can set an attribute for the button that will technically tell the program that the button has already been clicked.

The disabled button state shows nothing, feeling that the form is broken and no data will be sent. Changing the button label shows good feedback, letting the user know what's going on at the moment.

02 Hover state

You don't need to change the color to a brighter tint for the hover state. The button should not change its appearance significantly because the hover state is just an indication of an intermediate state, and it doesn't need much emphasis.

It is better to make the button's color a little darker, and this will already be enough to indicate the hover state.

With dark and black buttons you have to do the opposite. The color should be a little lighter on the hover state.