Icon design

Icon design is the process of designing a graphic symbol that represents some real, fantasy or abstract motive, entity or action. In the context of software applications, an icon often represents a program, a function, data or a collection of data on a computer system.
Style and usage.
Icon designs can be simple, with flat two-dimensional drawing or a black silhouette, or complex, presenting a combination of graphic design elements such as one or more linear and radial color gradients, projected shadows, contour shades, and three-dimensional perspective effects.
Sizing.
As computer icons can be used in different sizes, icon design involves creating master artwork usually for the biggest size used and producing smaller sizes from it. It is desirable to comply with overall style of the icon set, using the same color palette, perspective and renderings for all icons. Special attention is given to eliminating unnecessary details and aligning strokes and objects to pixels in small icon sizes to avoid messy and blurred images.
Many modern icons have a maximum size of 1024 by 1024 pixels or greater. The challenge of icon design is to create an image that is communicative, beautiful, and understandable, at every size from this maximum resolution down to the minimum resolution of 16 by 16 pixels. Many icon formats allow one icon to include hinting to ensure visual clarity at smaller resolutions, or even completely different subsidiary images for smaller sizes (for instance, a keyboard at larger sizes, and a single keycap at smaller ones).
Usage.
The most common and important examples are application icons, used to represent an app on Mac, Windows, Linux, or mobile platforms. These icons rely on unique and memorable metaphors as a form of product branding. Other common uses include favicons, toolbar icons, and icons for buttons or controls.
Process.
The process of icon design can be divided into two parts: defining the pictogram and creating final design or illustration.
Defining pictograms.
There are three main approaches in defining pictograms. 
Defining the pictogram can be different for the toolbar and other functional icons in the interface and for the icons representing independent software applications or websites which are closer to logotype or mascot design.