1
0
Fork 0
forked from forgejo/forgejo

Improve <SvgIcon> to make it output svg node and optimize performance (#23570)

Before, the Vue `<SvgIcon>` always outputs DOM nodes like: 

```html
<span class="outer-class">
    <svg class="class-name-defined" ...></svg>
</span>
```

The `span` is redundant and I guess such layout and the inconsistent
`class/class-name` attributes would cause bugs sooner or later.

This PR makes the `<SvgIcon>` clear, and it's faster than before,
because it doesn't need to parse the whole SVG string.

Before: 

<details>

![image](https://user-images.githubusercontent.com/2114189/226156474-ce2c57cd-b869-486a-b75b-1eebdac8cdf7.png)

</details>

After:

![image](https://user-images.githubusercontent.com/2114189/226155774-108f49ed-7512-40c3-94a2-a6e8da18063d.png)

---------

Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
wxiaoguang 2023-03-23 11:24:16 +08:00 committed by GitHub
parent 1d35fa0e78
commit 389e83f7eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 77 additions and 24 deletions

View file

@ -2420,18 +2420,6 @@ a.ui.basic.label:hover {
height: 2.1666em !important;
}
span.green .svg {
color: var(--color-green);
}
span.red .svg {
color: var(--color-red);
}
span.purple .svg {
color: var(--color-purple);
}
.migrate .svg.gitea-git {
color: var(--color-git);
}