Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Uso adequado/inadequado do @extend.

Considerando o seguinte trecho da aula:

"Potencial para seletor longo: Se você estender muitas classes, isso pode resultar em seletores CSS longos e complexos. Possível código redundante: Se usado de forma inadequada, o @extend pode levar à geração de CSS redundante e não otimizado."

Poderiam explicar melhor como seria um uso mais adequado do @extend? Por exemplo, em que casos usar, como, por quê? Da mesma forma, poderia explicar o que seria considerado um uso inadequado ou excessivo do @extend?

Agradeço desde já!

2 respostas
solução!

Olá, Ana! Como vai?

O @extend é um recurso para evitar duplicação de código, permitindo reaproveitar estilos entre classes. Contudo, ele precisa ser usado com cautela, pois pode gerar CSS complexo e redundante se mal utilizado.

Uso adequado do @extend

Uma aplicação ideal do @extend é para classes que compartilham exatamente o mesmo estilo. Por exemplo, se você tem dois botões diferentes, mas ambos possuem bordas arredondadas e a mesma cor de fundo, é interessante usar @extend:


.button {
  background-color: #3498db;
  border-radius: 5px;
}

.button-primary {
  @extend .button;
  color: white;
}

.button-secondary {
  @extend .button;
  color: gray;
}

Neste caso, os estilos de borda e fundo são aplicados apenas uma vez, e cada botão herda essas propriedades, evitando duplicação.

Uso inadequado ou excessivo do @extend

Um problema comum é usar @extend entre classes que compartilham poucos estilos, o que pode gerar seletores muito longos e CSS desnecessário. Por exemplo:


.card {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  padding: 16px;
}

.card-title {
  @extend .card;
  font-size: 20px;
}

Aqui, @extend não seria a melhor escolha, pois card-title herdaria a sombra e o padding, que talvez não façam sentido para um título. Nesses casos, é melhor separar as classes e aplicar apenas os estilos realmente compartilhados.

Use @extend sempre que as classes realmente compartilhem estilos completos. Para evitar excessos, considere outras alternativas, como mixins, quando houver a necessidade de reaproveitar apenas partes do estilo.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Ah entendi! Muito obrigada pela explicação, fez bastante sentido agora!