ratchet_design 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/ratchet/core.js +3 -3
- data/app/assets/javascripts/ratchet/enhancement/_collapse.js +3 -6
- data/app/assets/javascripts/ratchet/enhancement/_swap.js +61 -72
- data/app/assets/javascripts/ratchet/enhancement/lightbox.js +43 -135
- data/app/assets/javascripts/ratchet/{enhancement → utility}/loader.js +7 -2
- data/app/assets/stylesheets/ratchet/_core.scss +1 -1
- data/app/assets/stylesheets/ratchet/enhancement/_lightbox.scss +8 -3
- data/app/assets/stylesheets/ratchet/{enhancement → utility}/_loader.scss +0 -0
- data/app/views/layouts/ratchet/default.html.slim +1 -1
- data/lib/ratchet_design/version.rb +1 -1
- data/public/assets/ratchet/core-0.1.1.js +103 -0
- data/public/assets/ratchet/core-0.1.1.js.gz +0 -0
- data/public/assets/ratchet/core-0.1.1.map.json +1 -0
- data/public/assets/ratchet/core-0.1.7.js +18018 -0
- data/public/assets/ratchet/fonts-woff-0.1.1.css +55 -0
- data/public/assets/ratchet/{fonts-woff-0.1.8.css.gz → fonts-woff-0.1.1.css.gz} +0 -0
- data/public/assets/ratchet/{fonts-woff-0.1.8.css → fonts-woff-0.1.7.css} +0 -0
- data/public/assets/ratchet/fonts-woff2-0.1.1.css +55 -0
- data/public/assets/ratchet/{fonts-woff2-0.1.8.css.gz → fonts-woff2-0.1.1.css.gz} +0 -0
- data/public/assets/ratchet/{fonts-woff2-0.1.8.css → fonts-woff2-0.1.7.css} +0 -0
- metadata +15 -13
- data/app/assets/javascripts/ratchet/utility/ajax.js +0 -122
- data/public/assets/ratchet/core-0.1.8.js +0 -107
- data/public/assets/ratchet/core-0.1.8.js.gz +0 -0
- data/public/assets/ratchet/core-0.1.8.map.json +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aef44c1ad9f928199a956dea5dba0cf289bb48df
|
4
|
+
data.tar.gz: 720ddc559f457ce0210126e87d45e0b6936ca690
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e21b41531dc60488671e22d57b64a8490a93c6973afc80767b514baedcc22707815c262f2fae0ce21f4177b62f662fd3879903e33e9968df6440d978e4c0e08
|
7
|
+
data.tar.gz: d9135ea36d1f05cb47df0567ec752a15af756b9296999c9aa405c11552be3886226bdfac2f118f1aa2542236b7473371753a5f1d40cfee6e2a24ef091cf1d53f
|
@@ -16,7 +16,8 @@ var getNext = require( './utility/get_next' );
|
|
16
16
|
var wordCount = require( './utility/word_count' );
|
17
17
|
var compileData = require( './utility/compile_data' );
|
18
18
|
var timeout = require( './utility/timeout' );
|
19
|
-
var ajax = require( '
|
19
|
+
var ajax = require( 'superagent' );
|
20
|
+
var loader = require( './utility/loader' );
|
20
21
|
|
21
22
|
// Base modules
|
22
23
|
var mobileMenu = require( './base/mobilemenu' );
|
@@ -24,7 +25,6 @@ var form = require( './base/form' );
|
|
24
25
|
var validation = require( './base/validation' );
|
25
26
|
|
26
27
|
// Enhancement modules
|
27
|
-
var loader = require( './enhancement/loader' );
|
28
28
|
var waypoints = require( './enhancement/waypoints' );
|
29
29
|
var notice = require( './enhancement/notice' );
|
30
30
|
var sticky = require( './enhancement/sticky' );
|
@@ -66,10 +66,10 @@ window.ratchet = module.exports = {
|
|
66
66
|
compileData : compileData,
|
67
67
|
timeout : timeout,
|
68
68
|
ajax : ajax,
|
69
|
+
loader : loader,
|
69
70
|
mobileMenu : mobileMenu,
|
70
71
|
form : form,
|
71
72
|
validation : validation,
|
72
|
-
loader : loader,
|
73
73
|
waypoints : waypoints,
|
74
74
|
notice : notice,
|
75
75
|
sticky : sticky,
|
@@ -5,9 +5,6 @@
|
|
5
5
|
* @license MIT
|
6
6
|
**/
|
7
7
|
|
8
|
-
// Dependencies
|
9
|
-
var getClosest = require('../utility/get_closest')
|
10
|
-
|
11
8
|
;( function( root, factory ) {
|
12
9
|
if ( typeof define === 'function' && define.amd ) {
|
13
10
|
define( factory );
|
@@ -29,7 +26,7 @@ var getClosest = require('../utility/get_closest')
|
|
29
26
|
defaults = {
|
30
27
|
expandText : 'Show more ∨',
|
31
28
|
collapseText : 'Show less ∧',
|
32
|
-
triggerText : '
|
29
|
+
triggerText : '{{ more }}'
|
33
30
|
};
|
34
31
|
|
35
32
|
// Only run if selector exists
|
@@ -77,7 +74,7 @@ var getClosest = require('../utility/get_closest')
|
|
77
74
|
event.preventDefault();
|
78
75
|
|
79
76
|
// Scoped variables
|
80
|
-
var expandable = getClosest( event.target, element ),
|
77
|
+
var expandable = compose.getClosest( event.target, element ),
|
81
78
|
stateObject = state[ expandable.dataset.idx ];
|
82
79
|
|
83
80
|
// Toggle between excerpt and full text
|
@@ -93,4 +90,4 @@ var getClosest = require('../utility/get_closest')
|
|
93
90
|
// Public API
|
94
91
|
return exports;
|
95
92
|
|
96
|
-
});
|
93
|
+
});
|
@@ -4,9 +4,7 @@
|
|
4
4
|
* @license MIT
|
5
5
|
**/
|
6
6
|
|
7
|
-
//
|
8
|
-
var matches = require( '../utility/matches' );
|
9
|
-
|
7
|
+
// Transport
|
10
8
|
;( function( root, factory ) {
|
11
9
|
if ( typeof define === 'function' && define.amd ) {
|
12
10
|
define( factory );
|
@@ -19,109 +17,100 @@ var matches = require( '../utility/matches' );
|
|
19
17
|
|
20
18
|
'use strict';
|
21
19
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
assignHash : false
|
26
|
-
};
|
20
|
+
var triggers = document.querySelectorAll( '.swap-trigger' );
|
21
|
+
|
22
|
+
if ( triggers.length ) {
|
27
23
|
|
28
|
-
|
29
|
-
|
24
|
+
// Assignment
|
25
|
+
var location = window.location.hash;
|
30
26
|
|
31
|
-
//
|
32
|
-
var
|
33
|
-
selectors = document.querySelectorAll( element ),
|
34
|
-
location;
|
27
|
+
// Swap function
|
28
|
+
var swap = function( trigger, target ) {
|
35
29
|
|
36
|
-
|
37
|
-
|
30
|
+
// Find all current `selected` class elements
|
31
|
+
var currentSelection = document.querySelectorAll( '.selected' );
|
38
32
|
|
39
|
-
|
40
|
-
|
33
|
+
// And deselect them
|
34
|
+
for ( var i = 0; i < currentSelection.length; i++ ) {
|
35
|
+
currentSelection[ i ].classList.remove( 'selected' );
|
36
|
+
}
|
41
37
|
|
42
|
-
|
38
|
+
// Select our new elements
|
39
|
+
trigger.classList.add( 'selected' );
|
40
|
+
target.classList.add( 'selected' );
|
41
|
+
};
|
43
42
|
|
44
|
-
|
45
|
-
|
43
|
+
// Get current window hash
|
44
|
+
var getHash = function() {
|
45
|
+
return location.split( '#' )[ 1 ];
|
46
|
+
};
|
46
47
|
|
47
|
-
|
48
|
+
// Get link target hash
|
49
|
+
var getLinkTarget = function( link ) {
|
50
|
+
return link.href.split( '#' )[ 1 ];
|
51
|
+
};
|
48
52
|
|
49
|
-
//
|
50
|
-
function
|
53
|
+
// Hash check function
|
54
|
+
var hashCheck = function( event ) {
|
51
55
|
|
52
|
-
//
|
53
|
-
|
56
|
+
// If no hash
|
57
|
+
if ( !location ) {
|
54
58
|
|
55
|
-
|
56
|
-
|
59
|
+
// Assign first element(s) variables
|
60
|
+
var firstTrigger = document.querySelector( '.swap-trigger' ),
|
61
|
+
firstTarget = document.querySelector( '.swappable' );
|
57
62
|
|
58
|
-
//
|
59
|
-
swap(
|
63
|
+
// And select them
|
64
|
+
swap( firstTrigger, firstTarget );
|
60
65
|
|
61
66
|
// Otherwise
|
62
67
|
} else {
|
63
68
|
|
64
69
|
// Stop default anchor tag jump
|
65
|
-
window.scrollTo(
|
70
|
+
window.scrollTo(0, 0);
|
66
71
|
|
67
|
-
//
|
68
|
-
|
72
|
+
// Assign appropriate element(s) variables
|
73
|
+
var loadedTarget = document.querySelector( '#' + getHash() ),
|
74
|
+
loadedTrigger = document.querySelector('[href="#' + getHash() + '"]' );
|
75
|
+
|
76
|
+
// And select them
|
77
|
+
swap( loadedTrigger, loadedTarget );
|
69
78
|
|
70
79
|
}
|
71
80
|
|
72
|
-
}
|
81
|
+
};
|
73
82
|
|
74
83
|
// Click handler function
|
75
|
-
|
76
|
-
|
77
|
-
// Only run on anchor links
|
78
|
-
if ( !matches( event.target, 'a[href^="#"]' ) ) return false;
|
84
|
+
var clickHandler = function( event ) {
|
79
85
|
|
80
86
|
// Prevent default behavior
|
87
|
+
event.stopPropagation();
|
81
88
|
event.preventDefault();
|
82
89
|
|
83
|
-
//
|
84
|
-
|
90
|
+
// Local assignment
|
91
|
+
var triggerElem = this,
|
92
|
+
linkTarget = getLinkTarget( triggerElem ),
|
93
|
+
targetElem = document.querySelector( '#' + linkTarget );
|
85
94
|
|
86
|
-
//
|
87
|
-
swap(
|
95
|
+
// Select the appropriate elements
|
96
|
+
swap ( triggerElem, targetElem );
|
88
97
|
|
89
|
-
|
90
|
-
|
91
|
-
// Where the magic happens
|
92
|
-
function swap( target ) {
|
93
|
-
|
94
|
-
// Scoped variables
|
95
|
-
var newAnchor = target,
|
96
|
-
oldAnchor = newAnchor.parentNode.querySelector( '.' + options.activeClass ),
|
97
|
-
newTarget = document.querySelector( '#' + newAnchor.href.split( '#' )[ 1 ] ),
|
98
|
-
oldTarget = newTarget.parentNode.querySelector( ':scope > .' + options.activeClass );
|
99
|
-
|
100
|
-
// If an old active anchor exists, deactivate it
|
101
|
-
if ( oldAnchor ) oldAnchor.classList.remove( options.activeClass );
|
98
|
+
// Replace the hash
|
99
|
+
history.replaceState( null, '', '#' + linkTarget );
|
102
100
|
|
103
|
-
|
104
|
-
newAnchor.classList.add( options.activeClass );
|
101
|
+
};
|
105
102
|
|
106
|
-
|
107
|
-
|
103
|
+
// Run hash check on window load
|
104
|
+
window.addEventListener( 'load', hashCheck, false );
|
108
105
|
|
109
|
-
|
110
|
-
|
106
|
+
// Iterate over each swap trigger
|
107
|
+
for ( var i = 0; i < triggers.length; i++ ) {
|
111
108
|
|
112
|
-
//
|
113
|
-
|
109
|
+
// And attach our click listener
|
110
|
+
triggers[ i ].addEventListener( 'click', clickHandler, false );
|
114
111
|
|
115
112
|
}
|
116
113
|
|
117
|
-
}
|
118
|
-
|
119
|
-
// Public API
|
120
|
-
return swap;
|
121
|
-
|
122
|
-
});
|
114
|
+
}
|
123
115
|
|
124
|
-
// Instantiation
|
125
|
-
swap( '.swap-nav', {
|
126
|
-
activeClass : 'selected'
|
127
116
|
});
|
@@ -3,15 +3,19 @@
|
|
3
3
|
* A simple lightbox module
|
4
4
|
* @author Kyle Foster (@hkfoster)
|
5
5
|
* @license MIT
|
6
|
-
|
6
|
+
**/
|
7
7
|
|
8
8
|
// Dependencies
|
9
|
-
var
|
9
|
+
var Event = require( 'compose-event' ),
|
10
|
+
loader = require( '../utility/loader' ),
|
10
11
|
timeout = require( '../utility/timeout' );
|
11
12
|
|
12
13
|
// Public API function
|
13
14
|
var lightbox = function( element, settings ) {
|
14
15
|
|
16
|
+
// Apply default element selector
|
17
|
+
element = element || 'a[href$=jpg] ,a[href$=png], a[href$=gif], a[href$=svg]';
|
18
|
+
|
15
19
|
// Overridable defaults
|
16
20
|
var defaults = {
|
17
21
|
initWidth : '700px'
|
@@ -19,126 +23,39 @@ var lightbox = function( element, settings ) {
|
|
19
23
|
|
20
24
|
// Main variables
|
21
25
|
options = Object.assign( {}, defaults, settings ),
|
22
|
-
|
23
|
-
widthQuery = window.matchMedia( '(
|
26
|
+
selector = document.querySelector( element ),
|
27
|
+
widthQuery = window.matchMedia( '(max-width: ' + options.initWidth + ')' ),
|
24
28
|
spinner = loader({ loadingMessage: 'Loading image', failureMessage : 'No image found' }),
|
25
29
|
docBody = document.body,
|
26
|
-
tempImg
|
27
|
-
active;
|
30
|
+
tempImg;
|
28
31
|
|
29
32
|
// Only run when selectors exist
|
30
|
-
if ( !
|
31
|
-
|
32
|
-
// Call media query listener function explicitly at run time
|
33
|
-
queryHandler( widthQuery );
|
34
|
-
|
35
|
-
// Attach media query listener
|
36
|
-
widthQuery.addListener( queryHandler );
|
37
|
-
|
38
|
-
// Media query handler function
|
39
|
-
function queryHandler( condition ) {
|
40
|
-
|
41
|
-
// If media query matches init width
|
42
|
-
if ( condition.matches ) {
|
43
|
-
|
44
|
-
// Initialize lightbox
|
45
|
-
init();
|
46
|
-
|
47
|
-
// Otherwise
|
48
|
-
} else {
|
33
|
+
if ( !selector ) return false;
|
49
34
|
|
50
|
-
|
51
|
-
|
35
|
+
// Attach open lightbox click listener
|
36
|
+
Event.on( document, 'click', 'a[href$=jpg] ,a[href$=png], a[href$=gif], a[href$=svg]', clickHandler );
|
52
37
|
|
53
|
-
|
54
|
-
|
55
|
-
}
|
38
|
+
// Attach close lightbox click listener
|
39
|
+
Event.on( document, 'click', '.lightbox', hideLightbox );
|
56
40
|
|
57
41
|
// Initialize lightbox function
|
58
42
|
function init() {
|
59
43
|
|
60
|
-
// Turn on active state
|
61
|
-
active = true;
|
62
|
-
|
63
|
-
// If a lightbox has already been initiated
|
64
|
-
if ( document.querySelector( '.lightbox' ) ) {
|
65
|
-
|
66
|
-
// Loop over lightbox images
|
67
|
-
for ( var i = 0; i < selectors.length; i++ ) {
|
68
|
-
|
69
|
-
// And activate their anchor links
|
70
|
-
selectors[ i ].parentNode.setAttribute( 'data-open-lightbox', '' );
|
71
|
-
|
72
|
-
}
|
73
|
-
|
74
|
-
// Then kick rocks
|
75
|
-
return false;
|
76
|
-
|
77
|
-
}
|
78
|
-
|
79
44
|
// Insert lightbox container into body
|
80
|
-
docBody.insertAdjacentHTML( 'afterbegin', '<aside class="lightbox"><figure><img src="" alt=""><button
|
45
|
+
docBody.insertAdjacentHTML( 'afterbegin', '<aside class="lightbox"><figure><img src="" alt=""><button></button></figure></aside>' );
|
81
46
|
|
82
47
|
// Cache temporary placeholder image
|
83
48
|
tempImg = document.querySelector( '.lightbox img' );
|
84
49
|
|
85
|
-
// Loop over lightbox images
|
86
|
-
for ( var j = 0; j < selectors.length; j++ ) {
|
87
|
-
|
88
|
-
// Cache current img selector
|
89
|
-
var selector = selectors[ j ],
|
90
|
-
imgSrc = selector.src,
|
91
|
-
dataSrc = selector.getAttribute( 'data-lightbox' ),
|
92
|
-
lightboxSrc = dataSrc !== '' ? dataSrc : imgSrc;
|
93
|
-
|
94
|
-
// If thumbnail size is passed and image is in Cloudinary
|
95
|
-
if ( selector.hasAttribute( 'data-thumb-size' ) && imgSrc.split( '//' )[ 1 ].substring( 0, 18 ) === 'res.cloudinary.com' ) {
|
96
|
-
|
97
|
-
// Split img src url
|
98
|
-
var splitSrc = imgSrc.split( 'upload' );
|
99
|
-
|
100
|
-
// Switch out image src for Cloudinary-resized src
|
101
|
-
selector.src = splitSrc[ 0 ] + 'upload/w_' + selector.getAttribute( 'data-thumb-size' ) + splitSrc[ 1 ];
|
102
|
-
|
103
|
-
}
|
104
|
-
|
105
|
-
// Wrap the image in a `data-lightbox` anchor tag
|
106
|
-
selector.insertAdjacentHTML( 'beforebegin', '<a data-open-lightbox href="' + lightboxSrc + '"></a>' );
|
107
|
-
selector.previousSibling.insertAdjacentElement( 'afterbegin', selector );
|
108
|
-
|
109
|
-
}
|
110
|
-
|
111
|
-
// Attach click listener
|
112
|
-
docBody.addEventListener( 'click', clickHandler, false );
|
113
|
-
|
114
|
-
}
|
115
|
-
|
116
|
-
// Terminate lightbox function
|
117
|
-
function terminate() {
|
118
|
-
|
119
|
-
// Turn off active state
|
120
|
-
active = false;
|
121
|
-
|
122
|
-
// If no lightbox exists, fugetaboutit … capisce?
|
123
|
-
if ( !document.querySelector( '.lightbox' ) ) return false;
|
124
|
-
|
125
|
-
// Remove lightbox classes from body
|
126
|
-
docBody.classList.remove( 'lightbox-active' );
|
127
|
-
|
128
|
-
// Loop over lightbox images
|
129
|
-
for ( var i = 0; i < selectors.length; i++ ) {
|
130
|
-
|
131
|
-
// And inactivate their anchor links
|
132
|
-
selectors[ i ].parentNode.setAttribute( 'data-open-lightbox', 'inactive' );
|
133
|
-
|
134
|
-
}
|
135
|
-
|
136
50
|
}
|
137
51
|
|
138
52
|
// Hide lightbox function
|
139
|
-
function hideLightbox() {
|
53
|
+
function hideLightbox( event ) {
|
54
|
+
|
55
|
+
// Don’t apply when image is clicked
|
56
|
+
if ( event && event.target.tagName === 'IMG' ) return false;
|
140
57
|
|
141
|
-
//
|
58
|
+
// Hide the spinner
|
142
59
|
spinner.hide();
|
143
60
|
|
144
61
|
// Remove active lightbox class from body
|
@@ -180,9 +97,6 @@ var lightbox = function( element, settings ) {
|
|
180
97
|
// Image load failure function
|
181
98
|
function loadFailure( event ) {
|
182
99
|
|
183
|
-
// Prevent any further attempts to open image
|
184
|
-
document.querySelector( 'a[href="' + event.target.src + '"]' ).setAttribute( 'data-open-lightbox', 'inactive' );
|
185
|
-
|
186
100
|
// Wait a second…
|
187
101
|
timeout.set( function() {
|
188
102
|
|
@@ -200,51 +114,45 @@ var lightbox = function( element, settings ) {
|
|
200
114
|
}, 2500 );
|
201
115
|
|
202
116
|
// Remove image load event listener
|
203
|
-
|
117
|
+
Event.off( tempImg, 'load', loadSuccess );
|
204
118
|
|
205
119
|
// Remove image error event listener
|
206
|
-
|
120
|
+
Event.off( tempImg, 'error', loadFailure );
|
121
|
+
|
207
122
|
}
|
208
123
|
|
209
124
|
// Click handler function
|
210
125
|
function clickHandler( event ) {
|
211
126
|
|
212
|
-
//
|
213
|
-
|
214
|
-
|
215
|
-
// Prevent default behavior
|
216
|
-
event.preventDefault();
|
217
|
-
|
218
|
-
// Abort if lightbox and/or link is no longer active
|
219
|
-
if ( !active || event.target.parentNode.getAttribute( 'data-open-lightbox' ) === 'inactive' ) return false;
|
127
|
+
// Prevent default behavior
|
128
|
+
event.preventDefault();
|
220
129
|
|
221
|
-
|
222
|
-
|
130
|
+
// If viewport is smaller than <initWidth>, abort
|
131
|
+
if ( widthQuery.matches ) return false;
|
223
132
|
|
224
|
-
|
225
|
-
|
133
|
+
// If lightbox hasn’t already been instantiated, :doit:
|
134
|
+
if ( !document.querySelector( '.lightbox' ) ) init();
|
226
135
|
|
227
|
-
|
228
|
-
|
136
|
+
// Allow escape to close lightbox
|
137
|
+
Event.keyOne( 'esc', hideLightbox );
|
229
138
|
|
230
|
-
|
231
|
-
|
139
|
+
// Load lightbox image
|
140
|
+
loadPending( event.target );
|
232
141
|
|
233
|
-
|
234
|
-
|
142
|
+
// If it has loaded successfully
|
143
|
+
if ( tempImg.complete ) {
|
235
144
|
|
236
|
-
|
237
|
-
|
145
|
+
// Kick off image load success function
|
146
|
+
loadSuccess();
|
238
147
|
|
239
|
-
|
240
|
-
|
241
|
-
}
|
148
|
+
// Otherwise
|
149
|
+
} else {
|
242
150
|
|
243
|
-
|
244
|
-
|
151
|
+
// Listen for image load event
|
152
|
+
Event.on( tempImg, 'load', loadSuccess );
|
245
153
|
|
246
|
-
//
|
247
|
-
|
154
|
+
// Listen for image error event
|
155
|
+
Event.on( tempImg, 'error', loadFailure );
|
248
156
|
|
249
157
|
}
|
250
158
|
|
@@ -23,8 +23,13 @@ var loader = function( settings ) {
|
|
23
23
|
// Extend defaults
|
24
24
|
var options = Object.assign( {}, defaults, settings );
|
25
25
|
|
26
|
-
//
|
27
|
-
|
26
|
+
// If it doesn’t already exist
|
27
|
+
if ( !document.querySelector( 'div.' + options.loaderClass ) ) {
|
28
|
+
|
29
|
+
// Create and prepend loader element
|
30
|
+
options.selector.insertAdjacentHTML( 'afterbegin', '<div class="' + options.loaderClass + '"></div>' );
|
31
|
+
|
32
|
+
}
|
28
33
|
|
29
34
|
// Cache loader element
|
30
35
|
var element = document.querySelector( 'div.' + options.loaderClass );
|
@@ -1,6 +1,7 @@
|
|
1
1
|
// Utility modules
|
2
2
|
@import 'utility/global';
|
3
3
|
@import 'utility/grid';
|
4
|
+
@import 'utility/loader';
|
4
5
|
|
5
6
|
// Base modules
|
6
7
|
@import 'base/text';
|
@@ -12,7 +13,6 @@
|
|
12
13
|
@import 'base/document';
|
13
14
|
|
14
15
|
// Enhancement modules
|
15
|
-
@import 'enhancement/loader';
|
16
16
|
@import 'enhancement/feature';
|
17
17
|
@import 'enhancement/sticky-sidebar';
|
18
18
|
@import 'enhancement/notice';
|
@@ -87,7 +87,12 @@
|
|
87
87
|
}
|
88
88
|
}
|
89
89
|
|
90
|
-
//
|
91
|
-
|
92
|
-
|
90
|
+
// Deactivate anchor links under 700px
|
91
|
+
@media (max-width: 700px) {
|
92
|
+
a[href$=jpg],
|
93
|
+
a[href$=png],
|
94
|
+
a[href$=gif],
|
95
|
+
a[href$=svg] {
|
96
|
+
cursor: default;
|
97
|
+
}
|
93
98
|
}
|
File without changes
|