* 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.