Oi Gustavo, Tudo bem?
Vou te apresentar algumas coisas que uso no meu dia a dia espero te ajudar, eu utilizo a definição de classe o máximo que posso para definir padrões que quero utilizar nos meus elementos, no caso do “>” eu utilizo bastante para definir um estilo diferente quando quero que ele tenha um outro comportamento dentro de outra tag/classe por exemplo:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>opa</title>
<style>
.texto {
font-size: 2em;
color: blue;
}
.black-box {
background-color: black;
}
.black-box > .texto {
color: white;
}
</style>
</head>
<body>
<div>
<p class="texto">opaaaaa.</p>
</div>
<div class="black-box">
<p class="texto">outro texto.</p>
</div>
</html>
Assim Podemos manter o padrão da classe .texto porém quando ele está dentro de um elemento com o .black-box ele apresenta a cor branca para ficar visível.
Além disso é legal sempre manter no máximo 3 níveis no seu seletor, o browser ele procura achar a relação da direita para esquerda, ou seja primeiro ele procura todos os spans, depois seleciona apenas os que são filho do elemento
e depois seleciona apenas os que tiverem dentro de uma div, isso ajudaria a mater otimizado.
div p > span {
color: red;
}