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. The first and the most desirable in icon design practice is using conventional images. If there is no conventional pictogram for the particular icon, a designer can use a literal image, including an image that is shared by the main concept (for example printer is shared image for printing concept), or metaphorical image. After the pictogram is defined, it is necessary to check it for possible conflicts (for example the snail image is a good metaphor for slow motion but if used as a road sign it will conflict with literal and partially conventional meaning "snails on the road"). 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. Notable icon designers 

 Susan Kare, one of the early professional icon designers, designed many of the icons contained within the Classic Mac OS. Jon Hicks created the icon for the Firefox Browser and the emoticons for Skype. He's also the author of the Icon Handbook. Stefan Dziallas aka Iconwerk, a German icon designer famous for his icons for the top brands

See also
 Icon (computing) 
 Skeuomorph
Iconfinder
The Noun Project

References

External links
 iOS Human Interface Guidelines — App Icon
 macOS Human Interface Guidelines — Designing App Icons
 Microsoft Design Language — Icons
 Microsoft Icon guidelines for UWP apps
 Microsoft guidelines on designing Windows Aero Icons
 Microsoft guidelines on designing Windows XP icons
 Android guidelines on icon design