Fundamento · 06

Ícones

Componente de ícone do design system: escala de tamanhos, integração e uso com a fonte de ícones.


Icon component

A classe .icon aplica o estilo base a todos os ícones. Adicione-a sempre ao usar um componente de ícone:

.icon {
  --size: 1em;
  font-size: var(--size);
  font-family: 'Icon';
  height: 1em;
  width: 1em;
  display: inline-block;
  color: inherit;
  fill: currentColor;
  line-height: 1;
  flex-shrink: 0;
  max-width: initial;
}

Tamanhos

O design system inclui uma escala padrão de tamanhos. Adicione o modificador ao seu ícone:

Classe CSS Valor padrão
.icon--3xs --size: 8px;
.icon--2xs --size: 12px;
.icon--xs --size: 16px;
.icon--sm --size: 20px;
.icon--md --size: 24px;
.icon--lg --size: 32px;
.icon--xl --size: 48px;
.icon--2xl --size: 64px;
.icon--3xl --size: 96px;
3xs
2xs
xs
sm
md
lg
xl
2xl
3xl
<svg class="icon icon--sm" viewBox="0 0 16 16">
  <!-- ... -->
</svg>

Para personalizar a escala, edite as classes .icon-{size} no arquivo icons.scss:

.icon--xs {
  --size: 16px;
}

.icon--sm {
  --size: 20px;
}

/* edite em icons.scss para personalizar */

Valores fora da escala

O tamanho é controlado pela custom property --size. Para valores fora da escala, sobrescreva-a inline:

<svg class="icon" style="--size: 30px;" viewBox="0 0 16 16">
  <!-- ... -->
</svg>

Ou no CSS de um componente:

.component__icon {
  --size: 30px;
}

Integração de ícones

Existem diversas formas de integrar ícones ao design system — SVG Sprites, SVG inline, SVG symbols, icon fonts. Todos são compatíveis. Escolha o método que melhor se encaixa no seu projeto.

Outras classes

Classe CSS Descrição
.icon--is-spinning rotaciona o ícone infinitamente

Para SVGs inline, use as classes utilitárias de SVG:

Classe CSS Descrição
.fill-current fill: currentColor;
.stroke-current stroke: currentColor;
.stroke-1 stroke-width: 1px;
.stroke-2 stroke-width: 2px;
.stroke-3 stroke-width: 3px;
.stroke-4 stroke-width: 4px;

Biblioteca de ícones

Consulte o Figma ou o Storybook para visualizar todos os ícones disponíveis e seus nomes.

Usando a fonte de ícones

Use a tag <i> com a classe .icon seguida do nome do ícone:

<!-- estrutura básica -->
<i class="icon icon-nomedoicon"></i>

<!-- com tamanho -->
<i class="icon icon-robot icon--lg"></i>
icon-circle-fill
icon-copy
icon-toggle-menu
icon-robot

Copiado para a área de transferência.