SVG.js предоставляет удобный и мощный API для работы с цветами
элементов SVG. Основные инструменты для управления цветом — методы
.fill() и .stroke(). Они позволяют задавать
как однотонные цвета, так и градиенты, а также управлять
прозрачностью.
.fill()Метод .fill() отвечает за внутреннюю заливку фигуры. Он
поддерживает следующие варианты передачи цвета:
rect.fill('#ff0000'); // красный в формате HEX
rect.fill('rgb(255,0,0)'); // красный в формате RGB
rect.fill('red'); // красный по имени
rect.fill({ color: '#00ff00', opacity: 0.5 }); // зеленый с 50% прозрачностью
let gradient = draw.gradient('linear', function(add) {
add.stop(0, '#f06');
add.stop(1, '#4a90e2');
});
rect.fill(gradient);
draw.gradient('linear', callback).draw.gradient('radial', callback)..stroke()Метод .stroke() управляет обводкой фигуры. Основные
параметры:
circle.stroke({ color: 'blue' });
circle.stroke({ width: 5 });
circle.stroke({ dasharray: '5,5' }); // пунктирная линия
circle.stroke({ color: 'green', opacity: 0.7 });
Можно комбинировать параметры в одном объекте:
rect.stroke({ color: '#000', width: 3, opacity: 0.8, dasharray: '10,5' });
SVG.js поддерживает все стандартные CSS-цветовые форматы:
#rrggbb и #rgb)rgb(r,g,b))rgba(r,g,b,a))red, green,
blue, orange и т.д.)hsl(h,s,l) и
hsla(h,s,l,a))Прозрачность можно задавать либо через opacity для
.fill() или .stroke(), либо через альфа-канал
в формате RGBA/HSLA.
Линейные градиенты:
let linear = draw.gradient('linear', function(add) {
add.stop(0, '#ff0');
add.stop(1, '#f00');
});
rect.fill(linear);
add.stop(offset, color) — добавляет остановку
градиента. offset принимает значения от 0 до 1.Радиальные градиенты:
let radial = draw.gradient('radial', function(add) {
add.stop(0, '#0f0');
add.stop(1, '#00f');
});
circle.fill(radial);
.from() и .to():linear.from(0, 0).to(1, 1); // направление линейного градиента
radial.from(0.5, 0.5).to(0.5, 0.5, 0.5); // центр и радиус радиального градиента
let rect = draw.rect(200, 100);
rect.fill({ color: '#ffcc00', opacity: 0.6 });
rect.stroke({ color: '#333', width: 4, dasharray: '10,5' });
SVG.js поддерживает динамическое управление цветом с помощью CSS-переменных или Jav * aScript:
let primaryColor = '#3498db';
rect.fill(primaryColor);
circle.stroke({ color: primaryColor, width: 2 });
Цвет можно изменять в реальном времени, что удобно для интерактивных графиков и анимаций.
Методы .animate() и
.fill()/.stroke() позволяют плавно менять
цвет:
rect.animate(1000).fill('#e74c3c'); // плавная смена заливки
circle.animate(1500).stroke({ color: '#2ecc71', width: 6 });
.fill() — внутренний цвет фигуры, поддержка
прозрачности и градиентов..stroke() — цвет и стиль линии контура, ширина,
пунктир, прозрачность.draw.gradient('linear|radial', callback)..animate() и объекты настроек.Эти инструменты позволяют создавать визуально богатые SVG-графики с детальной настройкой цвета и стиля обводки.