Skip to content

SVG Icons Not Displaying Correctly in Multi-Tabs (ID collision) #45

Description

@mostafaznv

I don't know if this is a bug report or a feature request because I think it is not directly related to nuxt-icons. However, there is a problem, and I reported it here in the hope that someone comes up with a solution.

Describe the bug
When I use an SVG icon in 2 or more tab items, it doesn't display correctly.

To Reproduce

  1. Define a multi-tab using vuetify.
  2. Place the same SVG into all tabs
  3. Observe that only the first item displays correctly

Expected behavior
I expect all other SVGs in the other tabs to display correctly.

Desktop:

  • OS: Mac
  • Browser: Chrome/Firefox (It works with Safari but it has some other issues)
  • Version: Latest Versions

Reproduction link:
https://stackblitz.com/edit/github-remtxs-pnzwnx

Some Reaserch:
I believe that nuxt-icons should prefix IDs of defs with a unique value for each render.
Currently, it renders something like this for all SVGs in all tabs:

<defs><linearGradientid="i" x1="64.421" x2="79.438" y1="71.286" y2="184.675" gradientUnits="userSpaceOnUse">...</linearGradient<linearGradientid="j" x1="52" x2="60.884" y1="46.942" y2="108.476" gradientUnits="userSpaceOnUse">...</linearGradient<linearGradientid="k" x1="107.644" x2="116.528" y1="46.942" y2="108.476" gradientUnits="userSpaceOnUse">...</linearGradient</defs>

Since all of them are using the same ID (i, j, k), I think Chrome/Firefox only consider the defs of the first SVG, and when the first SVG is gone, all other SVGs face with the problem.




nuxt-icons.mp4

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions