How to Change Header Icon Color?

This is currently what our forum looks like…

We are going to rebrand our color scheme. The header will be green with a white header logo.

I am having trouble figuring out how to change the colors of the magnifying glass and the hamburger menu icon in the header. They are currently gray, which will look awful on top of a green header. The white icons will also match the new header logo.

I’ve looked in the theme menu and I see an option called header primary, which says in the description that it changes text and icons in the site’s header. However I’ve already set it to white and nothing has changed. Is there another way to change the color of these two icons?

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;
}

Привет, с момента твоего предложения кое-что изменилось. Не знаю почему, но у меня это тоже не работает. Вот как выглядит таблица стилей CSS:

    .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;
    }

Иконки и эффект наведения выглядят так — какой бы цвет я ни выбрал для иконок или наведения, он не «применяется»:

При проверке элемента в инспекторе видно, что стиль присутствует, но почему-то не применяется каскадом. Есть какие-нибудь идеи?

Я установил кастомные заголовки, но это не должно ничего менять, верно?

Спасибо большое

Обновление: следующий код работает, и @tophee, это должно решить и вашу проблему:

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

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

Спасибо за код.

Я публикую это на случай, если кто-то столкнется с той же проблемой, что и я. В зависимости от комбинации цветов, которую вы используете для заголовка и иконок (мой заголовок темного цвета), код, который вы предоставили, давал правильные цветовые сочетания для моих иконок:

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

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

Однако всякий раз, когда я нажимал на иконки заголовка и выводил курсор из них, фон возвращался к сплошному белому цвету, что не подходило, так как мой заголовок темный, а иконки установлены в белый цвет. Поэтому при выводе курсора (после клика) они отображались как сплошной белый прямоугольник. Чтобы исправить это, мне нужно было просто также установить состояние для “a”, а не только для “a:hover”, как в предыдущих постах (#93bb54 — тот же цвет, что и мой заголовок):

.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;
}

Вот и всё!

Привет @awesomerobot, почему это

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

не работает для других иконок, например для иконки конверта в переписке, которая тоже имеет класс d-icon, если проверить элемент?

Screen Shot 2019-12-18 at 13.41.50

.d-header-icons конкретно относится к навигации справа.

Для иконки заголовка ПМ вам понадобится

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

Для других статусов тем, таких как закрепленные и заблокированные темы, можно использовать

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

Я добавил несколько пользовательских иконок в формате SVG, но не могу изменить их цвет с помощью CSS. Они всегда остаются чёрными. Я могу менять прозрачность, размер… но никогда цвет.

Я пробовал использовать примеры выше, но ни один не дал ожидаемого результата.

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

image

Я пробовал и для иконок в заголовке.

Что я делаю не так?

Задан ли цвет иконки непосредственно в коде SVG? Это, вероятно, будет выглядеть примерно так:

Screen Shot 2020-01-06 at 11.09.59 AM

Если да, вы можете либо удалить его, либо изменить значение на currentColor.

Всем привет,
У меня возникла проблема:

  1. Я нажимаю на меню (до этого момента всё отлично)
  2. Когда я убираю курсор мыши, иконка должна менять цвет так же, как и фон, потому что иконка скрывается за белым:

Попробуйте:

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

Как я могу изменить CSS для конкретной иконки?

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

Это та иконка, для которой я пытаюсь настроить CSS

Вот, @Juless

Такие специфичные селекторы CSS должны работать, но их редко используют, потому что обычно нет необходимости быть настолько точным:

svg.fa.d-icon.d-icon-bolt.svg-icon.svg-node{
  /* ваш крутой CSS здесь */
}

Однако на практике этот простой селектор должен работать отлично:

svg.d-icon-bolt{
   /* ваш крутой CSS здесь */
}

Надеюсь, это поможет.

Вы даже можете обойтись этим:

.d-icon-bolt{
   /* ваш крутой CSS здесь */
}

Использовал этот вариант, и всё сработало как по маслу. Спасибо @neounix, очень помогло.

У меня та же ситуация, что и у Sentinelrv. Я изменил цвет заголовка primary на белый и также применил рекомендуемый пользовательский CSS ко всем своим темам, но лупа и гамбургер-меню по-прежнему остаются серыми.

Я тоже не могу изменить цвета меню-гамбургера/панели; иконка поиска/нахождения изменилась. Я перепробовал все вышеупомянутые советы и даже больше, проверяя элементы в веб-браузере, но (не будучи веб-разработчиком) не смог добиться результата. У кого-то получилось это решить?

Для иконок в шапке справа, в файле common-css темы или компонента темы:

.d-header .d-header-icons .d-icon  {
    color: <цвет иконок в шапке> !important;
    &::hover {
        color: <цвет иконок в шапке при наведении> !important;
    }
 }

Для иконки «гамбургер» в режиме меню боковой панели:

.d-header .header-sidebar-toggle button .d-icon {
    color: <цвет иконки «гамбургер»> !important;
    &::hover {
        color: <цвет иконки «гамбургер» при наведении> !important;
    }
}

<цвет иконок в шапке>, <цвет иконки «гамбургер»>, <цвет иконок в шапке при наведении>, <цвет иконки «гамбургер» при наведении> — это шестнадцатеричные значения, названия цветов или переменные цветов темы. Вы также можете указать background-color, если хотите изменить цвет фона иконки.

Примечание: Если вы используете выпадающее меню «гамбургер» вместо боковой панели, первый фрагмент кода для иконок в шапке справа будет включать и иконку «гамбургер».