core-icons содержит различные наборы иконок, такие как
- иконки
- av-иконки
- коммуникационные иконки
- значки устройств
- аппаратные иконки
- изображения-иконки
- карты-значки
- значки уведомлений
- png-иконки
- социальные иконки
Не очевидно, как их использовать.
core-icons содержит различные наборы иконок, такие как
Не очевидно, как их использовать.
Вот обзор иконок, содержащихся в элементах paper http://polymer.github.io/core-icons/components/core-icons/demo.html
Я создал пример, который демонстрирует, как их использовать.
<!DOCTYPE html>
<html>
<head>
<title>core-icons</title>
<!-- <script src="packages/web_components/platform.js"></script>
not necessary anymore with Polymer >= 0.14.0 -->
<script src="packages/web_components/dart_support.js"></script>
<link rel="import" href="packages/paper_elements/paper_icon_button.html">
<!-- choose the name according to the set you want to load - "social-icons" -->
<!-- this is now accessible with a simpler path
<link rel="import" href="packages/core_elements/src/core-icons/iconsets/social-icons.html">
<link rel="import" href="packages/core_elements/core_icons/iconsets/social_icons.html">
this changed again with core-elements 0.2.0+1 -->
<link rel="import" href="packages/core_elements/social_icons.html">
</head>
<body>
<!-- use the icon by setting the `icon` attribute. The value consists of iconsset-id a colon followed by the icon name. -->
<paper-icon-button id="bookmark-button" icon="social:plus-one" style="fill:steelblue;"></paper-icon-button>
<script type="application/dart">export 'package:polymer/init.dart';</script>
</body>
</html>
Вы можете стилизовать значки из кода Dart, например
($['bookmark-button'] as dom.Element).querySelector('* /deep/ #icon').style
..setProperty('fill', 'red')
..setProperty('stroke', 'blue')
..setProperty('stroke-with', '3px');
Это оказалось довольно сложно, потому что paper-icon-button
имеет более одного shadowRoot
(на самом деле 3), и когда я установил стиль для элемента <g>
(внутри <core-icon>
), он был применен, но вскоре после этого вернулся по неизвестным причинам.
Я только что увидел, что это не работает в Firefox. Насколько мне известно, полифилл для /deep/
в querySelector()
находится в стадии разработки. Возможно, он будет работать лучше, как только текущая версия Polymer будет интегрирована в Polymer.Dart.
Это работало как в Dartium, так и в Firefox:
($['bookmark-button'] as dom.Element).shadowRoot.olderShadowRoot.querySelector('#icon').style
..setProperty('fill', 'red')
..setProperty('stroke', 'blue')
..setProperty('stroke-with', '3px');
Это решение может сломаться при изменении реализации <paper-icon-button>
, но, надеюсь, через какое-то время первая попытка будет работать во всех браузерах.
Поддержка Polyfill для /deep/
в querySelector
включена в Polymer.js 0.4.0. . Надеемся, что следующее обновление Polymer.dart также включает его.