I'm used to the buttons with in bold. They need to attract attention. And bold font style is one way. But, I've heard that sometimes such text looks awful (for example, Mac?). In bootstrap 3 font on buttons is normal. So which is better? bold / normal?
This seems like an overly broad opinionated question. The aesthetics is dependent on your branding/style. It also depends on how prominent you want your buttons to be.
Stackexchange uses gradient buttons with normal fonts.
Desk.com uses gradient buttons with bold uppercase fonts.
There are many ways to make buttons noticeable. (ie color, boldness, uppercase, stroke, shadow, etc) Keeping these button styles consistent and following your branding guidelines should be your focus.
It depends. Buttons often have varying:
- Colour or shade
- Shape or silhouette (compared to the rest of the page)
- Drop shadows (create a perception of depth)
- Letters in a button can have a shadow or text effect (see 'Ask Question button' here on UX)
- Different size to other elements
These alone add enough contrast for the user, let alone varying type weight.
Assuming many buttons have a darker background colour: the white letters will appear optically larger. As a result, letters typically have larger letter-spacing to compensate. Although this is limited on the web.
This is very much a stylistic decision. While paragraphs of bold text can decrease readability, this is not an issue with the few words you are likely to have on a button. The typeface will also impact this decision as all bolds are not equal. Some fonts have many weights, for instance Source Sans Pro has 6 weights. But I assume by bold that you a referring to a heavier weight than the body text. There are other ways to attract attention (color, size, etc.). In general, I prefer normal text, but again, that is a stylistic preference. I have seen it work well both "normal" and "bold".