I came to the answer myself: both are good depending on their use. All these custom inputs of google closure have something in common: they extend goog.ui.Control
. This component is pretty useful for handling states: disabled
, hover
, active
and focused
. This means the following thing:
- If you're just creating a form for a new database record, it makes little sense to use these components. It's an overkill. A simple input which receives the data can even be sent by post (a
goog.ui.Control
isn't able to do this by itself). - If you're creating a dynamic web interface which handles events and/or states, it's far better to use a
goog.ui.Control
given it already handles these events and it's capable of some default event and state-change handling with it's ascendants/descendants.
The only exception here is if you have a mix of goog.ui.Control
s with form inputs and you want an unified user experience. In which case you have to play with style-sheets or sacrifice complexity/maintenance for either of them.