Новые темы значков Material Design — настройка цвета

#jquery #css #icons #material-design

#jquery #css #Значки #материал-дизайн

Вопрос:

Я ищу портативное решение для раскрашивания некоторых значков. Моя первоначальная проблема, описанная ниже, проявляется в Chrome и Firefox на моем MacBook, в Safari цвета работают так, как ожидалось. Комментаторы сообщают, что цвета работают должным образом в Chrome на Windows.

У меня есть простое веб-приложение jQuery, использующее значки Material Design. Я могу настроить цвет значков с помощью CSS, все в порядке. Однако для нескольких значков, в частности папки, новая выделенная тема гораздо больше подходит для моего приложения, и кажется, что цвет CSS не оказывает никакого эффекта.

Здесь есть хороший пример настройки цветов значков, и если я адаптирую этот пример для чтения следующим образом:

 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500|Material Icons|Material Icons Outlined|Material Icons Two Tone|Material Icons Round|Material Icons Sharp">
<title>Change Color of Google Material Design Icons Example</title>

<i class="material-icons">folder</i>
<i class="material-icons" style="font-size:40px;color:green">folder</i>
<i class="material-icons-outlined" style="font-size:50px;color:blue">folder</i>  

Во всех моих браузерах на моем MacBook я вижу, что стандартная папка material-icons окрашена в зеленый цвет. В Safari я вижу ожидаемый результат: контур папки синего цвета. Однако в Chrome и Firefox контур остается черным. Этот шаблон поведения верен для всех значков в описанных расширенных темах, двухцветных и т.д.

Пожалуйста, предложения.

Комментарии:

1. Преобразовано во фрагмент — похоже, оно работает так, как я ожидал от предоставленного вами кода. то есть вы сказали ему нарисовать большой значок папки в синем контуре, и это именно то, что он сделал. Неясно, ожидаете ли вы, что синий значок будет зеленым, или вы ожидаете, что outlined значок будет залит синим. Возможно, в других браузерах / мобильных устройствах все по-другому?

2. Я не вижу синего цвета в выделенном случае. Я вижу черный контур как в Chrome, так и в Firefox на моем Mac. На какой платформе вы видите синий контур?

3. Windows 10, Chrome. Хотя он скорее фиолетовый, чем синий. Попробуйте разные цвета — например, я попробовал контур зеленым, и это тоже сработало.

4. Итак, некоторые зависимости от платформы. (И спасибо за преобразование в фрагмент.)

Ответ №1:

Я знаю, что это более старая тема, но, возможно, кто-то все еще ищет ответ.

Значки контуров, похоже, работают должным образом вместе с настройкой цвета css:

 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material Icons|Material Icons Outlined|Material Icons Round|Material Icons Two Tone|Material Icons Sharp">

<i class="material-icons-outlined" style="color:green">home</i>
  

Настройка двухцветного цвета:

Как описано выше, вы можете использовать color ключ css, за исключением двухцветной темы materials, которая кажется глючной 😉

Обходной путь описан в одном из нескольких выпусков angular material на github с использованием пользовательского css-фильтра. Этот пользовательский фильтр можно создать здесь.

Например.:

HTML:

 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material Icons|Material Icons Outlined|Material Icons Round|Material Icons Two Tone|Material Icons Sharp">

<i class="material-icons-two-tone red">home</i>
  

css:

 .red {
filter: invert(8%) sepia(94%) saturate(4590%) hue-rotate(358deg) brightness(101%) contrast(112%);
}
  

Вложения:

Комментарии:

1. Однако это не позволяет вам легко устанавливать цвет контура и заливки. Это просто меняет оттенок всего значка. На самом деле это не решение.

Ответ №2:

Поскольку значки материалов имеют формат svg, вам необходимо получить доступ к дочернему элементу svg и манипулировать значениями svg. На них не влияет color свойство

 .material-icons svg {
  fill: white; // The filling
  stroke: black; // the outline - this depends on how the svg is drawn
}
  

Комментарии:

1. Я буду экспериментировать, как вы предлагаете, но, пожалуйста, обратите внимание, что в приведенном выше фрагменте показано, что на стандартную папку Material Design напрямую влияет зеленый цвет.