Icons are pictorial representations of functions and objects. They convey meaning that users perceive almost instantaneously and are an important part of a program’s visual identity.
Well-designed icons strongly impact users’ overall impression of the design. Consistent use of icons also improves usability by making programs, objects, and actions easier to identify and learn.
Use icons from the system icon theme whenever possible. Avoid using custom icons. New icons should be added to an icon theme.
Design icons with a small number of metaphors that are understandable independent of language and culture. Apply metaphors only once (e.g. don’t use a brush twice for different actions).
Simplify, but don’t go overboard.
Avoid using text in icon designs; it cannot be localized and tends to look bad at small sizes.
Many icons come in multiple sizes. Each version should be visually optimized and pixel-perfect for its particular size. Larger sizes offer more opportunity for detail and visual pizazz, while smaller version should be stripped of everything not absolutely necessary.