Jak stworzyć pattern SVG?
W tym wpisie pokażę, jak utworzyć plik SVG zawierający powtarzający się wzór. Nastęnie użyję tego wzoru jako tła akapitu. Plik SVG będę tworzyć ręcznie, jednak na końcu wpisu podam odnośniki do kilku stron zawierających narzędza do wygenerowania wzoru SVG.
Co przedstawia mój wzór? Świąteczną babeczkę. Niektórzy widzą w nim jednak cycuszki. Oh, well... :)
Utworzenie pliku svg
Plik svg, od którego zacznę zabawę w tworzenie wzoru, zawiera definicję przestrzeni nazw (konieczną do tego, aby plik był poprawnie wyświetlony przez przeglądarkę) oraz szerokość i wysokość ustaloną na 100%:
|
|
Wzory definiowane w sekcji <defs>
służą do wypełnienia znajdujących się w grafice kształtów. Wskazuje się je przy użyciu funkcji url
(która przyjmuje identyfikator wzoru, czyli jego atrybut id
), której wartość zasili atrybut fill
w wypełnianym kształcie.
Element svg
będzie zawierał jeden kształt - prostokąt wypełniający cały dostępny obszar - dla którego ustawię atrybut fill
odnoszący się do elementu o identyfikatorze kropki
:
|
|
Element o id kropki
będzie się znajdował w sekcji defs
- i będzie to element <pattern>
definiujący pojedynczy fragment grafiki. Użyję również elementu style
do zdefiniowania kolorów:
|
|
Ten fragment - zajmujący obszar od (x = 0, y = 0) do (x = 35, y = 35) - będzie się powtarzał w pionie i w poziomie w całym obszarze wypełnianego prostkąta. Całość wygląda więc tak:
|
|
Tutaj można pobrać cały plik bg_circles.svg
Definiowanie tła dla akapitu
Używam atrybutu background-image
wskazującego na plik .svg. Wzór pojawi się jako tło elementu div
, który w poniższym przykładzie zawiera jeden nagłówek i jeden akapit:
|
|
Akapit (div) z tłem
Tytuł akapitu
A to jest styl z tłem.
Istnieje kilka inspirujących miejsc w sieci, skąd można ściągnąć gotowe (lub wygenerować losowe, bądź utworzyć własne) bardzo ciekawe graficznie wzory. Na przykład:
- Hero patterns
- Pattern ninja
- Bardzo prosty stripe generator
- Projekt na codepen