| * Add "license" object to the data file JSON schema * Add license to GNU and GNU social As an example, based on the discussion in: https://github.com/simple-icons/simple-icons/issues/1167 * Use `"additionalProperties": false` in JSON schema ... to detect properties in the data file that shouldn't be there. For more info, see: https://json-schema.org/understanding-json-schema/reference/object.html * Update JSON scheme descriptions * Switch from jsonlint2 to jsonschema This gives is better support for advanced features of JSON schema. A couple of clarifications: - There does exist a jsonschema-cli package, but it is rather limited and crucially doens't exit with a non-zero exit code if there is an error. (it is also pretty old and not maintained), hence the custom script. - I renamed .jsonlintschema 1) for clarity (lint is no longer accurate) and 2) the .json extension allows easy imorting in the script and 3) it adds syntax highlighting. - The script outputs the number of errors in the end because the output gets pretty big pretty quickly, this way you can see it easily from your CLI. - We could customize how the errors are logged, but I feel that is beyond this PR. * Two minor changes * Use `oneOf` to require URL for custom licenses The updated configuration allows the `"license"` field to be either 1) a SPDX license, optional with a URL 2) a "custom" license with a required URL Read more about the "oneOf" feature of jsonschema at: https://json-schema.org/understanding-json-schema/reference/combining.html#oneof * Include license field in Contributing Guidelines | ||
|---|---|---|
| _data | ||
| .github | ||
| icons | ||
| images | ||
| scripts | ||
| tests | ||
| _config.yml | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitpod.yml | ||
| .jsonschema.json | ||
| .npmignore | ||
| .svglint-ignored.json | ||
| .svglintrc.js | ||
| .svgo.yml | ||
| CNAME | ||
| composer.json | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| Gemfile | ||
| Gemfile.lock | ||
| index.html | ||
| LICENSE.md | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| site_script.js | ||
| stylesheet.css | ||
Simple Icons
Over 1500 Free SVG icons for popular brands. See them all on one page at SimpleIcons.org. Contributions, corrections & requests can be made on GitHub. Started by Dan Leech.
Usage
General Usage
Icons can be downloaded as SVGs directly from our website - simply click the icon you want, and the download should start automatically.
CDN Usage
Icons can be served from a CDN such as JSDelivr or Unpkg. Simply use the simple-icons npm package and specify a version in the URL like the following:
<img height="32" width="32" src="https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/[ICON NAME].svg" />
<img height="32" width="32" src="https://unpkg.com/simple-icons@v4/icons/[ICON NAME].svg" />
Where [ICON NAME] is replaced by the icon name, for example:
<img height="32" width="32" src="https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/simpleicons.svg" />
<img height="32" width="32" src="https://unpkg.com/simple-icons@v4/icons/simpleicons.svg" />
These examples use the latest major version. This means you won't receive any updates following the next major release. You can use @latest instead to receive updates indefinitely. However, this will result in a 404 error if the icon is removed.
Node Usage
The icons are also available through our npm package. To install, simply run:
$ npm install simple-icons
The API can then be used as follows:
const simpleIcons = require('simple-icons');
// Get a specific icon by its name as:
simpleIcons.get('[ICON NAME]');
// For example:
const icon = simpleIcons.get('simpleicons');
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>',
    path: 'M12 12v-1.5c-2.484 ...'
}
*/
Alternatively you can import the needed icons individually. This is useful if you are e.g. compiling your code with webpack and therefore have to be mindful of your package size:
// Import a specific icon by its name as:
require('simple-icons/icons/[ICON NAME]');
// For example:
const icon = require('simple-icons/icons/simpleicons');
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>',
    path: 'M12 12v-1.5c-2.484 ...'
}
*/
Lastly, the simpleIcons object is also enumerable.
This is useful if you want to do a computation on every icon:
const simpleIcons = require('simple-icons');
for (const title in simpleIcons) {
    const icon = simpleIcons.get(title);
    // do stuff
}
TypeScript Usage
There are also TypeScript type definitions for the Node package. To use them, simply run:
$ npm install @types/simple-icons
PHP Usage
The icons are also available through our Packagist package. To install, simply run:
$ composer require simple-icons/simple-icons
The package can then be used as follows:
<?php
echo file_get_contents('path/to/package/icons/simple-icons.svg');
// <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">...</svg>
?>
Third Party Extensions
Drupal
Icons are also available as a Drupal module created by Phil Wolstenholme.
Flutter
Icons are also available as a Flutter package created by @jlnrrg.
Home Assistant
Icons are also available as a Home Assistant plugin created by @vigonotion.
Kirby
Icons are also available as a Kirby plugin created by @runxel.
React
Icons are also available as a React package created by @wootsbot.
Svelte
Icons are also available as a Svelte package created by @wootsbot.
Vue
Icons are also available as a Vue package created by @noahlitvin.
WordPress
Icons are also available as a WordPress plugin created by @tjtaylo.