Iconography
Icons visually reinforce an interface action, file type, status, or category. They are visually simple, quickly recognizable, and easy to understand. They are almost always used in context with descriptive text and function to reinforce the message of that text.
Download the icon font
Our full icon set is available for desktop use as an icon font (.ttf). It can be accessed through programs like Adobe Illustrator and Adobe InDesign via the glyph panel.
Download vector files
Each of our icons is available for download as a vector (.svg) on The Noun Project, a platform that collects and catalogs icons that are created and uploaded by graphic designers from around the world.
Icon library
Navigation icons
icon | icon-round | canonical name | aliases |
---|---|---|---|
up | chevron-up | ||
right | chevron-right | ||
down | chevron-down | ||
left | chevron-left | ||
arrow-up | |||
arrow-right | |||
arrow-down | |||
arrow-left |
Status icons
icon | icon-round | canonical name | aliases |
---|---|---|---|
approved | check, checkmark, success | ||
error | delete, close, remove, multiply, multiplication, x | ||
warning | alert, exclamation-mark | ||
help | question, question-mark | ||
update | updating (used for animated state) | ||
dollar | |||
plus | add, addition, expand | ||
minus | subtract, subtraction, collapse | ||
divide | division | ||
equal | equals | ||
percentage | percent |
Social/sharing icons
icon | icon-square | canonical name | aliases |
---|---|---|---|
envelope, envelope-back | |||
flickr | |||
github | |||
youtube |
Communications icons
icon | icon-round | canonical name | aliases |
---|---|---|---|
envelope-back | |||
fax | fax-machine | ||
envelope-front | |||
phone | telephone, handset | ||
technology | cellphone, tablet | ||
web | globe, world |
Document icons
icon | icon-round | canonical name | aliases |
---|---|---|---|
appendix | |||
paper-clip | attach, attachment | ||
copy | duplicate | ||
document | doc, pdf | ||
download | |||
upload | |||
edit | pencil | ||
printer | |||
rss | feed | ||
save | disk | ||
supplement |
Financial products, services, and concepts
icon | icon-round | canonical name | aliases |
---|---|---|---|
bank | bank-account | ||
building-credit | |||
car | car-loan, auto, auto-loan | ||
complaint | |||
fountain-pen | contract | ||
credit-card | |||
credit-report | |||
debt-collection | |||
debt | |||
getting-a-credit-card | credit-card-contract | ||
loan | |||
money | dollar-bill | ||
money-transfer | |||
mortgage | sold | ||
house | buying-a-house, owning-a-home, home | ||
payday-loan | |||
college | paying-for-college, grad-cap, mortarboard | ||
prepaid-cards | prepaid | ||
quick-cash | |||
piggy-bank | retirement | ||
piggy-bank-check | |||
split |
Web application icons
icon | icon-round | canonical name | aliases |
---|---|---|---|
audio-max | audio-high | ||
audio-medium | |||
audio-low | |||
audio-mute | mute, audio-off | ||
bookmark | |||
unbookmark | |||
broadcast | antenna, radio | ||
bullhorn | megaphone | ||
chart | graph | ||
clock | time | ||
date | calendar | ||
dialogue | discussion | ||
disabled | no, disallowed | ||
external-link | |||
favorite | star, starred, fav, fave | ||
unfavorite | unstar, unstarred, unfav, unfave | ||
information | info, i | ||
lightbulb | idea | ||
link | |||
list | |||
lock | locked | ||
unlock | unlocked | ||
menu | hamburger | ||
microphone | mic | ||
newspaper | news | ||
parent | family | ||
play | |||
open-quote | |||
close-quote | |||
search | zoom, magnifying-glass | ||
settings | preferences, gear, cog | ||
share | |||
speech-bubble | |||
user | person | ||
wifi | wi-fi, wireless |
Animated icon
In certain instances, icons can be animated to aid communication or to reassure the user that an action is functioning as intended. Examples include saving or loading content.
HTML code snippet
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 952.7 1200" class="cf-icon-svg cf-icon-svg__updating"><path d="M952.5 592.6c-.9-35.3-29.7-63.4-65-63.4h-1.6c-35.9.9-64.3 30.7-63.4 66.6.1 2.8.1 5.7.1 8.5s0 5.6-.1 8.3c-.9 35.9 27.5 65.7 63.4 66.6h1.6c35.3 0 64.1-28.1 65-63.4.1-3.8.1-7.6.1-11.5s0-7.8-.1-11.7zM873.1 730.4c-32-16.2-71.1-3.4-87.4 28.6-4.4 8.7-9.3 17.3-14.4 25.6-19.1 30.4-10 70.5 20.4 89.6 30.4 19.1 70.5 10 89.6-20.4.1-.2.3-.4.4-.7 7.1-11.5 13.8-23.4 19.9-35.4 16.3-31.9 3.5-71.1-28.5-87.3zM668.2 890.5c-11.7 7.6-23.9 14.6-36.5 20.7-32.6 15-46.9 53.6-31.9 86.2s53.6 46.9 86.2 31.9c1-.4 1.9-.9 2.9-1.4 17.4-8.5 34.2-18.1 50.4-28.6 29.8-20.1 37.6-60.5 17.5-90.2-19.7-29.1-58.9-37.3-88.6-18.6zM486.6 946.2h-.9c-14 .2-28-.5-41.9-2-35.7-3.7-67.6 22.3-71.3 58-3.6 35.4 21.8 67.1 57.1 71.2 17 1.9 34.1 2.8 51.3 2.8h6.6c35.9-.2 64.8-29.5 64.6-65.4-.3-35.9-29.6-64.8-65.5-64.6zM655.2 310.3l.6.4c30.8 18.5 70.7 8.6 89.2-22.2 18.5-30.8 8.6-70.7-22.2-89.2l-1.1-.7c-30.8-18.4-70.7-8.2-89.1 22.6-18.4 30.9-8.2 70.7 22.6 89.1zM490 132.6h-2.3c-35.9-.3-65.2 28.6-65.5 64.5s28.6 65.2 64.5 65.5h2.1c35.9.3 65.3-28.5 65.6-64.4.3-35.8-28.5-65.2-64.4-65.6zM778.5 436.4c17.7 31.2 57.4 42.2 88.6 24.4s42.2-57.4 24.4-88.6l-.5-.9c-17.1-31.6-56.6-43.3-88.1-26.2-31.6 17.1-43.3 56.6-26.2 88.1.4.7.8 1.5 1.3 2.2l.5 1zM298.8 893c-14.3-9-27.8-19-40.6-30-27.4-23.2-68.4-19.7-91.6 7.7-22.9 27.1-19.8 67.7 7 91 17.6 15.1 36.3 28.9 55.9 41.3 30.4 19.1 70.5 10 89.6-20.4 19.2-30.3 10.1-70.5-20.3-89.6zM168.8 742.8c-6.8-15.4-12.5-31.2-17-47.4-10.2-34.4-46.4-54.1-80.8-43.9-33.6 9.9-53.2 44.7-44.5 78.6 6.2 22.3 14 44.2 23.4 65.4 14.6 32.8 53 47.6 85.8 33.1 32.8-14.6 47.6-53 33.1-85.8zM275.9 180.2H65c-35.9 0-65 29.1-65 65s29.1 65 65 65h47.2c-47.2 59.2-79.4 128.9-94 203.1-6.9 35.2 16.1 69.4 51.3 76.3s69.4-16.1 76.3-51.3C156 486.1 178.3 437 211 395v61.3c0 35.9 29.1 65 65 65s65-29.1 65-65v-211c0-36-29.1-65.1-65.1-65.1.1 0 .1 0 0 0z"></path></svg>
Implementation details
Our previous font icon system provided modifiers to rotate any icon. We found in reality this wasn’t practical and only one icon is ever animated, update
. We’ve provided an alias–updating
–to be used within the UI when a user needs to be made aware that the website is working on responding to their actions.
Specs
Depending on the context, the animated icon follows the standards of the component that contains it, for example, the icon follows the size and padding standards for buttons when placed inside a button to indicate loading or follows standards of a form-level alert within a notification.
Icon with text
Extra small
- Web: 16px size, used inline with text
- Print: 14pt size, used inline with text
HTML code snippet
<a class="a-link a-link__icon" href="#">
<span class="a-link_text">Example with icon</span>
{% include icons/download.svg %}
</a>
<!-- Raw SVG
<a class="a-link a-link__icon" href="#">
<span class="a-link_text">Example with icon</span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 651.7 1200" class="cf-icon-svg"><path d="M507.1 692.8c-15.6-15.6-40.9-15.6-56.6 0l-85.1 85.1V466.6c0-22.1-17.9-40-40-40s-40 17.9-40 40V778l-85.1-85.1c-15.6-15.6-40.9-15.6-56.6 0-15.6 15.6-15.6 40.9 0 56.6L297 902.9c7.5 7.5 17.7 11.7 28.3 11.7s20.8-4.2 28.3-11.7l153.3-153.4c15.8-15.7 15.8-41 .2-56.7z"/><path d="M30 161c-16.5 0-30 13.5-30 30v827.8c0 16.5 13.5 30 30 30h591.7c16.5 0 30-13.5 30-30V343.7L469 161H30zm389.6 60v134.8c0 19.9 16.3 36.2 36.2 36.2h135.9V988.8H60V221h359.6z"/></svg>
</a>
-->
Implementation details
The standard icon height in ems matches the 19px rendered canvas of text set in Avenir Next sized at 16px (19/16 = 1.1875).
@cf-icon-height: 1.1875em;
Small
- Web: 20px size, used on buttons
- Print: 21pt size, used for numbers and contact icons
Medium
- Web: 25px size, used in social media sharing sets
- Print: 28pt size, used for numbers and contact icons
Large
- Web: 30px size, used inline with large text links
- Print: 36pt size, used for numbers and contact icons
Extra large
- Web: 40px size, paired with primary headings
- Print: 48pt size, paired with primary headings
Guidelines
Color
Icons should always be one color. If used over a color field, negative space should be knocked out.
Although color usage is flexible, icons should always be used in high contrast tones relative to the background to maximize legibility.
Spacing
Padding varies around icons of various primary shapes. Square, vertically and horizontally rectangular, diagonal, and most complex icons can fit within the relative padding bounding box. Circular and some complex icons should be slightly larger to offset the visual weight of surrounding negative space.
Content guidelines
- Icons are typically used in conjunction with text.
- They typically match the color of the corresponding text.
- The size of the icon should match the size of the text it corresponds to.
Interaction details
Please reference the Links page for guidance regarding icons paired with links.
Behavior
SVG icon basics
The cfpb-icon component provides Scalable Vector Graphics (SVG) icons. This component can be used by itself, but is designed to work with the Design System.
We subscribe to the guidance offered by Chris Coyier in his article, “A Pretty Good SVG Icon System”, in which he concludes, “Just include the icons inline.”
Because including raw SVG code is not necessarily pretty or user-friendly, we encourage using your templating system to include them by reference.
Note: Jinja2, the templating language that cfgov-refresh uses, has a near-identical syntax for includes, but it requires that the path be enclosed in quotation marks, like so:
{% include 'icons/download.svg' %}
.
The filenames of the SVGs included with cfpb-icons match the names in the icon library section. There are duplicate SVG files for each alias, as well.
Note to contributors: If any icon is ever updated, you must be sure to also update each of the alias SVGs.
What the Less is doing
If you look in cfpb-icons.less
, below the aforementioned sizing variable, you’ll see this simple rule:
.cf-icon-svg {
height: @cf-icon-height;
vertical-align: text-top;
fill: currentColor;
…
}
Referring back to the example above, you can see that we have encoded class="cf-icon-svg"
in the root element of each of our SVG icons. As a result, the Less rule gets applied to all of the SVGs on the page, just like any other HTML element.
We start by limiting the size of the SVG to a proportion of the text height, using the @cf-icon-height
variable’s em value. To align the canvas of the icon with the canvas of neighboring text, we set vertical-align: text-top;
. Finally, setting fill: currentColor;
tells the SVG to set its path’s fill color
to match the color value of its parent element.
Caveats
There are two modifications based on restrictions in Internet Explorer 8 and 9 (IE8/IE9).
First, IE8 does not support fill: currentColor
. Typically the fallback would be to use a PNG image, but due to the inability to know what the background or text color of its surroundings are, we found it better to fall back to the paired text with no icon.
Second, IE9 displays SVGs as full width by default (not the paths, just the SVG container). To eliminate this issue we’ve set the width of the SVGs to match the height. The whitespace to the left or right may not be quite accurate, but we determined this is an acceptable difference for a legacy browser like IE9.
Inline SVG background
In some cases we embed an SVG as a background image. To accomplish this, a custom Less plugin is used to inject the SVG icon source file inline into the CSS background-image
property. This is exposed via a mixin, .u-svg-inline-bg( @name, @color: @black )
, where @name
is the SVG icon canonical name and @color
is the SVG fill color (which defaults to black).