Как использовать новые темы значков дизайна материала: Outlined, Rounded, Two-Tone и Sharp? - PullRequest
0 голосов
/ 12 мая 2018

Google обновил свои Значки материалов дизайна с 4 новыми предустановленными темами:

В общих чертах, Закругленный, Двухцветный и Резкий , в дополнение к обычной Заполнено / Базовая линия тема:


Но, к сожалению, нигде не сказано, как использовать новые темы.


Я использовал его через Google Web Fonts , включив ссылку:

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

И затем используя требуемый значок , как предложено в документации :

<i class="material-icons">account_balance</i>

Но он всегда показывает версию 'Filled / Baseline'.


Я пытался сделать следующее, чтобы использовать тему Outlined :

<i class="material-icons">account_balance_outlined</i>
<i class="material-icons material-icons-outlined">account_balance</i>

и, изменив ссылку на веб-шрифты на:

<link href="https://fonts.googleapis.com/icon?family=Material+Icons&style=outlined" rel="stylesheet">

и т. Д.Но это не работает.


И нет смысла делать снимки в темноте таким образом.


tl; dr: Кто-нибудь пробовал использовать новые темы?Это даже работает как базовая версия (встроенный тег HTML)?Или это только для загрузки в формате SVG или PNG?

Заранее спасибо.

Ответы [ 11 ]

0 голосов
/ 04 июля 2019

Если у вас уже есть material-icons , работающий в вашем веб-проекте, просто нужно обновить ссылку в html-файле и используемый класс для значков:

html ссылка:

До

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />

* После 1012 *

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

класс значков материалов:

После этого просто проверьте, какое имя класса вы используете:

До:

<i className="material-icons">weekend</i>

После того, как:

<i className="material-icons-outlined">weekend</i>

это работает для меня ... Pura Vida!

0 голосов
/ 14 августа 2019

Для углового материала вы должны использовать fontSet input для изменения семейства шрифтов:

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

<mat-icon>edit</mat-icon>
<mat-icon fontSet="material-icons-outlined">edit</mat-icon>
<mat-icon fontSet="material-icons-two-tone">edit</mat-icon>
...
0 голосов
/ 27 марта 2019

Ссылка на веб-шрифты теперь работает во всех браузерах!

Просто добавьте свои темы к ссылке на шрифт, разделенной каналом (|), например,

<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" rel="stylesheet">

Тогда ссылкакласс, как это:

// class="material-icons" or class="material-icons-outlined"

<i class="material-icons">account_balance</i>
<i class="material-icons-outlined">account_balance</i>

Этот шаблон также будет работать с угловым материалом:

<mat-icon>account_balance</mat-icon>
<mat-icon class="material-icons-outlined">account_balance</mat-icon>
0 голосов
/ 31 марта 2019

Последнее редактирование Aj334 работает отлично.

Google CDN

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

Элемент иконы

<i class="material-icons">donut_small</i>
<i class="material-icons-outlined">donut_small</i>
<i class="material-icons-two-tone">donut_small</i>
<i class="material-icons-round">donut_small</i>
<i class="material-icons-sharp">donut_small</i>
0 голосов
/ 27 февраля 2019

По состоянию на 27 февраля 2019 г. для новых тем значков материалов есть шрифты CSS.

Однако для использования шрифтов необходимо создать классы CSS.

Семейства шрифтов имеют видследует:

  • Material Icons Outlined - выделенные значки
  • Material Icons Two Tone - двухцветные значки
  • Material Icons Round - округлые значки
  • Material Icons Sharp - острые значки

См. Пример кода ниже:

body {
  font-family: Roboto, sans-serif;
}

.material-icons-outlined,
.material-icons.material-icons--outlined,
.material-icons-two-tone,
.material-icons.material-icons--two-tone,
.material-icons-round,
.material-icons.material-icons--round,
.material-icons-sharp,
.material-icons.material-icons--sharp {
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

.material-icons-outlined,
.material-icons.material-icons--outlined {
  font-family: 'Material Icons Outlined';
}

.material-icons-two-tone,
.material-icons.material-icons--two-tone {
  font-family: 'Material Icons Two Tone';
}

.material-icons-round,
.material-icons.material-icons--round {
  font-family: 'Material Icons Round';
}

.material-icons-sharp,
.material-icons.material-icons--sharp {
  font-family: 'Material Icons Sharp';
}
<!DOCTYPE html>
<html>

<head>
  <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">
</head>

<body>
  <section id="original">
    <h2>Baseline</h2>
    <i class="material-icons">home</i>
    <i class="material-icons">assignment</i>
  </section>
  <section id="outlined">
    <h2>Outlined</h2>
    <i class="material-icons-outlined">home</i>
    <i class="material-icons material-icons--outlined">assignment</i>
  </section>
  <section id="two-tone">
    <h2>Two tone</h2>
    <i class="material-icons-two-tone">home</i>
    <i class="material-icons material-icons--two-tone">assignment</i>
  </section>
  <section id="rounded">
    <h2>Rounded</h2>
    <i class="material-icons-round">home</i>
    <i class="material-icons material-icons--round">assignment</i>
  </section>
  <section id="sharp">
    <h2>Sharp</h2>
    <i class="material-icons-sharp">home</i>
    <i class="material-icons material-icons--sharp">assignment</i>
  </section>
</body>

</html>

Или просмотреть его на Codepen


РЕДАКТИРОВАТЬ: По состоянию на 10 марта 2019 года, кажется, что тамтеперь классы для новых значков шрифтов:

body {
  font-family: Roboto, sans-serif;
}
<!DOCTYPE html>
<html>

<head>
  <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">
</head>

<body>
  <section id="original">
    <h2>Baseline</h2>
    <i class="material-icons">home</i>
    <i class="material-icons">assignment</i>
  </section>
  <section id="outlined">
    <h2>Outlined</h2>
    <i class="material-icons-outlined">home</i>
    <i class="material-icons-outlined">assignment</i>
  </section>
  <section id="two-tone">
    <h2>Two tone</h2>
    <i class="material-icons-two-tone">home</i>
    <i class="material-icons-two-tone">assignment</i>
  </section>
  <section id="rounded">
    <h2>Rounded</h2>
    <i class="material-icons-round">home</i>
    <i class="material-icons-round">assignment</i>
  </section>
  <section id="sharp">
    <h2>Sharp</h2>
    <i class="material-icons-sharp">home</i>
    <i class="material-icons-sharp">assignment</i>
  </section>
</body>

</html>

РЕДАКТИРОВАТЬ # 2: Это обходной путь для тонировки двухцветных значков с помощью фильтров изображений CSS (код, адаптированный с thisкомментарий ):

body {
  font-family: Roboto, sans-serif;
}

.material-icons-two-tone {
  filter: invert(0.5) sepia(1) saturate(10) hue-rotate(180deg);
  font-size: 48px;
}

.material-icons,
.material-icons-outlined,
.material-icons-round,
.material-icons-sharp {
  color: #0099ff;
  font-size: 48px;
}
<!DOCTYPE html>
<html>

<head>
  <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">
</head>

<body>
  <section id="original">
    <h2>Baseline</h2>
    <i class="material-icons">home</i>
    <i class="material-icons">assignment</i>
  </section>
  <section id="outlined">
    <h2>Outlined</h2>
    <i class="material-icons-outlined">home</i>
    <i class="material-icons-outlined">assignment</i>
  </section>
  <section id="two-tone">
    <h2>Two tone</h2>
    <i class="material-icons-two-tone">home</i>
    <i class="material-icons-two-tone">assignment</i>
  </section>
  <section id="rounded">
    <h2>Rounded</h2>
    <i class="material-icons-round">home</i>
    <i class="material-icons-round">assignment</i>
  </section>
  <section id="sharp">
    <h2>Sharp</h2>
    <i class="material-icons-sharp">home</i>
    <i class="material-icons-sharp">assignment</i>
  </section>
</body>

</html>

Или просмотрите его на Codepen

0 голосов
/ 18 марта 2019

Несколько забавно, Google сделал шрифт, который работает правильно в Safari, но не в Chrome. Вот https://codepen.io/anon/pen/zbavza

<i class="material-icons-round red">warning</i>

red round warning material icon in safari

В отношении https://stackoverflow.com/a/54902967/4740291 и невозможности изменить цвет с помощью css.

0 голосов
/ 10 декабря 2018

Я был недоволен, что до тех пор, пока не узнаю, что Google еще не выпустил свои новые проекты в виде набора шрифтов или значков SVG.Поэтому я собрал небольшой пакет npm для решения проблемы.

https://www.npmjs.com/package/ts-material-icons-svg

Просто импортируйте значки, которые вы хотите использовать, и добавьте их в свой реестр.Это также поддерживает дрожание дерева, поскольку в проект добавляются только те значки, которые вам действительно нужны и / или необходимы.

npm i --save https://github.com/MarcusCalidus/ts-material-icons-svg.git

для использования двух значков тонов, например

import {icon_edit} from 'ts-material-icons-svg/dist/twotone';

matIconRegistry.addSvgIcon(
            'edit',
            domSanitizer.bypassSecurityTrustResourceUrl(icon_edit),
        );

В вашемHTML-шаблон, теперь вы можете использовать новый значок

<mat-icon svgIcon="edit"></mat-icon>
0 голосов
/ 15 августа 2018

Я закончил тем, что использовал приложение IcoMoon, чтобы создать собственный шрифт, используя только новые тематические значки, необходимые для недавней сборки веб-приложения. Она не идеальна, но вы можете подражать существующей функциональности Google Font с небольшой настройкой. Вот рецензия:

https://medium.com/@leemartin/how-to-use-material-icon-outlined-rounded-two-tone-and-sharp-themes-92276f2415d2

Если кто-то чувствует себя смелым, он может конвертировать всю тему, используя IcoMoon. Черт, у IcoMoon, вероятно, есть внутренний процесс, который облегчит эту задачу, поскольку в их библиотеке уже установлены исходные значки материалов.

В любом случае, это не идеальное решение, но оно сработало для меня.

0 голосов
/ 27 июля 2018

Что мне помогло, так это использование _outline not _outline d после имени иконки.

<mat-icon>info</mat-icon>

против

<mat-icon>info_outline</mat-icon>
0 голосов
/ 19 июля 2018

Обновление (31/03/2019): все темы значков теперь работают через веб-шрифты Google.

Как отметил Эдрик, теперь нужно просто добавить ссылку на веб-шрифты Google в заголовок документа, например:

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

И затем добавление правильного класса для вывода иконки определенной темы.

<i class="material-icons">donut_small</i>
<i class="material-icons-outlined">donut_small</i>
<i class="material-icons-two-tone">donut_small</i>
<i class="material-icons-round">donut_small</i>
<i class="material-icons-sharp">donut_small</i>

Цвет значков также можно изменить с помощью CSS.

Примечание. В настоящее время двухтональные значки тем выглядят немного странно.


Обновление (14/11/2018): список из 16 контурных значков, работающих с суффиксом _outline.

Вот последний список из 16 значков контуров, которые работают с обычным веб-шрифтом Material-icons, используя суффикс _outline (проверено и подтверждено).

(Как указано на странице github material-design-icons . Поиск: " _outline_24px.svg ")

<i class="material-icons">help_outline</i> 
<i class="material-icons">label_outline</i> 
<i class="material-icons">mail_outline</i> 
<i class="material-icons">info_outline</i> 
<i class="material-icons">lock_outline</i> 
<i class="material-icons">lightbulb_outline</i> 
<i class="material-icons">play_circle_outline</i> 
<i class="material-icons">error_outline</i> 
<i class="material-icons">add_circle_outline</i> 
<i class="material-icons">people_outline</i> 
<i class="material-icons">person_outline</i> 
<i class="material-icons">pause_circle_outline</i> 
<i class="material-icons">chat_bubble_outline</i> 
<i class="material-icons">remove_circle_outline</i> 
<i class="material-icons">check_box_outline_blank</i> 
<i class="material-icons">pie_chart_outlined</i> 

Обратите внимание, что pie_chart должен быть " pie_chart_ , выделенный ", а не контур .


Это взломать, чтобы проверить новые темы значков с помощью встроенного тега. Это не официальное решение.

На сегодняшний день (19 июля 2018 г.), спустя немногим более 2 месяцев с момента появления новых тем значков, Нет способа включить эти значки с помощью встроенного тега <i class="material-icons"></i>.

+ Мартин указал, что на Github возникла проблема, связанная с тем же: https://github.com/google/material-design-icons/issues/773

Итак, пока Google не придумал решение для этого, я начал использовать хак для включения этих новых тем значков в мою среду разработки перед загрузкой соответствующих значков в формате SVG или PNG. И я решил поделиться этим со всеми вами.


ВАЖНО : не используйте это в производственной среде, поскольку каждый из включенных файлов CSS от Google имеет размер более 1 МБ.


Google использует эти таблицы стилей для демонстрации значков на своей демонстрационной странице:

Outline:

<link rel="stylesheet" href="https://storage.googleapis.com/non-spec-apps/mio-icons/latest/outline.css">

Округлые:

<link rel="stylesheet" href="https://storage.googleapis.com/non-spec-apps/mio-icons/latest/round.css">

Two-Tone:

<link rel="stylesheet" href="https://storage.googleapis.com/non-spec-apps/mio-icons/latest/twotone.css">

Sharp:

<link rel="stylesheet" href="https://storage.googleapis.com/non-spec-apps/mio-icons/latest/sharp.css">

Каждый из этих файлов содержит значки соответствующих тем, включенных в качестве фоновых изображений (Base64 image-data). И вот как мы можем использовать это, чтобы проверить совместимость определенного значка в нашем дизайне, прежде чем загружать его для использования в производственной среде.


ШАГ 1 :

Включите таблицу стилей темы, которую вы хотите использовать. Например: для темы «Outlined» используйте таблицу стилей для «outline.css»

ШАГ 2 :

Добавьте следующие классы в вашу собственную таблицу стилей:

.material-icons-new {
    display: inline-block;
    width: 24px;
    height: 24px;
    background-repeat: no-repeat;
    background-size: contain;
}

.icon-white {
    webkit-filter: contrast(4) invert(1);
    -moz-filter: contrast(4) invert(1);
    -o-filter: contrast(4) invert(1);
    -ms-filter: contrast(4) invert(1);
    filter: contrast(4) invert(1);
}

ШАГ 3 :

Используйте значок, добавив следующие классы в тег <i>:

1) material-icons-new класс

2) Имя значка, как показано на демонстрационной странице значков материала, с префиксом имени темы и дефисом.

Префиксы:

Изложено: outline-

Округлено: round-

Двухтональный: twotone-

Sharp: sharp-

Например (для значка «объявление»):

outline-announcement, round-announcement, twotone-announcement, sharp-announcement

3) Используйте дополнительный 3-й класс icon-white для преобразования цвета с черного на белый (для темного фона)


Изменение размера иконки:

Поскольку это фоновое изображение, а не значок шрифта, используйте свойства CSS height и width, чтобы изменить размер значков. По умолчанию установлено значение 24px в классе material-icons-new.


Пример:

Случай I: Для Изложенные Тема account_circle icon:

1) Включить таблицу стилей:

<link rel="stylesheet" href="https://storage.googleapis.com/non-spec-apps/mio-icons/latest/outline.css">

2) Добавьте значок на свою страницу:

<i class="material-icons-new outline-account_circle"></i>

Дополнительно (для темного фона):

<i class="material-icons-new outline-account_circle icon-white"></i>

Случай II: Для Sharp Тема Оценка Значок:

1) Включить таблицу стилей:

<link rel="stylesheet" href="https://storage.googleapis.com/non-spec-apps/mio-icons/latest/sharp.css">

2) Добавьте значок на свою страницу:

<i class="material-icons-new sharp-assessment"></i>

(для темного фона):

<i class="material-icons-new sharp-assessment icon-white"></i>

Не могу не подчеркнуть, что это НЕ ПРАВИЛЬНЫЙ способ включить значки в вашу производственную среду. Но если вам приходится сканировать несколько значков на странице в разработке, это делает включение значков довольно простым и экономит много времени.

Загрузка иконки в формате SVG или PNG, безусловно, является лучшим вариантом, когда речь идет об оптимизации скорости сайта, но иконки шрифтов экономят время, когда дело доходит до этапа создания прототипа и проверки, соответствует ли конкретный значок вашему дизайну. и т. д.


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

...