W3docs

Propriedade CSS stroke

Como usar a propriedade CSS stroke para pintar o contorno de elementos SVG. Conheça a propriedade e veja os valores com exemplos.

A propriedade CSS stroke pinta o contorno (a linha) de uma forma SVG ou de um texto. Enquanto fill colore o interior de uma forma, stroke colore sua borda — juntas, elas controlam como cada caminho, círculo, retângulo e elemento de texto SVG é desenhado.

Esta página aborda o que stroke faz, os valores que aceita, como interage com propriedades de traço relacionadas (largura, padrão de traço, extremidades de linha) e os erros comuns que costumam surgir.

Quando devo usar?

stroke afeta apenas conteúdo SVG — não tem efeito em elementos HTML comuns como <div> ou <p>. Use-a quando estiver:

  • Desenhando ícones, gráficos ou diagramas inline com <svg>.
  • Animando uma linha que "se desenha" (combine stroke com stroke-dasharray e stroke-dashoffset).
  • Contornando texto SVG sem preenchê-lo.

Você pode encontrar cores da web nomeadas na seção cores HTML.

Propriedade CSS vs. atributo de apresentação

stroke é incomum: você pode defini-la como propriedade CSS ou como atributo de apresentação SVG escrito diretamente no elemento. Estas duas linhas produzem o mesmo resultado:

<!-- presentation attribute -->
<path stroke="#1c87c9" d="M5 20 l215 0" />

<!-- CSS, via a style block or stylesheet -->
<path style="stroke: #1c87c9;" d="M5 20 l215 0" />

Quando ambos estão presentes, o CSS vence: um style inline (ou qualquer regra de folha de estilo) substitui o atributo de apresentação. Isso permite definir uma cor padrão na marcação e substituí-la via CSS — por exemplo, ao passar o cursor.

Informação

A propriedade stroke pode ser usada tanto como propriedade CSS quanto como atributo de apresentação. Pode ser aplicada a qualquer elemento, mas só produz efeito nos seguintes: <altGlyph>, <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, <rect>, <text>, <textPath>, <tref> e <tspan>.

Valor inicialnone
Aplica-se aFormas e elementos de conteúdo de texto.
HerdadoSim.
AnimávelNão.
VersãoSVG 1.1 Specification
Sintaxe DOMObject.stroke = "#1c87c9";

Sintaxe

Sintaxe CSS stroke

stroke: color | url | none | context-fill | context-stroke | initial | inherit;

Exemplo da propriedade stroke:

Exemplo de código CSS stroke

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <h2>Stroke property example</h2>
    <svg height="100" width="500">
      <g fill="none">
        <path stroke="#8ebf42" d="M5 20 l215 0" />
        <path stroke="#1c87c9" d="M5 40 l215 0" />
        <path stroke="#666666" d="M5 60 l215 0" />
      </g>
    </svg>
  </body>
</html>

Resultado

exemplo

Exemplo com formas e CSS

Não é necessário escrever stroke como atributo — aqui ela é definida a partir de um bloco <style>, aplicada a várias formas de uma vez. Note fill: none para que apenas o contorno seja exibido:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .outline {
        fill: none;
        stroke: #1c87c9;
        stroke-width: 4px;
      }
      circle.outline {
        stroke: #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>Stroke from a CSS rule</h2>
    <svg height="120" width="300">
      <rect class="outline" x="10" y="10" width="100" height="100" />
      <circle class="outline" cx="220" cy="60" r="50" />
    </svg>
  </body>
</html>

Valores

ValorDescrição
noneNenhuma tinta é aplicada.
colorDefine uma cor sólida. Nomes de cores, códigos hexadecimais, rgb(), rgba(), hsl(), hsla() podem ser usados.
urlUma referência URL a um elemento servidor de tinta que define um servidor de tinta.
context-fillUsa o valor de fill de um elemento de contexto.
context-strokeUsa o valor de stroke de um elemento de contexto.
initialFaz a propriedade usar seu valor padrão.
inheritHerda a propriedade do elemento pai.

O valor inicial é none, o que significa que uma forma sem stroke é desenhada sem nenhum contorno — mesmo que stroke-width esteja definido.

Propriedades de traço relacionadas

stroke define apenas a cor do contorno. Para controlar a aparência desse contorno, combine-a com:

Erros comuns

  • Nada aparece. Se stroke-width for 0 (o padrão), o contorno é invisível independentemente da cor escolhida. Sempre defina uma largura.
  • A forma está preenchida. Se você quer apenas o contorno, defina fill: none — caso contrário, o interior é pintado de preto por padrão.
  • Não funciona em um <div>. stroke só tem efeito em gráficos SVG e elementos de texto: <altGlyph>, <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, <rect>, <text>, <textPath>, <tref> e <tspan>.

Prática

Prática
Qual é a finalidade da propriedade CSS 'stroke' e como ela é usada?
Qual é a finalidade da propriedade CSS 'stroke' e como ela é usada?
Was this page helpful?