# Icons and SVG Illustrations We manage our own Icon and Illustration library in the [`gitlab-svgs`][gitlab-svgs] repository. This repository is published on [npm][npm] and managed as a dependency via yarn. You can browse all available Icons and Illustrations [here][svg-preview]. To upgrade to a new version run `yarn upgrade @gitlab/svgs`. ## Icons We are using SVG Icons in GitLab with a SVG Sprite. This means the icons are only loaded once, and are referenced through an ID. The sprite SVG is located under `/assets/icons.svg`. Our goal is to replace one by one all inline SVG Icons (as those currently bloat the HTML) and also all Font Awesome icons. ### Usage in HAML/Rails To use a sprite Icon in HAML or Rails we use a specific helper function : ```ruby sprite_icon(icon_name, size: nil, css_class: '') ``` - **icon_name** Use the icon_name that you can find in the SVG Sprite ([Overview is available here][svg-preview]). - **size (optional)** Use one of the following sizes : 16, 24, 32, 48, 72 (this will be translated into a `s16` class) - **css_class (optional)** If you want to add additional css classes **Example** ```haml = sprite_icon('issues', size: 72, css_class: 'icon-danger') ``` **Output from example above** ```html ``` ### Usage in Vue We have a special Vue component for our sprite icons in `\vue_shared\components\icon.vue`. Sample usage : ```javascript