Fast verdict: for buttons use buttons or web-components derived from buttons. For dropdowns use b (or another tag - another example), a for hyperlinks, label for titles/headings (not as button title).
Without title mix, because of ico as background on :pseudo-element.
One element for declaration themes: rounded & dark.
Without standard button behaviour (disabled, tab, focus, imitate pushdown by moving text).
Uses standard button behaviour (:disabled?!, tab, focus, click), but is not imitated onclick pushdown (by moving text).
Can not be used on dropdowns, because of all hyperlink area focus, which make focus on all dropdown items at the same time!
Simplest button behaviour but text-styled, without rectangle background & :visited redefining.
Disabled icons aren't change opacity because of its common space (not own as in buttons rectangles).
Original sourcecode published in the list of iAMcss-examples.