dlegr250_material_design 0.1.0
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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +66 -0
- data/Rakefile +6 -0
- data/app/controllers/styleguide_controller.rb +5 -0
- data/app/views/styleguide/_buttons.html.erb +79 -0
- data/app/views/styleguide/_menus.html.erb +189 -0
- data/app/views/styleguide/_navigation.html.erb +28 -0
- data/app/views/styleguide/index.html.erb +9 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/dlegr250_material_design.gemspec +34 -0
- data/lib/dlegr250_material_design.rb +6 -0
- data/lib/dlegr250_material_design/version.rb +3 -0
- data/vendor/assets/javascripts/base/init.js.coffee +14 -0
- data/vendor/assets/javascripts/components/dialog.coffee +54 -0
- data/vendor/assets/javascripts/components/forms.coffee +17 -0
- data/vendor/assets/javascripts/components/layout.coffee +76 -0
- data/vendor/assets/javascripts/components/menus.coffee +87 -0
- data/vendor/assets/javascripts/components/snackbar_handler.coffee +8 -0
- data/vendor/assets/javascripts/components/tabs.coffee +18 -0
- data/vendor/assets/javascripts/components/utility.coffee +8 -0
- data/vendor/assets/javascripts/dlegr250_material_design.js +20 -0
- data/vendor/assets/javascripts/extensions/coffeescript.js.coffee +9 -0
- data/vendor/assets/javascripts/extensions/jquery.js.coffee +30 -0
- data/vendor/assets/javascripts/third_party/hammer.min.js +7 -0
- data/vendor/assets/javascripts/third_party/handlebars.latest.js +4454 -0
- data/vendor/assets/javascripts/third_party/jquery.hammer.js +33 -0
- data/vendor/assets/javascripts/third_party/snackbarlight.js +218 -0
- data/vendor/assets/stylesheets/base/base.scss +73 -0
- data/vendor/assets/stylesheets/base/global_classes.scss +261 -0
- data/vendor/assets/stylesheets/base/mixins.scss +202 -0
- data/vendor/assets/stylesheets/base/normalize.scss +229 -0
- data/vendor/assets/stylesheets/base/variables.scss +177 -0
- data/vendor/assets/stylesheets/components/badges.scss +28 -0
- data/vendor/assets/stylesheets/components/blank_slates.scss +58 -0
- data/vendor/assets/stylesheets/components/boxes.scss +34 -0
- data/vendor/assets/stylesheets/components/buttons.scss +225 -0
- data/vendor/assets/stylesheets/components/cards.scss +110 -0
- data/vendor/assets/stylesheets/components/code.scss +13 -0
- data/vendor/assets/stylesheets/components/dialogs.scss +57 -0
- data/vendor/assets/stylesheets/components/dividers.scss +35 -0
- data/vendor/assets/stylesheets/components/forms/error_messages.scss +27 -0
- data/vendor/assets/stylesheets/components/forms/fields.scss +56 -0
- data/vendor/assets/stylesheets/components/forms/labels.scss +17 -0
- data/vendor/assets/stylesheets/components/forms/radios.scss +90 -0
- data/vendor/assets/stylesheets/components/forms/selects.scss +15 -0
- data/vendor/assets/stylesheets/components/forms/text_fields.scss +38 -0
- data/vendor/assets/stylesheets/components/forms/toggles.scss +70 -0
- data/vendor/assets/stylesheets/components/lists.scss +242 -0
- data/vendor/assets/stylesheets/components/menus.scss +164 -0
- data/vendor/assets/stylesheets/components/overlay.scss +27 -0
- data/vendor/assets/stylesheets/components/snackbarlight.scss +77 -0
- data/vendor/assets/stylesheets/components/spinners.scss +67 -0
- data/vendor/assets/stylesheets/components/tabs.scss +62 -0
- data/vendor/assets/stylesheets/components/tooltips.scss +75 -0
- data/vendor/assets/stylesheets/dlegr250_material_design.scss +47 -0
- data/vendor/assets/stylesheets/fonts/material_design_iconic_font.scss +5168 -0
- data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.eot +0 -0
- data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.svg +787 -0
- data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.ttf +0 -0
- data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.woff +0 -0
- data/vendor/assets/stylesheets/fonts/material_design_iconic_font/Material-Design-Iconic-Font.woff2 +0 -0
- data/vendor/assets/stylesheets/layouts/application/appbar.scss +93 -0
- data/vendor/assets/stylesheets/layouts/application/base.scss +27 -0
- data/vendor/assets/stylesheets/layouts/application/main.scss +26 -0
- data/vendor/assets/stylesheets/layouts/application/sidebars.scss +85 -0
- data/vendor/assets/stylesheets/layouts/authentication/base.scss +53 -0
- metadata +155 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
(function(factory) {
|
2
|
+
if (typeof define === 'function' && define.amd) {
|
3
|
+
define(['jquery', 'hammerjs'], factory);
|
4
|
+
} else if (typeof exports === 'object') {
|
5
|
+
factory(require('jquery'), require('hammerjs'));
|
6
|
+
} else {
|
7
|
+
factory(jQuery, Hammer);
|
8
|
+
}
|
9
|
+
}(function($, Hammer) {
|
10
|
+
function hammerify(el, options) {
|
11
|
+
var $el = $(el);
|
12
|
+
if(!$el.data("hammer")) {
|
13
|
+
$el.data("hammer", new Hammer($el[0], options));
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
$.fn.hammer = function(options) {
|
18
|
+
return this.each(function() {
|
19
|
+
hammerify(this, options);
|
20
|
+
});
|
21
|
+
};
|
22
|
+
|
23
|
+
// extend the emit method to also trigger jQuery events
|
24
|
+
Hammer.Manager.prototype.emit = (function(originalEmit) {
|
25
|
+
return function(type, data) {
|
26
|
+
originalEmit.call(this, type, data);
|
27
|
+
$(this.element).trigger({
|
28
|
+
type: type,
|
29
|
+
gesture: data
|
30
|
+
});
|
31
|
+
};
|
32
|
+
})(Hammer.Manager.prototype.emit);
|
33
|
+
}));
|
@@ -0,0 +1,218 @@
|
|
1
|
+
/**
|
2
|
+
* Constructor
|
3
|
+
*
|
4
|
+
* @param {[type]} data [description]
|
5
|
+
* @param {[type]} options [description]
|
6
|
+
* @param {Function} callback [description]
|
7
|
+
*/
|
8
|
+
function Snackbar(data, options, callback){
|
9
|
+
if (data !== "") {
|
10
|
+
this.options = this.activateOptions(options);
|
11
|
+
this.data = data;
|
12
|
+
this.callback = callback;
|
13
|
+
this.start();
|
14
|
+
this.snackbar();
|
15
|
+
} else {
|
16
|
+
console.warn("SnackbarLight: You can not create a empty snackbar please give it a string.");
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
Snackbar.prototype = {
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Default options
|
24
|
+
*
|
25
|
+
* @type {Object}
|
26
|
+
*/
|
27
|
+
options: {
|
28
|
+
// How long it takes for the snackbar to disappear
|
29
|
+
timeout: 5000,
|
30
|
+
// Wich class is used to tell that the snackbar is active
|
31
|
+
activeClass: "active",
|
32
|
+
// Name of the link or action if specified
|
33
|
+
link: false,
|
34
|
+
// If not used clicking will activate the callback or do nothing
|
35
|
+
url: "#"
|
36
|
+
},
|
37
|
+
|
38
|
+
/**
|
39
|
+
* Create container for the snackbar
|
40
|
+
*
|
41
|
+
* @return {void}
|
42
|
+
*/
|
43
|
+
start: function() {
|
44
|
+
if (!document.getElementById("snackbar-container")) {
|
45
|
+
var snackbarContainer = document.createElement("div");
|
46
|
+
|
47
|
+
snackbarContainer.setAttribute("id", "snackbar-container");
|
48
|
+
|
49
|
+
document.body.appendChild(snackbarContainer);
|
50
|
+
}
|
51
|
+
},
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Timer
|
55
|
+
*
|
56
|
+
* @param {Function} callback
|
57
|
+
* @param {int} delay
|
58
|
+
* @return {void}
|
59
|
+
*/
|
60
|
+
timer: function(callback, delay) {
|
61
|
+
var remaining = delay;
|
62
|
+
|
63
|
+
this.timer = {
|
64
|
+
// Create random timer id
|
65
|
+
timerId: Math.round(Math.random()*1000),
|
66
|
+
|
67
|
+
pause: function() {
|
68
|
+
// Clear the timeout
|
69
|
+
window.clearTimeout(this.timerId);
|
70
|
+
// Set the remaining to what time remains
|
71
|
+
remaining -= new Date() - start;
|
72
|
+
},
|
73
|
+
|
74
|
+
resume: function() {
|
75
|
+
start = new Date();
|
76
|
+
// Clear the timeout
|
77
|
+
window.clearTimeout(this.timerId);
|
78
|
+
// Set the timeout again
|
79
|
+
this.timerId = window.setTimeout(callback, remaining);
|
80
|
+
},
|
81
|
+
};
|
82
|
+
// Start the timer
|
83
|
+
this.timer.resume();
|
84
|
+
},
|
85
|
+
|
86
|
+
/**
|
87
|
+
* snackbar
|
88
|
+
*
|
89
|
+
* @return {void}
|
90
|
+
*/
|
91
|
+
snackbar: function() {
|
92
|
+
var __self = this,
|
93
|
+
snackbar = document.createElement("div");
|
94
|
+
|
95
|
+
// Put the snackbar inside the snackbar container
|
96
|
+
var container = document.getElementById("snackbar-container");
|
97
|
+
|
98
|
+
// 2016-02-04 / dan.legrand@gmail.com
|
99
|
+
// According to Google Material Design spec, do not stack snackbars.
|
100
|
+
// This clears out any previous snackbars before adding the new one.
|
101
|
+
container.innerHTML = null;
|
102
|
+
|
103
|
+
container.appendChild(snackbar);
|
104
|
+
|
105
|
+
// Set the html inside the snackbar
|
106
|
+
snackbar.innerHTML = this.getData();
|
107
|
+
|
108
|
+
// Set the class of the snackbar
|
109
|
+
snackbar.setAttribute("class", "snackbar");
|
110
|
+
|
111
|
+
// 2016-02-06 / dan.legrand@gmail.com
|
112
|
+
// According to Google Material Design spec, do not cover FAB buttons.
|
113
|
+
// This moves any FAB buttons from bottom-right corner up.
|
114
|
+
// Assumes only 1 FAB on screen in bottom-right corner.
|
115
|
+
if ($(window).width() <= 750) {
|
116
|
+
$(".fab").css("bottom", "64px");
|
117
|
+
}
|
118
|
+
|
119
|
+
// Wait to set the active class so animations will be activated
|
120
|
+
setTimeout(function() {
|
121
|
+
snackbar.setAttribute("class", snackbar.getAttribute("class") + " " + __self.options.activeClass);
|
122
|
+
}, 50);
|
123
|
+
|
124
|
+
// If the timeout is false the snackbar will not be destroyed after some time
|
125
|
+
// only when the user clicks on it
|
126
|
+
if (this.options.timeout !== false) {
|
127
|
+
// Start the timer
|
128
|
+
this.timer(function() {
|
129
|
+
snackbar.setAttribute("class", "snackbar");
|
130
|
+
__self.destroy(snackbar);
|
131
|
+
}, this.options.timeout);
|
132
|
+
}
|
133
|
+
|
134
|
+
// Add the event listeners
|
135
|
+
this.listeners(snackbar);
|
136
|
+
},
|
137
|
+
|
138
|
+
/**
|
139
|
+
* Get the data/ message to display in the snackbar
|
140
|
+
*
|
141
|
+
* @return {string}
|
142
|
+
*/
|
143
|
+
getData: function() {
|
144
|
+
if (this.options.link !== false) {
|
145
|
+
return "<span>" + this.data + "</span><a href='" + this.options.url + "'>" + this.options.link + "</a>";
|
146
|
+
}
|
147
|
+
return "<span>" + this.data + "</span>";
|
148
|
+
},
|
149
|
+
|
150
|
+
/**
|
151
|
+
* Activate the listeners
|
152
|
+
*
|
153
|
+
* @param {Object} element
|
154
|
+
* @return {void}
|
155
|
+
*/
|
156
|
+
listeners: function(element) {
|
157
|
+
var __self = this;
|
158
|
+
// Adding event listener for when user clicks on the snackbar to remove it
|
159
|
+
element.addEventListener("click", function(){
|
160
|
+
if (typeof __self.callback == "function") {
|
161
|
+
__self.callback();
|
162
|
+
}
|
163
|
+
element.setAttribute("class", "snackbar");
|
164
|
+
__self.destroy(element);
|
165
|
+
});
|
166
|
+
|
167
|
+
// Stopping the timer when user hovers on the snackbar
|
168
|
+
element.addEventListener("mouseenter",function(){
|
169
|
+
__self.timer.pause();
|
170
|
+
});
|
171
|
+
element.addEventListener("mouseout",function(){
|
172
|
+
__self.timer.resume();
|
173
|
+
});
|
174
|
+
},
|
175
|
+
|
176
|
+
/**
|
177
|
+
* Remove the snackbar
|
178
|
+
*
|
179
|
+
* @param {object} element
|
180
|
+
* @return {void}
|
181
|
+
*/
|
182
|
+
destroy: function(element) {
|
183
|
+
// 2016-02-06 / dan.legrand@gmail.com
|
184
|
+
// Put FAB back to original position if there are no more active snackbars.
|
185
|
+
if (($(".snackbar.active").length > 0) && ($(window).width() <= 750)) {
|
186
|
+
$(".fab").css("bottom", "64px");
|
187
|
+
} else {
|
188
|
+
$(".fab").css("bottom", "24px");
|
189
|
+
}
|
190
|
+
|
191
|
+
// Delay for removing the element (for when there are animations)
|
192
|
+
this.timer.pause();
|
193
|
+
|
194
|
+
element.remove();
|
195
|
+
|
196
|
+
setTimeout(function() {
|
197
|
+
element.remove();
|
198
|
+
}, 10000);
|
199
|
+
},
|
200
|
+
|
201
|
+
/**
|
202
|
+
* Compare the options to the default ones.
|
203
|
+
*
|
204
|
+
* @param {Object} newOptions
|
205
|
+
* @return {Object}
|
206
|
+
*/
|
207
|
+
activateOptions: function(newOptions) {
|
208
|
+
var __self = this,
|
209
|
+
options = newOptions || {};
|
210
|
+
|
211
|
+
for (var opt in this.options) {
|
212
|
+
if (__self.options.hasOwnProperty(opt) && !options.hasOwnProperty(opt)) {
|
213
|
+
options[opt] = __self.options[opt];
|
214
|
+
}
|
215
|
+
}
|
216
|
+
return options;
|
217
|
+
},
|
218
|
+
};
|
@@ -0,0 +1,73 @@
|
|
1
|
+
//======================================================================
|
2
|
+
// Base HTML elements.
|
3
|
+
// Class styles are defined in global_classes.scss
|
4
|
+
//======================================================================
|
5
|
+
|
6
|
+
// Typography
|
7
|
+
//----------------------------------------------------------------------
|
8
|
+
|
9
|
+
// Note: Material Design Iconic Font is hosted locally
|
10
|
+
|
11
|
+
// @import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,700");
|
12
|
+
@import url("https://fonts.googleapis.com/css?family=Roboto:400,600,700");
|
13
|
+
|
14
|
+
// HTML/body
|
15
|
+
//----------------------------------------------------------------------
|
16
|
+
|
17
|
+
html,
|
18
|
+
body {
|
19
|
+
background-color: $body-background-color;
|
20
|
+
height: 100%;
|
21
|
+
width: 100%;
|
22
|
+
}
|
23
|
+
|
24
|
+
body {
|
25
|
+
color: color("text");
|
26
|
+
font-family: "Roboto", sans-serif;
|
27
|
+
font-size: $font-size-normal;
|
28
|
+
font-weight: normal;
|
29
|
+
line-height: 1.2;
|
30
|
+
}
|
31
|
+
|
32
|
+
// Bold
|
33
|
+
//----------------------------------------------------------------------
|
34
|
+
|
35
|
+
b,
|
36
|
+
strong {
|
37
|
+
font-weight: 700;
|
38
|
+
}
|
39
|
+
|
40
|
+
// Paragraphs
|
41
|
+
//----------------------------------------------------------------------
|
42
|
+
|
43
|
+
p {
|
44
|
+
margin: $spacing-normal 0;
|
45
|
+
}
|
46
|
+
|
47
|
+
// HRs used as spacers with lines
|
48
|
+
//----------------------------------------------------------------------
|
49
|
+
|
50
|
+
hr {
|
51
|
+
border: none;
|
52
|
+
border-bottom: 1px solid color("divider");
|
53
|
+
height: 1px;
|
54
|
+
margin: $spacing-xsmall 0;
|
55
|
+
padding: 0;
|
56
|
+
}
|
57
|
+
|
58
|
+
// Links
|
59
|
+
//----------------------------------------------------------------------
|
60
|
+
|
61
|
+
a {
|
62
|
+
color: color("blue");
|
63
|
+
letter-spacing: 0.25px;
|
64
|
+
text-decoration: none;
|
65
|
+
}
|
66
|
+
|
67
|
+
// Images
|
68
|
+
//----------------------------------------------------------------------
|
69
|
+
|
70
|
+
img {
|
71
|
+
width: 100%;
|
72
|
+
height: auto;
|
73
|
+
}
|
@@ -0,0 +1,261 @@
|
|
1
|
+
//======================================================================
|
2
|
+
// Global CSS classes for use on any element.
|
3
|
+
// Default element styles are defined in the base.scss file.
|
4
|
+
//======================================================================
|
5
|
+
|
6
|
+
// Alignments
|
7
|
+
//----------------------------------------------------------------------
|
8
|
+
|
9
|
+
.align-left {
|
10
|
+
text-align: left;
|
11
|
+
}
|
12
|
+
|
13
|
+
.align-center {
|
14
|
+
text-align: center;
|
15
|
+
}
|
16
|
+
|
17
|
+
.align-right {
|
18
|
+
text-align: right;
|
19
|
+
}
|
20
|
+
|
21
|
+
.float-left {
|
22
|
+
float: left;
|
23
|
+
}
|
24
|
+
|
25
|
+
.float-right {
|
26
|
+
float: right;
|
27
|
+
}
|
28
|
+
|
29
|
+
// Expand entire width and take element padding into consideration.
|
30
|
+
.full-width {
|
31
|
+
@include full-width;
|
32
|
+
}
|
33
|
+
|
34
|
+
// Constrained to max size to center content
|
35
|
+
//----------------------------------------------------------------------
|
36
|
+
|
37
|
+
.constrained {
|
38
|
+
margin: auto;
|
39
|
+
@include full-width;
|
40
|
+
}
|
41
|
+
|
42
|
+
.constrained-small {
|
43
|
+
max-width: $small-width;
|
44
|
+
}
|
45
|
+
|
46
|
+
.constrained-medium {
|
47
|
+
max-width: $medium-width;
|
48
|
+
}
|
49
|
+
|
50
|
+
.constrained-large {
|
51
|
+
max-width: $large-width;
|
52
|
+
}
|
53
|
+
|
54
|
+
// Padding
|
55
|
+
//----------------------------------------------------------------------
|
56
|
+
|
57
|
+
.padding-xsmall {
|
58
|
+
padding: $spacing-xsmall;
|
59
|
+
}
|
60
|
+
|
61
|
+
.padding-small {
|
62
|
+
padding: $spacing-small;
|
63
|
+
}
|
64
|
+
|
65
|
+
.padding-normal {
|
66
|
+
padding: $spacing-normal;
|
67
|
+
}
|
68
|
+
|
69
|
+
.padding-large {
|
70
|
+
padding: $spacing-large;
|
71
|
+
}
|
72
|
+
|
73
|
+
.padding-xlarge {
|
74
|
+
padding: $spacing-xlarge;
|
75
|
+
}
|
76
|
+
|
77
|
+
// Margins
|
78
|
+
//----------------------------------------------------------------------
|
79
|
+
|
80
|
+
// TODO need classes for this???
|
81
|
+
|
82
|
+
// Helper text is subtle text to give extra minor details
|
83
|
+
//----------------------------------------------------------------------
|
84
|
+
|
85
|
+
.hint {
|
86
|
+
color: color("hint");
|
87
|
+
}
|
88
|
+
|
89
|
+
.helper-text {
|
90
|
+
color: color("helper");
|
91
|
+
font-size: $font-size-small;
|
92
|
+
}
|
93
|
+
|
94
|
+
// Highlight
|
95
|
+
//----------------------------------------------------------------------
|
96
|
+
|
97
|
+
.highlight {
|
98
|
+
background-color: color("highlight");
|
99
|
+
}
|
100
|
+
|
101
|
+
// Bold text
|
102
|
+
//----------------------------------------------------------------------
|
103
|
+
|
104
|
+
.bold,
|
105
|
+
.strong {
|
106
|
+
font-weight: 700;
|
107
|
+
}
|
108
|
+
|
109
|
+
// Rounded corners
|
110
|
+
//----------------------------------------------------------------------
|
111
|
+
|
112
|
+
.rounded-corners {
|
113
|
+
@include rounded-corners;
|
114
|
+
}
|
115
|
+
|
116
|
+
.rounded-top-corners {
|
117
|
+
@include rounded-top-corners;
|
118
|
+
}
|
119
|
+
|
120
|
+
.rounded-right-corners {
|
121
|
+
@include rounded-right-corners;
|
122
|
+
}
|
123
|
+
|
124
|
+
.rounded-bottom-corners {
|
125
|
+
@include rounded-bottom-corners;
|
126
|
+
}
|
127
|
+
|
128
|
+
.rounded-left-corners {
|
129
|
+
@include rounded-left-corners;
|
130
|
+
}
|
131
|
+
|
132
|
+
// Visibility
|
133
|
+
//----------------------------------------------------------------------
|
134
|
+
|
135
|
+
// Remove from DOM rendering completely
|
136
|
+
.hidden {
|
137
|
+
display: none;
|
138
|
+
}
|
139
|
+
|
140
|
+
// Remain in DOM flow but make invisible
|
141
|
+
.invisible {
|
142
|
+
visibility: hidden;
|
143
|
+
}
|
144
|
+
|
145
|
+
// Disabled elements
|
146
|
+
//----------------------------------------------------------------------
|
147
|
+
|
148
|
+
:disabled,
|
149
|
+
.disabled {
|
150
|
+
cursor: not-allowed !important;
|
151
|
+
pointer-events: none !important;
|
152
|
+
@include transparency(0.6);
|
153
|
+
@include box-shadow(none);
|
154
|
+
}
|
155
|
+
|
156
|
+
// Colored background or text
|
157
|
+
//----------------------------------------------------------------------
|
158
|
+
|
159
|
+
@each $color-name, $color in $colors {
|
160
|
+
.color-#{$color-name} {
|
161
|
+
color: $color !important; // Assume if you're specifying this you want it to override
|
162
|
+
}
|
163
|
+
|
164
|
+
.background-color-#{$color-name} {
|
165
|
+
background-color: $color !important;
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
// Media query classes for various device sizes
|
170
|
+
//----------------------------------------------------------------------
|
171
|
+
|
172
|
+
.small-only {
|
173
|
+
display: block;
|
174
|
+
}
|
175
|
+
|
176
|
+
.small-only-inline {
|
177
|
+
display: inline-block;
|
178
|
+
}
|
179
|
+
|
180
|
+
.small-and-medium-only {
|
181
|
+
display: block;
|
182
|
+
}
|
183
|
+
|
184
|
+
.small-and-medium-only-inline {
|
185
|
+
display: inline-block;
|
186
|
+
}
|
187
|
+
|
188
|
+
.medium-only,
|
189
|
+
.medium-only-inline {
|
190
|
+
display: none;
|
191
|
+
}
|
192
|
+
|
193
|
+
.medium-and-large-only,
|
194
|
+
.medium-and-large-only-inline {
|
195
|
+
display: none;
|
196
|
+
}
|
197
|
+
|
198
|
+
.large-only,
|
199
|
+
.large-only-inline {
|
200
|
+
display: none;
|
201
|
+
}
|
202
|
+
|
203
|
+
@media (min-width: $medium-width) {
|
204
|
+
.small-only,
|
205
|
+
.small-only-inline {
|
206
|
+
display: none !important;
|
207
|
+
}
|
208
|
+
|
209
|
+
.medium-only {
|
210
|
+
display: block !important;
|
211
|
+
}
|
212
|
+
|
213
|
+
.medium-only-inline {
|
214
|
+
display: inline-block !important;
|
215
|
+
}
|
216
|
+
|
217
|
+
.medium-and-large-only {
|
218
|
+
display: block !important;
|
219
|
+
}
|
220
|
+
|
221
|
+
.medium-and-large-only-inline {
|
222
|
+
display: inline-block !important;
|
223
|
+
}
|
224
|
+
}
|
225
|
+
|
226
|
+
@media (min-width: $large-width) {
|
227
|
+
.small-only,
|
228
|
+
.small-only-inline,
|
229
|
+
.small-and-medium-only,
|
230
|
+
.small-and-medium-only-inline,
|
231
|
+
.medium-only,
|
232
|
+
.medium-only-inline {
|
233
|
+
display: none !important;
|
234
|
+
}
|
235
|
+
|
236
|
+
.medium-and-large-only,
|
237
|
+
.large-only {
|
238
|
+
display: block !important;
|
239
|
+
}
|
240
|
+
|
241
|
+
.medium-and-large-only-inline,
|
242
|
+
.large-only-inline {
|
243
|
+
display: inline-block !important;
|
244
|
+
}
|
245
|
+
}
|
246
|
+
|
247
|
+
// Media queries
|
248
|
+
// Note: The best way to structure the use of media queries is to create the queries
|
249
|
+
// near the relevant code. For example, if you wanted to change the styles for buttons
|
250
|
+
// on small devices, paste the mobile query code up in the buttons section and style it
|
251
|
+
// there.
|
252
|
+
//----------------------------------------------------------------------
|
253
|
+
|
254
|
+
// Larger than mobile
|
255
|
+
@media (min-width: $small-width) {}
|
256
|
+
|
257
|
+
// Larger than medium
|
258
|
+
@media (min-width: $medium-width) {}
|
259
|
+
|
260
|
+
// Larger than large
|
261
|
+
@media (min-width: $large-width) {}
|