A button initiates an action when the user clicks it.
Toggle buttons are a special case where a button has a state.
- Use title style capitalization for the label.
- Buttons are not dynamic; their content or labels should not change depending on the context.
- Don't initiate an action on right-click or double-click cause the user won't expect it.
- Prefer using icons on buttons only for ok, apply, cancel like actions. Passive actions like e.g. those in the "System Settings => Application Appearance => Fonts" don't have icons. Don't overboard with icons.