Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator SVG Blob

Generuj losowe organiczne kształty SVG (blob, morph) do użycia jako tło lub dekoracja strony. Kontroluj złożoność, gładkość i kolory. Animowane lub statyczne. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

Ustawienia generatora

600
600
9
0.28
Generowanie...
Kod SVG 583 B
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="600" viewBox="0 0 600 600" role="img" aria-label="Generated blob"><path d="M 554.69 300 C 557.29 351.46 527.23 421.22 491.79 460.93 C 456.34 500.63 395.85 527.15 342.01 538.23 C 288.16 549.3 211 554.23 168.73 527.37 C 126.45 500.5 100.2 427.21 88.35 377.04 C 76.49 326.86 79.34 268.65 97.6 226.33 C 115.85 184.01 156.46 154.38 197.87 123.11 C 239.29 91.84 299.69 33.87 346.07 38.71 C 392.45 43.56 441.39 108.64 476.16 152.19 C 510.93 195.73 552.08 248.54 554.69 300 Z" fill="#8f6677" stroke="none" stroke-width="0" /></svg>

Wymiary

600 × 600 px

Liczba punktów

9

kotwice krzywej Béziera co kąt 2π/n

Wariancja

0,28

Kolor wypełnienia

#8f6677

Ziarno (seed)

liczbowe ziarno = powtarzalny kształt

Rozmiar SVG

583 B

waga gotowego kodu do wklejenia

Opis odpowiada 1:1 kodowi silnika, który generuje podgląd: punkty na okręgu, losowa odchyłka promienia zależna od ziarno, spline Catmull-Rom przeliczony na krzywe sześcienne Béziera.

Mechanizm generowania krzywych w GeneratorSvgBlobToolstiEngine
EtapCo robi silnik
Punkty kotwiczne n punktów (4–32) rozmieszczonych na okręgu wokół środka płótna, co kąt 2π/n
Promień punktu baza = 0,38 × min(szerokość, wysokość); promień punktu = baza × (1 + dr), gdzie dr to losowa odchyłka z przedziału [−zmienność, +zmienność]
Ziarno (seed) liczbowe ziarno uruchamia mt_srand() — ten sam seed daje zawsze identyczny kształt; puste pole losuje ziarno przez random_int(), więc każdy blob jest inny
Krzywe spline Catmull-Rom na punktach przeliczony na krzywe sześcienne Béziera: C1 = P1 + (P2 − P0)/6, C2 = P2 − (P3 − P1)/6; ścieżka zamykana komendą Z
Kolor wypełnienia tryb losowy: mt_rand(20, 235) osobno dla kanałów R/G/B; tryb własny: kolor HEX z formularza (domyślnie #6f42c1)
Obrys opcjonalny, kolor rgba(0,0,0,0.22), grubość 1–20 px; bez obrysu stroke="none"
Do czego najczęściej używa się blobów SVG
ZastosowaniePo co
Organiczne tła sekcje hero i banery — miękki, asymetryczny kształt łagodzi sztywne siatki kolumn i prostokątne zdjęcia
Karty i wyróżnienia plamka w tle karty cenowej czy opinii kieruje wzrok bez ostrej ramki
Ilustracje i onboarding przyjazne kształty w pustych stanach aplikacji, ekranach powitalnych i loaderach
Placeholdery grafik lekki plik SVG (zwykle 1–3 KB) zamiast ciężkiego rastra w makietach i prototypach

Warto wiedzieć — bloby SVG w praktyce

Skąd „organiczny” wygląd

Punkty leżą na okręgu, ale każdy promień jest losowo odchylony o zmienność, a zamiast linii łamanej silnik prowadzi przez nie spline Catmull-Rom zamieniony na krzywe Béziera. Efekt to gładka, nieregularna plamka — bez ostrych rogów i bez powtarzalnego rytmu.

Ziarno = powtarzalność

Liczbowe ziarno (seed) inicjuje generator mt_srand(), więc ten sam seed przy tych samych ustawieniach da identyczny kształt — przydatne, gdy blob musi trafić do wersjonowanego projektu. Puste pole losuje ziarno przez random_int(): każdy przebieg daje inny kształt.

Waga i wydajność

Ścieżka ma tyle krzywych Béziera, ile punktu (4–32), więc kod zwykle mieści się w 1–3 KB — bez zależności i bez requestów. Mniej punktów i niższa zmienność dają krótszy d="…"; do tła sekcji zwykle wystarcza 8–12 punktów.

Dobre praktyki

W tle sekcji osadź blob jako position:absolute z obniżonym kryciem lub gradientem, a treść trzymaj w osobnej warstwie. Dodaj aria-hidden="true", gdy kształt jest czysto dekoracyjny — podglądowy SVG ma etykietę „Generated blob”, którą w produkcji warto zastąpić świadomą decyzją.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator SVG Blob – organiczne kształty bez edytora wektorowego

Blob (organiczny kształt) to nieprawidłowa, zaokrąglona figura używana w nowoczesnym web designie jako tło, ozdoba karty lub maska. Narzędzie generuje unikalne blobby przez losowe modyfikowanie węzłów krzywej Beziera – każde kliknięcie daje inny kształt.

generator SVG blob organiczne kształty SVG blob kształt CSS losowy kształt SVG

Algorytm generowania blobów

Bazowy wielokąt (np. 8 węzłów) na okręgu. Każdy węzeł przesuwa się losowo wzdłuż promienia (±20-40% od idealnego okręgu). Tangenty Beziera: obliczane dla gładkich przejść. Parametr "złożoność": liczba węzłów (4=prosty, 12=skomplikowany). "Gładkość": długość tangentu (0=kanciasty, 1=okrągły).

Warianty kształtów

Statyczny blob: pojedyncza ścieżka SVG . Animowany blob (morph): między 2-3 kształtami – blob "oddycha". CSS blob: clip-path: path("...") + CSS transition. Gradient fill: linearGradient lub radialGradient wewnątrz SVG.

Wypełnienia i efekty

Kolor jednorodny: fill="#FF6B6B". Gradient liniowy: 2-3 kolory w dowolnym kierunku. Gradient radialny: promieniowy, efekt "glow". Gradient siatki (mesh gradient): eksperymentalne CSS. Przezroczystość (opacity): nakładanie kilku blobów różnej przezroczystości. Filtr SVG: rozmycie (feGaussianBlur), cień.

Zastosowania w projekcie

Tła sekcji hero: blob jako backdrop z niskim opacity. Karty (cards): blob jako dekoracyjny element tła karty produktu. Maski obrazów: z blobem – zdjęcie w organicznym kształcie. Ilustracje: kilka blobów + ikony = nowoczesna illustracja flat. Loading screen: animowany blob jako loader.

Jak z okręgu powstaje ścieżka Beziera

Kształt powstaje w dwóch krokach. Najpierw węzły rozkładane są równomiernie na okręgu: dla n węzłów kąt kolejnego punktu to 360° / n, a jego położenie opisują wzory x = cx + r·cos θ oraz y = cy + r·sin θ. Promień r nie jest stały — każdy węzeł dostaje własny mnożnik z przedziału ±20–40% wartości bazowej. Układ współrzędnych jest taki jak w SVG, czyli oś Y rośnie w dół: kąt 90° wskazuje dół płótna, a 270° jego górę.

Z samych punktów powstałby wielokąt, dlatego drugi krok zamienia łamaną na krzywe sześcienne Beziera. Pojedynczy segment opisuje równanie B(t) = (1−t)³P0 + 3(1−t)²t·P1 + 3(1−t)t²·P2 + t³P3 dla t z przedziału od 0 do 1, gdzie P0 i P3 to węzły, a P1 i P2 to punkty kontrolne. Ich kierunek wyznacza wektor styczny liczony z sąsiadów węzła: d = (P(i+1) − P(i−1)) / 6. Punkt kontrolny leży w odległości s·d od węzła, gdzie s to parametr gładkości.

Gładkość 0 stawia punkty kontrolne dokładnie na węzłach i segmenty stają się proste, czyli obrys jest kanciasty. Im bliżej 1, tym dłuższe ramiona styczne i pełniejszy łuk. Całość zapisywana jest jako jedna ścieżka: M z punktem startowym, seria poleceń C z trzema parami współrzędnych na segment i Z na końcu. Kształt jest deterministyczny — te same węzły i te same mnożniki promienia dają identyczną ścieżkę, a losowość dotyczy wyłącznie momentu generowania.

Przykład: blob z 8 węzłów na płótnie 200 × 200

  1. Ustal płótno: viewBox 0 0 200 200, środek w punkcie (100, 100) i bazowy promień R = 72.
  2. Przyjmij 8 węzłów — kąt między kolejnymi wynosi 360° / 8 = 45°.
  3. Wylosuj mnożniki promienia w zakresie ±25%, czyli od 0,75 do 1,25. W tym przykładzie wychodzą promienie: 86, 58, 90, 61, 84, 56, 88 i 60.
  4. Przelicz węzły na współrzędne: (186, 100), (141, 141), (100, 190), (57, 143), (16, 100), (60, 60), (100, 12) oraz (142, 58). Skrajne wartości to 12 i 190, więc kształt mieści się w płótnie.
  5. Policz styczne. Dla węzła (186, 100) sąsiedzi to (142, 58) i (141, 141), więc d = ((141 − 142) / 6, (141 − 58) / 6) = (−0,17, 13,83). Przy gładkości s = 0,5 pierwszy punkt kontrolny wypada w (185,9, 106,9).
  6. Dla węzła (141, 141) wektor styczny d = ((100 − 186) / 6, (190 − 100) / 6) = (−14,33, 15) daje drugi punkt kontrolny (148,2, 133,5). Powtórz obliczenia dla pozostałych węzłów i zamknij ścieżkę poleceniem Z — otrzymasz jedną krzywą złożoną z 8 segmentów.

Parametry i ich wpływ na kształt

ParametrWartośćEfekt w ścieżce
Liczba węzłów44 segmenty C, obrys zbliżony do zaokrąglonego czworokąta
Liczba węzłów88 segmentów C, kompromis między prostotą a organicznością
Liczba węzłów1212 segmentów C, mocno pofalowany obrys do dużych powierzchni
Przesunięcie promienia±20%subtelne odchylenia, kształt wciąż blisko okręgu
Przesunięcie promienia±40%silna deformacja, obrys daleko od okręgu
Gładkość0punkty kontrolne na węzłach, segmenty proste
Gładkość0,5umiarkowane łuki, gładkie przejścia bez pętli
Gładkość1pełne ramiona styczne, największa krągłość obrysu

Jak wkleić wygenerowany blob do projektu

  • Trzymaj się płótna, w którym liczył generator — jeśli kształt powstał w kwadracie 200 × 200, wstaw go do SVG z takim samym viewBox. Przy prostokątnym kontenerze dodaj preserveAspectRatio, żeby blob wypełnił tło bez zniekształcenia proporcji.
  • Dobierz liczbę węzłów do rozmiaru — na tło sekcji i małe karty zwykle wystarcza 8 węzłów; 12 ma sens dopiero przy dużych powierzchniach, gdzie widać każdy załom.
  • Skracaj zapis ścieżki — zaokrąglij współrzędne do jednego lub dwóch miejsc po przecinku. Wygląd się nie zmieni, a atrybut d będzie krótszy i czytelniejszy w kodzie.
  • Nie opieraj na blobie czytelności — jasny kształt pod jasnym tekstem obniża kontrast, dlatego przy napisach zejdź z kryciem wypełnienia albo rozmyj obrys filtrem.
  • Traktuj blob jako dekorację — dodaj aria-hidden, żeby czytniki ekranu pominęły kształt, i wyłącz animację morfingu dla użytkowników, którzy ustawili ograniczenie ruchu w systemie.

Czego generator nie sprawdzi

  • Skalowania ścieżki w CSS — clip-path: path() interpretuje współrzędne w pikselach elementu, więc ta sama ścieżka na innym rozmiarze kontenera da inny kadr. Trzeba przeliczyć punkty albo użyć clipPath z własnym viewBox.
  • Kontrastu z treścią — narzędzie nie wie, jaki tekst i jaki kolor tła znajdą się na blobie, więc nie ostrzeże, że napis stanie się nieczytelny.
  • Atrakcyjności kształtu — losowe mnożniki przy ±40% potrafią dać obrys niechlujny i zapadnięty. Sensowna praktyka to wygenerowanie kilku wariantów i wybór najlepszego.
  • Zgodności animacji morfingu — przejście między dwiema ścieżkami interpoluje się tylko wtedy, gdy mają tę samą liczbę i kolejność węzłów. Przy różnej liczbie animacja się zerwie, a nie płynnie zamieni.

Najczęstsze pytania

Jak użyć bloba jako maski obrazu w CSS?

Skopiuj path: clip-path: path("M...") lub użyj SVG clipPath. CSS: .avatar { clip-path: path("M 100..."); }. Animacja: @keyframes morph { 0% { clip-path: path("M..."); } 100% { clip-path: path("M..."); } }. Oba paths muszą mieć tę samą liczbę węzłów.

Jak wyeksportować bloba do Figma?

Skopiuj kod SVG. W Figma: File → Import lub wklej jako wektor (Paste in Place). Figma importuje SVG jako edytowalne wektory. Możesz edytować węzły (Edit Vector) i zmieniać kolory. Alternatywnie: skopiuj path d="..." i utwórz Vector Shape ręcznie.

Ile węzłów (nodes) ma idealny blob?

6-8 węzłów: optymalnie – naturalny wygląd bez zbyt wielu "dziobów". Mniej niż 5: trójkąt lub kwadrat z zaokrągleniami, zbyt geometryczny. Więcej niż 12: skomplikowany, "nerwowy" kształt. Dla animowanego morph: parzysty liczba węzłów.

Czy można animować blob przez CSS bez JavaScript?

Tak: w SVG (SMIL) lub CSS @keyframes z clip-path. Ograniczenie: animacja CSS clip-path wymaga identycznej liczby punktów w kształcie startowym i końcowym. Lepsze rozwiązanie: JavaScript z interpolacją węzłów (flubber library).

Jak uniknąć "dziobów" (sharp spikes) w blobie?

Zwiększ parametr "gładkości" (smoothness) – dłuższe tangenty Beziera. Zmniejsz "variancję" – mniejsze przesunięcia węzłów od okręgu. Minimalny promień węzła: > 30% maksymalnego (żeby nie tworzyć wgłębień zbyt głębokich).

Ile węzłów powinien mieć blob, żeby wyglądał naturalnie?

Najbezpieczniejszy wybór to 8 węzłów. Cztery dają kształt zbyt przewidywalny i geometryczny, a dwanaście w małym rozmiarze bywa poszarpane, bo załomy są gęstsze niż szerokość elementu.

Dlaczego blob w clip-path nie skaluje się razem z elementem?

Bo clip-path: path() przyjmuje współrzędne w pikselach elementu i nie rozciąga ich przy zmianie rozmiaru. Jeśli potrzebujesz skalowania, wygeneruj blob w docelowym rozmiarze albo osadź go jako clipPath w SVG z viewBox.

Czym różni się gładkość 0 od gładkości 1?

Przy 0 punkty kontrolne leżą na węzłach, więc segmenty są prostymi i obrys wychodzi kanciasty. Przy 1 ramiona styczne mają pełną długość, obrys staje się maksymalnie okrągły, ale łatwiej o pętle na ostrych zmianach promienia.

Jak zrobić z bloba rozmyta plama lub efekt poświaty?

Najprościej nałożyć na kształt filtr rozmycia SVG albo rozmycie CSS i zejść z kryciem wypełnienia do kilkunastu procent. Pamiętaj o marginesie wokół ścieżki, bo rozmycie wychodzi poza jej obrys.

Czy da się wygenerować dokładnie ten sam blob ponownie?

Tak, o ile zachowasz wynik, czyli gotową ścieżkę albo same mnożniki promienia dla kolejnych węzłów. Kształt jest deterministyczny, więc te same dane wejściowe zawsze dadzą identyczny obrys, natomiast ponowne losowanie da inny wynik.

Powiązane narzędzia: generator wielokątów SVG, generator fal SVG i generator gradientów CSS.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!