No-Library (pure JS), HTML, CSS, JavaScript
Shows how to use custom validity, invalid message, and UI messages.