цвет в svg код

Заливка и обводка

Есть несколько способов раскрасить фигуры SVG (в т.ч. с указанием атрибутов объекта), используя инлайн-CSS, встроенную CSS-секцию, или внешний файл CSS. Большая часть SVG, которую вы встретите в интернете, использует встроенный CSS, однако преимущества и недостатки есть у каждого типа.

Атрибуты заливки и обводки (Fill and Stroke Attributes)

Раскраска (Painting)

Кроме того, вы можете задать прозрачность заливке и обводке по отдельности в SVG. Их прозрачность управляется атрибутами fill-opacity, stroke-opacity.

Обводка (Stroke)

Кроме цветовых свойств обводки, есть несколько атрибутов, управляющих способом обводки.

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

Есть три возможных значения для stroke-linecap:

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

В качестве аргумента атрибут stroke-dasharray принимает последовательность чисел, разделённых запятой.

Замечание: в отличие от путей, эти числа ДОЛЖНЫ быть разделены запятыми (пробелы игнорируются).

Также есть дополнительные stroke и fill свойства: fill-rule, которое определяет как будут заливаться сложные фигуры, которые имеют пересечения внутри себя; stroke-miterlimit, which determines if a stroke should draw miters и stroke-dashoffset, который указывает где начинается dash-array в линии (позволяет задать смещение пунктирной обводки относительно первоначального положения)

Использование CSS (Using CSS)

В дополнение к установке атрибутов объектов, вы также можете использовать CSS для стилизации заливки и обводки. Не все атрибуты могут быть установлены через CSS. Но атрибуты взаимодействия с раскраской и заливкой обычно доступны, так что fill, stroke, stroke-dasharray и т.д. могут быть заданы этим способом, также как и градиенты, и паттерны, что показано ниже. Атрибуты вроде width, height или команд для путей SVG не могут быть установлены через CSS. Проще всего просто протестировать и узнать, что доступно, а что нет.

CSS может использоваться инлайн через атрибут style :

Перемещение стилей в отдельную зону может сделать проще применение свойств к большим группам элементов. Вы также можете использовать вещи типа псевдоклассов наведения для создания эффектов переворачивания:

Также можно определить отдельный файл стилей для ваших CSS-правил через обычный XML-stylesheet синтаксис:

Источник

Делаем разноцветные иконки с помощью SVG-символов и CSS-переменных

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

Давно прошли те дни, когда для иконок в вебе использовались картинки и CSS-спрайты. С развитием веб-шрифтов номером 1 для отображения иконок на сайтах стали иконочные шрифты.

Шрифты — векторные, так что вам не нужно беспокоиться о разрешении экрана. Для них можно использовать те же CSS-свойства, что и для текста. В результате вы имеете полный контроль над их размером, цветом и стилем. Вы можете добавлять к ним эффекты, трансформировать или декорировать их. Например, повернуть ( rotate ), подчеркнуть ( underline ) или добавить тень ( text-shadow ).

Иконочные шрифты не идеальны, поэтому все большее число людей предпочитает использовать встроенные SVG-изображения. На CSS Tricks есть статья, где описаны моменты, в которых иконочные шрифты уступают SVG-элементам: резкость, позиционирование, сбои кросс-доменной загрузки, особенности браузеров и блокировщики рекламы. Сейчас вы можете обойти большинство этих проблем, что, в целом, делает использование иконочных шрифтов безопасным.

Да, еще одна вещь, которая абсолютно невозможна при использовании иконочных шрифтов: поддержка многоцветности. Только SVG может это сделать.

TL;DR: этот пост позволяет вникнуть в то, как и почему. Если вы хотите понять весь процесс, читайте дальше. В противном случае вы можете посмотреть окончательный код на CodePen.

Настройка символов SVG-иконок

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

Использование SVG-символов позволяет иметь лишь один экземпляр каждого SVG-элемента и использовать его где угодно с помощью ссылки.

Полная разметка SVG-элемента пишется один раз и скрывается.

Получится точная копия вашей оригинальный SVG-иконки.

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

Вот она! Довольна милая, правда?

Вы вероятно заметили атрибут xlink:href — это и есть ссылка между вашей иконкой и оригинальным SVG-изображением.

Для безопасности используйте оба атрибута.

Добавление цвета

В отличие от шрифтов, свойство color не действует на SVG-иконки: необходимо использовать атрибут fill для указания цвета. Это значит, что они не наследуют родительский цвет текста, но вы все равно можете стилизовать их через CSS.

А следовательно, вы можете создавать другие экземпляры этой же иконки разных цветов.

Это работает, но это не совсем то, что мы хотим. Все, что мы сделали до сих пор, можно сделать и с помощью обычного иконочного шрифта. То, что мы хотим, — это сделать каждую часть иконки разного цвета. Мы хотим залить разными цветами каждую часть одной иконки, не изменяя другие ее экземпляры, и мы хотим, чтобы было возможно переопределять эти цвета при необходимости.

Сначала у вас может возникнуть идея положиться на специфичность.

И что нам тогда делать? Как мы можем повлиять на содержимое детей, когда говорят, что детей нет в DOM?

CSS-переменные помогут

CSS-переменные объявляются в наборах правил так же, как и любое другое свойство. Вы можете назвать их как хотите и присвоить им любое допустимое CSS значение. Затем вы определите через эту переменную значение свойства самого элемента или его ребенка, и оно будет наследоваться.

Теперь давайте применим эту концепцию для нашего SVG-символа. Мы будем использовать атрибут fill для каждой части path в определении нашей SVG-иконки и зададим им разные CSS-переменные. Затем мы назначим им разные цвета.

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

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

Свойство fill будет работать, потому что атрибут fill исходного SVG задан с неопределенными значениями CSS-переменных.

Как назвать мои CSS-переменные?

Проблема в том, что в нашем случае мы не можем применять атомные классы к элементам, которые хотим стилизовать. Принципы utility-first не применимы, так как у нас есть только ссылка для каждой иконки, а мы должны стилизовать ее через вариации классов.

По умолчанию или не по умолчанию

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

Добиться этого можно двумя способами: через :root или через var() default.

var() default

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

Как это все поддерживается браузерами?

CSS-переменные поддерживаются всеми современными браузерами, но, как вы вероятно догадались, IE не поддерживает их, совсем. Даже IE11, и поскольку его развитие было прекращено в пользу Edge, нет никаких шансов, что он когда-либо будет их поддерживать.

Но только из-за того, что переменные не работают в браузере, который вам нужно поддерживать, не значит, что вы должны полностью от них отказаться. В таких случаях используйте graceful degradation: предлагайте разноцветные иконки современным браузерам, а для старых указывайте запасной цвет.

Все, что вам нужно сделать, — это добавить определение цвета, которое будет работать только, если CSS-переменные не поддерживаются. Этого можно добиться, указав свойству fill резервный цвет. Если CSS-переменные поддерживаются, это объявление не будет учтено. Если же это не так, оно сработает.

Теперь можно определять цветовые схемы, не беспокоясь о поддержке браузеров.

Передача CSS-переменных в mixin через @content необязательна. Если вы сделаете это снаружи, скомпилированный CSS будет таким же. Но может быть полезно держать все это в одном месте.

Вы можете проверить этот пример в разных браузерах. В последних версиях Firefox, Chrome и Safari последние две чашки будут соответственно красной с серым паром и синей с серым паром. В Internet Explorer и Edge ниже 15 версии третья иконка будет вся красная, а четвертая — вся синяя.

Источник

Нативный способ покрасить SVG-иконки

Когда вам нужна возможность менять цвет иконок через CSS, что вы делаете? Вариантов не так много.

Обычно используются либо шрифты иконок, либо исходный код SVG скачивается и вставляется в HTML вручную. Шрифт нужно оптимизировать, иначе пользователь загрузит разом все иконки без надобности. Работа с исходным кодом требует тяжелых DOM-операций и потенциально опасна.

Чтобы защититься от вредоносного кода SVG нужно «почистить». Встроенный в Angular санитайзер, к примеру, не работает с SVG и превращает их в пустую строку. Можно воспользоваться проверенным инструментом DOMPurify и подключить его с помощью нашей библиотеки ng-dompurify, о чем я подробно рассказывал.

Давайте посмотрим на еще один способ, доступный в современных браузерах, — тэг USE.

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

Чем нам полезен USE?

Этот тэг задуман для переиспользования символов и целых SVG-блоков на странице. Но в современных браузерах (прости, IE) он может даже доставать внешние ресурсы!

Внешние SVG должны быть на том же домене, так что CDN не подойдет. Пока.

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

Сначала в каждой иконке нужно сделать символ с уникальным id и переместить viewBox в него.

Когда наши иконки подготовлены, остается только скинуть их в папку assets и использовать:

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

Компонент именованных иконок для Angular

Писать путь и обращаться к символу каждый раз утомительно. Давайте сделаем Angular-компонент, который будет находить иконки по имени. С помощью Dependency Injection это сделать очень просто.

Сделаем stroke и fill прозрачными для использования нескольких цветов в CSS:

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

Заключение

У этого подхода есть ограничения — отсутствие поддержки IE и кросс-доменности. Однако, если они для вас не критичны, данное решение может стать хорошей альтернативой другим способам.

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

Источник

Цвета HTML

цвет в svg код. Смотреть фото цвет в svg код. Смотреть картинку цвет в svg код. Картинка про цвет в svg код. Фото цвет в svg код

Одной из составляющих представления веб-страниц в интернете является цвет, современные браузеры принимают и воспроизводят его, используя цветовые модели RGB, HSL, или же ключевые слова (названия).

Значения цвета в HTML может быть задано одним из следующих способов.

Имена цветов CSS, SVG.

В отличие от Html, в котором стандартными являются 16 цветов, спецификации CSS и SVG, определяют более расширенный список имен, состоящий из 147 названий. Однако, несмотря на наличие в списке сто сорока семи наименований, оригинальные значения имеют только 138, так как все серые цвета могут быть указаны как через «a», так и через «e» (grAy или grEy), а fuchsia и aqua имеют альтернативные имена: magenta и cyan соответственно (последние не поддерживаются HTML 4.01).

Приведенная ниже таблица представляет имена цветов и их значения в HSL и HEX. При использовании имен, следует помнить, что синтаксис SVG отличается от HTML и CSS: атрибут fill, к примеру, применяется как к цвету текста (color), так и объекта (background-color), а stroke используются для задания контура (обводки) элемента.

ИмяR G BH S L
white#ffffffhex0°, 0%, 100%
ivory#fffff0hex60°, 100%, 97%
lightyellow#ffffe0hex60°, 100%, 94%
yellow#ffff00hex60°, 100%, 50%
snow#fffafahex0°, 100%, 99%
floralwhite#fffaf0hex40°, 100%, 97%
lemonchiffon#fffacdhex54°, 100%, 90%
cornsilk#fff8dchex48°, 100%, 93%
seashell#fff5eehex25°, 100%, 97%
lavenderblush#fff0f5hex340°, 100%, 97%
papayawhip#ffefd5hex37°, 100%, 92%
blanchedalmond#ffebcdhex36°, 100%, 90%
mistyrose#ffe4e1hex6°, 100%, 94%
bisque#ffe4c4hex33°, 100%, 88%
moccasin#ffe4b5hex38°, 100%, 86%
navajowhite#ffdeadhex36°, 100%, 84%
peachpuff#ffdab9hex28°, 27%, 100%
gold#ffd700hex51°, 100%, 50%
pink#ffc0cbhex350°, 100%, 88%
lightpink#ffb6c1hex351°, 100%, 86%
orange#ffa500hex39°, 100%, 50%
lightsalmon#ffa07ahex17°, 100%, 74%
darkorange#ff8c00hex33°, 100%, 50%
coral#ff7f50hex16°, 100%, 66%
hotpink#ff69b4hex330°, 100%, 71%
tomato#ff6347hex9°, 100%, 64%
orangered#ff4500hex16°, 100%, 50%
deeppink#ff1493hex328°, 100%, 54%
magenta, fuchsia#ff00ffhex300°, 100%, 50%
red#ff0000hex0°, 100%, 50%
oldlace#fdf5e6hex39°, 85%, 95%
lightgoldenrodyellow#fafad2hex60°, 80%, 90%
linen#faf0e6hex30°, 67%, 94%
antiquewhite#faebd7hex34°, 78%, 91%
salmon#fa8072hex6°, 93%, 71%
ghostwhite#f8f8ffhex240°, 100%, 99%
mintcream#f5fffahex150°, 100%, 98%
whitesmoke#f5f5f5hex0°, 0%, 96%
beige#f5f5dchex60°, 56%, 91%
wheat#f5deb3hex39°, 77%, 83%
sandybrown#f4a460hex28°, 87%, 67%
azure#f0ffffhex180°, 100%, 97%
honeydew#f0fff0hex120°, 100%, 97%
aliceblue#f0f8ffhex208°, 100%, 97%
khaki#f0e68chex54°, 77%, 75%
lightcoral#f08080hex0°, 79%, 72%
palegoldenrod#eee8aahex55°, 67%, 80%
violet#ee82eehex300°, 76%, 72%
darksalmon#e9967ahex15°, 72%, 70%
lavender#e6e6fahex240°, 67%, 94%
lightcyan#e0ffffhex180°, 100%, 94%
burlywood#deb887hex34°, 57%, 70%
plum#dda0ddhex300°, 47%, 75%
gainsboro#dcdcdchex0°, 0%, 86%
crimson#dc143chex348°, 83%, 47%
palevioletred#db7093hex340°, 60%, 65%
goldenrod#daa520hex43°, 74%, 49%
orchid#da70d6hex302°, 59%, 65%
thistle#d8bfd8hex300°, 24%, 80%
lightgray, lightgrey#d3d3d3hex0°, 0%, 83%
tan#d2b48chex34°, 44%, 67%
chocolate#d2691ehex25°, 75%, 47%
peru#cd853fhex30°, 59%, 53%
indianred#cd5c5chex0°, 53%, 58%
mediumvioletred#c71585hex322°, 81%, 43%
silver#c0c0c0hex0°, 0%, 75%
darkkhaki#bdb76bhex56°, 38%, 58%
rosybrown#bc8f8fhex0°, 25%, 65%
mediumorchid#ba55d3hex288°, 59%, 58%
darkgoldenrod#b8860bhex43°, 89%, 38%
firebrick#b22222hex0°, 68%, 42%
powderblue#b0e0e6hex187°, 52%, 80%
lightsteelblue#b0c4dehex214°, 41%, 78%
paleturquoise#afeeeehex180°, 65%, 81%
greenyellow#adff2fhex84°, 100%, 59%
lightblue#add8e6hex195°, 53%, 79%
darkgray, darkgrey#a9a9a9hex0°, 0%, 66%
brown#a52a2ahex0°, 59%, 41%
sienna#a0522dhex19°, 56%, 40%
yellowgreen#9acd32hex80°, 61%, 50%
darkorchid#9932cchex280°, 61%, 50%
palegreen#98fb98hex120°, 93%, 79%
darkviolet#9400d3hex282°, 100%, 41%
mediumpurple#9370dbhex260°, 60%, 65%
lightgreen#90ee90hex120°, 73%, 75%
darkseagreen#8fbc8fhex120°, 25%, 65%
saddlebrown#8b4513hex25°, 76%, 31%
darkmagenta#8b008bhex300°, 100%, 27%
darkred#8b0000hex0°, 100%, 27%
blueviolet#8a2be2hex271°, 76%, 53%
lightskyblue#87cefahex203°, 92%, 76%
skyblue#87ceebhex197°, 71%, 73%
gray, grey#808080hex0°, 0%, 50%
olive#808000hex60°, 100%, 25%
purple#800080hex300°, 100%, 25%
maroon#800000hex0°, 100%, 25%
aquamarine#7fffd4hex160°, 100%, 75%
chartreuse#7fff00hex90°, 100%, 50%
lawngreen#7cfc00hex91°, 100%, 4%
mediumslateblue#7b68eehex249°, 80%, 67%
lightslategray, lightslategrey#778899hex210°, 14%, 53%
slategray или slategrey#708090hex210°, 13%, 50%
olivedrab#6b8e23hex80°, 61%, 35%
slateblue#6a5acdhex248°, 54%, 58%
dimgray, dimgrey#696969hex0°, 0%, 41%
mediumaquamarine#66cdaahex160°, 51%, 60%
rebeccapurple#663399hex270°, 50%, 40%
cornflowerblue#6495edhex219°, 79%, 66%
cadetblue#5f9ea0hex182°, 26%, 50%
darkolivegreen#556b2fhex82°, 39%, 30%
indigo#4b0082hex275°, 100%, 26%
mediumturquoise#48d1cchex178°, 60%, 55%
darkslateblue#483d8bhex249°, 39%, 39%
steelblue#4682b4hex207°, 44%, 49%
royalblue#4169e1hex225°, 73%, 57%
turquoise#40e0d0hex174°, 72%, 57%
mediumseagreen#3cb371hex147°, 50%, 47%
limegreen#32cd32hex120°, 61%, 50%
darkslategray, darkslategrey#2f4f4fhex180°, 25%, 25%
seagreen#2e8b57hex147°, 50%, 36%
forestgreen#228b22hex120°, 61%, 34%
lightseagreen#20b2aahex177°, 70%, 41%
dodgerblue#1e90ffhex210°, 100%, 56%
midnightblue#191970hex240°, 64%, 27%
aqua, cyan#00ffffhex180°, 100%, 50%
springgreen#00ff7fhex150°, 100%, 50%
lime#00ff00hex120°, 100%, 50%
mediumspringgreen#00fa9ahex157°, 100%, 49%
darkturquoise#00ced1hex181°, 100%, 41%
deepskyblue#00bfffhex195°, 100%, 50%
darkcyan#008b8bhex180°, 100%, 27%
teal#008080hex180°, 100%, 25%
green#008000hex120°, 100%, 25%
darkgreen#006400hex120°, 100%, 20%
blue#0000ffhex240°, 100%, 50%
mediumblue#0000cdhex240°, 100%, 40%
darkblue#00008bhex240°, 100%, 27%
navy#000080hex240°, 100%, 25%
black#000000hex0°, 0%, 0%

Для получения информации о других цветах и значениях в HEX, HEX8, RGB, RGB%, CMYK, HSL, HSV воспользуйтесь калькулятором цветов.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *