ratchet_design 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/ratchet/favicon.ico +0 -0
  3. data/app/assets/images/ratchet/safari-pinned-tab.svg +1 -0
  4. data/app/assets/javascripts/ratchet/base/form.js +9 -118
  5. data/app/assets/javascripts/ratchet/base/mobilemenu.js +12 -50
  6. data/app/assets/javascripts/ratchet/base/sync-input-value.js +30 -0
  7. data/app/assets/javascripts/ratchet/core.js +58 -77
  8. data/app/assets/javascripts/ratchet/enhancement/_collapse.js +3 -6
  9. data/app/assets/javascripts/ratchet/enhancement/_swap.js +3 -7
  10. data/app/assets/javascripts/ratchet/enhancement/lightbox.js +165 -0
  11. data/app/assets/javascripts/ratchet/enhancement/notice.js +8 -3
  12. data/app/assets/javascripts/ratchet/enhancement/sticky.js +18 -35
  13. data/app/assets/javascripts/ratchet/enhancement/waypoints.js +125 -162
  14. data/app/assets/javascripts/ratchet/shim/scope.js +94 -0
  15. data/app/assets/javascripts/ratchet/{enhancement → utility}/loader.js +15 -8
  16. data/app/assets/stylesheets/ratchet/_core.scss +4 -1
  17. data/app/assets/stylesheets/ratchet/base/_button.scss +3 -3
  18. data/app/assets/stylesheets/ratchet/base/_form.scss +63 -47
  19. data/app/assets/stylesheets/ratchet/base/_multistep-form.scss +64 -0
  20. data/app/assets/stylesheets/ratchet/base/_text.scss +15 -15
  21. data/app/assets/stylesheets/ratchet/enhancement/_lightbox.scss +98 -0
  22. data/app/assets/stylesheets/ratchet/enhancement/_tooltip.scss +142 -0
  23. data/app/assets/stylesheets/ratchet/fonts-woff.css +4 -4
  24. data/app/assets/stylesheets/ratchet/fonts-woff2.css +4 -4
  25. data/app/assets/stylesheets/ratchet/utility/_global.scss +3 -13
  26. data/app/assets/stylesheets/ratchet/{enhancement → utility}/_loader.scss +1 -1
  27. data/app/helpers/ratchet/application_helper.rb +6 -12
  28. data/app/helpers/ratchet/form_helper.rb +140 -0
  29. data/app/views/layouts/ratchet/default.html.slim +3 -2
  30. data/app/views/shared/ratchet/_footer.html.slim +1 -1
  31. data/app/views/shared/ratchet/_header.html.slim +1 -1
  32. data/lib/ratchet_design/version.rb +1 -1
  33. data/lib/ratchet_design.rb +24 -4
  34. data/public/assets/ratchet/core-0.1.2.js +133 -0
  35. data/public/assets/ratchet/core-0.1.2.js.gz +0 -0
  36. data/public/assets/ratchet/core-0.1.2.map.json +1 -0
  37. data/public/assets/ratchet/core-0.1.20.js +20472 -0
  38. data/public/assets/ratchet/{fonts-woff-0.1.1.css → fonts-woff-0.1.2.css} +4 -4
  39. data/public/assets/ratchet/{fonts-woff-0.1.1.css.gz → fonts-woff-0.1.2.css.gz} +0 -0
  40. data/public/assets/ratchet/{fonts-woff2-0.1.1.css → fonts-woff2-0.1.2.css} +4 -4
  41. data/public/assets/ratchet/{fonts-woff2-0.1.1.css.gz → fonts-woff2-0.1.2.css.gz} +0 -0
  42. metadata +48 -27
  43. data/app/assets/javascripts/ratchet/base/validation.js +0 -263
  44. data/app/assets/javascripts/ratchet/enhancement/_lightbox.js +0 -93
  45. data/app/assets/javascripts/ratchet/shim/classlist.js +0 -234
  46. data/app/assets/javascripts/ratchet/shim/object.assign.js +0 -30
  47. data/app/assets/javascripts/ratchet/utility/compile_data.js +0 -32
  48. data/app/assets/javascripts/ratchet/utility/from_top.js +0 -14
  49. data/app/assets/javascripts/ratchet/utility/full_stop.js +0 -55
  50. data/app/assets/javascripts/ratchet/utility/get_closest.js +0 -20
  51. data/app/assets/javascripts/ratchet/utility/get_next.js +0 -17
  52. data/app/assets/javascripts/ratchet/utility/matches.js +0 -15
  53. data/app/assets/javascripts/ratchet/utility/scroll_to.js +0 -74
  54. data/app/assets/javascripts/ratchet/utility/throttle.js +0 -25
  55. data/app/assets/javascripts/ratchet/utility/timeout.js +0 -45
  56. data/app/assets/javascripts/ratchet/utility/unhover.js +0 -56
  57. data/app/assets/javascripts/ratchet/utility/word_count.js +0 -15
  58. data/app/assets/stylesheets/ratchet/enhancement/_signup.scss +0 -206
  59. data/public/assets/ratchet/core-0.1.1.js +0 -103
  60. data/public/assets/ratchet/core-0.1.1.js.gz +0 -0
  61. data/public/assets/ratchet/core-0.1.1.map.json +0 -1
@@ -46,10 +46,10 @@
46
46
  unicode-range: U+26;
47
47
  }
48
48
 
49
- /* Rational TW */
49
+ /* Nitti */
50
50
  @font-face {
51
- font-family: 'Rational TW';
52
- src: url(data:font/woff;base64,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) format('woff');
51
+ font-family: 'Nitti';
52
+ src: url(data:font/woff;base64,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) format('woff');
53
53
  font-weight: 300;
54
54
  font-style: normal;
55
- }
55
+ }
@@ -46,10 +46,10 @@
46
46
  unicode-range: U+26;
47
47
  }
48
48
 
49
- /* Rational TW */
49
+ /* Nitti */
50
50
  @font-face {
51
- font-family: 'Rational TW';
52
- src: url(data:font/woff2;base64,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) format('woff2');
51
+ font-family: 'Nitti';
52
+ src: url(data:font/woff2;base64,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) format('woff2');
53
53
  font-weight: 300;
54
54
  font-style: normal;
55
- }
55
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ratchet_design
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Mathis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-08-11 00:00:00.000000000 Z
12
+ date: 2017-01-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cyborg
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '3.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: country_select
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '2.5'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '2.5'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: bundler
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -53,6 +67,20 @@ dependencies:
53
67
  - - "~>"
54
68
  - !ruby/object:Gem::Version
55
69
  version: '1.12'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rack-cors
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '0.4'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.4'
56
84
  - !ruby/object:Gem::Dependency
57
85
  name: rake
58
86
  requirement: !ruby/object:Gem::Requirement
@@ -79,54 +107,45 @@ files:
79
107
  - LICENSE.txt
80
108
  - README.md
81
109
  - app/assets/images/ratchet/favicon.ico
110
+ - app/assets/images/ratchet/safari-pinned-tab.svg
82
111
  - app/assets/javascripts/ratchet/_svg.js
83
112
  - app/assets/javascripts/ratchet/base/form.js
84
113
  - app/assets/javascripts/ratchet/base/mobilemenu.js
85
- - app/assets/javascripts/ratchet/base/validation.js
114
+ - app/assets/javascripts/ratchet/base/sync-input-value.js
86
115
  - app/assets/javascripts/ratchet/core.js
87
116
  - app/assets/javascripts/ratchet/enhancement/_collapse.js
88
- - app/assets/javascripts/ratchet/enhancement/_lightbox.js
89
117
  - app/assets/javascripts/ratchet/enhancement/_swap.js
90
118
  - app/assets/javascripts/ratchet/enhancement/_switcheroo.js
91
119
  - app/assets/javascripts/ratchet/enhancement/_textcounter.js
92
- - app/assets/javascripts/ratchet/enhancement/loader.js
120
+ - app/assets/javascripts/ratchet/enhancement/lightbox.js
93
121
  - app/assets/javascripts/ratchet/enhancement/notice.js
94
122
  - app/assets/javascripts/ratchet/enhancement/sticky.js
95
123
  - app/assets/javascripts/ratchet/enhancement/waypoints.js
96
- - app/assets/javascripts/ratchet/shim/classlist.js
97
- - app/assets/javascripts/ratchet/shim/object.assign.js
98
- - app/assets/javascripts/ratchet/utility/compile_data.js
99
- - app/assets/javascripts/ratchet/utility/from_top.js
100
- - app/assets/javascripts/ratchet/utility/full_stop.js
101
- - app/assets/javascripts/ratchet/utility/get_closest.js
102
- - app/assets/javascripts/ratchet/utility/get_next.js
124
+ - app/assets/javascripts/ratchet/shim/scope.js
103
125
  - app/assets/javascripts/ratchet/utility/load_font.js
104
126
  - app/assets/javascripts/ratchet/utility/load_script.js
105
- - app/assets/javascripts/ratchet/utility/matches.js
106
- - app/assets/javascripts/ratchet/utility/scroll_to.js
107
- - app/assets/javascripts/ratchet/utility/throttle.js
108
- - app/assets/javascripts/ratchet/utility/timeout.js
109
- - app/assets/javascripts/ratchet/utility/unhover.js
110
- - app/assets/javascripts/ratchet/utility/word_count.js
127
+ - app/assets/javascripts/ratchet/utility/loader.js
111
128
  - app/assets/stylesheets/ratchet/_core.scss
112
129
  - app/assets/stylesheets/ratchet/base/_button.scss
113
130
  - app/assets/stylesheets/ratchet/base/_document.scss
114
131
  - app/assets/stylesheets/ratchet/base/_form.scss
115
132
  - app/assets/stylesheets/ratchet/base/_list.scss
116
133
  - app/assets/stylesheets/ratchet/base/_media.scss
134
+ - app/assets/stylesheets/ratchet/base/_multistep-form.scss
117
135
  - app/assets/stylesheets/ratchet/base/_table.scss
118
136
  - app/assets/stylesheets/ratchet/base/_text.scss
119
137
  - app/assets/stylesheets/ratchet/enhancement/_contrast-section.scss
120
138
  - app/assets/stylesheets/ratchet/enhancement/_feature.scss
121
139
  - app/assets/stylesheets/ratchet/enhancement/_hero.scss
122
- - app/assets/stylesheets/ratchet/enhancement/_loader.scss
140
+ - app/assets/stylesheets/ratchet/enhancement/_lightbox.scss
123
141
  - app/assets/stylesheets/ratchet/enhancement/_notice.scss
124
- - app/assets/stylesheets/ratchet/enhancement/_signup.scss
125
142
  - app/assets/stylesheets/ratchet/enhancement/_sticky-sidebar.scss
143
+ - app/assets/stylesheets/ratchet/enhancement/_tooltip.scss
126
144
  - app/assets/stylesheets/ratchet/fonts-woff.css
127
145
  - app/assets/stylesheets/ratchet/fonts-woff2.css
128
146
  - app/assets/stylesheets/ratchet/utility/_global.scss
129
147
  - app/assets/stylesheets/ratchet/utility/_grid.scss
148
+ - app/assets/stylesheets/ratchet/utility/_loader.scss
130
149
  - app/assets/svgs/ratchet/facebook.svg
131
150
  - app/assets/svgs/ratchet/github.svg
132
151
  - app/assets/svgs/ratchet/google-plus.svg
@@ -139,19 +158,21 @@ files:
139
158
  - app/assets/svgs/ratchet/twitter.svg
140
159
  - app/assets/svgs/ratchet/y-combinator.svg
141
160
  - app/helpers/ratchet/application_helper.rb
161
+ - app/helpers/ratchet/form_helper.rb
142
162
  - app/views/layouts/ratchet/default.html.slim
143
163
  - app/views/shared/ratchet/_footer.html.slim
144
164
  - app/views/shared/ratchet/_header.html.slim
145
165
  - app/views/shared/ratchet/_icons.html.slim
146
166
  - lib/ratchet_design.rb
147
167
  - lib/ratchet_design/version.rb
148
- - public/assets/ratchet/core-0.1.1.js
149
- - public/assets/ratchet/core-0.1.1.js.gz
150
- - public/assets/ratchet/core-0.1.1.map.json
151
- - public/assets/ratchet/fonts-woff-0.1.1.css
152
- - public/assets/ratchet/fonts-woff-0.1.1.css.gz
153
- - public/assets/ratchet/fonts-woff2-0.1.1.css
154
- - public/assets/ratchet/fonts-woff2-0.1.1.css.gz
168
+ - public/assets/ratchet/core-0.1.2.js
169
+ - public/assets/ratchet/core-0.1.2.js.gz
170
+ - public/assets/ratchet/core-0.1.2.map.json
171
+ - public/assets/ratchet/core-0.1.20.js
172
+ - public/assets/ratchet/fonts-woff-0.1.2.css
173
+ - public/assets/ratchet/fonts-woff-0.1.2.css.gz
174
+ - public/assets/ratchet/fonts-woff2-0.1.2.css
175
+ - public/assets/ratchet/fonts-woff2-0.1.2.css.gz
155
176
  homepage:
156
177
  licenses:
157
178
  - MIT
@@ -1,263 +0,0 @@
1
- /**
2
- * Validation 0.0.6
3
- * Compose form validation module
4
- * @author Kyle Foster (@hkfoster)
5
- * @license MIT
6
- **/
7
-
8
- // Dependencies
9
- var matches = require( '../utility/matches' ),
10
- getClosest = require( '../utility/get_closest' ),
11
- wordCount = require( '../utility/word_count' );
12
-
13
- // Public API function
14
- var validation = function( element, settings ) {
15
-
16
- // Overridable defaults
17
- var defaults = {};
18
-
19
- // Parameter variables
20
- var selector = document.querySelector( element ) || document.querySelector( '[required]' );
21
-
22
- // Only run if selector exists & validation is supported
23
- if ( !selector || typeof document.createElement( 'input' ).checkValidity !== 'function' ) return false;
24
-
25
- // Scoped variables
26
- var options = Object.assign( {}, defaults, settings ),
27
- docBody = document.body;
28
-
29
- // Suppress default message bubbles
30
- docBody.addEventListener( 'invalid', function( event ) {
31
- event.preventDefault();
32
- }, true );
33
-
34
- // Run delegated `on blur` validation checks
35
- docBody.addEventListener( 'blur', blurHandler, true );
36
-
37
- // Run delegated `on submit` validation checks
38
- docBody.addEventListener( 'click', submissionHandler, false );
39
-
40
- // Blur validation handler
41
- function blurHandler( event ) {
42
-
43
- // Only run on non-submit inputs
44
- if ( !matches( event.target, 'input:not([type=submit]), textarea' ) ) return false;
45
-
46
- // Scoped variables
47
- var element = event.target,
48
- minWords = element.dataset.minWords,
49
- maxWords = element.dataset.maxWords,
50
- indicator = getClosest( element, 'label' ) || element,
51
- validity;
52
-
53
- // If element only contains whitespace, strip value
54
- if ( element.value && !element.value.replace( /\s/g, '' ).length ) {
55
- element.value = '';
56
- }
57
-
58
- // Remove pre-existing validation message
59
- messageHandler( 'hide', element );
60
-
61
- // If element has `data-min-words` attribute
62
- if ( minWords ) {
63
-
64
- // Run respective validation function
65
- validateWords( 'min', element, minWords );
66
-
67
- }
68
-
69
- // If element has `data-min-words` attribute
70
- if ( maxWords ) {
71
-
72
- // Run respective validation function
73
- validateWords( 'max', element, maxWords );
74
-
75
- }
76
-
77
- // Check validity
78
- validity = element.checkValidity();
79
-
80
- // If the element has a value but is invalid
81
- if ( element.value && !validity ) {
82
-
83
- // Set invalid state
84
- indicator.classList.remove( 'valid' );
85
- indicator.classList.add( 'invalid' );
86
-
87
- // If the element has a value and is valid
88
- } else if ( element.value && validity ) {
89
-
90
- // Set valid state
91
- indicator.classList.remove( 'invalid' );
92
- indicator.classList.add( 'valid' );
93
-
94
- // If the element has no value
95
- } else if ( !element.value ) {
96
-
97
- // Set neutral state
98
- indicator.classList.remove( 'valid' );
99
- indicator.classList.remove( 'invalid' );
100
-
101
- }
102
-
103
- }
104
-
105
- // Submission validation handler function
106
- function submissionHandler( event ) {
107
-
108
- // Only run on submission
109
- if ( !matches( event.target, 'input[type=submit], button[type=submit]' ) ) return;
110
-
111
- // Scoped variables
112
- var invalidForm = getClosest( event.target, 'form' ),
113
- invalidElem = invalidForm.querySelector( 'input:invalid, textarea:invalid' ),
114
- indicator;
115
-
116
- // If invalid element found
117
- if ( invalidElem ) {
118
-
119
- // Set indicator to parent label if it exists
120
- indicator = getClosest( invalidElem, 'label' ) || invalidElem;
121
-
122
- // If credit card field is invalid
123
- if ( matches( invalidElem, '[data-stripe=number]' ) ) {
124
-
125
- // Strip it of non-number characters
126
- invalidElem.value = invalidElem.value.replace( /[^0-9 -]/g, '' );
127
-
128
- // Evaluate form validity again
129
- invalidElem = invalidForm.querySelector( 'input:invalid, textarea:invalid' );
130
-
131
- // And return if valid
132
- if ( !invalidElem ) return;
133
-
134
- }
135
-
136
- // Prevent default behavior
137
- event.preventDefault();
138
-
139
- // If invalid is not hidden
140
- if ( invalidElem.style.display !== 'none' ) {
141
-
142
- // Focus it
143
- invalidElem.focus();
144
-
145
- // Otherwise
146
- } else {
147
-
148
- // Focus its immediate sibling (mostly used for upload buttons)
149
- invalidElem.nextSibling.focus();
150
-
151
- }
152
-
153
- // Toggle classes
154
- indicator.classList.remove( 'valid' );
155
- indicator.classList.add( 'invalid' );
156
-
157
- // Show validation message
158
- messageHandler( 'show', invalidElem );
159
-
160
- // Prevent Safari submission
161
- return false;
162
-
163
- }
164
-
165
- }
166
-
167
- // Validation message handler function
168
- function messageHandler( action, element ) {
169
-
170
- // Scoped variables
171
- var parentForm = getClosest( element, 'form' ),
172
- oldMessage = parentForm.querySelector( '.validation-message' ),
173
- newMessage = element.validationMessage,
174
-
175
- // Hide old message
176
- hideMessage = function() {
177
- oldMessage.parentNode.removeChild( oldMessage );
178
- },
179
-
180
- // Show new message
181
- showMessage = function() {
182
-
183
- // Find the element's parent label
184
- var labelParent = getClosest( element, 'label' );
185
-
186
- // If it doesn't exist, abort
187
- if ( !labelParent ) return false;
188
-
189
- // Otherwise, create and append the validation message
190
- labelParent.insertAdjacentHTML( 'beforeend', '<aside class="validation-message"><p>' + newMessage + '</p></aside>' );
191
-
192
- };
193
-
194
- // If a `data-message` attribute exists, use it in message
195
- if ( element.dataset.message ) newMessage = element.dataset.message;
196
-
197
- // If hide action is passed hide old message
198
- if ( oldMessage && action === 'hide' ) hideMessage();
199
-
200
- // If show action is passed and no old message exists
201
- if ( action === 'show' && !oldMessage ) {
202
-
203
- // Show new message
204
- showMessage();
205
-
206
- // If show action is passed and old message exists
207
- } else if ( action === 'show' && oldMessage ) {
208
-
209
- // Make sure old message is not on currently invalid element
210
- if ( oldMessage.parentNode !== element.parentNode ) {
211
-
212
- // Hide old message
213
- hideMessage();
214
-
215
- // And show new message
216
- showMessage();
217
-
218
- // Otherwise
219
- } else {
220
-
221
- // Update message text on currently invalid element
222
- oldMessage.childNodes[ 0 ].textContent = newMessage;
223
-
224
- }
225
-
226
- }
227
-
228
- }
229
-
230
- // Min- or max-words validation function
231
- function validateWords( type, element, goal ) {
232
-
233
- // Defaults settings to min-words
234
- var value = element.value,
235
- condition = wordCount( value ) < goal,
236
- verbiage = 'at least ';
237
-
238
- // Overwrite defaults in case of max-words
239
- if ( type === 'max' ) {
240
- condition = wordCount( value ) > goal;
241
- verbiage = 'no more than ';
242
- }
243
-
244
- // If value exists and it meets invalid condition
245
- if ( value && condition ) {
246
-
247
- // Set a custom error message
248
- element.setCustomValidity( 'Please write ' + verbiage + goal + ' words.' );
249
-
250
- // Otherwise
251
- } else {
252
-
253
- // Default to normal error messaging
254
- element.setCustomValidity( '' );
255
-
256
- }
257
-
258
- }
259
-
260
- };
261
-
262
- // Public API
263
- module.exports = validation;
@@ -1,93 +0,0 @@
1
- Event = require('compose-event')
2
- /**
3
- * Lightbox.js 0.0.2
4
- * A lightbox plugin that makes sense
5
- * @author Kyle Foster (@hkfoster)
6
- * @license MIT
7
- **/
8
-
9
- // Transport
10
- ( function( root, factory ) {
11
- if ( typeof define === 'function' && define.amd ) {
12
- define( factory );
13
- } else if ( typeof exports === 'object' ) {
14
- module.exports = factory;
15
- } else {
16
- root.lightbox = factory( root );
17
- }
18
- })( this, function( root ) {
19
-
20
- 'use strict';
21
-
22
- // Define global variable(s)
23
- var lightboxTrigger = document.querySelectorAll( '[rel="lightbox"]' );
24
-
25
- // Only run if lightbox trigger is present
26
- if ( lightboxTrigger ) {
27
- init();
28
- }
29
-
30
- // Where the magic happens
31
- function init() {
32
-
33
- // Preload lightbox images
34
- for ( var imgIndex = 0; imgIndex < lightboxTrigger.length; imgIndex ++ ) {
35
-
36
- // Create a temporary image element
37
- var tempImg = new Image();
38
-
39
- // And use it to load up image(s)
40
- tempImg.src = lightboxTrigger[ imgIndex ].href;
41
-
42
- }
43
-
44
- // Attach our click listener
45
- Event.on(document, 'click', '[rel="lightbox"]', openLightbox)
46
-
47
- }
48
-
49
- // Open lightbox function
50
- function openLightbox( event ) {
51
-
52
- // Prevent default behavior/bubbling
53
- event.stopPropagation();
54
- event.preventDefault();
55
-
56
- // Define scoped variable(s)
57
- var lightboxUrl = event.target.href,
58
- lightboxCont = '<aside class="lightbox-overlay"><figure class="lightbox-content"><img src="' + lightboxUrl + '" alt=""><a class="close-btn" href="#?"></a></figure></aside>';
59
-
60
- // Open the lightbox
61
- document.body.insertAdjacentHTML('beforeend' lightboxCont );
62
-
63
- // Prevent scrolling while lightbox is shown
64
- document.body.style.overflow = 'hidden';
65
-
66
- Event.one('.close-btn', 'click', closeLightbox)
67
-
68
- }
69
-
70
- // Close lightbox function
71
- function closeLightbox( event ) {
72
-
73
- // Prevent default behavior/bubbling
74
- event.stopPropagation();
75
- event.preventDefault();
76
-
77
- // Define scoped variable(s)
78
- var lightboxOverlay = document.querySelector( '.lightbox-overlay' ),
79
- lightboxContent = lightboxOverlay.querySelector( '.lightbox-content' ),
80
-
81
- // Kick off closing animation
82
- lightboxContent.className += ' closing';
83
-
84
- Event.one(lightboxContent, 'animationend', function() {
85
- // Remove the lightbox from the DOM
86
- document.body.removeChild( lightboxOverlay );
87
-
88
- // And turn scrolling back on
89
- document.body.style.overflow = '';
90
- })
91
- }
92
-
93
- });