Como alterar a cor do ícone do cabeçalho?

Esta é a aparência atual do nosso fórum…

Vamos fazer um rebranding da nossa paleta de cores. O cabeçalho ficará verde com um logotipo branco.

Estou com dificuldade para descobrir como alterar as cores da lupa e do ícone de menu hambúrguer no cabeçalho. Atualmente, eles são cinza, o que ficará horrível sobre um cabeçalho verde. Os ícones brancos também combinarão com o novo logotipo do cabeçalho.

Olhei no menu do tema e vejo uma opção chamada “header primary”, que, na descrição, diz que altera o texto e os ícones no cabeçalho do site. No entanto, já configurei para branco e nada mudou. Existe outra maneira de alterar a cor desses dois ícones?

The icons are a bit transparent, which might be throwing you off (that’s why they look grey instead of white when the header_primary color is set to white).

You can add some custom CSS to change this

.d-header-icons .icon {
  color: red; // custom color, if needed
  &.btn-flat .d-icon {
    opacity: 1; // remove transparency 
   }
}

Hi,

I have this CSS:

header{
    
    height: auto !important;
    
    .wrap{
        padding:14px 0;
    }
    
    .btn-flat .d-icon{
        opacity: 1 !important;
    }
    
    .d-header-icons .icon{
        color: #ffffff;
        padding: 0.4em;
    }
    
    .d-header-icons .icon:hover{
        background-color: #ffffff;
        opacity: 1 !important;
        color: #001d4d;
    }

However, perhaps as we are now on one of the latest releases, now the home, search, and menu icons are greyed out. Can you explain how to make these icons white with opacity of 1? Did any of the selectors change?

Yes, these selectors are a little more specific now and we removed the opacity entirely in favor of using a solid color (there was a bug in Safari where SVG icons were clipped slightly because of the opacity).

You can remove anything you have related to opacity, and do this

.d-header-icons .d-icon {
   color: #fff; 
}

.d-header-icons .d-icon:hover {
   background-color: #fff; 
   color: #001d4d;
}

I have a similar problem as the OP, probably somewhat simpler: For some reason the colour of the header icons got darker for no apparent reason (I assume it was related to the tidy-up measures on your side). Since my header is a darkish, I want the icons brighter.

I tried this

and am happy with the result. But I can’t seem to figure out how the hover settings work. With only the above css, my hover looks like this:

image

So the icon turns grey again, which is okay, but I’d like to try some other tints on it. The background seems to turn white (or almost white), which I would like to change to make it coherent with other menus.

I tried

.d-header-icons .d-icon:hover {
   background-color: #b0cee8; 
   color: #fff;
}

but it gives me this:

image

How do I get the whole box to change color? And I don’t understand why the icon itself doesn’t stay white…

And while I’m at it: My new topic button also suffered. The colour of the + icon is no longer the same as the text:

image

My CSS for the button is (and has always been):

@import "common/foundation/variables";

#create-topic {
    background-color: $tertiary;
    color: $secondary;
}

#create-topic:hover {
    background-color: $tertiary-high;
    color: $secondary;
}

Ei, algo mudou desde sua sugestão. Não tenho certeza do motivo, mas isso também não está funcionando para mim. A folha de CSS está assim:

    .custom-header-links a:hover {
    background-color:#346A77;
    }

    .d-header-icons .d-icon {
       color: black; 
    }

    .d-header-icons .d-icon:hover {
       background-color: #346A77; 
       color: red;
    }

Os ícones e o efeito de hover aparecem assim—não importa qual cor eu defina para os ícones ou para o hover, ela não é aplicada:

Quando inspeciono o elemento, ele mostra que o estilo está presente, mas, por algum motivo, não está sendo aplicado em cascata. Alguma ideia?

Instalei os cabeçalhos personalizados, mas isso não deveria alterar nada, certo?

Muito obrigado

Atualização: o seguinte código funciona e @tophee, isso deve resolver o seu também:

.d-header-icons .d-icon {
   color: black !important;
}

.d-header-icons a:hover {
   background-color: #346A77 !important;
}

Obrigado pelo código.

Estou postando isso caso alguém encontre o mesmo problema que eu, mas dependendo da combinação de cores que você está usando para o cabeçalho e os ícones (o meu cabeçalho é de uma cor escura), eu estava obtendo as combinações de cores corretas para os ícones com o código que você forneceu:

.d-header-icons .d-icon {
color: white !important;
}

.d-header-icons a:hover {
background-color: #789946 !important;
color: white !important;
} 

No entanto, sempre que eu clicava nos ícones do cabeçalho e saía do estado de hover, o fundo voltava a ser branco sólido, o que não funcionava, já que meu cabeçalho é escuro e os ícones estão definidos como brancos. Então, ao sair do estado de hover (após um clique), eles apareciam como um retângulo branco sólido. Para corrigir isso, tudo o que precisei fazer foi definir o estado para “a”, não apenas para “a:hover” como nas postagens anteriores (#93bb54 sendo a mesma cor do meu cabeçalho):

.d-header-icons .d-icon {
color: white !important;
}

.d-header-icons a:hover {
background-color: #789946 !important;
color: white !important;
} 

.d-header-icons a {
background-color: #93bb54 !important;
color: white !important;
}

Pronto!

Olá @awesomerobot, por que o seguinte código

.d-header-icons .d-icon {
color: white !important;
}

não funciona em outros ícones, como o ícone de envelope em uma conversa, que também é um d-icon se eu inspecionar o elemento?

Screen Shot 2019-12-18 at 13.41.50

.d-header-icons refere-se especificamente à navegação à direita.

Para o ícone do título da MP, você precisará usar:

.extra-info-wrapper .private-message-glyph { color: red }

Para outros status de tópico, como tópicos fixados e bloqueados, você pode usar:

.extra-info-wrapper .topic-statuses .d-icon { color: red; }

Adicionei alguns ícones personalizados em SVG, mas não consigo alterar a cor deles usando CSS. Eles sempre aparecem em preto. Consigo mudar a opacidade, o tamanho… mas nunca a cor.

Tentei usar os exemplos acima, mas nenhum retornou o resultado esperado.

.list-controls .btn .d-icon{
   color: #2CC3D5 !important;
   opacity: 0.5;
}

image

Tentei também para os ícones do cabeçalho.

O que estou fazendo de errado?

O ícone tem uma cor definida inline no código SVG? Provavelmente se pareceria com isso:

Screen Shot 2020-01-06 at 11.09.59 AM

Se for esse o caso, você pode removê-la ou alterar o valor para currentColor.

E aí, pessoal,
Tenho um problema quando:

  1. Clico no menu (até aqui está ótimo)
  2. Quando movo o mouse para fora, preciso que o ícone mude de cor, assim como o fundo, porque o ícone fica escondido atrás do branco:

Tente:

.drop-down-mode .d-header-icons .active .icon {
    background: black;
}

Como posso alterar o CSS de um ícone específico?

<svg class="fa d-icon d-icon-bolt svg-icon svg-node" aria-hidden="true"><use xlink:href="#bolt"></use></svg>

Este é o ícone que estou tentando estilizar com CSS.

Aqui está, @Juless

Esse tipo de seletor CSS bem específico deve funcionar, mas é raramente usado porque normalmente não é necessário ser tão específico:

svg.fa.d-icon.d-icon-bolt.svg-icon.svg-node{
  /* seu CSS legal aqui */
}

No entanto, na prática, este seletor simples deve funcionar bem:

svg.d-icon-bolt{
   /* seu CSS legal aqui */
}

Espero que isso ajude.

Você até pode “se virar” com isso:

.d-icon-bolt{
   /* seu CSS legal aqui */
}

Usei esse e funcionou perfeitamente. Obrigado, @neounix, realmente útil.

Eu tenho a mesma situação que Sentinelrv. Ajustei o header_primary para branco e também apliquei o CSS personalizado recomendado em cada um dos meus temas, mas a lupa e o menu hambúrguer continuam cinzas.

Eu também não consigo mudar as cores do menu hambúrguer/barra, o ícone de pesquisa/localizar mudou - tentei todas as dicas mencionadas e mais, inspecionando coisas no navegador web, mas (não sendo um desenvolvedor web) falhei. Alguém descobriu isso?

Para os ícones do cabeçalho no lado direito, no CSS comum de um tema ou componente de tema:

.d-header .d-header-icons .d-icon  {
    color: <cor dos ícones do cabeçalho> !important;
    &:hover {
        color: <cor do hover dos ícones do cabeçalho> !important;
    }
 }

Para o ícone de hambúrguer no modo de menu da barra lateral:

.d-header .header-sidebar-toggle button .d-icon {
    color: <cor do ícone de hambúrguer> !important;
    &:hover {
        color: <cor do hover do ícone de hambúrguer> !important;
    }
}

<cor dos ícones do cabeçalho>, <cor dos ícones de hambúrguer>, <cor do hover do ícone do cabeçalho>, <cor do hover do ícone de hambúrguer> = hex, nome da cor ou variáveis de cor do tema. Você também pode especificar background-color se desejar alterar a cor de fundo do ícone.

Observação: Se você estiver usando o modo de menu suspenso do hambúrguer em vez da barra lateral, o primeiro trecho para os ícones do cabeçalho do lado direito também incluirá o ícone de hambúrguer.