Stars: 108
Forks: 14
Pull Requests: 234
Issues: 92
Watchers: 82
Last Updated: 2023-03-29 09:18:59
The WordPress.com icon set
License: GNU General Public License v2.0
Languages: JavaScript, PHP, HTML
The Calypso / WordPress.com official icon set.
Note that this component requires react to be installed in your project. If you don't want to use React, you can simply include the raw .svg
files from the svg-min
folder.
Gridicon renders a single svg icon based on an icon
prop. It takes a size property but defaults to 24px. For greater sharpness, the icons should only be shown at either 18px, 24px, 36px or 48px.
There's a gallery with all the available icons in http://automattic.github.io/gridicons/.
Use the following command and execute in your terminal:
npm install gridicons --save
You can either import the whole iconset and decide at run-time which icon to use:
import Gridicon from 'gridicons';
//...
render() {
return <Gridicon icon="add-image" />;
}
Or import icons individually:
import GridiconAddImage from 'gridicons/dist/add-image';
//...
render() {
return <GridiconAddImage />;
}
If you use only a few icons, the recommended way of using the Gridicon library is to import them individually. At the moment of writing this, individual icons are between 1K and 2K, and the file containing the whole iconset sits at 92K.
icon
: String - the icon name. This is ignored when importing icons individually.size
: Number - (default: 24) set the size of the icon.onClick
: Function - (optional) if you need a click callback.Notes:
gridicon-my-sites
as it's a small-size version of the WordPress logo, shouldn't be used larger than 36px. If you need to use the WordPress logo in larger sizes, see the Social Logos project.These are not rules, they are guidelines that can be broken with the proper reason. The purpose of them is to achieve a uniform look as we all work on it together. They are also open to growing organically. They are meant to guide you to create an icon that fits with all the others (style, alignment, size, ...), if you break any of the above to make it fit better, that works too.
Notes:
svg-min
files can both be used in production directly or dragged to Sketch to create designs.sources/svg-32
folder contains a subset of icons optimized at 32px, for the iOS navigation bar.Note that the icons in this set are tied to be used in Calypso, but there might be exceptions for more general icons that make sense to be added.
sources/svg
folder), make sure to include a screenshot, ideally containing side by side comparison with some other Gridicons as a visual reference.grunt
command from terminal. It will generate svg-min
, build
, dist
, svg-sprite
, pdf
, php
, and docs
.This icon set uses a few automation scripts to ease the generation of new icons in a reliable way. In short, we require node
and grunt
. For detailed instructions check the installation page.
Once you checkout the repo run npm install
in the gridicons
folder.
To generate all the fonts, svgs and so on you run npm run build
Note: to proceed with this you need to have write authorization to npm.
CHANGELOG.md
and updated version in package.json
(i.e. 1.2.3-alpha.1
), see an example here.npm publish --tag next
(more info). Running the npm publish --tag next
command will send the data that you have localy to npm. Having the alpha version in the package.json
file will create a newly tagged version npm package. Use npm view gridicons
to look at the list of current tags. You do not need to commit changes to github in order to publish to npm, but it is recommended so folks testing know what's available.npm install gridicons@next --save
(which will update packages.json
). If you're creating the PR in Calypso and you get warnings, it might need to regenerate the shrinkwrap, in which case run npm run update-deps
. See an example here.http://calypso.localhost:3000/devdocs/design/gridicons
for example.1.2.3-alpha.1
to 1.2.3
) on both repositories PRs.git tag -a v1.2.3 -m "Release v1.2.3"
(and push git push origin v1.2.3
).npm publish
.Gridicons is licensed under GNU General Public License v2 (or later).
You need to have a npm user account. Create one here.
Once you have created it, set up the account on you machine via
$ npm adduser
Setup the 2fa with npm
$ npm profile enable-2fa
Now everytime before you can publish You will be asked for a your 2FA code (OPT)