<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">

<channel>

<title>Техноблог, заметки с тегом: svg</title>
<link>https://blog.toliklunev.ru/tags/svg/</link>
<description></description>
<generator>E2 (v3254; Aegea)</generator>

<item>
<title>Создание гибких, поддерживаемых круговых диаграмм с помощью CSS и SVG</title>
<guid isPermaLink="true">https://blog.toliklunev.ru/</guid>
<link>https://blog.toliklunev.ru/</link>
<comments>https://blog.toliklunev.ru/</comments>
<description>&lt;p&gt;&lt;i&gt;Это перевод статьи Леи Вероу &lt;a href="http://www.smashingmagazine.com/2015/07/designing-simple-pie-charts-with-css/"&gt;Designing Flexible, Maintainable Pie Charts With CSS and SVG&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Когда дело доходит до CSS-приёмов, нет никого более упёртого и умного в поиске решений любой проблемы чем Леа Вероу. Не так давно, Леа написала, отредактировала и опубликовала &lt;a href="http://shop.oreilly.com/product/0636920031123.do?cmp=ex-web-books-videos-product-na_smashing_mag_excerpt"&gt;Секреты CSS&lt;/a&gt;, реально фантастическую книгу об маленьких CSS-хитростях и приёмах для решения повседневных задач. Если вы думали, что знаете CSS достаточно хорошо, подумайте еще раз: вы будете удивлены. В этой статье, мы покажем немного крутых вещей из книги, которые были представлены также в &lt;a href="https://vimeo.com/channels/smashingconf/132511382"&gt;недавнем выступлении Леи на СмешингКонф Нью-Йорк&lt;/a&gt; — о создании простых круговых диаграмм с помощью CSS. Пожалуйста, учтите, что некоторые демки могут не работать так, как ожидалось из-за ограниченной поддержки в браузерах. — прим. ред.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Круговая диаграмма&lt;/b&gt;, в простейшем случае фигура из двух цветов, традиционно была чем-то непростым для создания с помощью веб-технологий, и в тоже время невероятно удачным подспорьем для отображения информации начиная от простой статистики до прогресс-баров и таймеров. Они обычно реализовывались либо с помощью графического редактора, в этом случае создавалось &lt;b&gt;несколько изображений, для нескольких значений круговой диаграммы&lt;/b&gt;, либо с помощью тяжелых JavaScript фреймворков, в случае более сложных диаграмм.&lt;/p&gt;
&lt;p&gt;И хотя добавить диаграмму не так сложно, как это было раньше, до сих пор нет простого способа. Однако есть несколько хороших, поддерживаемых реализаций, которые пригодны для использования на сегодняшний день.&lt;/p&gt;
&lt;p&gt;&lt;h2&gt;Решение, основанное на трансформациях&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;Это лучшее решение в плане разметки: нам нужен только один элемент, всё остальное будет сделано с помощью псевдо-элементов, трансформаций и CSS-градиентов. Начнём с добавления элемента:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code data-language="html"&gt;&lt;div class="pie"&gt;&lt;/div&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;В этом месте, давайте предположим, что нам нужна круговая диаграмма, которая захардкожена под отображение 20%. Мы разберём, как сделать это более гибко позднее. Давайте стилезуем элемент под круг, который будет нашим фоном.&lt;/p&gt;
&lt;style&gt;
	#pie-0 &gt; div, #pie-50 &gt; div, #pie-pseudo &gt; div{
		width: 100px;
		height: 100px;
		border-radius: 100%;
		background: yellowgreen;
	}
&lt;/style&gt;
&lt;p&gt;&lt;figure id="pie-0"&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;figcaption&gt;Фигура 1: Наша точка отсчёта (или диаграмма, отображающая 0%)&lt;/figcaption&gt;&lt;br /&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code data-language="css"&gt;.pie {
	width: 100px; height: 100px;
	border-radius: 50%;
	background: yellowgreen;
}&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Наша диаграмма будет зелёной (точнее жёлто-зелёной), с коричневой частью (#655), отображающей проценты. Мы могли бы попытаться использовать косые преобразования для процентной части, но, как показывает опыт, в итоге получается говнокод. Вместо этого, мы раскрасим левую и правую часть нашего круга в наши 2 цвета, и будем использовать вращающийся псевдо-элемент, чтобы отобразить тот процент, который нам нужен.&lt;/p&gt;
&lt;p&gt;Чтобы раскрасить половину нашего круга коричневым, мы используем простой градиент:&lt;/p&gt;
&lt;style&gt;
	#pie-50 &gt; div, #pie-pseudo &gt; div{
		background-image: linear-gradient(to right, transparent 50%, #655 0);
	}
&lt;/style&gt;
&lt;pre class="code"&gt;&lt;code data-language="css"&gt;background-image:
  linear-gradient(to right, transparent 50%, #655 0);&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;figure id="pie-50"&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;figcaption&gt;Фигура 2: Правая часть нашего круга стала коричневой, с помощью простого градиента &lt;/figcaption&gt;&lt;br /&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Как вы можете видеть, на  фигуре 2 есть всё, что нам нужно. Теперь мы можем приступить к стилезации псевдо-элемента, который будет выступать в качестве маски.&lt;/p&gt;
&lt;pre class="code"&gt;&lt;code data-language="css"&gt;.pie::before {
	content: '';
	display: block;
	margin-left: 50%;
	height: 100%;
}&lt;/code&gt;
&lt;/pre&gt;
&lt;style&gt;
#pie-pseudo &gt; div:before{
	content: '';
	display: block;
	margin-left: 50%;
	height: 100%;
	outline: 1px dashed;
	color: rgba(0, 0, 0, 0.4)
}
&lt;/style&gt;
&lt;p&gt;&lt;figure id="pie-pseudo"&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;figcaption&gt;Фигура 3: Псевдо-элемент, который будет действовать как маска, показан пунктирными линиями&lt;/figcaption&gt;&lt;br /&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;На Фигуре 3 вы можете видеть, где наш псевдо-элемент находится, по отношению к диаграмме. Сейчас он не стилизован, и нечего не перекрывает. Это всего лишь невидимый прямоугольник. Перед стилизацией уясним несколько моментов:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Так как мы хотим перекрыть коричневую часть нашего круга, нам нужно применить зелёный фон к псевдо-элементу, используя&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="e2-text-code"&gt;&lt;code&gt;background-color: inherit&lt;/code&gt;&lt;/pre&gt;</description>
<pubDate>Sat, 08 Aug 2015 20:49:49 +0400</pubDate>
</item>

<item>
<title>Быстрый способ получить svg из векторного слоя в фотошопе</title>
<guid isPermaLink="true">https://blog.toliklunev.ru/all/bystry-sposob-poluchit-svg-iz-vektornogo-sloya-v-fotoshope/</guid>
<link>https://blog.toliklunev.ru/all/bystry-sposob-poluchit-svg-iz-vektornogo-sloya-v-fotoshope/</link>
<comments>https://blog.toliklunev.ru/all/bystry-sposob-poluchit-svg-iz-vektornogo-sloya-v-fotoshope/</comments>
<description>&lt;p&gt;&lt;strong&gt;Данный способ работает только в Photoshop CC.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Первым делом создаём в домашней папке пользователя файл generator.json, со следующим содержимым:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code&gt;{
  &amp;quot;generator-assets&amp;quot;:  { 
    &amp;quot;svg-enabled&amp;quot;: true
  }
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Файл можно скачать (&lt;a href="http://blog.toliklunev.ru/download/generator.json" download="generator.json"&gt;generator.json&lt;/a&gt;), для ускорения процесса.&lt;/p&gt;
&lt;p&gt;Ставим галку в меню File → Generate → Image Assets.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://blog.toliklunev.ru/pictures/image-assets.png" width="451" height="657" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Затем переименовываем нужный слой, даём ему любое имя, заканчивающиеся на .svg (например pic.svg).&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://blog.toliklunev.ru/pictures/pic.svg.png" width="280" height="225" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;И вуаля. Рядом с psd файлом получаем папку, в которой будет лежать готовый svg.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://blog.toliklunev.ru/pictures/svg-in-folder.png" width="677" height="108" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Можно переименовывать даже группу слоёв.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://blog.toliklunev.ru/pictures/group.svg.png" width="387" height="355" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Фотошоп довольно умно сгенерирует единый svg файл, учитывая все эффекты слоёв.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://blog.toliklunev.ru/pictures/svg-code.png" width="745" height="875" alt="" /&gt;
&lt;/div&gt;
</description>
<pubDate>Tue, 04 Nov 2014 02:23:17 +0400</pubDate>
</item>


</channel>
</rss>