Jak przygotować szablon ikony SVG?

Instrukcja przygotowania ikony SVG w programie Inkscape

Aplikacja akceptuje wyłącznie ikony w rozmiarze 64x64px.

Przygotowanie ikony do symbolizacji(nie szablonu)

Wymagania:
1. Element główny svg musi mieć trzy atrybuty – width, height i viewBox
2. Viewbox musi mieć wartość 0 0 64 64
3. Wartości atrybutów width i height muszą mieć jednostkę px, a więc np. height="64px" zamiast height="64"

Wymagania spełnisz tworzą ikonę według poniższejinstrukcji:

Darmowy program Inkscape https://inkscape.org/release/inkscape-1.2.1/

1. Uruchom Inskcape
2. Określ rozmiar strony oraz ViewBox 64x64px:
Plik -> Właściwości dokumentu

3. Dodatkowo zaznacz opcję szachownica oraz ustaw maksymalną przezroczystość strony

4. Narysuj ikonę korzystając z narzędzi Inkscape

5. Zapisz ikonę: Plik -> zapisz w formacie Inkscape SVG (*.svg)

Przygotowanie ikony-szablon

Ikona mająca zostać szablonem, potrzebuje dodatkowej konfiguracji pliku SVG. Należy określić zwrotem param(). element wewnątrz svg, który, będzie mógł mieć zmieniony kolor.

Zadeklarować wypełnienie można bezpośrednio w środku pliku svg, poprzez param(fill), np. style="fill:param(fill)" lub fill="param(fill)" zamiast wypełnienia faktycznym kolorem.

Jeżeli zostanie skonfigurowany w ten sposób inny atrybut, np. stroke="param(fill)", to w przyszłości możne nastąpić brak kompatybilności ze zmianą np. obrysu.

Podsumowując:

  1. Dowolny element wewnątrz svg musi mieć zadeklarowany atrybut wypełnienia zwrotem param(fill) zamiast faktycznego koloru, np. #ffffff

  2. Przynajmniej jedna taka deklaracja już uznaje ikonę za szablon. Tych deklaracji może być dowolna liczba.

Przykładowy element wewnątrz svg który będzie wypełniany dynamicznym kolorem:

<path fill=”param(fill)” vector-effect=”non-scaling-stroke” transform=” translate(-4, -32)” d=”M 0 0 L 8 0 L 8 64 L 0 64 z” stroke-linecap=”round” />

Przykład zapisu całego pliku svg, kompatybilny z obslugą szablonów:

<svg width=”64px” height=”64px” viewBox=”0 0 64 64″ xmlns=”http://www.w3.org/2000/svg”>
<g clip-path=”url(#clip0_401_2)”>
<path d=”M170.667 0H0V170.667H170.667V0Z” style=”fill:param(fill)”/>
<path d=”M88.0387 88.2141V54.6372C77.7901 54.2695 67.6181 52.7753 57.9581 50.2759C54.2471 62.0746 52.0311 75.1055 51.5751 88.2141H88.0387Z” fill=”white”/>
<path d=”M65.9135 31.1297C64.2795 34.1706 62.7701 37.3912 61.3915 40.7537C69.9538 42.8968 78.9525 44.1898 88.0385 44.5393V7.92584C80.5411 10.6183 72.4355 19.0017 65.9135 31.1297Z” fill=”white”/>
<path d=”M48.3318 47.3892C40.8864 44.8441 33.8644 41.6788 27.4944 37.9482C16.0571 51.7269 8.80044 69.1493 7.70544 88.2143H41.5648C42.0114 73.9912 44.3344 60.0905 48.3318 47.3892Z” fill=”white”/>
<path d=”M51.7212 37.9074C53.3449 33.8734 55.1469 29.9969 57.1262 26.3166C60.3502 20.3195 63.8879 15.1489 67.6275 10.8849C55.1432 14.8149 43.8812 21.5665 34.5702 30.3898C38.9079 32.7856 43.5545 34.9068 48.4309 36.7324C49.5165 37.1387 50.6135 37.5306 51.7212 37.9074Z” fill=”white”/>
</g>
<defs>
<clipPath id=”clip0_401_2″>
<rect width=”64px” height=”64px” fill=”white”/>
</clipPath>
</defs>
</svg>

 

Czy artykuł był pomocny?