Button state when input exceeded limit

Lets imagine we have a textarea and a send button. The textarea contains a message that's sent by clicking on the button. When message is empty or exceeds the limit (e.g. 1000 characters) we should prevent a user from sending a message. So we either can hide the button or mark it as disabled (e.g. make it grey). We also implemented an animation on the button that slides it outside of area and simultaneously changes its opacity from 100 to 0.

So what I proposed is: - hide this button with that slide animation when textarea is empty (or becomes empty) - hide this button with the same animation when textarea contains too much characters. Thus both cases prevents user from sending a message and we have identical effects (I mean hiding the button) when sending is unavailable

What other folks proposed: - hide the button with slide animation when textarea becomes empty - make this button grey and disabled when amount of characters exceeds the limit

Is there best practices in my scenario or it actually doesn't matter and I am just being meticulous?