Merge pull request #1549 from simple-icons/develop

Release 11 new icons and 3 general package updates
This commit is contained in:
Johan Fagerberg 2019-07-22 20:46:03 +02:00 committed by GitHub
commit d2063d9e79
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 448 additions and 84 deletions

4
.gitignore vendored
View file

@ -41,3 +41,7 @@ Temporary Items
# NPM dependencies
node_modules/
# Files generated by build script
icons/*.js
/index.js

74
.svgo.yml Normal file
View file

@ -0,0 +1,74 @@
multipass: true
plugins:
# Set <path> precision to 3 decimal places
- convertPathData:
floatPrecision: 3
# Sort attributes on the <SVG>
- sortAttrs:
order:
- role
- viewBox
xmlnsOrder: end
# Convert basic shapes (such as <circle>) to <path>, including <arc>
- convertShapeToPath:
convertArcs: true
# Compound all <path>s into one
- mergePaths:
force: true
# Keep the <title>
- removeTitle: false
# Don't remove the role="img" attribute and automatically
# add it to the SVG if it's not
- addAttributesToSVGElement:
attributes:
- role: img
- removeUnknownsAndDefaults:
keepRoleAttr: true
# Enable everything else
- removeDoctype
- removeXMLProcInst
- removeComments
- removeMetadata
- removeXMLNS
- removeEditorsNSData
- cleanupAttrs
- inlineStyles
- minifyStyles
- convertStyleToAttrs
- cleanupIDs
- prefixIds
- removeRasterImages
- removeUselessDefs
- cleanupNumericValues
- cleanupListOfValues
- convertColors
- removeNonInheritableGroupAttrs
- removeUselessStrokeAndFill
- removeViewBox
- cleanupEnableBackground
- removeHiddenElems
- removeEmptyText
- moveElemsAttrsToGroup
- moveGroupAttrsToElems
- collapseGroups
- convertTransform
- removeEmptyAttrs
- removeEmptyContainers
- removeUnusedNS
- removeDesc
- removeDimensions
- removeAttrs
- removeAttributesBySelector
- removeElementsByAttr
- addClassesToSVGElement
- removeStyleElement
- removeScriptElement
- removeOffCanvasPaths
- reusePaths

View file

@ -74,10 +74,9 @@ Using your preferred tool you should:
All icons in Simple Icons have been optimized with the [SVGO tool](https://github.com/svg/svgo). This can be done in one of two ways:
* The [SVGO Command Line Tool](https://github.com/svg/svgo)
* Install SVGO
* With npm: `npm install -g svgo`
* With Homebrew: `brew install svgo`
* Run the following command `svgo --precision=3 -i icon.svg -o icon.min.svg`
* Install dependencies
* With npm: `npm install` from the root of this repository
* Run the following command `npm run svgo -- icons/file-to-optimize.svg`
* Check if there is a loss of quality in the output, if so increase the precision.
* The [SVGOMG Online Tool](https://jakearchibald.github.io/svgomg/)
* Click "Open SVG" and select an SVG file.

View file

@ -42,11 +42,12 @@ The API can then be used as follows:
```javascript
const simpleIcons = require('simple-icons');
console.log(simpleIcons['Simple Icons']);
console.log(simpleIcons.get('Simple Icons'));
/*
{
title: 'Simple Icons',
slug: 'simpleicons',
hex: '111111',
source: 'https://simpleicons.org/',
svg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">...</svg>',
@ -66,6 +67,7 @@ console.log(icon);
/*
{
title: 'Simple Icons',
slug: 'simpleicons',
hex: '111111',
source: 'https://simpleicons.org/',
svg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">...</svg>',

View file

@ -340,6 +340,11 @@
"hex": "FF5722",
"source": "https://www.blogger.com"
},
{
"title": "Boeing",
"hex": "1D439C",
"source": "https://upload.wikimedia.org/wikipedia/commons/4/4f/Boeing_full_logo.svg"
},
{
"title": "Boost",
"hex": "F69220",
@ -360,6 +365,11 @@
"hex": "0AA0FF",
"source": "https://brand.ai/brand-ai/style"
},
{
"title": "Brave",
"hex": "FB542B",
"source": "https://brave.com/brave-branding-assets/"
},
{
"title": "Buddy",
"hex": "1A86FD",
@ -455,6 +465,11 @@
"hex": "5881D8",
"source": "https://commons.wikimedia.org/wiki/File:Clojure_logo.svg"
},
{
"title": "CloudBees",
"hex": "1997B5",
"source": "https://www.cloudbees.com/"
},
{
"title": "Cloudflare",
"hex": "F38020",
@ -615,6 +630,11 @@
"hex": "0066DC",
"source": "http://press.dailymotion.com/?page_id=346"
},
{
"title": "Dassault Systèmes",
"hex": "005386",
"source": "https://www.3ds.com/statics/menu/2/assets/img/logo/3ds-dark.svg"
},
{
"title": "DAZN",
"hex": "F8F8F5",
@ -1265,6 +1285,11 @@
"hex": "EA8220",
"source": "https://haxe.org/foundation/branding.html"
},
{
"title": "Helm",
"hex": "277A9F",
"source": "https://helm.sh"
},
{
"title": "HERE",
"hex": "48DAD0",
@ -1335,6 +1360,11 @@
"hex": "CC2929",
"source": "https://support.humblebundle.com/hc/en-us/articles/202742060-Bundle-Logos"
},
{
"title": "Iata",
"hex": "004E81",
"source": "https://upload.wikimedia.org/wikipedia/commons/f/f7/IATAlogo.svg"
},
{
"title": "iCloud",
"hex": "3693F3",
@ -2060,6 +2090,11 @@
"hex": "F80000",
"source": "https://www.oracle.com/webfolder/s/brand/identity/index.html"
},
{
"title": "ORCID",
"hex": "A6CE39",
"source": "https://orcid.org/trademark-and-id-display-guidelines"
},
{
"title": "Origin",
"hex": "F56C2D",
@ -2575,6 +2610,11 @@
"hex": "FB6022",
"source": "https://www.sogou.com/"
},
{
"title": "Solus",
"hex": "5294E2",
"source": "https://getsol.us/branding/"
},
{
"title": "Songkick",
"hex": "F80046",
@ -2910,6 +2950,11 @@
"hex": "36465D",
"source": "https://www.tumblr.com/logo"
},
{
"title": "Turkish Airlines",
"hex": "C70A0C",
"source": "https://www.turkishairlines.com/tr-int/basin-odasi/logo-arsivi/index.html"
},
{
"title": "Twilio",
"hex": "F22F46",
@ -2980,6 +3025,11 @@
"hex": "000000",
"source": "https://unity.com/"
},
{
"title": "Unreal Engine",
"hex": "313131",
"source": "https://www.unrealengine.com/en-US/branding"
},
{
"title": "Unsplash",
"hex": "000000",
@ -3097,8 +3147,8 @@
},
{
"title": "WebStorm",
"hex": "00CDD7",
"source": "https://www.jetbrains.com/company/brand/#section=images-logos"
"hex": "000000",
"source": "https://www.jetbrains.com/company/brand/logos/"
},
{
"title": "WeChat",

1
icons/boeing.svg Normal file
View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Boeing icon</title><path d="M6.905 17.353a6.051 6.051 0 0 1-3.759-1.301C4.35 13.337 6.8 9.694 10.143 6.136a6.07 6.07 0 0 1 2.262 7.728c-1.06-.49-2.05-1.105-2.888-1.88l1.831 3.438a6.058 6.058 0 0 1-4.443 1.931M.83 11.278a6.075 6.075 0 0 1 6.076-6.077c.9 0 1.752.196 2.522.546-3.293 2.91-5.843 6.293-7.352 9.217A6.051 6.051 0 0 1 .83 11.278m12.34 2.912a6.862 6.862 0 0 0 .642-2.912c0-2.4-1.225-4.515-3.085-5.753a49.606 49.606 0 0 1 3.583-3.342 31.172 31.172 0 0 0-4.2 2.975 6.907 6.907 0 0 0-8.436 10.625C.35 18.646.12 20.944 1.286 21.72c1.248.832 3.962-.677 5.59-3.134 0 0-2.518 2.273-3.902 1.751-.851-.322-.854-1.624-.152-3.492a6.871 6.871 0 0 0 4.084 1.338c1.893 0 3.606-.76 4.853-1.992l.245.462C15.013 16.408 24 16.17 24 16.17c0-.431-5.95-.04-10.832-1.98"/></svg>

After

Width:  |  Height:  |  Size: 843 B

1
icons/brave.svg Normal file
View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Brave icon</title><path d="M21.618 6.028l.623 1.786a.5.5 0 0 1 .011.289l-.025.097-.072.274-.257.979-.781 2.972c-.613 2.337-1.015 3.876-1.112 4.259-.527 2.087-.945 2.812-2.296 3.766-1.184.836-3.653 2.514-4.128 2.811a4.76 4.76 0 0 0-.162.107l-.187.128a4.07 4.07 0 0 1-.573.34c-.225.105-.44.164-.659.164s-.434-.059-.659-.164a4.07 4.07 0 0 1-.573-.34l-.187-.128a6.998 6.998 0 0 0-.162-.107c-.475-.298-2.944-1.975-4.128-2.811-1.351-.954-1.769-1.679-2.296-3.766-.097-.383-.499-1.922-1.107-4.242l-.785-2.99-.257-.979-.072-.274-.025-.097a.5.5 0 0 1 .011-.289l.623-1.786-.467-1.152a.495.495 0 0 1 .096-.523l.122-.13c.097-.103.207-.22.329-.347.346-.363.71-.738 1.077-1.105.351-.352.823-.542 1.374-.607a4.566 4.566 0 0 1 1.388.067L8.113.167a.491.491 0 0 1 .37-.168h7.038c.142 0 .276.061.37.168l1.811 2.063a4.565 4.565 0 0 1 1.388-.067c.552.065 1.023.254 1.374.607a78.307 78.307 0 0 1 1.495 1.548c.163.175.2.379.128.557l-.467 1.152zm-.992.149a.494.494 0 0 1 .009-.349l.418-1.031-.226-.238a66.931 66.931 0 0 0-1.062-1.09c-.174-.174-.442-.282-.791-.323a3.626 3.626 0 0 0-1.033.046c-.08.014-.153.029-.216.044l-.069.017a.49.49 0 0 1-.502-.15L15.297.988H8.704L6.847 3.103a.494.494 0 0 1-.502.15 3.871 3.871 0 0 0-.285-.061 3.663 3.663 0 0 0-1.033-.046c-.349.041-.618.149-.791.323a71.363 71.363 0 0 0-1.288 1.328l.418 1.031a.5.5 0 0 1 .009.349l-.634 1.82.059.225.257.979.781 2.973a879.38 879.38 0 0 1 1.114 4.268c.474 1.878.776 2.401 1.908 3.201 1.17.827 3.627 2.495 4.083 2.782.057.036.117.075.192.127l.187.128c.191.129.318.207.436.262.105.049.187.071.243.071s.137-.022.243-.071c.118-.055.246-.133.436-.262l.187-.128c.076-.051.135-.091.192-.127.456-.286 2.913-1.955 4.083-2.782 1.132-.8 1.434-1.323 1.908-3.201.098-.388.499-1.925 1.11-4.251l.785-2.99.257-.979.059-.225-.634-1.82zm-3.665-1.953s2.578 3.128 2.578 3.796-.324.845-.65 1.192l-1.933 2.06c-.183.195-.563.49-.34 1.022s.554 1.209.187 1.895c-.367.686-.997 1.145-1.4 1.069s-1.35-.573-1.698-.799-1.452-1.141-1.452-1.49c0-.35 1.141-.977 1.352-1.12s1.172-.695 1.192-.911c.02-.217.012-.28-.272-.816s-.795-1.25-.71-1.725c.085-.475.909-.722 1.497-.945s1.72-.644 1.862-.709c.141-.066.105-.128-.324-.169s-1.644-.203-2.192-.049-1.485.387-1.56.51c-.076.124-.143.128-.065.555s.479 2.475.518 2.839c.039.364.115.604-.276.694s-1.049.245-1.275.245-.884-.156-1.275-.245c-.391-.09-.315-.33-.276-.694s.44-2.412.518-2.839c.078-.427.011-.431-.065-.555s-1.012-.357-1.56-.51-1.764.009-2.192.049c-.428.041-.465.103-.324.169s1.274.486 1.862.709c.588.223 1.412.47 1.497.945s-.426 1.19-.71 1.725c-.284.535-.291.599-.272.816s.981.769 1.192.911c.211.143 1.352.77 1.352 1.12s-1.104 1.263-1.452 1.49-1.295.724-1.698.799c-.403.076-1.033-.382-1.4-1.069s-.037-1.363.187-1.895-.157-.827-.34-1.022l-1.933-2.06c-.326-.347-.65-.524-.65-1.192 0-.668 2.578-3.796 2.578-3.796s2.175.417 2.468.417c.293 0 .929-.245 1.515-.442S12 4.001 12 4.001s.391.001.978.198 1.222.442 1.515.442c.293 0 2.468-.417 2.468-.417zm-1.932 11.964c.16.1.062.289-.083.392s-2.098 1.621-2.288 1.789c-.19.168-.468.445-.658.445s-.468-.277-.658-.445c-.19-.168-2.143-1.686-2.288-1.789s-.243-.292-.083-.392c.16-.1.659-.353 1.348-.711s1.547-.662 1.681-.662.992.304 1.681.662c.689.358 1.188.611 1.347.711z"/></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

1
icons/cloudbees.svg Normal file
View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>CloudBees icon</title><path d="M3.55 6.41c-.003-1.191.731-2.277 1.88-2.793a3.513 3.513 0 013.511.375l2.516-2.351C9.18-.27 5.82-.54 3.223.977.629 2.497-.578 5.434.27 8.184c.843 2.746 3.539 4.64 6.601 4.64H9.45V9.512H6.871c-1.832-.004-3.32-1.39-3.32-3.102zm13.513 4.727H14.48v3.312h2.582c1.833 0 3.317 1.387 3.317 3.098 0 1.715-1.484 3.101-3.317 3.101-1.832 0-3.32-1.382-3.324-3.093V6.41c0-1.582-.625-3.11-1.761-4.285l-2.52 2.352a2.94 2.94 0 01.734 1.933v11.145c0 3.539 3.079 6.41 6.871 6.406 3.793 0 6.868-2.871 6.868-6.414 0-3.54-3.075-6.41-6.867-6.41zm0 0"/></svg>

After

Width:  |  Height:  |  Size: 643 B

View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Dassault Systèmes icon</title><path d="M21.161 8.04c1.063.192 1.93.34 2.129.79.223.508-.935.54-1.518.551-2.797.054-4.483.11-4.568 1.06-.11 1.223 1.195 2.454 2.484 4.181 1.177 1.576 2.515 3.132 2.13 4.582-.481 1.807-2.696 2.19-4.805 2.19-2.02.001-3.935-.323-4.739-.482-1.001-.198-.852-.693-.585-.852.298-.178 2-.182 3.184-.252.974-.058 3.802-.056 4.243-.78.54-.888-.783-2.406-1.999-3.996-1.517-1.983-3.183-4.031-2.301-5.527 1.14-1.935 4.48-1.802 6.345-1.465 M7.482 10.987c1.771-.104 3.923.206 5.13 1.13.602.46 1.024 1.305.78 2.274-.698 2.75-3.301 6.078-9.085 8.635-1.84.813-3.286 1.124-3.59.906-.326-.234.623-2.05.908-2.652.924-1.95 2.077-3.85 3.202-5.59.414-.64 1.054-1.75 1.633-1.661.518.08-.089 1.26-.488 2.01-.671 1.258-2.52 4.755-1.91 4.964 1.348.462 7.673-4.35 6.74-7.029-.432-1.244-3.178-1.362-4.908-1.362-.786 0-2.505.186-2.6-.417-.102-.555 2.61-1.115 4.188-1.208M11.851.034c2.066-.098 4.51.342 4.965 1.8.747 2.388-3.036 5.872-6.332 7.581-.808.42-1.298.535-1.502.506-.195-.027-.225-.221-.162-.355.118-.251.649-.763 1.36-1.32 3.711-2.897 4.918-5.024 4.217-5.885-.449-.552-2.33-.936-4.283-.936-.53 0-1.924.123-2.067-.367C7.93.655 9.8.13 11.85.034"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

1
icons/helm.svg Normal file
View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Helm icon</title><path d="M16.688 17.969c.388-.272 1.274.325 1.98 1.332s.963 2.044.574 2.316c-.388.272-1.275-.325-1.98-1.332s-.963-2.044-.574-2.316zm-9.284 0c-.388-.272-1.274.325-1.98 1.332s-.963 2.044-.574 2.316c.388.272 1.275-.325 1.98-1.332s.963-2.044.574-2.316zm4.637 1.578c-.474 0-.858.997-.858 2.227s.384 2.227.858 2.227.858-.997.858-2.227-.384-2.227-.858-2.227zM16.688 6.031c.388.272 1.274-.325 1.98-1.332s.963-2.044.574-2.316c-.388-.272-1.275.325-1.98 1.332s-.963 2.044-.574 2.316zm-9.284 0c-.388.272-1.274-.325-1.98-1.332s-.963-2.044-.574-2.316c.388-.272 1.275.325 1.98 1.332s.963 2.044.574 2.316zm4.637-1.578c-.474 0-.858-.997-.858-2.227s.384-2.227.858-2.227.858.997.858 2.227-.384 2.227-.858 2.227zM.471 9.066h1.653v2.325h1.864V9.066h1.653v6.245H3.988v-2.479H2.124v2.479H.471V9.066zm6.552 0h4.035v1.384H8.675v.98h2.037v1.384H8.675v1.115h2.479v1.384H7.023V9.068zm5.342 0h1.653v4.862h2.364v1.384h-4.016V9.067zm5.092 0h1.71l.98 2.594.346 1.018h.038l.346-1.018.942-2.594h1.71v6.245h-1.537v-1.845c0-.16.008-.336.024-.528s.034-.389.053-.591.042-.399.067-.591c.026-.192.048-.365.067-.519h-.038l-.519 1.46-.865 2.104h-.615l-.865-2.104-.5-1.46h-.038l.067.519c.025.192.048.389.067.591.019.202.037.399.053.591s.024.368.024.528v1.845h-1.518V9.066z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
icons/iata.svg Normal file
View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Iata icon</title><path d="M3.418 19.73l.98-4.885H5.99l-.973 4.884zm4.807-1.6h1.012l-.26-1.792zm-2.235 1.6l2.412-4.885h1.57l.99 4.884H9.487l-.088-.58H7.827l-.25.58zm6.439 0l.547-3.674h-1.394l.238-1.233h4.281l-.237 1.233h-1.328L14 19.73zm5.354-1.6h1.012l-.26-1.792zm-2.23 1.6l2.407-4.885h1.57l.99 4.884h-1.487l-.072-.58h-1.57l-.25.58zM24 9.324h-7.495c-.276 1.372-1.228 2.517-3.125 3.308.216.652.951 1.255 1.715 1.255h4.065c.62 0 1.112-.52 1.311-.94H16.34c-.254-.044-.265-.25-.01-.271h4.06c.525 0 1-.448 1.277-.935h-4.73c-.237-.039-.237-.238 0-.277h4.769c.48 0 .918-.558 1.1-.934h-5.232c-.26-.033-.26-.277 0-.282H22.9c.415 0 .819-.454 1.101-.924zm-24 0h7.495c.27 1.372 1.228 2.517 3.12 3.308-.216.652-.952 1.255-1.715 1.255H4.84c-.62 0-1.112-.52-1.311-.94H7.66c.249-.044.265-.25.01-.271H3.607c-.525 0-1-.448-1.272-.935H7.07c.238-.039.238-.238 0-.277H2.3c-.481 0-.918-.558-1.1-.934h5.232c.26-.033.26-.277 0-.282H1.106c-.42 0-.824-.454-1.106-.924zM9.569 5.21c.277.238.586.448.918.58.282-.553.675-1.028 1.129-1.449a4.05 4.05 0 0 0-2.047.869zM8.242 7.937h1.67a5.358 5.358 0 0 1 .454-1.909 4.021 4.021 0 0 1-1.002-.63 3.83 3.83 0 0 0-1.122 2.539zM11.87 6.37v1.566H10.2a4.62 4.62 0 0 1 .414-1.815c.399.144.83.238 1.256.25zm2.561-1.161a3.346 3.346 0 0 1-.918.58 5.243 5.243 0 0 0-1.134-1.443 3.993 3.993 0 0 1 2.052.863zm1.322 2.727h-1.665a5.096 5.096 0 0 0-.442-1.909c.354-.166.69-.376.984-.63a3.723 3.723 0 0 1 1.123 2.539zM12.14 6.37v1.566h1.66c0-.631-.155-1.234-.415-1.815a4.017 4.017 0 0 1-1.245.25zm-2.571 4.57c.277-.216.597-.454.918-.57.299.559.67 1.018 1.129 1.433a4.05 4.05 0 0 1-2.047-.863zM8.242 8.208h1.67c.039.691.182 1.3.454 1.924a4.202 4.202 0 0 0-1.002.625 3.864 3.864 0 0 1-1.122-2.55zm3.628 1.57v-1.57H10.2c.01.63.154 1.255.414 1.814.399-.144.83-.232 1.256-.244zm2.561 1.162a3.41 3.41 0 0 0-.918-.57 5.113 5.113 0 0 1-1.134 1.433 4.088 4.088 0 0 0 2.052-.863zm1.322-2.732h-1.665a5.075 5.075 0 0 1-.442 1.924c.354.166.674.366.984.625a3.806 3.806 0 0 0 1.123-2.55zm-3.612 1.57v-1.57h1.66c0 .63-.155 1.244-.415 1.814a4.01 4.01 0 0 0-1.245-.244zm-.271-5.276a4.387 4.387 0 0 0-1.123 1.382c.36.122.741.222 1.123.222zm.271 0c.443.365.846.846 1.112 1.382a3.26 3.26 0 0 1-1.112.222zm-.271 7.146a4.23 4.23 0 0 1-1.123-1.388c.36-.128.741-.2 1.123-.2zm.271.011c.443-.37.846-.868 1.112-1.4a3.715 3.715 0 0 0-1.112-.198z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

1
icons/orcid.svg Normal file
View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>ORCID icon</title><path d="M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zM7.369 4.378c.525 0 .947.431.947.947s-.422.947-.947.947a.95.95 0 0 1-.947-.947c0-.525.422-.947.947-.947zm-.722 3.038h1.444v10.041H6.647V7.416zm3.562 0h3.9c3.712 0 5.344 2.653 5.344 5.025 0 2.578-2.016 5.025-5.325 5.025h-3.919V7.416zm1.444 1.303v7.444h2.297c3.272 0 4.022-2.484 4.022-3.722 0-2.016-1.284-3.722-4.097-3.722h-2.222z"/></svg>

After

Width:  |  Height:  |  Size: 513 B

1
icons/solus.svg Normal file
View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Solus icon</title><path d="M7.453 0c-.18.587-.369 1.167-.565 1.75A11.638 11.638 0 0 0 0 12.364a11.638 11.638 0 0 0 .516 3.403l-.339.598L0 16.73l.279.143a3.448 3.448 0 0 0 .741.222A11.638 11.638 0 0 0 2 18.868c4.034.343 8.55.512 12.446-.056 3.192-.463 5.94-1.423 7.735-3.117.252-.233.474-.474.674-.722.019-.038.037-.053.06-.076.011 0 .026-.037.038-.052.015 0 .03-.038.041-.057.008 0 .015-.038.023-.038.33-.444.587-.892.801-1.31l.181-.365-.365-.365a5.936 5.936 0 0 0-.361-.35A11.638 11.638 0 0 0 11.635.722a11.638 11.638 0 0 0-3.211.463C7.96.508 7.596.041 7.453 0zm.365 1.637C9.06 3.82 10.13 5.06 11.454 7.457c.132 1.524.67 9.45.727 10.181-.392-.037-2.485-.24-5.104-.515-1.43-.147-2.899-.316-4.092-.49l-1.9-.447c2.149-3.787 5.551-9.727 6.737-14.548zm4.543 6.18s4.991 3.927 7.092 8.73c-2.56 1.26-4.916 1.098-6.361 1.09 1.023-2.634 1.023-6.21-.73-9.82zm3.456 2.184a45.14 45.14 0 0 1 2.91.907c1.768.629 3.417 1.49 4.365 2.364a6.956 6.956 0 0 1-2.91 2.91c.151-1.495-.39-2.933-1.456-4.002-.787-.787-1.822-1.453-2.91-2.183zm6.707 6.478c-2.352 1.667-5.126 2.68-7.965 3.112a41.026 41.026 0 0 1-3.715.34h-.323a53.48 53.48 0 0 1-3.727 0 85.763 85.763 0 0 1-4.178-.23h-.003c2.555 3.255 6.993 4.893 11.092 4.102a11.367 11.367 0 0 0 4.498-1.852 11.638 11.638 0 0 0 .007 0c.312-.214.614-.444.903-.685a11.638 11.638 0 0 0 .038-.037 11.555 11.555 0 0 0 3.376-4.762zM2.511 19.584a11.638 11.638 0 0 0 .023.038c-.008 0-.015-.038-.023-.038z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Turkish Airlines icon</title><path d="M.168 13.988c.272 1.623.86 3.115 1.69 4.423 3.095-.863 5.817-2.495 6.785-6.132 1.065-4.003-.15-8.199-3.057-10.422C1.626 4.364-.657 9.077.168 13.988m23.664-3.975c1.098 6.534-3.308 12.722-9.844 13.819-1.1.185-2.19.214-3.245.103a12.023 12.023 0 0 1-8.46-4.892l19.428-5.57c.279-.08.207-.349-.024-.333l-8.145.569c1.148-1.108 2.021-2.467 1.915-4.345-.214-3.043-3.311-6.013-9.071-7.967a12.016 12.016 0 0 1 6.87-1.333c5.228.548 9.663 4.512 10.576 9.95"/></svg>

After

Width:  |  Height:  |  Size: 568 B

1
icons/unrealengine.svg Normal file
View file

@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Unreal Engine icon</title><path d="M11.999 0C5.427 0 .1 5.373.1 12c0 6.628 5.327 12 11.899 12 6.571 0 11.899-5.372 11.899-12 0-6.627-5.328-12-11.9-12zm0 .528c3.038 0 5.895 1.194 8.043 3.36A11.446 11.446 0 0 1 23.374 12c0 3.064-1.183 5.945-3.332 8.112A11.254 11.254 0 0 1 12 23.472a11.253 11.253 0 0 1-8.044-3.36A11.447 11.447 0 0 1 .623 12c0-3.064 1.184-5.945 3.332-8.112A11.252 11.252 0 0 1 12 .528zm-.595 4.223c-1.938.52-3.732 1.516-6.123 4.258-2.392 2.742-1.938 5.006-1.938 5.006s.66-1.558 2.247-3.199c.752-.777 1.314-1.037 1.698-1.038a.598.598 0 0 1 .632.602v5.567c0 .55-.354.669-.68.663-.279-.005-.537-.102-.537-.102 1.63 2.368 5.526 2.7 5.526 2.7l1.711-1.828.04.035 1.568 1.336c2.866-1.703 4.248-4.86 4.248-4.86-1.279 1.353-2.094 1.669-2.578 1.667-.429-.003-.597-.255-.597-.255-.023-.117-.063-1.81-.078-3.505-.014-1.756-.001-3.513.087-3.518.494-.929 2.073-2.802 2.073-2.802-2.948.581-4.556 2.513-4.556 2.513-.475-.374-1.444-.311-1.444-.311.454.25.907.976.907 1.578v5.92s-.99.873-1.752.873c-.451 0-.729-.247-.881-.449a1.182 1.182 0 0 1-.15-.258V8.033a.634.634 0 0 1-.363.123c-.162 0-.33-.082-.444-.32-.086-.18-.141-.45-.141-.842 0-1.35 1.525-2.243 1.525-2.243z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>WebStorm icon</title><path d="M4.65 19.351h14.7V4.65H4.65v14.701zm6.901-1.726H5.926v-.945h5.625v.945zM15.676 6.33c.824 0 1.648.3 2.279.795l-.705 1.05c-.449-.359-1.005-.57-1.574-.6-.496 0-.796.225-.796.57 0 .404.271.555 1.319.81 1.231.345 1.951.795 1.951 1.875 0 1.245-.945 1.95-2.25 1.95-.961-.03-1.891-.391-2.625-1.005l.779-.976c.57.45 1.125.75 1.846.75.555 0 .9-.225.9-.6 0-.346-.227-.525-1.23-.795-1.246-.33-2.04-.676-2.04-1.905v-.044c0-1.125.9-1.875 2.146-1.875zm-8.625.12l.944 3.6 1.05-3.6h1.05l1.051 3.6.929-3.6h1.471l-1.8 6.225h-1.171l-1.004-3.6-1.02 3.6H7.396L5.595 6.45h1.456zM24 8.13l-1.919-4.755L20.88.495 15.301 0l-.871.84-1.11-.42-3.525 1.875L6 .045l-6 2.46 3.225 19.171L16.5 24l.84-4.26.15-.091H4.35V4.35h15.3v14.025l4.35-2.58-2.625-4.92"/></svg>
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>WebStorm icon</title><path d="M0 0v24h24V0H0zm17.889 2.889c1.444 0 2.667.444 3.667 1.278l-1.111 1.667c-.889-.611-1.722-1-2.556-1s-1.278.389-1.278.889v.056c0 .667.444.889 2.111 1.333 2 .556 3.111 1.278 3.111 3v.056c0 2-1.5 3.111-3.611 3.111-1.5-.056-3-.611-4.167-1.667l1.278-1.556c.889.722 1.833 1.222 2.944 1.222.889 0 1.389-.333 1.389-.944v-.056c0-.556-.333-.833-2-1.278-2-.5-3.222-1.056-3.222-3.056v-.056c0-1.833 1.444-3 3.444-3zm-16.111.222h2.278l1.5 5.778 1.722-5.778h1.667l1.667 5.778 1.5-5.778h2.333l-2.833 9.944H9.723L8.112 7.277l-1.667 5.778H4.612L1.779 3.111zm.5 16.389h9V21h-9v-1.5z"/></svg>

Before

Width:  |  Height:  |  Size: 838 B

After

Width:  |  Height:  |  Size: 679 B

235
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "simple-icons",
"version": "1.11.0",
"version": "1.12.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -187,6 +187,12 @@
"integrity": "sha512-rx29MMkRdVmzunmiA4lzBYJNnXsW/PhG4kMBy2ATsYaDjGGR75dCFEVVROKpNwlVdcUX3xxlghKQOeDPBJobng==",
"dev": true
},
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
"integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==",
"dev": true
},
"JSV": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz",
@ -824,6 +830,39 @@
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
"dev": true
},
"coa": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
"integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
"dev": true,
"requires": {
"@types/q": "^1.5.1",
"chalk": "^2.4.1",
"q": "^1.1.2"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
}
}
},
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@ -868,8 +907,7 @@
"version": "2.20.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
"dev": true,
"optional": true
"dev": true
},
"compare-versions": {
"version": "3.4.0",
@ -955,12 +993,55 @@
"nth-check": "~1.0.1"
}
},
"css-select-base-adapter": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
"integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
"dev": true
},
"css-tree": {
"version": "1.0.0-alpha.33",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz",
"integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==",
"dev": true,
"requires": {
"mdn-data": "2.0.4",
"source-map": "^0.5.3"
}
},
"css-what": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
"integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
"dev": true
},
"csso": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz",
"integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==",
"dev": true,
"requires": {
"css-tree": "1.0.0-alpha.29"
},
"dependencies": {
"css-tree": {
"version": "1.0.0-alpha.29",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz",
"integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==",
"dev": true,
"requires": {
"mdn-data": "~1.1.0",
"source-map": "^0.5.3"
}
},
"mdn-data": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz",
"integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==",
"dev": true
}
}
},
"cssom": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz",
@ -3909,6 +3990,12 @@
"object-visit": "^1.0.0"
}
},
"mdn-data": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
"integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==",
"dev": true
},
"mem": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz",
@ -4030,9 +4117,9 @@
}
},
"mixin-deep": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dev": true,
"requires": {
"for-in": "^1.0.2",
@ -4302,6 +4389,18 @@
"isobject": "^3.0.1"
}
},
"object.values": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz",
"integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==",
"dev": true,
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.12.0",
"function-bind": "^1.1.1",
"has": "^1.0.3"
}
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@ -4629,6 +4728,12 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
},
"q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
"dev": true
},
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
@ -4940,9 +5045,9 @@
"dev": true
},
"set-value": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
"integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"dev": true,
"requires": {
"extend-shallow": "^2.0.1",
@ -5230,6 +5335,12 @@
"tweetnacl": "~0.14.0"
}
},
"stable": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
"integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
"dev": true
},
"stack-utils": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz",
@ -5401,6 +5512,71 @@
}
}
},
"svgo": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz",
"integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==",
"dev": true,
"requires": {
"chalk": "^2.4.1",
"coa": "^2.0.2",
"css-select": "^2.0.0",
"css-select-base-adapter": "^0.1.1",
"css-tree": "1.0.0-alpha.33",
"csso": "^3.5.1",
"js-yaml": "^3.13.1",
"mkdirp": "~0.5.1",
"object.values": "^1.1.0",
"sax": "~1.2.4",
"stable": "^0.1.8",
"unquote": "~1.1.1",
"util.promisify": "~1.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"css-select": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz",
"integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==",
"dev": true,
"requires": {
"boolbase": "^1.0.0",
"css-what": "^2.1.2",
"domutils": "^1.7.0",
"nth-check": "^1.0.2"
}
},
"domutils": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
"dev": true,
"requires": {
"dom-serializer": "0",
"domelementtype": "1"
}
}
}
},
"symbol-tree": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
@ -5629,7 +5805,6 @@
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
"integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
"dev": true,
"optional": true,
"requires": {
"commander": "~2.20.0",
"source-map": "~0.6.1"
@ -5639,8 +5814,7 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"optional": true
"dev": true
}
}
},
@ -5651,38 +5825,15 @@
"dev": true
},
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
"integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dev": true,
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
"is-extendable": "^0.1.1",
"set-value": "^0.4.3"
},
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
"is-extendable": "^0.1.0"
}
},
"set-value": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
"dev": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
"is-plain-object": "^2.0.1",
"to-object-path": "^0.3.0"
}
}
"set-value": "^2.0.1"
}
},
"unique-string": {
@ -5694,6 +5845,12 @@
"crypto-random-string": "^1.0.0"
}
},
"unquote": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
"integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
"dev": true
},
"unset-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",

View file

@ -1,6 +1,6 @@
{
"name": "simple-icons",
"version": "1.11.0",
"version": "1.12.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://www.simpleicons.org",
"keywords": [
@ -21,16 +21,21 @@
"editorconfig-checker": "^2.0.8",
"jest": "^24.1.0",
"jsonlint2": "^1.7.1",
"svglint": "^1.0.4"
"svglint": "^1.0.4",
"svgo": "^1.3.0",
"uglify-js": "^3.6.0"
},
"scripts": {
"build": "node scripts/build-package.js",
"clean": "rm icons/*.js index.js",
"jsonlint": "jsonlint _data/simple-icons.json -q -V .jsonlintschema",
"svglint": "svglint icons/* --ci",
"wslint": "editorconfig-checker --ignore",
"prepublishOnly": "node scripts/prepublish.js",
"postpublish": "rm icons/*.js index.js",
"prepublishOnly": "npm run build",
"postpublish": "npm run clean",
"test": "jest",
"pretest": "npm run prepublishOnly",
"posttest": "npm run postpublish"
"posttest": "npm run postpublish",
"svgo": "svgo --config=./.svgo.yml"
}
}

56
scripts/build-package.js Normal file
View file

@ -0,0 +1,56 @@
#!/usr/bin/env node
/**
* @fileoverview
* Compiles our icons into static .js files that can be imported in the browser
* and are tree-shakeable.
* The static .js files go in icons/{filename}.js.
* Also generates an index.js that exports all icons by title, but is not tree-shakeable
*/
const fs = require("fs");
const util = require("util");
const minify = require("uglify-js").minify;
const dataFile = "../_data/simple-icons.json";
const indexFile = `${__dirname}/../index.js`;
const iconsDir = `${__dirname}/../icons`;
const indexTemplateFile = `${__dirname}/templates/index.js`;
const data = require(dataFile);
const { titleToFilename } = require("./utils");
// Local helper functions
function escape(value) {
return value.replace(/'/g, "\\'");
}
function iconToKeyValue(icon) {
return `'${icon.title}':${iconToObject(icon)}`;
}
function iconToObject(icon) {
return `{title:'${escape(icon.title)}',slug:'${escape(icon.slug)}',svg:'${escape(icon.svg)}',get path(){return this.svg.match(/<path\\s+d="([^"]*)/)[1];},source:'${escape(icon.source)}',hex:'${icon.hex}'}`;
}
// 'main'
const icons = [];
data.icons.forEach(icon => {
const filename = titleToFilename(icon.title);
icon.svg = fs.readFileSync(`${iconsDir}/${filename}.svg`, "utf8");
icon.slug = filename;
icons.push(icon)
// write the static .js file for the icon
fs.writeFileSync(
`${iconsDir}/${filename}.js`,
`module.exports=${iconToObject(icon)};`
);
});
// write our generic index.js
const indexTemplate = fs.readFileSync(indexTemplateFile, "utf8");
const { error, code } = minify(util.format(indexTemplate, icons.map(iconToKeyValue).join(',')));
if (error) {
console.error(error);
process.exit(1);
} else {
fs.writeFileSync(indexFile, code);
}

View file

@ -1,32 +0,0 @@
#!/usr/bin/env node
/**
* @fileoverview
* Compiles our icons into static .js files that can be imported in the browser
* and are tree-shakeable.
* The static .js files go in icons/{filename}.js.
* Also generates an index.js that exports all icons by title, but is not tree-shakeable
*/
const dataFile = "../_data/simple-icons.json";
const indexFile = `${__dirname}/../index.js`;
const iconsDir = `${__dirname}/../icons`;
const data = require(dataFile);
const fs = require("fs");
const { titleToFilename } = require("./utils");
const icons = {};
data.icons.forEach(icon => {
const filename = titleToFilename(icon.title);
icon.svg = fs.readFileSync(`${iconsDir}/${filename}.svg`, "utf8");
icon.path = icon.svg.match(/<path\s+d="([^"]*)/)[1];
icons[icon.title] = icon;
// write the static .js file for the icon
fs.writeFileSync(
`${iconsDir}/${filename}.js`,
`module.exports=${JSON.stringify(icon)};`
);
});
// write our generic index.js
fs.writeFileSync(indexFile, `module.exports=${JSON.stringify(icons)};`);

View file

@ -0,0 +1,17 @@
var icons = {%s};
module.exports = icons;
module.exports.get = function(targetName) {
if (icons[targetName]) {
return icons[targetName];
} else {
var normalizedName = targetName.toLowerCase();
for (var iconName in icons) {
var icon = icons[iconName];
if ((icon.title && icon.title.toLowerCase() === normalizedName)
|| (icon.slug && icon.slug === normalizedName)) {
return icon;
}
}
}
}

View file

@ -26,4 +26,8 @@ icons.forEach(icon => {
expect(typeof subject.path).toBe('string');
expect(subject.path).toMatch(/[MmZzLlHhVvCcSsQqTtAa0-9-,.\s]/g);
});
test(`${icon.title} has a "slug"`, () => {
expect(typeof subject.slug).toBe('string');
});
});

View file

@ -1,5 +1,6 @@
const { icons } = require('../_data/simple-icons.json');
const simpleIcons = require('../index.js');
const { titleToFilename } = require("../scripts/utils.js");
icons.forEach(icon => {
const subject = simpleIcons[icon.title];
@ -25,4 +26,21 @@ icons.forEach(icon => {
expect(typeof subject.path).toBe('string');
expect(subject.path).toMatch(/^[MmZzLlHhVvCcSsQqTtAa0-9-,.\s]+$/g);
});
test(`${icon.title} has a "slug"`, () => {
expect(typeof subject.slug).toBe('string');
});
test(`${icon.title} can be found by it's title`, () => {
const found = simpleIcons.get(icon.title);
expect(found).toBeDefined();
expect(found.title).toEqual(icon.title);
});
test(`${icon.title} can be found by it's slug`, () => {
const name = titleToFilename(icon.title);
const found = simpleIcons.get(name);
expect(found).toBeDefined();
expect(found.title).toEqual(icon.title);
});
});