simple-icons/README.md

170 lines
6.6 KiB
Markdown
Raw Normal View History

2017-10-15 09:05:21 +03:00
<p align="center">
<a href="https://simpleicons.org/">
<img src="https://simpleicons.org/icons/simpleicons.svg" alt="Simple Icons" width=64 height=64>
</a>
<h3 align="center">Simple Icons</h3>
<p align="center">
Over 2000 Free SVG icons for popular brands. See them all on one page at <a href="https://simpleicons.org">SimpleIcons.org</a>. Contributions, corrections & requests can be made on GitHub.</p>
2017-10-15 09:05:21 +03:00
</p>
2017-04-23 18:55:38 +03:00
<p align="center">
<a href="https://github.com/simple-icons/simple-icons/actions?query=workflow%3AVerify+branch%3Adevelop"><img src="https://img.shields.io/github/workflow/status/simple-icons/simple-icons/Verify/develop?logo=github" alt="Build status" /></a>
<a href="https://www.npmjs.com/package/simple-icons"><img src="https://img.shields.io/npm/v/simple-icons.svg?logo=npm" alt="NPM version" /></a>
<a href="https://packagist.org/packages/simple-icons/simple-icons"><img src="https://img.shields.io/packagist/v/simple-icons/simple-icons?logo=packagist&logoColor=white" alt="Build status" /></a>
</p>
2017-09-17 04:54:54 +03:00
## Usage
2017-04-23 18:55:38 +03:00
> :information_source: We ask that all users read our [legal disclaimer](./DISCLAIMER.md) before using icons from Simple Icons.
2017-10-15 09:09:03 +03:00
### General Usage
2017-09-17 04:54:54 +03:00
Icons can be downloaded as SVGs directly from [our website](https://simpleicons.org/) - simply click the icon you want, and the download should start automatically.
2017-10-17 20:35:02 +03:00
### CDN Usage
Icons can be served from a CDN such as [JSDelivr](https://www.jsdelivr.com/package/npm/simple-icons) or [Unpkg](https://unpkg.com/browse/simple-icons/). Simply use the `simple-icons` npm package and specify a version in the URL like the following:
2017-10-17 20:35:02 +03:00
```html
2021-05-30 12:13:36 +03:00
<img height="32" width="32" src="https://cdn.jsdelivr.net/npm/simple-icons@v5/icons/[ICON SLUG].svg" />
<img height="32" width="32" src="https://unpkg.com/simple-icons@v5/icons/[ICON SLUG].svg" />
```
2021-03-03 13:57:33 +03:00
Where `[ICON SLUG]` is replaced by the [slug] of the icon you want to use, for example:
```html
2021-05-30 12:13:36 +03:00
<img height="32" width="32" src="https://cdn.jsdelivr.net/npm/simple-icons@v5/icons/simpleicons.svg" />
<img height="32" width="32" src="https://unpkg.com/simple-icons@v5/icons/simpleicons.svg" />
2017-10-17 20:35:02 +03:00
```
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.
2017-09-17 04:54:54 +03:00
### Node Usage
The icons are also available through our npm package. To install, simply run:
```shell
npm install simple-icons
2017-09-17 04:54:54 +03:00
```
2021-03-03 13:57:33 +03:00
The API can then be used as follows, where `[ICON SLUG]` is replaced by a [slug]:
2017-09-17 04:54:54 +03:00
```javascript
2017-09-17 04:54:54 +03:00
const simpleIcons = require('simple-icons');
2021-03-03 13:57:33 +03:00
// Get a specific icon by its slug as:
// simpleIcons.Get('[ICON SLUG]');
// For example:
const icon = simpleIcons.Get('simpleicons');
2017-09-17 04:54:54 +03:00
```
2017-10-15 08:25:22 +03:00
export bundled icons from one entry point and add types (#6767) * export all icons from a single file (#6189) * fix: revert formatting, add exports to package.json * feat: generate icons.js and add relevant exports field * add minifyAndWrite Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix: minifyAndWrite build * add type: commonjs Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * simplify exports Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * add "require" in exports * place objects directly in barrel file * write exports minified Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix formatting Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * refactor slugToVariableName code into a function * fix slugToVariableName * change prefix to "si" * move slugToVariableName to local helper functions * unignore icons.js and icons.mjs Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * feat: add types (#6580) * feat: add types * fix linting error * export default from types/index.d.ts * minify * revert formatting changes * revert formatting change * change paths from types/index.d.ts to index.d.ts * mark icons.get as deprecated * move type alias to another file * update readme * update readme.md Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * update typescript usage section Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix conflicts * Apply suggestions from code review Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * add writeTs function Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>
2021-10-29 02:16:34 +03:00
Alternatively, you can also import all icons from a single file, where `[ICON SLUG]` is replaced by a capitalized [slug]. We highly recommend using a bundler that can tree shake such as [webpack](https://webpack.js.org/) to remove the unused icon code:
```javascript
// Import a specific icon by its slug as:
// import { si[ICON SLUG] } from 'simple-icons/icons'
// For example:
// use import/esm to allow tree shaking
import { siSimpleicons } from 'simple-icons/icons'
```
export bundled icons from one entry point and add types (#6767) * export all icons from a single file (#6189) * fix: revert formatting, add exports to package.json * feat: generate icons.js and add relevant exports field * add minifyAndWrite Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix: minifyAndWrite build * add type: commonjs Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * simplify exports Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * add "require" in exports * place objects directly in barrel file * write exports minified Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix formatting Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * refactor slugToVariableName code into a function * fix slugToVariableName * change prefix to "si" * move slugToVariableName to local helper functions * unignore icons.js and icons.mjs Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * feat: add types (#6580) * feat: add types * fix linting error * export default from types/index.d.ts * minify * revert formatting changes * revert formatting change * change paths from types/index.d.ts to index.d.ts * mark icons.get as deprecated * move type alias to another file * update readme * update readme.md Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * update typescript usage section Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix conflicts * Apply suggestions from code review Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * add writeTs function Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>
2021-10-29 02:16:34 +03:00
You can also import the needed icons individually, where `[ICON SLUG]` is replaced by a [slug].
```javascript
2021-03-03 13:57:33 +03:00
// Import a specific icon by its slug as:
// require('simple-icons/icons/[ICON SLUG]');
// For example:
const icon = require('simple-icons/icons/simpleicons');
2021-05-13 14:37:46 +03:00
```
Either method will return an icon object:
```javascript
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 ...',
guidelines: 'https://simpleicons.org/styleguide',
license: {
type: '...',
url: 'https://example.com/'
}
}
2021-05-13 14:37:46 +03:00
NOTE: the `guidelines` entry will be `undefined` if we do not yet have guidelines for the icon.
NOTE: the `license` entry will be `undefined` if we do not yet have license data for the icon.
*/
```
Lastly, the `simpleIcons` object is also enumerable.
This is useful if you want to do a computation on every icon:
```javascript
const simpleIcons = require('simple-icons');
for (const iconSlug in simpleIcons) {
const icon = simpleIcons.Get(iconSlug);
// do stuff
}
```
2020-02-26 19:10:52 +03:00
#### TypeScript Usage
export bundled icons from one entry point and add types (#6767) * export all icons from a single file (#6189) * fix: revert formatting, add exports to package.json * feat: generate icons.js and add relevant exports field * add minifyAndWrite Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix: minifyAndWrite build * add type: commonjs Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * simplify exports Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * add "require" in exports * place objects directly in barrel file * write exports minified Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix formatting Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * refactor slugToVariableName code into a function * fix slugToVariableName * change prefix to "si" * move slugToVariableName to local helper functions * unignore icons.js and icons.mjs Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * feat: add types (#6580) * feat: add types * fix linting error * export default from types/index.d.ts * minify * revert formatting changes * revert formatting change * change paths from types/index.d.ts to index.d.ts * mark icons.get as deprecated * move type alias to another file * update readme * update readme.md Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * update typescript usage section Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * fix conflicts * Apply suggestions from code review Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com> * add writeTs function Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>
2021-10-29 02:16:34 +03:00
Type definitions are bundled with the package.
2020-02-26 19:10:52 +03:00
### PHP Usage
The icons are also available through our Packagist package. To install, simply run:
```shell
composer require simple-icons/simple-icons
```
2021-03-03 13:57:33 +03:00
The package can then be used as follows, where `[ICON SLUG]` is replaced by a [slug]:
```php
<?php
2021-03-03 13:57:33 +03:00
// Import a specific icon by its slug as:
echo file_get_contents('path/to/package/icons/[ICON SLUG].svg');
2021-03-03 13:57:33 +03:00
// For example:
echo file_get_contents('path/to/package/icons/simpleicons.svg');
// <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">...</svg>
?>
```
## Third-Party Extensions
2018-03-21 18:42:53 +03:00
| Extension | Author |
| :--- | :--- |
| [Drawio library](https://github.com/mondeja/simple-icons-drawio) | [@mondeja](https://github.com/mondeja) |
| [Drupal module](https://www.drupal.org/project/simple_icons) | [Phil Wolstenholme](https://www.drupal.org/u/phil-wolstenholme) |
| [Flutter package](https://pub.dev/packages/simple_icons) | [@jlnrrg](https://jlnrrg.github.io/) |
| [Hexo plugin](https://github.com/nidbCN/hexo-simpleIcons) | [@nidbCN](https://github.com/nidbCN/) |
| [Home Assistant plugin](https://github.com/vigonotion/hass-simpleicons) | [@vigonotion](https://github.com/vigonotion/) |
| [Jetpack Compose library](https://github.com/DevSrSouza/compose-icons) | [@devsrsouza](https://github.com/devsrsouza/) |
| [Kirby plugin](https://github.com/runxel/kirby3-simpleicons) | [@runxel](https://github.com/runxel) |
| [Laravel Package](https://github.com/ublabs/blade-simple-icons) | [@adrian-ub](https://github.com/adrian-ub) |
| [Python package](https://github.com/sachinraja/simple-icons-py) | [@sachinraja](https://github.com/sachinraja) |
| [React package](https://github.com/icons-pack/react-simple-icons) | [@wootsbot](https://github.com/wootsbot) |
| [Svelte package](https://github.com/icons-pack/svelte-simple-icons) | [@wootsbot](https://github.com/wootsbot) |
| [Vue package](https://github.com/mainvest/vue-simple-icons) | [@noahlitvin](https://github.com/noahlitvin) |
| [WordPress plugin](https://wordpress.org/plugins/simple-icons/) | [@tjtaylo](https://github.com/tjtaylo) |
2021-03-03 13:57:33 +03:00
[slug]: ./slugs.md
## Contribute
Information describing how to contribute can be found here:
https://github.com/simple-icons/simple-icons/blob/develop/CONTRIBUTING.md