2017-02-03 01:57:47 +00:00
[Snap.svg ](http://snapsvg.io ) · [![Build Status ](https://travis-ci.org/adobe-webplatform/Snap.svg.svg?branch=dev )](https://travis-ci.org/adobe-webplatform/Snap.svg) [![CDNJS ](https://img.shields.io/cdnjs/v/snap.svg.svg )](https://cdnjs.com/libraries/snap.svg/) [![GitHub Tag ](https://img.shields.io/github/tag/adobe-webplatform/snap.svg.svg )](https://github.com/adobe-webplatform/Snap.svg/releases) [![License ](https://img.shields.io/npm/l/snapsvg.svg )](https://github.com/adobe-webplatform/Snap.svg/blob/master/LICENSE)
2013-07-05 04:56:18 +00:00
======
2013-10-22 17:23:59 +00:00
A JavaScript SVG library for the modern web. Learn more at [snapsvg.io ](http://snapsvg.io ).
2013-09-02 04:26:51 +00:00
2013-10-23 14:56:38 +00:00
[Follow us on Twitter. ](https://twitter.com/snapsvg )
2014-04-23 17:47:27 +00:00
### Install
2017-02-03 01:57:47 +00:00
* [Bower ](http://bower.io/ ) - `bower install snap.svg` ![Bower ](https://img.shields.io/bower/v/snap.svg.svg )
* [npm ](http://npmjs.com/ ) - `npm install snapsvg` [![npm version ](https://img.shields.io/npm/v/snapsvg.svg?style=flat )](https://www.npmjs.com/package/snapsvg) [![Downloads ](https://img.shields.io/npm/dt/snapsvg.svg )](https://www.npmjs.com/package/snapsvg)
2014-04-23 17:47:27 +00:00
* Manual Minified - https://github.com/adobe-webplatform/Snap.svg/raw/master/dist/snap.svg-min.js
* Manual Unminified - https://raw.githubusercontent.com/adobe-webplatform/Snap.svg/master/dist/snap.svg.js
2013-10-23 13:53:40 +00:00
### Learn
2013-09-09 01:16:25 +00:00
2013-10-23 13:53:40 +00:00
* [About Snap.svg ](http://snapsvg.io/about/ )
* [Getting Started ](http://snapsvg.io/start/ )
2013-10-24 01:01:42 +00:00
* [API Reference ](http://snapsvg.io/docs/ )
2017-02-03 11:19:22 +00:00
* [Slack Room ](https://snapsvg.slack.com/ ). [Invite ](https://snapsvg.slack.com/shared_invite/MTM2NTE4MTk3MDYwLTE0ODYwODgzNzUtYjQ0YmM1N2U0Mg )
2013-10-23 13:53:40 +00:00
2013-10-29 01:13:58 +00:00
### Use
2017-01-30 23:12:04 +00:00
In your HTML file, load simply by:
```html
2017-01-30 23:18:50 +00:00
< script src = "snap.svg-min.js" > < / script >
2017-01-30 23:12:04 +00:00
```
2013-10-29 01:13:58 +00:00
No other scripts are needed. Both the minified and uncompressed (for development) versions are in the `/dist` folder.
2017-10-02 12:07:52 +00:00
#### webpack
To load with webpack 2.x and 3.x, install [Imports Loader ](https://github.com/webpack-contrib/imports-loader ) (`npm i -D imports-loader`), and add the following to your webpack config:
2017-01-30 23:12:04 +00:00
```js
2017-10-02 12:07:52 +00:00
module: {
rules: [
{
test: require.resolve('snapsvg/dist/snap.svg.js'),
use: 'imports-loader?this=>window,fix=>module.exports=0',
},
],
},
resolve: {
alias: {
snapsvg: 'snapsvg/dist/snap.svg.js',
},
},
```
Then, in any module you’ d like to require Snap, use:
```
import Snap from 'snapsvg';
2017-01-30 23:12:04 +00:00
```
2013-10-23 13:53:40 +00:00
### Build
2017-02-03 00:54:28 +00:00
[![Build Status ](https://travis-ci.org/adobe-webplatform/Snap.svg.svg?branch=dev )](https://travis-ci.org/adobe-webplatform/Snap.svg)
2013-09-09 01:16:25 +00:00
2013-10-22 17:23:59 +00:00
Snap.svg uses [Grunt ](http://gruntjs.com/ ) to build.
2013-09-09 01:16:25 +00:00
2013-10-22 17:23:59 +00:00
* Open the terminal from the Snap.svg directory:
2017-01-30 23:18:50 +00:00
```sh
cd Snap.svg
```
2013-10-22 17:23:59 +00:00
* Install its command line interface (CLI) globally:
2017-01-30 23:18:50 +00:00
```sh
npm install -g grunt-cli
```
2013-10-15 20:20:01 +00:00
_*You might need to use `sudo npm` , depending on your configuration._
2013-10-22 17:23:59 +00:00
* Install dependencies with npm:
2017-01-30 23:18:50 +00:00
```sh
npm install
```
2013-09-25 05:52:57 +00:00
_*Snap.svg uses Grunt 0.4.0. You might want to [read ](http://gruntjs.com/getting-started ) more on their website if you haven’ t upgraded since a lot has changed._
2013-09-09 01:16:25 +00:00
2017-02-03 01:48:28 +00:00
* To build the files run
```sh
grunt
```
* The results will be built into the `dist` folder.
2013-10-15 17:21:01 +00:00
* Alternatively type `grunt watch` to have the build run automatically when you make changes to source files.
2017-02-03 01:48:28 +00:00
### Testing
Tests are located in `test` folder. To run tests, simply open `test.html` in there. Automatic tests use PhantomJS to scrap this file, so you can use it as a reference.
Alternatively, install [PhantomJS ](http://phantomjs.org ) and run command
```sh
grunt test
```
2013-10-23 13:53:40 +00:00
### Contribute
2013-10-15 17:21:01 +00:00
2013-10-23 20:53:23 +00:00
* [Fill out the CLA ](http://snapsvg.io/contributions/ ).
2013-10-16 21:42:11 +00:00
* [Fork ](https://help.github.com/articles/fork-a-repo ) the repo.
* Create a branch:
2017-01-30 23:18:50 +00:00
```sh
git checkout -b my_branch
```
2013-10-16 21:42:11 +00:00
* Add your changes.
2017-02-03 01:48:28 +00:00
* Check that tests are passing
2013-10-16 21:42:11 +00:00
* Commit your changes:
2017-01-30 23:18:50 +00:00
```sh
git commit -am "Added some awesome stuff"
```
2013-10-16 21:42:11 +00:00
* Push your branch:
2017-01-30 23:18:50 +00:00
```sh
git push origin my_branch
```
2017-01-30 23:12:04 +00:00
* Make a [pull request ](https://help.github.com/articles/using-pull-requests ) to `dev` (!) branch.
2013-10-25 20:54:02 +00:00
*Note:* Pull requests to other branches than `dev` or without filled CLA wouldn’ t be accepted.