:valid, :invalid, and :required CSS Pseudo Classes
Each state is colon-separated from the element it's associated with:
/* basics */
border: 1px solid blue;
border: 1px solid green;
border: 1px solid red;
These pseudo classes are straight forward and useful. Here we're changing only borders, but you could use
:after to place text or an image next to each field, representing their state.
I'm a huge fan of using subtle effects like link nudging (jQuery, MooTools) to enhance the user experience and increase the perceived dynamism of my websites. Trust me -- a lot of little things are what take websites to the next level.