ratchet_design 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|