.icon {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: $icon-size;
  -moz-context-properties: fill;
  display: inline-block;
  color: var(--icon-color);
  fill: currentColor;
  height: $icon-size;
  vertical-align: middle;
  width: $icon-size;

  // helper classes
  &.icon-spacer {
    margin-inline-end: var(--space-small);
  }

  &.icon-small-spacer {
    margin-inline-end: var(--space-xsmall);
  }

  &.icon-button-style {
    fill: var(--newtab-text-secondary-color);
    border: 0;

    &:focus,
    &:hover {
      fill: var(--newtab-text-primary-color);
    }
  }

  // icon images
  &.icon-bookmark-added {
    background-image: url('chrome://browser/skin/bookmark.svg');
  }

  &.icon-bookmark-hollow {
    background-image: url('chrome://browser/skin/bookmark-hollow.svg');
  }

  &.icon-clear-input {
    background-image: url('chrome://global/skin/icons/close-fill.svg');
  }

  &.icon-delete {
    background-image: url('chrome://global/skin/icons/delete.svg');
  }

  &.icon-search {
    background-image: url('chrome://global/skin/icons/search-glass.svg');
  }

  &.icon-modal-delete {
    flex-shrink: 0;
    background-image: url('chrome://newtab/content/data/content/assets/glyph-modal-delete-20.svg');
    background-size: $larger-icon-size;
    height: $larger-icon-size;
    width: $larger-icon-size;
  }

  &.icon-mail {
    background-image: url('chrome://newtab/content/data/content/assets/glyph-mail-16.svg');
  }

  &.icon-dismiss {
    background-image: url('chrome://global/skin/icons/close.svg');
  }

  &.icon-info {
    background-image: url('chrome://global/skin/icons/info.svg');
  }

  &.icon-info-critical {
    background-image: url('chrome://newtab/content/data/content/assets/glyph-info-critical-16.svg');
  }

  &.icon-info-warning {
    background-image: url('chrome://global/skin/icons/warning.svg');
    fill: var(--icon-color-warning);
    -moz-context-properties: fill;
  }

  &.icon-help {
    background-image: url('chrome://global/skin/icons/help.svg');
  }

  &.icon-new-window {
    @include flip-icon;

    background-image: url('chrome://newtab/content/data/content/assets/glyph-newWindow-16.svg');
  }

  &.icon-new-window-private {
    background-image: url('chrome://browser/skin/privateBrowsing.svg');
  }

  &.icon-settings {
    background-image: url('chrome://global/skin/icons/settings.svg');
  }

  &.icon-pin {
    @include flip-icon;

    background-image: url('chrome://newtab/content/data/content/assets/glyph-pin-16.svg');
  }

  &.icon-unpin {
    @include flip-icon;

    background-image: url('chrome://newtab/content/data/content/assets/glyph-unpin-16.svg');
  }

  &.icon-edit {
    background-image: url('chrome://global/skin/icons/edit.svg');
  }

  &.icon-edit-outline {
    background-image: url('chrome://global/skin/icons/edit-outline.svg');
  }

  &.icon-pocket {
    background-image: url('chrome://global/skin/icons/help.svg');
  }

  &.icon-history-item {
    background-image: url('chrome://browser/skin/history.svg');
  }

  &.icon-newsfeed {
    background-image: url('chrome://global/skin/icons/newsfeed.svg');
  }

  &.icon-trending {
    background-image: url('chrome://browser/skin/trending.svg');
    transform: translateY(2px); // trending bolt is visually top heavy
  }

  &.icon-now {
    background-image: url('chrome://browser/skin/history.svg');
  }

  &.icon-topsites {
    background-image: url('chrome://browser/skin/topsites.svg');
  }

  &.icon-pin-small {
    @include flip-icon;

    background-image: url('chrome://browser/skin/pin-12.svg');
    background-size: $smaller-icon-size;
    height: $smaller-icon-size;
    width: $smaller-icon-size;
  }

  &.icon-check {
    background-image: url('chrome://global/skin/icons/check.svg');
  }

  &.icon-check-filled {
    background-image: url('chrome://global/skin/icons/check-filled.svg');
  }

  &.icon-download {
    background-image: url('chrome://browser/skin/downloads/downloads.svg');
  }

  &.icon-copy {
    background-image: url('chrome://global/skin/icons/edit-copy.svg');
  }

  &.icon-open-file {
    background-image: url('chrome://newtab/content/data/content/assets/glyph-open-file-16.svg');
  }

  &.icon-webextension {
    background-image: url('chrome://newtab/content/data/content/assets/glyph-webextension-16.svg');
  }

  &.icon-weather {
    background-image: url('chrome://browser/skin/weather/sunny.svg');
  }

  &.icon-highlights {
    background-image: url('chrome://global/skin/icons/highlights.svg');
  }

  &.icon-arrowhead-down {
    background-image: url('chrome://global/skin/icons/arrow-down.svg');
  }

  &.icon-arrowhead-down-small {
    background-image: url('chrome://global/skin/icons/arrow-down-12.svg');
    background-size: $smaller-icon-size;
    height: $smaller-icon-size;
    width: $smaller-icon-size;
  }

  &.icon-arrowhead-forward-small {
    background-image: url('chrome://global/skin/icons/arrow-right-12.svg');
    background-size: $smaller-icon-size;
    height: $smaller-icon-size;
    width: $smaller-icon-size;

    &:dir(rtl) {
      background-image: url('chrome://global/skin/icons/arrow-left-12.svg');
    }
  }

  &.icon-arrowhead-up {
    background-image: url('chrome://global/skin/icons/arrow-up.svg');
  }

  &.icon-add {
    background-image: url('chrome://global/skin/icons/plus.svg');
  }

  &.icon-add-circle-fill {
    background-image: url('chrome://newtab/content/data/content/assets/glyph-add-circle-fill-16.svg');
  }

  &.icon-minimize {
    background-image: url('chrome://newtab/content/data/content/assets/glyph-minimize-16.svg');
  }

  &.icon-maximize {
    background-image: url('chrome://newtab/content/data/content/assets/glyph-maximize-16.svg');
  }

  &.icon-arrow {
    background-image: url('chrome://global/skin/icons/arrow-right-12.svg');
  }

  &.icon-thumbs-up {
    background-image: url('chrome://global/skin/icons/thumbs-up-20.svg');
  }

  &.icon-thumbs-down {
    background-image: url('chrome://global/skin/icons/thumbs-down-20.svg');
  }

  &.icon-device-phone {
    background-image: url('chrome://browser/skin/device-phone.svg');
  }

  &.icon-arrow-trending {
    background-image: url('chrome://global/skin/icons/trending.svg');
  }
}
