@loadsmart/icons v0.110.0
Table of Contents
- Table of Contents
- About The Project
- Usage
- Examples
- Contributing
- Deployment and Publishing process to NPM
- Development
About The Project
A library for using icons at Loadsmart.
Usage
You can get it via yarn.
yarn add @loadsmart/iconsExamples
Basic usage
You can use Loadsmart icons in your React projects as simple as this:
import { IconAccessorialAirport } from "@loadsmart/icons";
class App extends React.Component {
render() {
return <div> This is an <IconAccessorialAirport /></div>
}
}Typescript usage
TBD
Contributing
Icons Library
- Clone the project
- Create a new branch based off of
master - Make all the changes needed
- Run this to build the necessary
.jsfilesyarn prepublish - Commit all the changes to your new branch
- Make sure you also log the changes under the
Unreleasedsection of theCHANGELOG.mdand commit it - Open a PR to merge on
master
Deployment and Publishing process to NPM
The release of loadsmart icons is based on tag
:relaxed: we use Rollbot for release. It will generate a release by bumping the version on the CHANGELOG.md and creating a new tag.
Steps to make a release via Rollbot:
1. As Rollbot won’t update the version in package.json , so we still need to bump the version manually
$ yarn bumpIt will ask you to put the specific release version, please follow our tag pattern /^\d+\.\d+\.\d+$/ (x.xx.x)
Commit the change in
package.jsonand create a pr[Release] x.xxx.x, once it merges:Using the
/releasecommand in #eng-frontend channel,/release @loadsmart/icons majoror/release @loadsmart/icons minoror/release @loadsmart/icons patchIf Rollbot creates the tag successfully, it will send a message saying “tag x.xxx.x created”
Please check CircleCI if all checks of deploy pass, then publish the release in GitHub :beers:
:shipit:If Rollbot doesn't work, please follow these steps as an alternative:
1. Checkout a new branch from the latest master branch (Usually named as: release/x.xx.x)
2. Update CHANGELOG.md (follow version pattern /^\d+\.\d+\.\d+$/ - x.xx.x)
3. Bump the version using the command below:
$ yarn bumpIt will ask you to put the specific release version, please follow our tag pattern /^\d+\.\d+\.\d+$/ (x.xx.x)
git addthe updatedpackage.jsonandCHANGELOG.mdfiles and commit the changes with a message following the standard:Release x.xx.x
This commit message is necessary for our bot to automatically approve and merge the release PR. Please note the brackets enclosing the word "Release" and keep the version in the same pattern used elsewhere.
- Push your branch to origin and open a PR to master (With the same title as your commit:
[Release] x.xx.x)
:+1: When the CI passes :white_check_mark:, it will automatically merge your PR into master.
Checkout master locally again and pull latest changes
Create a tag, please follow our tag pattern
/^\d+\.\d+\.\d+$/(x.xx.x)
$ git tag <new_tag>- Push the tag.
$ git push origin <new_tag>The Circle CI workflows can be checked here
Circle CI will start a deploy to production :rocket:
- :memo: Create a new release in GitHub referencing the tag you just created:

For release title, follow the exact same pattern used in the tag version, and for description you can simply insert the respective CHANGELOG.md section.
This last step is what triggers some automated side-effects such as the slackbot that broadcasts new production releases along with their changelog, so don't skip it!
Then you are all set :balloon:
Tip: Always keep semver in mind.
Demo Deployment
- Once a new versions is published on NPM, circleci will deploy the new demo page to Github Pages, thus making it available on https://loadsmart.github.io/icons-showcase/#/.
Development
Setup the project
Before starting, keep this in mind about our branches:
masteris where the library code resides, all the icons SVG and JS files are here. Code enters here through PRs.
To get a local copy up and running follow these simple steps.
Install Yarn:
$ brew install yarnClone the project:
$ git clone git@github.com:loadsmart/icons.gitInstall local dependencies:
$ yarn
Adding a new icon
Add your SVG to
/src/assets/icons.$ grunt serverClean up your SVG file, a good example you can see below.
<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"> <path d="M19.8 19.8V3h8.4v16.8H45v8.4H28.2V45h-8.4V28.2H3v-8.4h16.8z" fill="currentColor" fill-rule="evenodd"/> </svg>
- Make sure that you are using
fill="currentColor". - Remove all references to
widthandheightin your SVG file
Run
$ yarn generateThis command will create a React component for your SVG file, and also will include this component to the library.
Submit a pull request
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago