Breaking Down the Icon
One benefit of working at GA-CCRi is the opportunity to stretch outside of our comfort zone. We consider developers to be innovators and solution engineers who can tackle any problem presented with the skillset we are continually building. This was one of the tasks I was faced with a few months ago in my role as a full stack software engineer, as described by the issue-tracking ticket:
“We need to create icons for each [vessel in our web-based mapping interface] that visually distinguish different vessel types while retaining the ability to show heading [of the vessel].” The request included a list of vessels.
GA-CCRi uses many icons from the Font Awesome toolkit, but for more unique application actions or map symbology requirements we create custom icons for our icon-font library. In this case, we needed a family of vessel icons to represent vessels on a map. I have minimal graphic design experience, but with the guidance of senior designers and fellow solution engineers, I ultimately landed on a family of vessel icons that are now in production. I’d like to review how I went from Point A: Terrified of Drawing Stick Figures to Point B: Confident in Creating SVG (Scalable Vector Graphic) icons. Keep in mind that this is only one way of approaching design! There are many design models that you may find useful in the process.
Establish Requirements
Although it may be tempting to jump into a digital editor such as Figma, the first step to tackling icon design is actually defining the overarching user goal and purpose. Design requires a well-defined problem to come up with a well-defined solution. We must remember that there may always be a better solution than the ones suggested on the ticket where I learned of the request, and only through exploration of the problem can we determine the appropriate solution. We must redefine requirements, explore potential constraints, and understand the purpose of each icon requested. For my vessel ticket, the solution was pretty apparent—create vessel symbology that functions at multiple scales so that users can easily identify, at a categorical level, the “type” of vessel shown on the map.
My first step was to get a better understanding of the vessels I’d be representing. I began researching my list of vessels, pulling real-life images of them from an aerial point of view. I wrote out descriptions of each and began categorizing by shape, purpose, cargo type, and whether they were commercial or military to gain a better understanding of my icon subject.
Going back to the original ticket and customer, I determined that not every vessel listed needed its own icon. Some vessels could be represented by a single, categorial icon on the map. It also became apparent in discussion that certain vessels would need to be accentuated due to importance. This iterative process of researching and redefining is a crucial step in understanding what you are designing. Once you feel like you’ve narrowed down the requirements for your icon, you may begin the process of simplifying from real-life imagery to iconography.
Observe and Simplify
Going from a high-fidelity, real-life object to a simplified icon is not easy. My goal was to create vessel icons that were quick and easy to understand.
We are quick to draw connections to images that exist in our daily lives. For example, the calendar icon shown here is shaped like the calendar that lived in your family’s kitchen. It has the turn-over rings at the top to switch out the months and the grid to show the dates. Notice how it’s not a perfect representation of a month (4 columns for days and 3 rows for weeks), but it gets the job done. When designing your icon, think of objects that already exist in our lives that could act as a visual representation. This is where all of our requirement research comes into play!
When simplifying the vessels, I researched currently symbology for military vessels. I also looked at how Moqups, Font Awesome and Noun Project symbolized ships to grasp an understanding of how to create a family of cohesive vessel symbology. As you can imagine, this wasn’t readily available on the web. For more common tasks, such as selecting a feature, we can search for “select” icons to collect precedent icons. For general tasks, such as “play a video” or “view a calendar”, we can reuse recognizable icons in known icon libraries without creating custom SVG images. To make an easily understood icon, look for key imagery based on your (and your client’s) experiences with technology and the object you are symbolizing. Collect 10-15 (or as many as you need) precedent images on a Google document, spreadsheet, PowerPoint deck, Moqup page, or Figma canvas and then continue to sketching.
Ideation and Iterations
I used the images I collected to begin the freehand sketches of potential icons. I incorporated original thoughts, and aspects of the relevant precedent images, as well as aspects of other icons that fit the ticket. When designing a family of vessels, I created a set of rules that brought each vessel together—for example, a similar structure base and similar spacing rules.
After I felt comfortable with 5-10 iterations of the icon, I presented these sketches to customers and coworkers who were familiar with the ticket requirements and personas. This step is crucial in design. The best-crafted icon might be worthless if it doesn’t trigger an insight from your customer. Feedback will define your final product. Your first iterations may be off track—that’s what makes sharing so important!
After a couple of iterations, your possible icons will be narrowed down into a smaller set. Begin to sketch those icons within a rough outline of the icon template (described below). This will help to visualize how the icon needs to be simplified. Simplifying your icons will be an entire iteration (or multiple iterations!) of its own. Reduce lines that appear redundant, use simple shapes to build your icon, and sketch a smaller version of the icon and see if its intent is still obvious. Using these newly, well-defined and simplified sketches, you’re ready to bring it to the next phase in iteration: the vector-drawing program.
Creating the SVG
You may use a number of different vector-based drawing programs such as Figma, Illustrator, or Inkscape to create an SVG image. I use Figma, so I’ll be using Figma terminology, but all of these actions will be available under different nomenclature in each system.
The base of each SVG should be an icon template. The template ensures that each icon is the same size (in our case, 512px by 512px), that each icon is created with the same amount of padding to buffer for scroll bars and browser rendering, and that the icon weight is proportional by size.