I was recently presented with an interface that was using Bootstrap button classes for styling a text input, like so: https://jsfiddle.net/k7g2Lv43/

I personally really don't like it, and I feel like it shouldn't be done, but I couldn't explain why so I didn't say anything (I am not an UX/UI designer).

Is it bad practice, and if so why?

1 Answer 1


You feel "uncomfortable" when observing an input looking like a button, right?
In HCI they explain it with The Least Astonishment Principle (Wiki).

The principle of least astonishment (POLA), also called the principle of least surprise applies to user interface and software design. A typical formulation of the principle is: "If a necessary feature has a high astonishment factor, it may be necessary to redesign the feature."

The principle aims to leverage the pre-existing knowledge of users to minimize the learning curve, for instance by designing interfaces that borrow heavily from "functionally similar or analogous programs with which your users are likely to be familiar".

When two elements of an interface conflict, or are ambiguous, the behavior should be that which will least surprise the user; in particular a programmer should try to think of the behavior that will least surprise someone who uses the program, rather than that behavior that is natural from knowing the inner workings of the program.

Now you have an argument, so you can explain your feelings about the UI, and argue with the customers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.