# Einbinden von SVG-Icons in neuem Theme

**URL:** https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774
**Category:** Themes & Design
**Created:** [31. Juli 2019 um 13:56 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774 "2019-07-31T13:56:57Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![kzap](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/kzap/32/23038_2.png) [@kzap](https://forum.shopware.com/u/kzap)
#### Post date: [31. Juli 2019 um 13:56 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/1 "2019-07-31T13:56:57Z")

</div>

Hallo zusammen,

ich suche mir jetzt seit 2 Tagen den Wolf… Ich hoffe ihr könnt mir den entscheidenen Tipp geben.&nbsp;  
Ich habe einen Vagrantserver aufgesetzt mache gerade die ersten Entwicklungsversuche eines neuen Themes.

Ich würde gerne neue/andere Icons (SVG-Dateien) einsetzen, als die bereits vorhandenen.&nbsp;  
Die icon.html.twig - Datei enthält einen Pfad auf die Icon-SVGs. Diese werden an direkt in den Quellcode geschrieben.  
Sieht im Original so aus:  
{{ source(’@Storefront/…/dist/assets/icon/’~ pack ~’/’~ name ~’.svg’, ignore\_missing = true) }}

Jetzt habe ich mir gedacht, so naiv wie ich bin, in den Pfad einfach meine neuen SVGs zu legen bzw. den Pfad in meinem Theme anzupassen und einen neuen Ordner machen.  
Egal was ich mache, funktioniert nicht. Ich komme ehrlich gesagt nicht einmal darauf, wo die SVGs auf meinem Server liegen, die verwendet werden

**Die Dateien liegen hier ab:**

Sowohl in der kompilierten theme-Datei:&nbsp;  
/home/vagrant/shopware-dev/public/theme/484c0fee1058491d557aa683794b15bc/assets/icon

als auch im storefront-Ordner:  
/home/vagrant/shopware-dev/public/bundles/storefront/assets/icon

als auch in meinem-theme-Ordner:  
/home/vagrant/shopware-dev/public/bundles/MEINTHEMENAME/assets/icon

Egal wo ich die Icons überschreibe (habe es mit hartem Überschreiben auf dem Server versucht) werden die alten Icons angezeigt.

Hat jemand einen Tipp für mich, wo oder wie ich den Austausch hinbekomme?  
Vielen Dank schonmal  
Karina

&nbsp;

&nbsp;

&nbsp;

&nbsp;

---

<div class="post-metadata">

### Author: ![TAB10](https://avatars.discourse-cdn.com/v4/letter/t/c68b51/32.png) [@TAB10](https://forum.shopware.com/u/TAB10)
#### Post date: [1. August 2019 um 13:47 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/2 "2019-08-01T13:47:55Z")

</div>

Hi.

Kann sein das es irgendwie mit der Vererbung noch nicht ganz hinhaut.  
Eine Themeanpassung, bzw. generell Anpassungen sollten mMn. als Plugin gelöst werden.  
Das findet alles unter /custom/plugins/DeinPlugin statt.

Siehe hier:  
[https://docs.shopware.com/en/shopware-platform-dev-en/internals/plugins/plugin-themes?category=shopware-platform-dev-en/internals/plugins](https://docs.shopware.com/en/shopware-platform-dev-en/internals/plugins/plugin-themes?category=shopware-platform-dev-en/internals/plugins)

Was mich extrem verwirrt sind die Ordnerstrukturen.  
Es gibt ja das StorefrontAssets Plugin:  
[Shopware 6: Using custom CSS and JavaScript in the Storefront](https://docs.shopware.com/en/shopware-platform-dev-en/how-to/storefront-assets)

welches sich aber vom Theme (per console erstellt) unterscheidet.  
Javascripte werden zB. auch nur in der StorefrontAssets Struktur bei mir kompiliert.

Was die Icons angeht hab ich auch mal getestet. das geht zZ. nur wenn unter:  
/platform/src/Storefront/Resources/dist/assets/icon

ein “Set” ablegt und dieses in der icon.html.twig zugewiesen wird. Wenn ich das Set aber im Plugin ablege gehts nicht.  
Die ganze Ordner Strukturierung ist für mich grade auch sehr verwirrend. (Resources/dist,Resources/storefront/dist, public… usw… blick da auch noch nicht wirklich durch)

&nbsp;

&nbsp;

&nbsp;

---

<div class="post-metadata">

### Author: ![kzap](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/kzap/32/23038_2.png) [@kzap](https://forum.shopware.com/u/kzap)
#### Post date: [3. August 2019 um 12:23 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/3 "2019-08-03T12:23:20Z")

</div>

Hallo thom,

habe es über mein theme leider nicht geschafft, die Vererbung der Icons so hinzubekommen, dass die Icons aus meinem Pluginordner gezogen werden.  
Ich habe auf meinem Vagrant-Server jetzt erstmal die Icons in diesem Pfad getauscht, das hat geklappt und mein Template nutzt jetzt die neuen Icons.

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/4/4cfc6c0dcc850266b714c6f256ecdc46a0fef8fc.png)

Wenn jemand herausfindet, wie ich die Icons in meinem eigenen Theme ablegen kann und diese dann genommen werden, würde ich mich freuen.&nbsp;

Viele Grüße  
Karina

---

<div class="post-metadata">

### Author: ![ncnKG](https://avatars.discourse-cdn.com/v4/letter/n/977dab/32.png) [@ncnKG](https://forum.shopware.com/u/ncnKG)
#### Post date: [17. Oktober 2019 um 13:17 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/4 "2019-10-17T13:17:32Z")

</div>

> [@kzap schrieb:](https://forum.shopware.com/profile/30656/kzap "kzap")
> 
> Hallo thom,
> 
> habe es über mein theme leider nicht geschafft, die Vererbung der Icons so hinzubekommen, dass die Icons aus meinem Pluginordner gezogen werden.  
> Ich habe auf meinem Vagrant-Server jetzt erstmal die Icons in diesem Pfad getauscht, das hat geklappt und mein Template nutzt jetzt die neuen Icons.
> 
> ![image](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/4/4cfc6c0dcc850266b714c6f256ecdc46a0fef8fc.png)
> 
> Wenn jemand herausfindet, wie ich die Icons in meinem eigenen Theme ablegen kann und diese dann genommen werden, würde ich mich freuen.&nbsp;
> 
> Viele Grüße  
> Karina

&nbsp;Hi Karina,&nbsp;

Versuche mal das–\>&nbsp;&nbsp;{% sw\_icon ‚SVG\_NAME‘ %}&nbsp;

#Beispiel Code nicht getestet:&nbsp;

&nbsp;{% block layout\_header\_actions\_account\_widget\_dropdown\_button %}  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type=„button“  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id=„accountWidget“  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data-offcanvas-account-menu=„true“  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data-toggle=„dropdown“  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aria-haspopup=„true“  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aria-expanded=„false“  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aria-label=„{{ „account.myAccount“|trans }}“\>  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {% sw\_icon ’ **optionalSVG** ’ %}  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  
&nbsp; &nbsp; &nbsp; &nbsp; {% endblock %}

Mit freundlichen Grüßen  
Amin Nayerhabibi  
NCN KG

---

<div class="post-metadata">

### Author: ![pclaisse](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/pclaisse/32/13548_2.png) [@pclaisse](https://forum.shopware.com/u/pclaisse)
#### Post date: [3. Dezember 2019 um 14:56 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/5 "2019-12-03T14:56:10Z")

</div>

Falls Jemand auf das gleiche “Problem” stöst, hier einmal eine Lösung:

1. “storefront/utilities/icon.html.twig” im eigenen Theme überladen:

2. Icons in dem entsprechenden Pfad anlegen:

z.B.: MeinThemePlugin/src/Resources/app/storefront/dist/assets/icon/meinpack/custom\_icon.svg

1. Icon mit “Packet”-Angabe einbinden:

&nbsp;

---

<div class="post-metadata">

### Author: ![wnbartke](https://avatars.discourse-cdn.com/v4/letter/w/bbe5ce/32.png) [@wnbartke](https://forum.shopware.com/u/wnbartke)
#### Post date: [6. Februar 2020 um 13:58 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/6 "2020-02-06T13:58:37Z")

</div>

@pclaisse‍ Vielen Dank! Das hat sehr geholfen.

Ein Frage ist bei mir noch aufgetaucht. Hast du eine Möglichkeit gefunden mit dieser Methode Icons vom “default” zu überschreiben?

Damit meine ich etwas in Richtung:

```
{{ source('@MeinTheme/../app/storefront/dist/assets/icon/'~ pack ~'/'~ name ~'.svg', ignore_missing = false) }}

```

Viele Grüße!

Alex

---

<div class="post-metadata">

### Author: ![TAB10](https://avatars.discourse-cdn.com/v4/letter/t/c68b51/32.png) [@TAB10](https://forum.shopware.com/u/TAB10)
#### Post date: [7. November 2020 um 14:39 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/7 "2020-11-07T14:39:13Z")

</div>

Hallo.

Weiss jemand wie sich das bei einem “APP” Theme verhält?

Das scheint in APP Themes nicht wirklich zu funktionieren.

Es lassen sich im Symfony Profiler die vererbten Twigfiles auch nicht öffnen (zb @Storefront/storefront/utilities/icon.html.twig), also die sind nicht klickbar wie bei einem Plugin?!

Scheint sich irgendwie anders zu verhalten in einem APP Theme?! Weiss da jemand mehr und hat einen Tipp?

Gruß  
Thom

---

<div class="post-metadata">

### Author: ![md\_dm](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/md_dm/32/8939_2.png) [@md\_dm](https://forum.shopware.com/u/md_dm)
#### Post date: [29. April 2021 um 18:09 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/8 "2021-04-29T18:09:00Z")

</div>

Ich habe mal zu dieser Thematik eine Frage.  
Wenn ich das richtig verstehe definiere ich meine Icons via:  
…  
/@MeinTheme/…/app/storefront/dist/assets/icon/meinpaket/…  
{% else %}  
/@Storefront/…/app/storefront/dist/assets/icon/default/…  
…

Bedeutet dass dann, wenn ich in meinem Paket z.B. nur 10 Custom SVG’s habe, greift das System auf die Default-SVG Icons zurück und zeigt mir z.B. im Warenkorb das X oder irgendwo anders das Standardicon von SW6 an?

---

<div class="post-metadata">

### Author: ![c.haus](https://avatars.discourse-cdn.com/v4/letter/c/cc9497/32.png) [@c.haus](https://forum.shopware.com/u/c.haus)
#### Post date: [20. Mai 2021 um 09:57 UTC](https://forum.shopware.com/t/einbinden-von-svg-icons-in-neuem-theme/60774/9 "2021-05-20T09:57:10Z")

</div>

Mittlerweile ist dies über den Namespace gelöst. Dort trägt man sein Theme ein und er holt sich dann das entsprechende Icon.

Hier ein Auszug aus der icon.html.twig `{{ source('@' ~ namespace ~ '/../app/storefront/dist/assets/icon/'~ pack ~'/'~ name ~'.svg', ignore_missing = true) }}`
