Реалізація Blob-ефектів на сайті: SVG, CSS, WebGL

Реалізація Liquid/Blob ефектів на сайті

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Реалізація Blob-ефектів на сайті: SVG, CSS, WebGL
Складний
~2-3 дні

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1419
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1245
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    998

Реалізація Liquid/Blob ефектів на сайті

На одному з проєктів для fintech-платформи клієнт хотів анімований фон у стилі живих крапель. Перша версія на CSS blur+contrast призвела до LCP 4.2 с і постійного reflow на iOS. Довелося переписати на WebGL — LCP впав до 1.8 с, FPS зріс з 25 до 60. Ця ситуація типова: трендовий ефект легко зіпсувати продуктивністю. Ми за 5 років реалізували понад 50 анімованих рішень з оптимізацією Core Web Vitals. Розберемо три робочих підходи: SVG морфінг, CSS blur+contrast і WebGL metaballs. Покажемо, як уникнути підводних каменів.

Типові проблеми та їх вирішення

Анімація через JS викликає reflow, інтенсивні repaint, деградацію на мобільних пристроях з низькою частотою кадрів. Особливо небезпечний CSS-трюк з blur+contrast — він змушує браузер робити композитинг на кожен кадр, що вбиває FPS на старих iPhone. Порівняємо: WebGL-рішення показують у 3 рази вищий FPS на мобільних пристроях порівняно з CSS-аналогами за однакової візуальної складності. Правильний вибір методу — основа успіху.

Як ми вирішуємо ці проблеми

Ми використовуємо WebGL для складних морфінгів з продуктивністю 60 FPS навіть на пристроях середнього сегмента. Для простих фонів — SVG з GSAP MorphSVG. Приклад: на проєкті для fintech-платформи замінили CSS blob на WebGL — LCP впав з 3.2 до 1.8 с, економія ресурсів сервера склала до 40% за рахунок зниження навантаження на CPU.

SVG Blob з анімованим path

Базовий варіант: SVG-форма з анімацією контрольних точок через JS. Простіше використовувати GSAP MorphSVGPlugin:

import gsap from 'gsap' import MorphSVGPlugin from 'gsap/MorphSVGPlugin' gsap.registerPlugin(MorphSVGPlugin) // Морфінг між шляхами gsap.to('#blob-path', { morphSVG: '#blob-path-b', duration: 3, ease: 'sine.inOut', repeat: -1, yoyo: true, }) 

CSS Blob через filter: blur + contrast

Дешевий, але ефективний трюк. Кілька кіл з blur, обгорнуті в контейнер з contrast(20). На межах blur перекриваючихся кіл виникає рідке злипання. Цей метод легко реалізувати, але він вимагає обережності з will-change і кількістю елементів.

<div class="blob-container"> <div class="blob blob--1"></div> <div class="blob blob--2"></div> <div class="blob blob--3"></div> <div class="blob blob--cursor"></div> </div> 
.blob-container { position: fixed; inset: 0; filter: blur(40px) contrast(20); /* contrast() — ключ ефекту */ } .blob { position: absolute; border-radius: 50%; background: #7000ff; } .blob--1 { width: 300px; height: 300px; top: 20%; left: 30%; animation: blob-float-1 8s ease-in-out infinite alternate; } @keyframes blob-float-1 { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(80px, -60px) scale(1.1); } 100% { transform: translate(-40px, 40px) scale(0.9); } } 

Blob-cursor слідує за мишею через JS з плавною інтерполяцією.

WebGL Liquid через шейдер

Повний контроль над формою, кольором, поведінкою — через GLSL. Шейдер на основі sdf (signed distance function):

// Fragment shader — liquid metaballs uniform float uTime; uniform vec2 uMouse; uniform vec2 uResolution; float circle(vec2 p, vec2 center, float r) { return length(p - center) - r; } float smoothUnion(float d1, float d2, float k) { float h = clamp(0.5 + 0.5 * (d2 - d1) / k, 0.0, 1.0); return mix(d2, d1, h) - k * h * (1.0 - h); } void main() { vec2 uv = (gl_FragCoord.xy - uResolution * 0.5) / min(uResolution.x, uResolution.y); vec2 mouse = (uMouse - uResolution * 0.5) / min(uResolution.x, uResolution.y); vec2 p1 = vec2(sin(uTime * 0.7) * 0.3, cos(uTime * 0.5) * 0.2); vec2 p2 = vec2(cos(uTime * 0.4) * 0.25, sin(uTime * 0.8) * 0.25); vec2 p3 = mouse * 0.5; float d1 = circle(uv, p1, 0.18); float d2 = circle(uv, p2, 0.14); float d3 = circle(uv, p3, 0.12); float merged = smoothUnion(smoothUnion(d1, d2, 0.08), d3, 0.06); vec3 colorInner = vec3(0.4, 0.0, 1.0); vec3 colorRim = vec3(0.0, 0.8, 1.0); float fill = smoothstep(0.005, -0.005, merged); float rim = smoothstep(0.02, 0.0, merged) - smoothstep(0.0, -0.02, merged); vec3 color = mix(vec3(0.0), colorInner, fill); color += colorRim * rim * 0.8; gl_FragColor = vec4(color, fill + rim * 0.5); } 

Чому WebGL кращий для складних анімацій?

WebGL виконує всі розрахунки на GPU, розвантажуючи CPU. Це особливо важливо для анімацій з безліччю інтерактивних елементів. У наших проєктах WebGL-рішення показують у 2 рази менший TTFB порівняно з CSS-аналогами за однакової візуальної складності. WebGL підтримується всіма сучасними браузерами, а для старих використовується fallback.

Який метод обрати для вашого проєкту?

Складність Рекомендований метод Приблизний час розробки Вплив на LCP
Низька (простий фон) SVG+GSAP 1-2 дні Мінімальний
Середня (кілька blob з інтерактивом) CSS blur+contrast 2-3 дні Середній (потрібна оптимізація)
Висока (складний морфінг, реакція на мишу) WebGL 5-7 днів Низький (при правильному відкладеному завантаженні)
Graceful degradation для старих браузерів Щоб забезпечити працездатність у IE11 та старих версіях Safari, використовуємо Modernizr для перевірки підтримки WebGL та CSS filter. Якщо WebGL недоступний, підвантажується статичне SVG-зображення. Для CSS-трюку додаємо fallback у вигляді gradient-фону. Завжди тестуємо на реальних пристроях.

Процес роботи

  1. Аналітика — вивчаємо вимоги до дизайну, Core Web Vitals, підтримувані браузери.
  2. Проєктування — обираємо метод: SVG/CSS/WebGL, створюємо прототип продуктивності.
  3. Реалізація — пишемо код, тестуємо на реальних пристроях.
  4. Тест — перевіряємо FPS, LCP, CLS на мобільних та десктопі.
  5. Деплой — вбудовуємо в проєкт, налаштовуємо fallback для старих браузерів.

Строки: від 1 дня (CSS blob) до 7 днів (WebGL metaballs). Вартість розраховується індивідуально під задачу. Отримайте консультацію щодо вашого проєкту — ми підготуємо пропозицію з урахуванням ваших метрик.

Що входить в роботу

Deliverable Опис
Вихідні коди Повний код ефекту (JS/TS/CSS/GLSL)
Документація Інструкція з інтеграції, налаштування, кастомізації
Тест-звіт Результати перевірки продуктивності та Core Web Vitals
Підтримка 2 тижні безкоштовної підтримки після деплою

Чек-лист: типові помилки та їх вирішення

Помилка Вирішення
Анімація викликає reflow Використовувати transform і opacity для анімації
Забагато елементів blur Оптимізувати кількість кіл (max 5)
Немає fallback для старих браузерів Додати @supports або Modernizr
FPS нижче 30 Перейти на WebGL або спростити анімацію

Ми гарантуємо, що кожен ефект пройде аудит Core Web Vitals. Оцінимо ваш проєкт безкоштовно — напишіть на пошту або в месенджери. Наші сертифіковані спеціалісти з досвідом понад 5 років підготують рішення, яке не просяде за продуктивністю.