├── README.md ├── img └── swipe.svg ├── index.html ├── main ├── main.css ├── main.css.map └── main.scss ├── node_modules ├── jump.js │ ├── README.md │ ├── dist │ │ ├── jump.js │ │ └── jump.module.js │ └── package.json └── sal.js │ ├── LICENSE │ ├── README.md │ ├── dist │ ├── sal.css │ ├── sal.css.map │ └── sal.js │ ├── index.d.ts │ └── package.json ├── package-lock.json └── package.json /README.md: -------------------------------------------------------------------------------- 1 | # Smooth Scroll & Scroll Animation Tutorial 2 | 3 | This is the project based on the following tutorial: 4 | [SMOOTH SCROLLING with Jump.js - 5kb!](https://youtu.be/bwNGfJu-T2k) 5 | AND 6 | [Super Lightweight Scroll Animations with Sal.js - 2.8kb!](https://www.youtube.com/watch?v=6zGTxITQkN0) 7 | 8 | ## More Awesome Content 9 | 10 | Do me a big ol' favor and check out these awesome links. I release new video tutorials on full stack development Monday-Thursday @ 10:30 AM ET! 11 | 12 | * Subscribe to the [DesignCourse YouTube Channel](http://youtube.com/designcourse) 13 | * Check out the associated website [Coursetro Full Stack Development Training](https://coursetro.com) 14 | * Chat with me and others on Discord: [DesignCourse Discord Server](https://discord.gg/a27CKAF) 15 | * [Twitter](https://twitter.com/designcoursecom) 16 | * [Facebook](https://facebook.com/coursetro) 17 | 18 | Enjoy! -------------------------------------------------------------------------------- /img/swipe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 |
14 |

Scroll me baby,
oh yeah

15 | 16 |
17 |
18 |
19 |

Look at me, weee

20 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam adipisci culpa corrupti cum blanditiis atque, sint voluptatum consectetur nobis sit beatae sequi praesentium fuga eligendi alias necessitatibus assumenda. Possimus, rem.

21 | 22 |
23 |
24 | 25 |
26 |
27 |
28 |
29 |

Keep

30 |

Lorem ipsum dolor sit amet consectetur adipisicing elit..

31 |
32 |
33 |

It

34 |

Lorem ipsum dolor sit amet consectetur adipisicing elit..

35 |
36 |
37 |

Scrolling

38 |

Lorem ipsum dolor sit amet consectetur adipisicing elit..

39 |
40 | 41 |
42 | 43 | 44 | 45 | 46 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /main/main.css: -------------------------------------------------------------------------------- 1 | body, html { 2 | height: 100vh; 3 | margin: 0; 4 | } 5 | 6 | body { 7 | font-family: 'Montserrat'; 8 | } 9 | 10 | section { 11 | height: calc(100vh - 8em); 12 | padding: 4em; 13 | -webkit-box-align: center; 14 | -ms-flex-align: center; 15 | align-items: center; 16 | } 17 | 18 | section h1 { 19 | font-size: 6em; 20 | text-transform: uppercase; 21 | line-height: .9em; 22 | } 23 | 24 | section:nth-of-type(1) { 25 | background: #2b3033; 26 | color: #4e5356; 27 | } 28 | 29 | section:nth-of-type(2), section:nth-of-type(3) { 30 | background: #dde3e6; 31 | height: calc(100vh - 8em); 32 | color: #4e5356; 33 | display: -ms-grid; 34 | display: grid; 35 | -ms-grid-columns: 50% 50%; 36 | grid-template-columns: 50% 50%; 37 | } 38 | 39 | section:nth-of-type(2) h3, section:nth-of-type(3) h3 { 40 | font-size: 3em; 41 | text-transform: uppercase; 42 | margin: 0; 43 | } 44 | 45 | section:nth-of-type(2) p, section:nth-of-type(3) p { 46 | font-size: 1.3em; 47 | } 48 | 49 | section:nth-of-type(2) img, section:nth-of-type(3) img { 50 | margin: 0 auto; 51 | display: block; 52 | width: 250px; 53 | } 54 | 55 | section:nth-of-type(3) { 56 | background: #fff; 57 | -ms-grid-columns: (33.3%)[3]; 58 | grid-template-columns: repeat(3, 33.3%); 59 | } 60 | 61 | section:nth-of-type(3) p { 62 | width: 50%; 63 | } 64 | 65 | button { 66 | padding: 1em; 67 | background: #008bde; 68 | border: none; 69 | color: white; 70 | text-transform: uppercase; 71 | font-weight: bold; 72 | font-size: 1.1em; 73 | cursor: pointer; 74 | border-radius: 5px; 75 | } 76 | /*# sourceMappingURL=main.css.map */ -------------------------------------------------------------------------------- /main/main.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "AAAA,AAAA,IAAI,EAAE,IAAI,CAAC;EACP,MAAM,EAAE,KAAK;EACb,MAAM,EAAE,CAAC;CACZ;;AAED,AAAA,IAAI,CAAC;EACD,WAAW,EAAE,YAAY;CAC5B;;AAED,AAAA,OAAO,CAAC;EACJ,MAAM,EAAE,iBAAiB;EACzB,OAAO,EAAE,GAAG;EACZ,WAAW,EAAE,MAAM;CA6CtB;;AAhDD,AAKI,OALG,CAKH,EAAE,CAAC;EACC,SAAS,EAAE,GAAG;EACd,cAAc,EAAE,SAAS;EACzB,WAAW,EAAE,IAAI;CACpB;;AATL,AAWI,OAXG,AAWF,YAAa,CAAA,CAAC,EAAE;EACb,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,OAAO;CACjB;;AAdL,AAgBI,OAhBG,AAgBF,YAAa,CAAA,CAAC,GAhBnB,OAAO,AAgBgB,YAAa,CAAA,CAAC,EAAE;EAC/B,UAAU,EAAE,OAAO;EACnB,MAAM,EAAE,iBAAiB;EACzB,KAAK,EAAE,OAAO;EACd,OAAO,EAAE,IAAI;EACb,qBAAqB,EAAE,OAAO;CAgBjC;;AArCL,AAuBQ,OAvBD,AAgBF,YAAa,CAAA,CAAC,EAOX,EAAE,EAvBV,OAAO,AAgBgB,YAAa,CAAA,CAAC,EAO7B,EAAE,CAAC;EACC,SAAS,EAAE,GAAG;EACd,cAAc,EAAE,SAAS;EACzB,MAAM,EAAE,CAAC;CACZ;;AA3BT,AA4BQ,OA5BD,AAgBF,YAAa,CAAA,CAAC,EAYX,CAAC,EA5BT,OAAO,AAgBgB,YAAa,CAAA,CAAC,EAY7B,CAAC,CAAC;EACE,SAAS,EAAE,KAAK;CACnB;;AA9BT,AAgCQ,OAhCD,AAgBF,YAAa,CAAA,CAAC,EAgBX,GAAG,EAhCX,OAAO,AAgBgB,YAAa,CAAA,CAAC,EAgB7B,GAAG,CAAC;EACA,MAAM,EAAE,MAAM;EACd,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,KAAK;CACf;;AApCT,AAuCI,OAvCG,AAuCF,YAAa,CAAA,CAAC,EAAE;EACb,UAAU,EAAE,IAAI;EAChB,qBAAqB,EAAE,gBAAgB;CAK1C;;AA9CL,AA2CQ,OA3CD,AAuCF,YAAa,CAAA,CAAC,EAIX,CAAC,CAAC;EACE,KAAK,EAAE,GAAG;CACb;;AAKT,AAAA,MAAM,CAAC;EACH,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,OAAO;EACnB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,KAAK;EACZ,cAAc,EAAE,SAAS;EACzB,WAAW,EAAE,IAAI;EACjB,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,OAAO;EACf,aAAa,EAAE,GAAG;CACrB", 4 | "sources": [ 5 | "main.scss" 6 | ], 7 | "names": [], 8 | "file": "main.css" 9 | } -------------------------------------------------------------------------------- /main/main.scss: -------------------------------------------------------------------------------- 1 | body, html { 2 | height: 100vh; 3 | margin: 0; 4 | } 5 | 6 | body { 7 | font-family: 'Montserrat'; 8 | } 9 | 10 | section { 11 | height: calc(100vh - 8em); 12 | padding: 4em; 13 | align-items: center; 14 | 15 | h1 { 16 | font-size: 6em; 17 | text-transform: uppercase; 18 | line-height: .9em; 19 | } 20 | 21 | &:nth-of-type(1) { 22 | background: #2b3033; 23 | color: #4e5356; 24 | } 25 | 26 | &:nth-of-type(2), &:nth-of-type(3) { 27 | background: #dde3e6; 28 | height: calc(100vh - 8em); 29 | color: #4e5356; 30 | display: grid; 31 | grid-template-columns: 50% 50%; 32 | 33 | h3 { 34 | font-size: 3em; 35 | text-transform: uppercase; 36 | margin: 0; 37 | } 38 | p { 39 | font-size: 1.3em; 40 | } 41 | 42 | img { 43 | margin: 0 auto; 44 | display: block; 45 | width: 250px; 46 | } 47 | } 48 | 49 | &:nth-of-type(3) { 50 | background: #fff; 51 | grid-template-columns: repeat(3, 33.3%); 52 | 53 | p { 54 | width: 50%; 55 | } 56 | } 57 | 58 | } 59 | 60 | button { 61 | padding: 1em; 62 | background: #008bde; 63 | border: none; 64 | color: white; 65 | text-transform: uppercase; 66 | font-weight: bold; 67 | font-size: 1.1em; 68 | cursor: pointer; 69 | border-radius: 5px; 70 | } 71 | -------------------------------------------------------------------------------- /node_modules/jump.js/README.md: -------------------------------------------------------------------------------- 1 | # Jump.js 2 | 3 | [![Jump.js on NPM](https://img.shields.io/npm/v/jump.js.svg?style=flat-square)](https://www.npmjs.com/package/jump.js) 4 | 5 | A modern smooth scrolling library. 6 | 7 | * [Demo Page](http://callmecavs.github.io/jump.js/) (Click the arrows!) 8 | 9 | ## Usage 10 | 11 | Jump was developed with a modern JavaScript workflow in mind. To use it, it's recommended you have a build system in place that can transpile ES6, and bundle modules. For a minimal boilerplate that fulfills those requirements, check out [outset](https://github.com/callmecavs/outset). 12 | 13 | Follow these steps to get started: 14 | 15 | 1. [Install](#install) 16 | 2. [Import](#import) 17 | 3. [Call](#call) 18 | 4. [Review Options](#options) 19 | 20 | ### Install 21 | 22 | Using NPM, install Jump, and save it to your `package.json` dependencies. 23 | 24 | ```bash 25 | $ npm install jump.js --save 26 | ``` 27 | 28 | ### Import 29 | 30 | Import Jump, naming it according to your preference. 31 | 32 | ```es6 33 | // import Jump 34 | 35 | import jump from 'jump.js' 36 | ``` 37 | 38 | ### Call 39 | 40 | Jump exports a _singleton_, so there's no need to create an instance. Just call it, passing a [target](#target). 41 | 42 | ```es6 43 | // call Jump, passing a target 44 | 45 | jump('.target') 46 | ``` 47 | 48 | Note that the singleton can make an infinite number of jumps. 49 | 50 | ## Options 51 | 52 | All options, **except [target](#target)**, are optional, and have sensible defaults. The defaults are shown below: 53 | 54 | ```es6 55 | jump('.target', { 56 | duration: 1000, 57 | offset: 0, 58 | callback: undefined, 59 | easing: easeInOutQuad, 60 | a11y: false 61 | }) 62 | ``` 63 | 64 | Explanation of each option follows: 65 | 66 | * [target](#target) 67 | * [duration](#duration) 68 | * [offset](#offset) 69 | * [callback](#callback) 70 | * [easing](#easing) 71 | * [a11y](#a11y) 72 | 73 | ### target 74 | 75 | Scroll _from the current position_ by passing a number of pixels. 76 | 77 | ```es6 78 | // scroll down 100px 79 | 80 | jump(100) 81 | 82 | // scroll up 100px 83 | 84 | jump(-100) 85 | ``` 86 | 87 | Or, scroll _to an element_, by passing either: 88 | 89 | * a node, or 90 | * a CSS selector 91 | 92 | ```es6 93 | // passing a node 94 | 95 | const node = document.querySelector('.target') 96 | 97 | jump(node) 98 | 99 | // passing a CSS selector 100 | // the element referenced by the selector is determined using document.querySelector 101 | 102 | jump('.target') 103 | ``` 104 | 105 | ### duration 106 | 107 | Pass the time the `jump()` takes, in milliseconds. 108 | 109 | ```es6 110 | jump('.target', { 111 | duration: 1000 112 | }) 113 | ``` 114 | 115 | Or, pass a function that returns the duration of the `jump()` in milliseconds. This function is passed the `jump()` `distance`, in `px`, as a parameter. 116 | 117 | ```es6 118 | jump('.target', { 119 | duration: distance => Math.abs(distance) 120 | }) 121 | ``` 122 | 123 | ### offset 124 | 125 | Offset a `jump()`, _only if to an element_, by a number of pixels. 126 | 127 | ```es6 128 | // stop 10px before the top of the element 129 | 130 | jump('.target', { 131 | offset: -10 132 | }) 133 | 134 | // stop 10px after the top of the element 135 | 136 | jump('.target', { 137 | offset: 10 138 | }) 139 | ``` 140 | 141 | Note that this option is useful for accommodating `position: fixed` elements. 142 | 143 | ### callback 144 | 145 | Pass a function that will be called after the `jump()` has been completed. 146 | 147 | ```es6 148 | // in both regular and arrow functions, this === window 149 | 150 | jump('.target', { 151 | callback: () => console.log('Jump completed!') 152 | }) 153 | ``` 154 | 155 | ### easing 156 | 157 | Easing function used to transition the `jump()`. 158 | 159 | ```es6 160 | jump('.target', { 161 | easing: easeInOutQuad 162 | }) 163 | ``` 164 | 165 | See [easing.js](https://github.com/callmecavs/jump.js/blob/master/src/easing.js) for the definition of `easeInOutQuad`, the default easing function. Credit for this function goes to Robert Penner. 166 | 167 | ### a11y 168 | 169 | If enabled, _and scrolling to an element_: 170 | 171 | * add a [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) to, and 172 | * [`focus`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus) the element 173 | 174 | ```es6 175 | jump('.target', { 176 | a11y: true 177 | }) 178 | ``` 179 | 180 | Note that this option is disabled by default because it has _visual implications_ in many browsers. Focusing an element triggers the `:focus` CSS state selector, and is often accompanied by an `outline`. 181 | 182 | ## Browser Support 183 | 184 | Jump depends on the following browser APIs: 185 | 186 | * [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) 187 | 188 | Consequently, it supports the following natively: 189 | 190 | * Chrome 24+ 191 | * Firefox 23+ 192 | * Safari 6.1+ 193 | * Opera 15+ 194 | * IE 10+ 195 | * iOS Safari 7.1+ 196 | * Android Browser 4.4+ 197 | 198 | To add support for older browsers, consider including polyfills/shims for the APIs listed above. There are no plans to include any in the library, in the interest of file size. 199 | 200 | ## License 201 | 202 | [MIT](https://opensource.org/licenses/MIT). © 2016 Michael Cavalea 203 | 204 | [![Built With Love](http://forthebadge.com/images/badges/built-with-love.svg)](http://forthebadge.com) 205 | -------------------------------------------------------------------------------- /node_modules/jump.js/dist/jump.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global.Jump = factory()); 5 | }(this, (function () { 'use strict'; 6 | 7 | // Robert Penner's easeInOutQuad 8 | 9 | // find the rest of his easing functions here: http://robertpenner.com/easing/ 10 | // find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js 11 | 12 | var easeInOutQuad = function easeInOutQuad(t, b, c, d) { 13 | t /= d / 2; 14 | if (t < 1) return c / 2 * t * t + b; 15 | t--; 16 | return -c / 2 * (t * (t - 2) - 1) + b; 17 | }; 18 | 19 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { 20 | return typeof obj; 21 | } : function (obj) { 22 | return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; 23 | }; 24 | 25 | var jumper = function jumper() { 26 | // private variable cache 27 | // no variables are created during a jump, preventing memory leaks 28 | 29 | var element = void 0; // element to scroll to (node) 30 | 31 | var start = void 0; // where scroll starts (px) 32 | var stop = void 0; // where scroll stops (px) 33 | 34 | var offset = void 0; // adjustment from the stop position (px) 35 | var easing = void 0; // easing function (function) 36 | var a11y = void 0; // accessibility support flag (boolean) 37 | 38 | var distance = void 0; // distance of scroll (px) 39 | var duration = void 0; // scroll duration (ms) 40 | 41 | var timeStart = void 0; // time scroll started (ms) 42 | var timeElapsed = void 0; // time spent scrolling thus far (ms) 43 | 44 | var next = void 0; // next scroll position (px) 45 | 46 | var callback = void 0; // to call when done scrolling (function) 47 | 48 | // scroll position helper 49 | 50 | function location() { 51 | return window.scrollY || window.pageYOffset; 52 | } 53 | 54 | // element offset helper 55 | 56 | function top(element) { 57 | return element.getBoundingClientRect().top + start; 58 | } 59 | 60 | // rAF loop helper 61 | 62 | function loop(timeCurrent) { 63 | // store time scroll started, if not started already 64 | if (!timeStart) { 65 | timeStart = timeCurrent; 66 | } 67 | 68 | // determine time spent scrolling so far 69 | timeElapsed = timeCurrent - timeStart; 70 | 71 | // calculate next scroll position 72 | next = easing(timeElapsed, start, distance, duration); 73 | 74 | // scroll to it 75 | window.scrollTo(0, next); 76 | 77 | // check progress 78 | timeElapsed < duration ? window.requestAnimationFrame(loop) // continue scroll loop 79 | : done(); // scrolling is done 80 | } 81 | 82 | // scroll finished helper 83 | 84 | function done() { 85 | // account for rAF time rounding inaccuracies 86 | window.scrollTo(0, start + distance); 87 | 88 | // if scrolling to an element, and accessibility is enabled 89 | if (element && a11y) { 90 | // add tabindex indicating programmatic focus 91 | element.setAttribute('tabindex', '-1'); 92 | 93 | // focus the element 94 | element.focus(); 95 | } 96 | 97 | // if it exists, fire the callback 98 | if (typeof callback === 'function') { 99 | callback(); 100 | } 101 | 102 | // reset time for next jump 103 | timeStart = false; 104 | } 105 | 106 | // API 107 | 108 | function jump(target) { 109 | var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 110 | 111 | // resolve options, or use defaults 112 | duration = options.duration || 1000; 113 | offset = options.offset || 0; 114 | callback = options.callback; // "undefined" is a suitable default, and won't be called 115 | easing = options.easing || easeInOutQuad; 116 | a11y = options.a11y || false; 117 | 118 | // cache starting position 119 | start = location(); 120 | 121 | // resolve target 122 | switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) { 123 | // scroll from current position 124 | case 'number': 125 | element = undefined; // no element to scroll to 126 | a11y = false; // make sure accessibility is off 127 | stop = start + target; 128 | break; 129 | 130 | // scroll to element (node) 131 | // bounding rect is relative to the viewport 132 | case 'object': 133 | element = target; 134 | stop = top(element); 135 | break; 136 | 137 | // scroll to element (selector) 138 | // bounding rect is relative to the viewport 139 | case 'string': 140 | element = document.querySelector(target); 141 | stop = top(element); 142 | break; 143 | } 144 | 145 | // resolve scroll distance, accounting for offset 146 | distance = stop - start + offset; 147 | 148 | // resolve duration 149 | switch (_typeof(options.duration)) { 150 | // number in ms 151 | case 'number': 152 | duration = options.duration; 153 | break; 154 | 155 | // function passed the distance of the scroll 156 | case 'function': 157 | duration = options.duration(distance); 158 | break; 159 | } 160 | 161 | // start the loop 162 | window.requestAnimationFrame(loop); 163 | } 164 | 165 | // expose only the jump method 166 | return jump; 167 | }; 168 | 169 | // export singleton 170 | 171 | var singleton = jumper(); 172 | 173 | return singleton; 174 | 175 | }))); 176 | -------------------------------------------------------------------------------- /node_modules/jump.js/dist/jump.module.js: -------------------------------------------------------------------------------- 1 | // Robert Penner's easeInOutQuad 2 | 3 | // find the rest of his easing functions here: http://robertpenner.com/easing/ 4 | // find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js 5 | 6 | var easeInOutQuad = function easeInOutQuad(t, b, c, d) { 7 | t /= d / 2; 8 | if (t < 1) return c / 2 * t * t + b; 9 | t--; 10 | return -c / 2 * (t * (t - 2) - 1) + b; 11 | }; 12 | 13 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { 14 | return typeof obj; 15 | } : function (obj) { 16 | return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; 17 | }; 18 | 19 | var jumper = function jumper() { 20 | // private variable cache 21 | // no variables are created during a jump, preventing memory leaks 22 | 23 | var element = void 0; // element to scroll to (node) 24 | 25 | var start = void 0; // where scroll starts (px) 26 | var stop = void 0; // where scroll stops (px) 27 | 28 | var offset = void 0; // adjustment from the stop position (px) 29 | var easing = void 0; // easing function (function) 30 | var a11y = void 0; // accessibility support flag (boolean) 31 | 32 | var distance = void 0; // distance of scroll (px) 33 | var duration = void 0; // scroll duration (ms) 34 | 35 | var timeStart = void 0; // time scroll started (ms) 36 | var timeElapsed = void 0; // time spent scrolling thus far (ms) 37 | 38 | var next = void 0; // next scroll position (px) 39 | 40 | var callback = void 0; // to call when done scrolling (function) 41 | 42 | // scroll position helper 43 | 44 | function location() { 45 | return window.scrollY || window.pageYOffset; 46 | } 47 | 48 | // element offset helper 49 | 50 | function top(element) { 51 | return element.getBoundingClientRect().top + start; 52 | } 53 | 54 | // rAF loop helper 55 | 56 | function loop(timeCurrent) { 57 | // store time scroll started, if not started already 58 | if (!timeStart) { 59 | timeStart = timeCurrent; 60 | } 61 | 62 | // determine time spent scrolling so far 63 | timeElapsed = timeCurrent - timeStart; 64 | 65 | // calculate next scroll position 66 | next = easing(timeElapsed, start, distance, duration); 67 | 68 | // scroll to it 69 | window.scrollTo(0, next); 70 | 71 | // check progress 72 | timeElapsed < duration ? window.requestAnimationFrame(loop) // continue scroll loop 73 | : done(); // scrolling is done 74 | } 75 | 76 | // scroll finished helper 77 | 78 | function done() { 79 | // account for rAF time rounding inaccuracies 80 | window.scrollTo(0, start + distance); 81 | 82 | // if scrolling to an element, and accessibility is enabled 83 | if (element && a11y) { 84 | // add tabindex indicating programmatic focus 85 | element.setAttribute('tabindex', '-1'); 86 | 87 | // focus the element 88 | element.focus(); 89 | } 90 | 91 | // if it exists, fire the callback 92 | if (typeof callback === 'function') { 93 | callback(); 94 | } 95 | 96 | // reset time for next jump 97 | timeStart = false; 98 | } 99 | 100 | // API 101 | 102 | function jump(target) { 103 | var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 104 | 105 | // resolve options, or use defaults 106 | duration = options.duration || 1000; 107 | offset = options.offset || 0; 108 | callback = options.callback; // "undefined" is a suitable default, and won't be called 109 | easing = options.easing || easeInOutQuad; 110 | a11y = options.a11y || false; 111 | 112 | // cache starting position 113 | start = location(); 114 | 115 | // resolve target 116 | switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) { 117 | // scroll from current position 118 | case 'number': 119 | element = undefined; // no element to scroll to 120 | a11y = false; // make sure accessibility is off 121 | stop = start + target; 122 | break; 123 | 124 | // scroll to element (node) 125 | // bounding rect is relative to the viewport 126 | case 'object': 127 | element = target; 128 | stop = top(element); 129 | break; 130 | 131 | // scroll to element (selector) 132 | // bounding rect is relative to the viewport 133 | case 'string': 134 | element = document.querySelector(target); 135 | stop = top(element); 136 | break; 137 | } 138 | 139 | // resolve scroll distance, accounting for offset 140 | distance = stop - start + offset; 141 | 142 | // resolve duration 143 | switch (_typeof(options.duration)) { 144 | // number in ms 145 | case 'number': 146 | duration = options.duration; 147 | break; 148 | 149 | // function passed the distance of the scroll 150 | case 'function': 151 | duration = options.duration(distance); 152 | break; 153 | } 154 | 155 | // start the loop 156 | window.requestAnimationFrame(loop); 157 | } 158 | 159 | // expose only the jump method 160 | return jump; 161 | }; 162 | 163 | // export singleton 164 | 165 | var singleton = jumper(); 166 | 167 | export default singleton; 168 | -------------------------------------------------------------------------------- /node_modules/jump.js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_from": "jump.js", 3 | "_id": "jump.js@1.0.2", 4 | "_inBundle": false, 5 | "_integrity": "sha1-4GQbR/QKOPITnCX9oFAL8o5DAVo=", 6 | "_location": "/jump.js", 7 | "_phantomChildren": {}, 8 | "_requested": { 9 | "type": "tag", 10 | "registry": true, 11 | "raw": "jump.js", 12 | "name": "jump.js", 13 | "escapedName": "jump.js", 14 | "rawSpec": "", 15 | "saveSpec": null, 16 | "fetchSpec": "latest" 17 | }, 18 | "_requiredBy": [ 19 | "#USER", 20 | "/" 21 | ], 22 | "_resolved": "https://registry.npmjs.org/jump.js/-/jump.js-1.0.2.tgz", 23 | "_shasum": "e0641b47f40a38f2139c25fda0500bf28e43015a", 24 | "_spec": "jump.js", 25 | "_where": "C:\\Users\\gary\\code\\smooth-scroll-pre", 26 | "author": { 27 | "name": "Michael Cavalea", 28 | "email": "callmecavs@gmail.com", 29 | "url": "http://callmecavs.com/" 30 | }, 31 | "bugs": { 32 | "url": "https://github.com/callmecavs/jump.js/issues" 33 | }, 34 | "bundleDependencies": false, 35 | "deprecated": false, 36 | "description": "A modern smooth scrolling library.", 37 | "devDependencies": { 38 | "babel-eslint": "^7.1.1", 39 | "babel-plugin-external-helpers": "^6.18.0", 40 | "babel-preset-es2015-rollup": "^3.0.0", 41 | "babel-preset-stage-0": "^6.16.0", 42 | "eslint": "^3.13.0", 43 | "eslint-config-standard": "^6.2.1", 44 | "eslint-plugin-promise": "^3.4.0", 45 | "eslint-plugin-standard": "^2.0.1", 46 | "rollup": "^0.41.1", 47 | "rollup-plugin-babel": "^2.7.1", 48 | "rollup-plugin-node-resolve": "^2.0.0", 49 | "rollup-watch": "^3.2.2" 50 | }, 51 | "homepage": "https://github.com/callmecavs/jump.js#readme", 52 | "jsnext:main": "dist/jump.module.js", 53 | "keywords": [ 54 | "smooth", 55 | "scroll" 56 | ], 57 | "license": "MIT", 58 | "main": "dist/jump.js", 59 | "module": "dist/jump.module.js", 60 | "name": "jump.js", 61 | "repository": { 62 | "type": "git", 63 | "url": "git+https://github.com/callmecavs/jump.js.git" 64 | }, 65 | "scripts": { 66 | "build": "rollup -c", 67 | "dev": "rollup -c -w -m inline", 68 | "prebuild": "eslint src", 69 | "prepublish": "npm run build", 70 | "server": "python -m SimpleHTTPServer 3000" 71 | }, 72 | "version": "1.0.2" 73 | } 74 | -------------------------------------------------------------------------------- /node_modules/sal.js/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Mirosław Ciastek 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/sal.js/README.md: -------------------------------------------------------------------------------- 1 | # Sal [![npm version](https://badge.fury.io/js/sal.js.svg)](https://www.npmjs.com/package/sal.js) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/mciastek/sal/blob/master/LICENSE) [![Build Status](https://travis-ci.org/mciastek/sal.svg?branch=master)](https://travis-ci.org/mciastek/sal) 2 | 3 | Performance focused, lightweight (less than **2.8 kb**) scroll animation library, written in vanilla JavaScript. No dependencies! 4 | 5 | **Sal** (_Scroll Animation Library_) was created to provide a performant and lightweight solution for animating elements on scroll. It's based on the [Intersection Observer](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API), which gives amazing performance in terms of checking the element's presence in the viewport. 6 | 7 | **Note:** Intersection Observer API is an experimental technology so be sure to consult the [browser compatibility table](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility) and consider using a [polyfill](https://github.com/w3c/IntersectionObserver/tree/master/polyfill). 8 | 9 | ## Table of Contents 10 | - [Install](#install) 11 | - [Usage](#usage) 12 | - [Animations](#animations) 13 | - [Options](#options) 14 | - [API](#api) 15 | - [License](#license) 16 | 17 | ## Install 18 | 19 | ```sh 20 | # Usage with NPM 21 | $ npm install --save sal.js 22 | 23 | # and with Yarn 24 | $ yarn add sal.js 25 | ``` 26 | 27 | Load it with your favorite module loader or use as a global variable 28 | 29 | ```js 30 | // ES6 modules 31 | import sal from 'sal.js' 32 | 33 | // CommonJS modules 34 | var sal = require('sal.js') 35 | ``` 36 | 37 | And remember to add styles 38 | 39 | ```scss 40 | // Webpack 41 | @import '~sal.js/sal.css'; 42 | 43 | // Other 44 | @import './node_modules/sal.js/dist/sal.css'; 45 | ``` 46 | 47 | ## Usage 48 | 49 | In HTML, add a `data-sal` attribute with the animation name as value, e.g.: 50 | 51 | ```html 52 |
53 | ``` 54 | 55 | Then simply initialize Sal in your script file: 56 | 57 | ```js 58 | sal(); 59 | ``` 60 | 61 | It will look for all elements with a `data-sal` attribute and launch their animation when in viewport. 62 | 63 | ## Animations 64 | In **sal.js** you can easily change animation's options, by adding a proper `data` attribute: 65 | - `data-sal-duration` - changes duration of the animation 66 | - `data-sal-delay` - adds delay to the animation 67 | - `data-sal-easing` - sets easing for the animation 68 | 69 | For example: 70 | ```html 71 |
76 | ``` 77 | 78 | The library supports several animations: 79 | - `fade` 80 | - `slide-up` 81 | - `slide-down` 82 | - `slide-left` 83 | - `slide-right` 84 | - `zoom-in` 85 | - `zoom-out` 86 | - `flip-up` 87 | - `flip-down` 88 | - `flip-left` 89 | - `flip-right` 90 | 91 | ## Options 92 | 93 | | Property | Type | Description | Default | 94 | |---------------------------|-------------|---------------|---------| 95 | | `threshold` | Number | Percentage of an element's area that needs to be visible to launch animation (see [docs](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/thresholds)) | `0.5` | 96 | | `once` | Boolean | Defines if animation needs to be launched once | `true` | 97 | | `disable` | Boolean | Flag for disabling animations | `false` | 98 | 99 | You can set options during Sal's initialization, e.g.: 100 | 101 | ```js 102 | sal({ 103 | threshold: 1, 104 | once: false, 105 | }); 106 | ``` 107 | 108 | ### Advanced options 109 | 110 | | Property | Type | Description | Default | 111 | |---------------------------|-------------|---------------|---------| 112 | | `selector` | String | Selector of the elements to be animated | `[data-sal]` | 113 | | `animateClassName` | String | Class name which triggers animation | `sal-animate` | 114 | | `disabledClassName` | String | Class name which defines the disabled state | `sal-disabled` | 115 | | `rootMargin` | String | Corresponds to root's bounding box margin (see [docs](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/rootMargin)) | `0% 50%` | 116 | 117 | ## API 118 | 119 | | Method name | Description | 120 | |---------------------------|-------------| 121 | | `enable` | Enables animations | 122 | | `disable` | Disables animations | 123 | 124 | Public methods are available after Sal's initialization: 125 | 126 | ```js 127 | const scrollAnimations = sal(); 128 | 129 | scrollAnimations.disable(); 130 | ``` 131 | 132 | ## License 133 | 134 | Created by [Mirosław Ciastek](https://github.com/mciastek). Released under the [MIT License](https://github.com/mciastek/sal/blob/master/LICENSE). 135 | -------------------------------------------------------------------------------- /node_modules/sal.js/dist/sal.css: -------------------------------------------------------------------------------- 1 | [data-sal]{-webkit-transition-delay:0s;transition-delay:0s}[data-sal],[data-sal][data-sal-duration="200"]{-webkit-transition-duration:.2s;transition-duration:.2s}[data-sal][data-sal-duration="250"]{-webkit-transition-duration:.25s;transition-duration:.25s}[data-sal][data-sal-duration="300"]{-webkit-transition-duration:.3s;transition-duration:.3s}[data-sal][data-sal-duration="350"]{-webkit-transition-duration:.35s;transition-duration:.35s}[data-sal][data-sal-duration="400"]{-webkit-transition-duration:.4s;transition-duration:.4s}[data-sal][data-sal-duration="450"]{-webkit-transition-duration:.45s;transition-duration:.45s}[data-sal][data-sal-duration="500"]{-webkit-transition-duration:.5s;transition-duration:.5s}[data-sal][data-sal-duration="550"]{-webkit-transition-duration:.55s;transition-duration:.55s}[data-sal][data-sal-duration="600"]{-webkit-transition-duration:.6s;transition-duration:.6s}[data-sal][data-sal-duration="650"]{-webkit-transition-duration:.65s;transition-duration:.65s}[data-sal][data-sal-duration="700"]{-webkit-transition-duration:.7s;transition-duration:.7s}[data-sal][data-sal-duration="750"]{-webkit-transition-duration:.75s;transition-duration:.75s}[data-sal][data-sal-duration="800"]{-webkit-transition-duration:.8s;transition-duration:.8s}[data-sal][data-sal-duration="850"]{-webkit-transition-duration:.85s;transition-duration:.85s}[data-sal][data-sal-duration="900"]{-webkit-transition-duration:.9s;transition-duration:.9s}[data-sal][data-sal-duration="950"]{-webkit-transition-duration:.95s;transition-duration:.95s}[data-sal][data-sal-duration="1000"]{-webkit-transition-duration:1s;transition-duration:1s}[data-sal][data-sal-duration="1050"]{-webkit-transition-duration:1.05s;transition-duration:1.05s}[data-sal][data-sal-duration="1100"]{-webkit-transition-duration:1.1s;transition-duration:1.1s}[data-sal][data-sal-duration="1150"]{-webkit-transition-duration:1.15s;transition-duration:1.15s}[data-sal][data-sal-duration="1200"]{-webkit-transition-duration:1.2s;transition-duration:1.2s}[data-sal][data-sal-duration="1250"]{-webkit-transition-duration:1.25s;transition-duration:1.25s}[data-sal][data-sal-duration="1300"]{-webkit-transition-duration:1.3s;transition-duration:1.3s}[data-sal][data-sal-duration="1350"]{-webkit-transition-duration:1.35s;transition-duration:1.35s}[data-sal][data-sal-duration="1400"]{-webkit-transition-duration:1.4s;transition-duration:1.4s}[data-sal][data-sal-duration="1450"]{-webkit-transition-duration:1.45s;transition-duration:1.45s}[data-sal][data-sal-duration="1500"]{-webkit-transition-duration:1.5s;transition-duration:1.5s}[data-sal][data-sal-duration="1550"]{-webkit-transition-duration:1.55s;transition-duration:1.55s}[data-sal][data-sal-duration="1600"]{-webkit-transition-duration:1.6s;transition-duration:1.6s}[data-sal][data-sal-duration="1650"]{-webkit-transition-duration:1.65s;transition-duration:1.65s}[data-sal][data-sal-duration="1700"]{-webkit-transition-duration:1.7s;transition-duration:1.7s}[data-sal][data-sal-duration="1750"]{-webkit-transition-duration:1.75s;transition-duration:1.75s}[data-sal][data-sal-duration="1800"]{-webkit-transition-duration:1.8s;transition-duration:1.8s}[data-sal][data-sal-duration="1850"]{-webkit-transition-duration:1.85s;transition-duration:1.85s}[data-sal][data-sal-duration="1900"]{-webkit-transition-duration:1.9s;transition-duration:1.9s}[data-sal][data-sal-duration="1950"]{-webkit-transition-duration:1.95s;transition-duration:1.95s}[data-sal][data-sal-duration="2000"]{-webkit-transition-duration:2s;transition-duration:2s}[data-sal][data-sal-delay="50"]{-webkit-transition-delay:.05s;transition-delay:.05s}[data-sal][data-sal-delay="100"]{-webkit-transition-delay:.1s;transition-delay:.1s}[data-sal][data-sal-delay="150"]{-webkit-transition-delay:.15s;transition-delay:.15s}[data-sal][data-sal-delay="200"]{-webkit-transition-delay:.2s;transition-delay:.2s}[data-sal][data-sal-delay="250"]{-webkit-transition-delay:.25s;transition-delay:.25s}[data-sal][data-sal-delay="300"]{-webkit-transition-delay:.3s;transition-delay:.3s}[data-sal][data-sal-delay="350"]{-webkit-transition-delay:.35s;transition-delay:.35s}[data-sal][data-sal-delay="400"]{-webkit-transition-delay:.4s;transition-delay:.4s}[data-sal][data-sal-delay="450"]{-webkit-transition-delay:.45s;transition-delay:.45s}[data-sal][data-sal-delay="500"]{-webkit-transition-delay:.5s;transition-delay:.5s}[data-sal][data-sal-delay="550"]{-webkit-transition-delay:.55s;transition-delay:.55s}[data-sal][data-sal-delay="600"]{-webkit-transition-delay:.6s;transition-delay:.6s}[data-sal][data-sal-delay="650"]{-webkit-transition-delay:.65s;transition-delay:.65s}[data-sal][data-sal-delay="700"]{-webkit-transition-delay:.7s;transition-delay:.7s}[data-sal][data-sal-delay="750"]{-webkit-transition-delay:.75s;transition-delay:.75s}[data-sal][data-sal-delay="800"]{-webkit-transition-delay:.8s;transition-delay:.8s}[data-sal][data-sal-delay="850"]{-webkit-transition-delay:.85s;transition-delay:.85s}[data-sal][data-sal-delay="900"]{-webkit-transition-delay:.9s;transition-delay:.9s}[data-sal][data-sal-delay="950"]{-webkit-transition-delay:.95s;transition-delay:.95s}[data-sal][data-sal-delay="1000"]{-webkit-transition-delay:1s;transition-delay:1s}[data-sal][data-sal-easing=linear]{-webkit-transition-timing-function:linear;transition-timing-function:linear}[data-sal][data-sal-easing=ease]{-webkit-transition-timing-function:ease;transition-timing-function:ease}[data-sal][data-sal-easing=ease-in]{-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}[data-sal][data-sal-easing=ease-out]{-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}[data-sal][data-sal-easing=ease-in-out]{-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}[data-sal][data-sal-easing=ease-in-cubic]{-webkit-transition-timing-function:cubic-bezier(.55,.055,.675,.19);transition-timing-function:cubic-bezier(.55,.055,.675,.19)}[data-sal][data-sal-easing=ease-out-cubic]{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}[data-sal][data-sal-easing=ease-in-out-cubic]{-webkit-transition-timing-function:cubic-bezier(.645,.045,.355,1);transition-timing-function:cubic-bezier(.645,.045,.355,1)}[data-sal][data-sal-easing=ease-in-circ]{-webkit-transition-timing-function:cubic-bezier(.6,.04,.98,.335);transition-timing-function:cubic-bezier(.6,.04,.98,.335)}[data-sal][data-sal-easing=ease-out-circ]{-webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);transition-timing-function:cubic-bezier(.075,.82,.165,1)}[data-sal][data-sal-easing=ease-in-out-circ]{-webkit-transition-timing-function:cubic-bezier(.785,.135,.15,.86);transition-timing-function:cubic-bezier(.785,.135,.15,.86)}[data-sal][data-sal-easing=ease-in-expo]{-webkit-transition-timing-function:cubic-bezier(.95,.05,.795,.035);transition-timing-function:cubic-bezier(.95,.05,.795,.035)}[data-sal][data-sal-easing=ease-out-expo]{-webkit-transition-timing-function:cubic-bezier(.19,1,.22,1);transition-timing-function:cubic-bezier(.19,1,.22,1)}[data-sal][data-sal-easing=ease-in-out-expo]{-webkit-transition-timing-function:cubic-bezier(1,0,0,1);transition-timing-function:cubic-bezier(1,0,0,1)}[data-sal][data-sal-easing=ease-in-quad]{-webkit-transition-timing-function:cubic-bezier(.55,.085,.68,.53);transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-sal][data-sal-easing=ease-out-quad]{-webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94);transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-sal][data-sal-easing=ease-in-out-quad]{-webkit-transition-timing-function:cubic-bezier(.455,.03,.515,.955);transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-sal][data-sal-easing=ease-in-quart]{-webkit-transition-timing-function:cubic-bezier(.895,.03,.685,.22);transition-timing-function:cubic-bezier(.895,.03,.685,.22)}[data-sal][data-sal-easing=ease-out-quart]{-webkit-transition-timing-function:cubic-bezier(.165,.84,.44,1);transition-timing-function:cubic-bezier(.165,.84,.44,1)}[data-sal][data-sal-easing=ease-in-out-quart]{-webkit-transition-timing-function:cubic-bezier(.77,0,.175,1);transition-timing-function:cubic-bezier(.77,0,.175,1)}[data-sal][data-sal-easing=ease-in-quint]{-webkit-transition-timing-function:cubic-bezier(.755,.05,.855,.06);transition-timing-function:cubic-bezier(.755,.05,.855,.06)}[data-sal][data-sal-easing=ease-out-quint]{-webkit-transition-timing-function:cubic-bezier(.23,1,.32,1);transition-timing-function:cubic-bezier(.23,1,.32,1)}[data-sal][data-sal-easing=ease-in-out-quint]{-webkit-transition-timing-function:cubic-bezier(.86,0,.07,1);transition-timing-function:cubic-bezier(.86,0,.07,1)}[data-sal][data-sal-easing=ease-in-sine]{-webkit-transition-timing-function:cubic-bezier(.47,0,.745,.715);transition-timing-function:cubic-bezier(.47,0,.745,.715)}[data-sal][data-sal-easing=ease-out-sine]{-webkit-transition-timing-function:cubic-bezier(.39,.575,.565,1);transition-timing-function:cubic-bezier(.39,.575,.565,1)}[data-sal][data-sal-easing=ease-in-out-sine]{-webkit-transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[data-sal][data-sal-easing=ease-in-back]{-webkit-transition-timing-function:cubic-bezier(.6,-.28,.735,.045);transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[data-sal][data-sal-easing=ease-out-back]{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[data-sal][data-sal-easing=ease-in-out-back]{-webkit-transition-timing-function:cubic-bezier(.68,-.55,.265,1.55);transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[data-sal|=fade]{opacity:0;-webkit-transition-property:opacity;transition-property:opacity}[data-sal|=fade].sal-animate,body.sal-disabled [data-sal|=fade]{opacity:1}[data-sal|=slide]{opacity:0;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}[data-sal=slide-up]{-webkit-transform:translateY(50%);transform:translateY(50%)}[data-sal=slide-down]{-webkit-transform:translateY(-20%);transform:translateY(-20%)}[data-sal=slide-left]{-webkit-transform:translateX(20%);transform:translateX(20%)}[data-sal=slide-right]{-webkit-transform:translateX(-20%);transform:translateX(-20%)}[data-sal|=slide].sal-animate,body.sal-disabled [data-sal|=slide]{opacity:1;-webkit-transform:none;transform:none}[data-sal|=zoom]{opacity:0;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}[data-sal=zoom-in]{-webkit-transform:scale(.5);transform:scale(.5)}[data-sal=zoom-out]{-webkit-transform:scale(1.1);transform:scale(1.1)}[data-sal|=zoom].sal-animate,body.sal-disabled [data-sal|=zoom]{opacity:1;-webkit-transform:none;transform:none}[data-sal|=flip]{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}[data-sal=flip-left]{-webkit-transform:perspective(2000px) rotateY(-91deg);transform:perspective(2000px) rotateY(-91deg)}[data-sal=flip-right]{-webkit-transform:perspective(2000px) rotateY(91deg);transform:perspective(2000px) rotateY(91deg)}[data-sal=flip-up]{-webkit-transform:perspective(2000px) rotateX(-91deg);transform:perspective(2000px) rotateX(-91deg)}[data-sal=flip-down]{-webkit-transform:perspective(2000px) rotateX(91deg);transform:perspective(2000px) rotateX(91deg)}[data-sal|=flip].sal-animate,body.sal-disabled [data-sal|=flip]{-webkit-transform:none;transform:none} 2 | /*# sourceMappingURL=sal.css.map*/ -------------------------------------------------------------------------------- /node_modules/sal.js/dist/sal.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///./src/sal.scss"],"names":[],"mappings":"AASA,WAGE,4BACQ,mBAAqB,CAE/B,+CALE,gCACQ,uBAA0B,CAQpC,oCACE,iCACQ,wBAA2B,CAErC,oCACE,gCACQ,uBAA0B,CAEpC,oCACE,iCACQ,wBAA2B,CAErC,oCACE,gCACQ,uBAA0B,CAEpC,oCACE,iCACQ,wBAA2B,CAErC,oCACE,gCACQ,uBAA0B,CAEpC,oCACE,iCACQ,wBAA2B,CAErC,oCACE,gCACQ,uBAA0B,CAEpC,oCACE,iCACQ,wBAA2B,CAErC,oCACE,gCACQ,uBAA0B,CAEpC,oCACE,iCACQ,wBAA2B,CAErC,oCACE,gCACQ,uBAA0B,CAEpC,oCACE,iCACQ,wBAA2B,CAErC,oCACE,gCACQ,uBAA0B,CAEpC,oCACE,iCACQ,wBAA2B,CAErC,qCACE,+BACQ,sBAAwB,CAElC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,iCACQ,wBAA0B,CAEpC,qCACE,kCACQ,yBAA2B,CAErC,qCACE,+BACQ,sBAAwB,CAElC,gCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,iCACE,6BACQ,oBAAuB,CAEjC,iCACE,8BACQ,qBAAwB,CAElC,kCACE,4BACQ,mBAAqB,CAE/B,qCACE,0CACQ,kCAGR,wCACQ,gCAGR,2CACQ,mCAGR,4CACQ,oCAGR,+CACQ,uCAGR,mEACQ,2DAGR,iEACQ,yDAGR,kEACQ,0DAGR,iEACQ,yDAGR,iEACQ,yDAGR,mEACQ,2DAGR,mEACQ,2DAGR,6DACQ,qDAGR,yDACQ,iDAGR,kEACQ,0DAGR,iEACQ,yDAGR,oEACQ,4DAGR,mEACQ,2DAGR,gEACQ,wDAGR,8DACQ,sDAGR,mEACQ,2DAGR,6DACQ,qDAGR,6DACQ,qDAGR,iEACQ,yDAGR,iEACQ,yDAGR,kEACQ,0DAGR,mEACQ,2DAGR,qEACQ,6DAGR,oEACQ,2DAAmE,CAK7E,iBACE,UACA,oCACA,2BAA6B,CAE/B,gEAEE,SAAW,CAEb,kBACE,UACA,sDACA,8CACA,sCACA,uDAA2D,CAE7D,oBACE,kCACQ,yBAA2B,CAErC,sBACE,mCACQ,0BAA4B,CAEtC,sBACE,kCACQ,yBAA2B,CAErC,uBACE,mCACQ,0BAA4B,CAEtC,kEAEE,UACA,uBACQ,cAAgB,CAE1B,iBACE,UACA,sDACA,8CACA,sCACA,uDAA2D,CAE7D,mBACE,4BACQ,mBAAsB,CAEhC,oBACE,6BACQ,oBAAsB,CAEhC,gEAEE,UACA,uBACQ,cAAgB,CAE1B,iBACE,mCACQ,2BACR,8CACA,sCACA,8BACA,+CAAkD,CAEpD,qBACE,sDACQ,6CAA+C,CAEzD,sBACE,qDACQ,4CAA8C,CAExD,mBACE,sDACQ,6CAA+C,CAEzD,qBACE,qDACQ,4CAA8C,CAExD,gEAEE,uBACQ,cAAgB","file":"sal.css","sourcesContent":["/**\n * Settings\n */\n/**\n * Easings\n */\n/**\n * Core\n */\n[data-sal] {\n -webkit-transition-duration: 0.2s;\n transition-duration: 0.2s;\n -webkit-transition-delay: 0s;\n transition-delay: 0s; }\n\n[data-sal][data-sal-duration='200'] {\n -webkit-transition-duration: 0.2s;\n transition-duration: 0.2s; }\n\n[data-sal][data-sal-duration='250'] {\n -webkit-transition-duration: 0.25s;\n transition-duration: 0.25s; }\n\n[data-sal][data-sal-duration='300'] {\n -webkit-transition-duration: 0.3s;\n transition-duration: 0.3s; }\n\n[data-sal][data-sal-duration='350'] {\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s; }\n\n[data-sal][data-sal-duration='400'] {\n -webkit-transition-duration: 0.4s;\n transition-duration: 0.4s; }\n\n[data-sal][data-sal-duration='450'] {\n -webkit-transition-duration: 0.45s;\n transition-duration: 0.45s; }\n\n[data-sal][data-sal-duration='500'] {\n -webkit-transition-duration: 0.5s;\n transition-duration: 0.5s; }\n\n[data-sal][data-sal-duration='550'] {\n -webkit-transition-duration: 0.55s;\n transition-duration: 0.55s; }\n\n[data-sal][data-sal-duration='600'] {\n -webkit-transition-duration: 0.6s;\n transition-duration: 0.6s; }\n\n[data-sal][data-sal-duration='650'] {\n -webkit-transition-duration: 0.65s;\n transition-duration: 0.65s; }\n\n[data-sal][data-sal-duration='700'] {\n -webkit-transition-duration: 0.7s;\n transition-duration: 0.7s; }\n\n[data-sal][data-sal-duration='750'] {\n -webkit-transition-duration: 0.75s;\n transition-duration: 0.75s; }\n\n[data-sal][data-sal-duration='800'] {\n -webkit-transition-duration: 0.8s;\n transition-duration: 0.8s; }\n\n[data-sal][data-sal-duration='850'] {\n -webkit-transition-duration: 0.85s;\n transition-duration: 0.85s; }\n\n[data-sal][data-sal-duration='900'] {\n -webkit-transition-duration: 0.9s;\n transition-duration: 0.9s; }\n\n[data-sal][data-sal-duration='950'] {\n -webkit-transition-duration: 0.95s;\n transition-duration: 0.95s; }\n\n[data-sal][data-sal-duration='1000'] {\n -webkit-transition-duration: 1s;\n transition-duration: 1s; }\n\n[data-sal][data-sal-duration='1050'] {\n -webkit-transition-duration: 1.05s;\n transition-duration: 1.05s; }\n\n[data-sal][data-sal-duration='1100'] {\n -webkit-transition-duration: 1.1s;\n transition-duration: 1.1s; }\n\n[data-sal][data-sal-duration='1150'] {\n -webkit-transition-duration: 1.15s;\n transition-duration: 1.15s; }\n\n[data-sal][data-sal-duration='1200'] {\n -webkit-transition-duration: 1.2s;\n transition-duration: 1.2s; }\n\n[data-sal][data-sal-duration='1250'] {\n -webkit-transition-duration: 1.25s;\n transition-duration: 1.25s; }\n\n[data-sal][data-sal-duration='1300'] {\n -webkit-transition-duration: 1.3s;\n transition-duration: 1.3s; }\n\n[data-sal][data-sal-duration='1350'] {\n -webkit-transition-duration: 1.35s;\n transition-duration: 1.35s; }\n\n[data-sal][data-sal-duration='1400'] {\n -webkit-transition-duration: 1.4s;\n transition-duration: 1.4s; }\n\n[data-sal][data-sal-duration='1450'] {\n -webkit-transition-duration: 1.45s;\n transition-duration: 1.45s; }\n\n[data-sal][data-sal-duration='1500'] {\n -webkit-transition-duration: 1.5s;\n transition-duration: 1.5s; }\n\n[data-sal][data-sal-duration='1550'] {\n -webkit-transition-duration: 1.55s;\n transition-duration: 1.55s; }\n\n[data-sal][data-sal-duration='1600'] {\n -webkit-transition-duration: 1.6s;\n transition-duration: 1.6s; }\n\n[data-sal][data-sal-duration='1650'] {\n -webkit-transition-duration: 1.65s;\n transition-duration: 1.65s; }\n\n[data-sal][data-sal-duration='1700'] {\n -webkit-transition-duration: 1.7s;\n transition-duration: 1.7s; }\n\n[data-sal][data-sal-duration='1750'] {\n -webkit-transition-duration: 1.75s;\n transition-duration: 1.75s; }\n\n[data-sal][data-sal-duration='1800'] {\n -webkit-transition-duration: 1.8s;\n transition-duration: 1.8s; }\n\n[data-sal][data-sal-duration='1850'] {\n -webkit-transition-duration: 1.85s;\n transition-duration: 1.85s; }\n\n[data-sal][data-sal-duration='1900'] {\n -webkit-transition-duration: 1.9s;\n transition-duration: 1.9s; }\n\n[data-sal][data-sal-duration='1950'] {\n -webkit-transition-duration: 1.95s;\n transition-duration: 1.95s; }\n\n[data-sal][data-sal-duration='2000'] {\n -webkit-transition-duration: 2s;\n transition-duration: 2s; }\n\n[data-sal][data-sal-delay='50'] {\n -webkit-transition-delay: 0.05s;\n transition-delay: 0.05s; }\n\n[data-sal][data-sal-delay='100'] {\n -webkit-transition-delay: 0.1s;\n transition-delay: 0.1s; }\n\n[data-sal][data-sal-delay='150'] {\n -webkit-transition-delay: 0.15s;\n transition-delay: 0.15s; }\n\n[data-sal][data-sal-delay='200'] {\n -webkit-transition-delay: 0.2s;\n transition-delay: 0.2s; }\n\n[data-sal][data-sal-delay='250'] {\n -webkit-transition-delay: 0.25s;\n transition-delay: 0.25s; }\n\n[data-sal][data-sal-delay='300'] {\n -webkit-transition-delay: 0.3s;\n transition-delay: 0.3s; }\n\n[data-sal][data-sal-delay='350'] {\n -webkit-transition-delay: 0.35s;\n transition-delay: 0.35s; }\n\n[data-sal][data-sal-delay='400'] {\n -webkit-transition-delay: 0.4s;\n transition-delay: 0.4s; }\n\n[data-sal][data-sal-delay='450'] {\n -webkit-transition-delay: 0.45s;\n transition-delay: 0.45s; }\n\n[data-sal][data-sal-delay='500'] {\n -webkit-transition-delay: 0.5s;\n transition-delay: 0.5s; }\n\n[data-sal][data-sal-delay='550'] {\n -webkit-transition-delay: 0.55s;\n transition-delay: 0.55s; }\n\n[data-sal][data-sal-delay='600'] {\n -webkit-transition-delay: 0.6s;\n transition-delay: 0.6s; }\n\n[data-sal][data-sal-delay='650'] {\n -webkit-transition-delay: 0.65s;\n transition-delay: 0.65s; }\n\n[data-sal][data-sal-delay='700'] {\n -webkit-transition-delay: 0.7s;\n transition-delay: 0.7s; }\n\n[data-sal][data-sal-delay='750'] {\n -webkit-transition-delay: 0.75s;\n transition-delay: 0.75s; }\n\n[data-sal][data-sal-delay='800'] {\n -webkit-transition-delay: 0.8s;\n transition-delay: 0.8s; }\n\n[data-sal][data-sal-delay='850'] {\n -webkit-transition-delay: 0.85s;\n transition-delay: 0.85s; }\n\n[data-sal][data-sal-delay='900'] {\n -webkit-transition-delay: 0.9s;\n transition-delay: 0.9s; }\n\n[data-sal][data-sal-delay='950'] {\n -webkit-transition-delay: 0.95s;\n transition-delay: 0.95s; }\n\n[data-sal][data-sal-delay='1000'] {\n -webkit-transition-delay: 1s;\n transition-delay: 1s; }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: linear;\n transition-timing-function: linear; }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease; }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in; }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: ease-out;\n transition-timing-function: ease-out; }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: ease-in-out;\n transition-timing-function: ease-in-out; }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);\n transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.335);\n transition-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.335); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);\n transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);\n transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.95, 0.05, 0.795, 0.035);\n transition-timing-function: cubic-bezier(0.95, 0.05, 0.795, 0.035); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\n transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(1, 0, 0, 1);\n transition-timing-function: cubic-bezier(1, 0, 0, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53);\n transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);\n transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955);\n transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.895, 0.03, 0.685, 0.22);\n transition-timing-function: cubic-bezier(0.895, 0.03, 0.685, 0.22); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);\n transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);\n transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.86, 0, 0.07, 1);\n transition-timing-function: cubic-bezier(0.86, 0, 0.07, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715);\n transition-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1);\n transition-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95);\n transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045);\n transition-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); }\n\n[data-sal][data-sal-easing='${key}'] {\n -webkit-transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }\n\n/**\n * Animations\n */\n[data-sal|='fade'] {\n opacity: 0;\n -webkit-transition-property: opacity;\n transition-property: opacity; }\n\n[data-sal|='fade'].sal-animate,\nbody.sal-disabled [data-sal|='fade'] {\n opacity: 1; }\n\n[data-sal|='slide'] {\n opacity: 0;\n -webkit-transition-property: opacity, -webkit-transform;\n transition-property: opacity, -webkit-transform;\n transition-property: opacity, transform;\n transition-property: opacity, transform, -webkit-transform; }\n\n[data-sal='slide-up'] {\n -webkit-transform: translateY(20%);\n transform: translateY(20%); }\n\n[data-sal='slide-down'] {\n -webkit-transform: translateY(-20%);\n transform: translateY(-20%); }\n\n[data-sal='slide-left'] {\n -webkit-transform: translateX(20%);\n transform: translateX(20%); }\n\n[data-sal='slide-right'] {\n -webkit-transform: translateX(-20%);\n transform: translateX(-20%); }\n\n[data-sal|='slide'].sal-animate,\nbody.sal-disabled [data-sal|='slide'] {\n opacity: 1;\n -webkit-transform: none;\n transform: none; }\n\n[data-sal|='zoom'] {\n opacity: 0;\n -webkit-transition-property: opacity, -webkit-transform;\n transition-property: opacity, -webkit-transform;\n transition-property: opacity, transform;\n transition-property: opacity, transform, -webkit-transform; }\n\n[data-sal='zoom-in'] {\n -webkit-transform: scale(0.5);\n transform: scale(0.5); }\n\n[data-sal='zoom-out'] {\n -webkit-transform: scale(1.1);\n transform: scale(1.1); }\n\n[data-sal|='zoom'].sal-animate,\nbody.sal-disabled [data-sal|='zoom'] {\n opacity: 1;\n -webkit-transform: none;\n transform: none; }\n\n[data-sal|='flip'] {\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-transition-property: -webkit-transform;\n transition-property: -webkit-transform;\n transition-property: transform;\n transition-property: transform, -webkit-transform; }\n\n[data-sal='flip-left'] {\n -webkit-transform: perspective(2000px) rotateY(-91deg);\n transform: perspective(2000px) rotateY(-91deg); }\n\n[data-sal='flip-right'] {\n -webkit-transform: perspective(2000px) rotateY(91deg);\n transform: perspective(2000px) rotateY(91deg); }\n\n[data-sal='flip-up'] {\n -webkit-transform: perspective(2000px) rotateX(-91deg);\n transform: perspective(2000px) rotateX(-91deg); }\n\n[data-sal='flip-down'] {\n -webkit-transform: perspective(2000px) rotateX(91deg);\n transform: perspective(2000px) rotateX(91deg); }\n\n[data-sal|='flip'].sal-animate,\nbody.sal-disabled [data-sal|='flip'] {\n -webkit-transform: none;\n transform: none; }\n\n\n\n// WEBPACK FOOTER //\n// ./src/sal.scss"],"sourceRoot":""} -------------------------------------------------------------------------------- /node_modules/sal.js/dist/sal.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.sal=t():e.sal=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="dist/",t(t.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=o.threshold?(i(e.target),o.once&&t.unobserve(e.target)):o.once||l(e.target)})},m=function(){d(),a.disconnect(),a=null},p=function(){u(),a=new IntersectionObserver(b,{rootMargin:o.rootMargin,threshold:o.threshold}),s=[].filter.call(document.querySelectorAll(o.selector),function(e){return!c(e,o.animateClassName)}),s.forEach(function(e){return a.observe(e)})},h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o;if(e!==o&&(o=r({},o,e)),!window.IntersectionObserver)throw d(),Error("\n Your browser does not support IntersectionObserver!\n Get a polyfill from here:\n https://github.com/w3c/IntersectionObserver/tree/master/polyfill\n ");return f()?d():p(),{elements:s,disable:m,enable:p}};t.default=h},function(e,t){}]).default}); -------------------------------------------------------------------------------- /node_modules/sal.js/index.d.ts: -------------------------------------------------------------------------------- 1 | declare var sal: Sal; 2 | 3 | interface Options { 4 | rootMargin?: string; 5 | threshold?: number; 6 | animateClassName?: string; 7 | disabledClassName?: string; 8 | selector?: string; 9 | once?: boolean; 10 | disabled?: boolean; 11 | } 12 | 13 | interface PublicAPI { 14 | elements: HTMLElement[]; 15 | enable: () => void; 16 | disable: () => void; 17 | } 18 | 19 | type Sal = (options?: Options) => PublicAPI; 20 | export = sal; 21 | -------------------------------------------------------------------------------- /node_modules/sal.js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_from": "sal.js", 3 | "_id": "sal.js@0.5.0", 4 | "_inBundle": false, 5 | "_integrity": "sha512-O5V+PO108JldehJgIEu237spJiOtJYrnopm+SiSv7tr/Kw2e9WI3LHj1iHvpPC6otgTpTZ8y8e5MiEcVEUewCQ==", 6 | "_location": "/sal.js", 7 | "_phantomChildren": {}, 8 | "_requested": { 9 | "type": "tag", 10 | "registry": true, 11 | "raw": "sal.js", 12 | "name": "sal.js", 13 | "escapedName": "sal.js", 14 | "rawSpec": "", 15 | "saveSpec": null, 16 | "fetchSpec": "latest" 17 | }, 18 | "_requiredBy": [ 19 | "#USER", 20 | "/" 21 | ], 22 | "_resolved": "https://registry.npmjs.org/sal.js/-/sal.js-0.5.0.tgz", 23 | "_shasum": "1f4f5828363a6dfd6385e84f71adf3a5aa43ecf8", 24 | "_spec": "sal.js", 25 | "_where": "C:\\Users\\gary\\code\\sal-pre", 26 | "author": { 27 | "name": "Mirosław Ciastek" 28 | }, 29 | "bugs": { 30 | "url": "https://github.com/mciastek/sal/issues" 31 | }, 32 | "bundleDependencies": false, 33 | "deprecated": false, 34 | "description": "Performance focused, lightweight scroll animation library", 35 | "devDependencies": { 36 | "autoprefixer": "^7.1.4", 37 | "babel-core": "^6.26.0", 38 | "babel-eslint": "^7.2.3", 39 | "babel-jest": "^21.2.0", 40 | "babel-loader": "^7.1.2", 41 | "babel-plugin-transform-runtime": "^6.23.0", 42 | "babel-preset-es2015": "^6.24.1", 43 | "babel-preset-stage-0": "^6.24.1", 44 | "css-loader": "^0.28.7", 45 | "eslint": "^4.7.2", 46 | "eslint-config-airbnb-base": "^12.0.0", 47 | "eslint-plugin-import": "^2.7.0", 48 | "extract-text-webpack-plugin": "^3.0.1", 49 | "html-webpack-plugin": "^3.2.0", 50 | "jest": "^21.2.1", 51 | "node-sass": "^4.5.3", 52 | "postcss-loader": "^2.0.6", 53 | "pug": "^2.0.3", 54 | "pug-loader": "^2.4.0", 55 | "puppeteer": "^0.12.0", 56 | "sass-loader": "^6.0.6", 57 | "style-loader": "^0.19.0", 58 | "webpack": "^3.6.0" 59 | }, 60 | "files": [ 61 | "dist/", 62 | "index.d.ts" 63 | ], 64 | "homepage": "https://github.com/mciastek/sal#readme", 65 | "jest": { 66 | "transform": { 67 | ".*": "/node_modules/babel-jest" 68 | }, 69 | "moduleNameMapper": { 70 | "\\.(css|scss)$": "/test/mocks/styleMock.js" 71 | } 72 | }, 73 | "keywords": [ 74 | "scroll", 75 | "on scroll", 76 | "animate", 77 | "animations", 78 | "animate on scroll", 79 | "performance", 80 | "css" 81 | ], 82 | "license": "MIT", 83 | "licenses": [ 84 | { 85 | "type": "MIT", 86 | "url": "https://github.com/mciastek/sal/blob/master/LICENSE" 87 | } 88 | ], 89 | "main": "dist/sal.js", 90 | "name": "sal.js", 91 | "repository": { 92 | "type": "git", 93 | "url": "git+https://github.com/mciastek/sal.git" 94 | }, 95 | "scripts": { 96 | "build": "webpack", 97 | "pretest": "eslint ./src/**/*.js", 98 | "test": "NODE_ENV=test jest --verbose", 99 | "test:watch": "NODE_ENV=test jest --verbose --watchAll" 100 | }, 101 | "version": "0.5.0" 102 | } 103 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sal-pre", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "jump.js": { 8 | "version": "1.0.2", 9 | "resolved": "https://registry.npmjs.org/jump.js/-/jump.js-1.0.2.tgz", 10 | "integrity": "sha1-4GQbR/QKOPITnCX9oFAL8o5DAVo=" 11 | }, 12 | "sal.js": { 13 | "version": "0.5.0", 14 | "resolved": "https://registry.npmjs.org/sal.js/-/sal.js-0.5.0.tgz", 15 | "integrity": "sha512-O5V+PO108JldehJgIEu237spJiOtJYrnopm+SiSv7tr/Kw2e9WI3LHj1iHvpPC6otgTpTZ8y8e5MiEcVEUewCQ==" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sal-pre", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "jump.js": "^1.0.2", 14 | "sal.js": "^0.5.0" 15 | }, 16 | "devDependencies": { 17 | "babel-core": "^6.21.0", 18 | "babel-loader": "^7.1.4", 19 | "babel-preset-es2015": "^6.18.0", 20 | "webpack": "^4.8.3", 21 | "webpack-cli": "^2.1.4" 22 | } 23 | } 24 | --------------------------------------------------------------------------------