{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Кирилл Беляев: заметки с тегом иконки",
    "_rss_description": "о подаче информации, айдентике, интерфейсах и жизненной среде",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=tags\/ikonki\/",
    "feed_url": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=tags%2Fikonki%2Fjson%2F",
    "icon": "https:\/\/kirillbelyaev.com\/ru\/blog\/user\/userpic@2x.jpg?1662385101",
    "author": {
        "name": "Кирилл Беляев",
        "url": "https:\/\/kirillbelyaev.com\/ru\/blog\/",
        "avatar": "https:\/\/kirillbelyaev.com\/ru\/blog\/user\/userpic@2x.jpg?1662385101"
    },
    "items": [
        {
            "id": "477",
            "url": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=all\/svg-icons\/",
            "title": "СВГ-иконки на практике",
            "content_html": "<p>Кроме разрешения и веса, СВГ-иконки умеют удобно хранить несколько состояний. Так не в силах ни один растр. Количество состояний — признак, по которому делю иконки на «сплошные» и «слоёные».<\/p>\n<p>Если иконка работает, как ссылка — целиком меняет цвет при наведении (или посещении), то про себя называю её «сплошной». С ней можно работать вслепую, не заглядывая внутрь. Говорим через ЦСС всему СВГ: «будь при наведении красным», и всё.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/calendar-icon@2x.png\" width=\"86\" height=\"40\" alt=\"\" \/>\n<\/div>\n<p>А если цвет меняют отдельные части, называю иконку «слоёной». Потому что такие игры возможны, только когда внутри СВГ формы лежат в отдельных элементах друг над другом — слоями.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/star-icon@2x.png\" width=\"160\" height=\"40\" alt=\"\" \/>\n<\/div>\n<p>Когда появляется такое поведение, первая идея — применить ЦСС-бордер к сплошной иконке. Но лучше не торопиться. Бордер всегда позиционируется по центру. Если контур однопиксельный, браузер нарисует линию в два полупрозрачных пикселя. И иконка станет мыльной на неретиновом экране.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/star-border@2x.png\" width=\"27\" height=\"27\" alt=\"\" \/>\n<\/div>\n<p>Даже если контур будет кратным, сглаживание углов бордером или выход за пределы иконки могут мешать. Поэтому лучше положить в СВГ отдельные слои и управлять ими.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/star-layers@2x.png\" width=\"52\" height=\"35\" alt=\"\" \/>\n<\/div>\n<p>При этом слой с формой в виде обводки не сработает. ЦСС покрасит не только внешнюю форму, но и внутреннюю.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/star-bad-layers@2x.png\" width=\"150\" height=\"38\" alt=\"\" \/>\n<\/div>\n<p>Если иконка слоёная, обратиться через ЦСС ко всему СВГ не получится. Нужно манипулировать элементами внутри. Это легко с инлайновым СВГ — добавил классы к нужным элементам и готово. Иконка фулскрина <a href=\"http:\/\/datalaboratory.ru\/projects\/resistomap\/\">в карточке на сайте лаборатории<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/full-screen-icon@2x.png\" width=\"130\" height=\"64\" alt=\"\" \/>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">&lt;svg class=&quot;full-screen&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;\r\n  &lt;g&gt;\r\n    &lt;path d=&quot;M7,7 L7,8 L6.00097656,8 L6.00097656,9 L5,9 L5,8 L0,8\r\n    L0,18 L10,18 L10,13 L9,13 L9,12 L10,12 L10,11 L11,11 L11,10 L12,10\r\n    L12,9 L13,9 L13,10 L18,10 L18,0 L8,0 L8,5 L9,5 L9,6 L8,6 L8,7 L7,7 Z&quot;\r\n    fill=&quot;#FFF&quot;\/&gt;\r\n\t\t\t\r\n    &lt;path class=&quot;variable&quot; d=&quot;M9.538,3.077 L13.935,3.077 L9.538,7.475 L9.538,8.462 \r\n    L10.525,8.462 L14.923,4.065 L14.923,8.462 L16,8.462 L16,2 L9.538,2 L9.538,3.077 \r\n    Z M3.077,13.938 L3.077,9.54 L2,9.54 L2,16 L8.461,16 L8.461,14.924 L4.063,14.924 \r\n    L8.461,10.527 L8.461,9.54 L7.474,9.54 L3.077,13.938 Z&quot; \r\n    fill=&quot;#666&quot;\/&gt;\r\n  &lt;\/g&gt;\r\n&lt;\/svg&gt;<\/code><\/pre><p>Без инлайна сложнее — обращение будет к типу элемента или к атрибуту. Плей в той же карточке:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/play-icon@2x.png\" width=\"250\" height=\"64\" alt=\"\" \/>\n<\/div>\n<pre class=\"e2-text-code\"><code class=\"\">&lt;svg class=&quot;play&quot;  xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;\r\n  &lt;g&gt;\r\n    &lt;polygon fill=&quot;#FFF&quot; points=&quot;0 0 0 22 19 11&quot;&gt;&lt;\/polygon&gt;\r\n      \r\n    &lt;path class=“play-fill“ d=&quot;M2,3L2 19 15 11z&quot; fill=&quot;#666&quot;&gt;&lt;\/path&gt;\r\n      \r\n    &lt;path class=&quot;play-void“ d=&quot;M3,4.99999999L3 17 13 11z&quot; fill=&quot;#666&quot;&gt;&lt;\/path&gt;\r\n  &lt;\/g&gt;\r\n&lt;\/svg&gt;<\/code><\/pre><p>Допустим, он не инлайновый. Тогда при наведении будем менять цвет только элементов «path». Нижний полигон всегда белый. Верхнему треугольнику стоит задать по умолчанию заливку «none», чтобы обращаться к нему отдельно и управлять его видимостью.<\/p>\n<p>Если такая иконка будет сплошной, понадобиться ещё один СВГ с белым фоном под ней. Это замусорит код и может привести к ошибкам при масштабировании.<\/p>\n<p>И ещё момент. Графические редакторы делают такой плей из трёх полигонов, поэтому переводить их в кривые придётся вручную. Я неэлегантно вставляю код <a href=\"http:\/\/jsfiddle.net\/kirillbelyaev\/u88m7fa2\/\">в фидл<\/a> и копирую получившуюся кривую в инспекторе.<\/p>\n",
            "date_published": "2016-11-29T22:42:43+03:00",
            "date_modified": "2016-11-29T22:41:09+03:00",
            "image": "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/calendar-icon@2x.png",
            "_date_published_rfc2822": "Tue, 29 Nov 2016 22:42:43 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=all\/svg-icons\/",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/calendar-icon@2x.png",
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/star-icon@2x.png",
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/star-border@2x.png",
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/star-layers@2x.png",
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/star-bad-layers@2x.png",
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/full-screen-icon@2x.png",
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/play-icon@2x.png"
                ]
            }
        },
        {
            "id": "474",
            "url": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=all\/recognition-errors\/",
            "title": "Ошибки распознавания на практике",
            "content_html": "<p><a href=\"http:\/\/maps.me\/ru\/home\">Мепс-ми<\/a> — лучшие офлайн-карты на сегодня. Но их интерфейс периодически хромает.<\/p>\n<p>Когда-то маршруты строились только от текущего положения до выбранной точки. Это отлично решало главный сценарий — как добраться куда-то.<\/p>\n<p>Последняя версия 6.4.4 прокладывает маршрут от объекта и до него. Это закрывает дополнительные сценарии. И пока перед глазами нет экрана, задача решена.<\/p>\n<p>А в интерфейсе ошибка, которую описывал ещё Норман, — очень похожие иконки направления. Обе состоят из круга, стрелки подписи «Route...». На ходу выбрать нужное крайне трудно. Приходится останавливаться и вглядываться в «...from» и «...to».<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/maps-me@2x.png\" width=\"320\" height=\"568\" alt=\"\" \/>\n<\/div>\n<p>История о клавиатурах, которую приводит Норман:<\/p>\n<blockquote>\n<p>Однажды в одной большой компьютерной компании меня попросили оценить новую продукцию. На ее изучение и проверку я потратил целый день. У клавиатуры был один недостаток: кнопки «возврат» и «ввод» мало отличались друг от друга. Перепутав кнопки, пользователь мог уничтожить работу последних нескольких минут.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Я рассказал об этом дизайнеру, добавив, что сам несколько раз допустил подобную ошибку, следовательно, её будут допускать и другие пользователи. Первая реакция дизайнера была такой: «Почему вы допустили эту ошибку? Разве вы не читали инструкцию?» Затем он пустился в объяснения разницы между двумя кнопками.<\/p>\n<\/blockquote>\n<blockquote>\n<p>«Конечно, — начал я, — я понимаю разницу между ними, но я путаю их. Они похожи и расположены рядом, а как опытный наборщик я часто нажимаю кнопку “возврат” автоматически. Поэтому другие, возможно, тоже будут допускать такую ошибку».<\/p>\n<\/blockquote>\n<blockquote>\n<p>«Нет», — сказал дизайнер и заявил, что я единственный, кто пожаловался, и что секретари компании пользуются этой клавиатурой уже много месяцев. Я не унимался, и мы решили поинтересоваться, путали ли служащие когда-нибудь эти две кнопки, у них самих. И приходилось ли им из-за этого переделывать работу?<\/p>\n<\/blockquote>\n<blockquote>\n<p>«О, да, — ответили все секретари, — такая проблема возникала много раз».<\/p>\n<\/blockquote>\n<blockquote>\n<p>«Почему же никто не сказал об этом?» — спросили мы их. После этого мы попросили их докладывать обо всех трудностях, возникающих с новой продукцией.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Причина была банальной: если система переставала работать или работала плохо, это считалось проблемой, а вот путаница в кнопках проблемой не считалась. Секретари обвиняли в этом себя. В конце концов им объяснили, что они заблуждались и что необходимо делать в таких ситуациях.<\/p>\n<\/blockquote>\n<p>И его «рассуждения по этому поводу»:<\/p>\n<blockquote>\n<p>Если ошибка возможна, кто-то обязательно ее допустит. Дизайнер должен предусмотреть все возможные ошибки и постараться свести к минимуму вероятность их появления. Ошибки должны быть легко распознаваемы и по возможности обратимы и не должны приводить к серьезным последствиям.<\/p>\n<\/blockquote>\n<p>Для максимального контраста лучше оставить  только «From» и «To», а иконки сделать разными. Например, флаг для старта и пин для финиша. Если нужно быстрее — «А» для начала и «В» для конца.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/maps-me-alternative@2x.png\" width=\"690\" height=\"568\" alt=\"\" \/>\n<\/div>\n",
            "date_published": "2016-11-04T17:45:50+03:00",
            "date_modified": "2016-11-29T14:54:23+03:00",
            "image": "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/maps-me@2x.png",
            "_date_published_rfc2822": "Fri, 04 Nov 2016 17:45:50 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/kirillbelyaev.com\/ru\/blog\/?go=all\/recognition-errors\/",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/maps-me@2x.png",
                    "https:\/\/kirillbelyaev.com\/ru\/blog\/pictures\/maps-me-alternative@2x.png"
                ]
            }
        }
    ],
    "_e2_version": 3572,
    "_e2_ua_string": "E2 (v3572; Aegea)"
}