Contribute To Ionic

If you see an area for improvement or have an idea for a new feature, we'd love to have your help! Please feel free to take part in any discussions that may be happening on our forum or our issues page. You can also stay up-to-date with Ionic by subscribing to our newsletter.

  1. Join the discussion on Ionic's Forum. Either start or take part in topics to help define what you're thinking.
  2. Browse existing issues for ideas or to see if a similar issue has already been submitted.
  3. Fork the Github repo: git clone https://github.com/ionic-team/ionic.git
  4. Create a new branch from master: git checkout -b issuenumber-new-awesomeness
  5. Review our pull request guidelines.
  6. Follow our coding conventions.
  7. Did you remember to write a passing test?
  8. Submit a pull request!

For issues relating to the Ionic documentation or this site, please use the ionic-site repo instead.

Submit An Issue For Ionic

If you see a way to improve any piece of code, please let us know. There's no such thing as too small an improvement. (If the issue is about our documentation, please see next section.) If you think you might have found a bug, please start by making sure it hasn't already been reported.

[M#IIf the issue doesn't already exist, please fork a codepen that demonstrates the problem (try to use as little code as possible: the more minimalist, the faster we can debug it). Next, create a new issue that explains the problem in detail, and provides enought background as to the circumstances that triggers it. Don't forget to include the link to the codpen or plunkr you created, along with any screenshots that may identify the issue.

Browse Ionic Issues Create an Ionic Issue Create a Codepen

Help Improve The Docs

See a typo? Have a better way to describe Ionic within our documentation? Have a great tutorial? Please help make our docs awesome. The docs for our directives and services are generated from our source code using dgeni, so fork the main Ionic repo to make an edit there. For anything site related, fork the ionic-site repo, add, correct or improve the content, then submit a pull request with the improved docs. Not sure what to do? Submit an issue, and we will address it.

Fork ionic Fork ionic-site Create a Documentation Issue

Pull Request Guidelines

When in doubt, keep your pull requests small. To give a PR the best chance of getting accepted, do not bundle more than one "feature" or bug fix per PR. A large "all-in-one" PR makes it very hard to accept if one of the fixes or features has issues. It's always best to create two or more smaller PRs than one big one. Make sure any changes are done to the source code, not the compiled JavaScript or CSS.

Conventions

We try to follow best practices as much as possible.

For any SCSS changes, try to keep CSS properties sorted in a reasonable order, with layout and sizing properties first, and cosmetic properties below that. See our code for examples. Feel free to run your code through CSS Comb, which will sort your CSS properties in a good order. Always use two spaces, no tabs. This goes for any HTML, CSS, or Javascript. Ionic uses an .editorconfig file, which most editors support, to enforce these coding standards.

All JavaScript must pass JSHint, which helps detect errors and potential problems in your code.

Additionally, almost all Javascript code must have an accompanying test case. To run our test suite, install Karma and follow the Development commands as follows:

$ sudo npm install -g karma gulp
$ gulp
$ gulp karma

More information can be found in the README.

Any tests you write should go in the test/TYPE folder structure. Copy the format from other tests to write your own.

License

By contributing your code, you agree to license your contribution under the MIT license.