Problem/Motivation
Currently the SVG iconsʼ markup (see sourcecode) is filled with Adobe's own proprietary-purpose metadata, which is useless for web browsers:

Also, their viewbox has an incorrect size which makes proper CSS alignment difficult:

Steps to reproduce
Inspect the DOM of a page and check the SVG markup.
Proposed resolution
- Use only dynmically sizing measurements (eg. em) not pixels
- Set only one dimensions to make the other one automatically calculated when resizing
- Clean up the CSS, use "currentColor"
- Remove padding within the SVG
Initially proposed resolution
Use Inkscape to set their viewbox properly and SVGO online converter to cleanup the unnecessary code while maintaining the exactly same visual appearance.
Remaining tasks
…
User interface changes
More nicely sized icons to display beside the link texts.
Comments
Comment #2
baluertlComment #3
baluertlComment #4
baluertlComment #5
baluertlAlso updating module's CSS to the new sizes.
Comment #6
neslee canil pinto@Balu Ertl I think 8px for the icon looks very small.
Comment #7
baluertl@Neslee thanks for your time taking a look on my proposal. Could you please elaborate your suggestion to use instead?
Comment #8
bskibinskiJust a heads up, I want to add a patch later, i'm reviewing this module in our project as we speak.
We shouldn't use pixels at all, it should be set in EM's, so it dynamically will take the appropriate size.
The viewbox in the latest patch is also incorrect (the icon itself is a perfect square), and we should add the width/height attributes to the SVG itself, that way, you only have to define one dimension and the other attribute can be "auto" (height, .5em; width: auto;)
Also some other improvements, but these could be well out of scope of this ticket:
could be to clean up the CSS a bit more, use "currentColor" instead of a hardcoded fill/stroke color, and set them all on the class "ext" themselves, instead of introducing extra specificity with the `.ext path {stroke}` styles.
Lastly the padding inside the SVG is also strange and should be removed or at least replaced by margin, and should be dependent on the setting that defines if the icon is in front or after the link.
I'm reviewing this module now, and I'll try to get a patch ready as soon as possible, probably tomorrow.
Comment #9
bskibinskiWhen trying to fix the SVG viewbox and cleanup, i've noticed a lot of legacy code, and inability to really fix some stylingproblems. This might be a bit out of scope of the ticket, but I think this will improve the theming for everybody, and usability of the module, and bring it into 2020 with modern styling standards (For SVG). And also improve the accessibility.
JS
Admin settings
CSS:
Complete rewrite, because a lot was really old fashioned.
<i>element also isn't used anymore for font-awesomeCreated an update hook, to set the newly create classes textfields.
In a nutshell
- Font-awesome should stay the same (no class changes), but the "generic" class isn't hardcoded anymore (extlink).
- SVG has better classes, and more modern styling, with better separation of concerns, and less specificity.
- Improved Admin form expierience.
- Clean SVG's with modern accessibility standards, that don't "blow up" when CSS fails.
Here's an example how the SVG icons look without any custom styling, just the module itself:

Comment #10
bskibinskiChanged to need review
Comment #12
bskibinskiIE support:
Almost identical patch as #9, except i've added an @support rule so the "width: auto" is ignored by IE11.
This prevents IE11 breaking the images (they become full width with "auto") if people want different sizes, they will have to add width & heights. But it looks good in IE11 now too out of the box:
Comment #14
bskibinskiI removed some "conditional" code in the admin form because I think the tests fail on it. And updated the schema's/install's to match. And fixed a typo, should work now.
This patch is made for the latest DEV branch.
https://www.drupal.org/files/issues/2021-02-12/3186584-cleanup-svg-icon-...
I've also made the patch to apply to the 8.x.1.5 branch, so you can use/test it straight away
https://www.drupal.org/files/issues/2021-02-12/3186584-cleanup-svg-icon-...
Comment #16
neslee canil pinto@bskibinski I think tests are failing and patch in #14 is not able to apply, so i will be moving this back to needs work.
Comment #18
ralphvdhoudt commentedRe-applied patch because it didn't apply against 1.6
Comment #21
ralphvdhoudt commentedComment #22
ralphvdhoudt commentedForgot some code
Comment #23
sander.bras commentedBecause of a recent accessibility audit, we had to change the way the text "this link/mail is external" is set.
aria-labelledby on the svg tag is not supported by all screenreaders.
We went for the most reliable way, of just including a 'visually-hidden' next to the icon, that is supported by all screenreaders.
The SVG icon still has it's own title, so visual users can hover over the icon, and get a popup with the text.
But we've also added aria-hidden=true to the SVG itself, so that screenreaders won't pronounce the text twice.
We do see further improvements to accessibility for the placement of the text (it should always be after the link, despite of the position settings), but that is out of scope for this ticket, and we'll make a new one for that.
Comment #24
kopeboyVery good, thank you!
The patch was not applying to latest dev version, so this is the new one.
Comment #25
kopeboyActually there was an error at extlink.install: the update was re-declared but I think it should replace the previous extlink_update_8103
I'm noob but after this my updb worked.
I consider this reviewed as I only re-applied @sander.bras work from #23 and tested that it worked.
Comment #26
kopeboyConsider this one
Comment #27
anybody@kopeboy thank you, but please provide it as MR.
Comment #30
smustgrave commentedThis will need an issue summary update as not super clear what's being proposed. Seems to be adding new settings.
Comment #31
smustgrave commentedComment #34
smustgrave commentedCan the IS be updated, else going to close this one out.
Comment #35
baluertlIt would be a pity to lose the results of such many people's efforts so I rather put my other tasks aside to jump in here.
Unfortunately, the default 1.x branch of the issue repository got spoiled in comments #21 or #22 which caused extra work to upgrade the repo. Now the issue branch is up-to-date with

8.x-1.x. As the latest patch from #26 did not apply automatically, I had to manually copy over all its changes. Perhaps I made some mistakes as it doesn't seem to work for me for some reason:I would kindly request the original patch author @bskibinski to take a look and provide us directions what needs to be set on a site to have the icons appear beside the links.
Comment #37
baluertlSome further comments:
8.x-1.xbranch intentionally because that was closer to these old patches uploaded here (thus lower chance of conflicts). Once a working solution gets accepted, then we will need to port that to the current default2.xbranch too.Comment #38
baluertlComment #39
smustgrave commentedCurrent solution should land in 2.0.x first as there have been a ton of changes there. Will be very different
And the user bskibinski is already checked at the bottom
Comment #42
edurenye commentedI created a PR for 2.0.x, but it still needs some work on the SVGs, I think.
Comment #43
edurenye commentedHere is the PR as a patch.
Comment #46
smustgrave commentedSeems more like a feature request looking at the patch. Am tagging for issue summary as the proposed solution doesn't match.
Comment #48
smustgrave commentedSo I removed the adobe stuff per the title.
Not sure why the additional stuff was needed so will leave the ticket open but think it can be closed.
Comment #49
smustgrave commentedComment #50
smustgrave commentedComment #51
smustgrave commented