@iris.interactive/handcook 1.0.12 → 2.0.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.
Files changed (48) hide show
  1. package/package.json +1 -1
  2. package/public/index.html +39 -0
  3. package/public/mix-manifest.json +9 -0
  4. package/public/scripts/SmoothScroll.js +1 -0
  5. package/public/scripts/index.js +1 -236
  6. package/public/styles/scss/_utils.scss +0 -6
  7. package/public/styles/scss/_variables.scss +8 -1
  8. package/public/styles/scss/handcook.scss +19 -0
  9. package/public/styles/scss/mixins/_mixin-layout.scss +13 -14
  10. package/public/styles/scss/mixins/_mixin-style.scss +1 -1
  11. package/public/styles/style.css +14 -1381
  12. package/resources/assets/scripts/SmoothScroll.js +41 -0
  13. package/resources/assets/styles/_utils.scss +96 -0
  14. package/resources/assets/styles/_variables.scss +419 -0
  15. package/resources/assets/styles/handcook.scss +19 -0
  16. package/resources/assets/styles/mixins/_mixin-layout.scss +102 -0
  17. package/resources/assets/styles/mixins/_mixin-style.scss +133 -0
  18. package/resources/index.html +39 -0
  19. package/resources/index.js +18 -0
  20. package/resources/style.scss +20 -0
  21. package/public/fonts/svgfont/etourisme/etourisme-font.eot +0 -0
  22. package/public/fonts/svgfont/etourisme/etourisme-font.svg +0 -1
  23. package/public/fonts/svgfont/etourisme/etourisme-font.ttf +0 -0
  24. package/public/fonts/svgfont/etourisme/etourisme-font.woff +0 -0
  25. package/public/fonts/svgfont/info-neige/info-neige-font.eot +0 -0
  26. package/public/fonts/svgfont/info-neige/info-neige-font.svg +0 -1
  27. package/public/fonts/svgfont/info-neige/info-neige-font.ttf +0 -0
  28. package/public/fonts/svgfont/info-neige/info-neige-font.woff +0 -0
  29. package/public/fonts/svgfont/iris-tides/iris-tides-font.eot +0 -0
  30. package/public/fonts/svgfont/iris-tides/iris-tides-font.svg +0 -1
  31. package/public/fonts/svgfont/iris-tides/iris-tides-font.ttf +0 -0
  32. package/public/fonts/svgfont/iris-tides/iris-tides-font.woff +0 -0
  33. package/public/fonts/svgfont/iris-weather/iris-weather-font.eot +0 -0
  34. package/public/fonts/svgfont/iris-weather/iris-weather-font.svg +0 -1
  35. package/public/fonts/svgfont/iris-weather/iris-weather-font.ttf +0 -0
  36. package/public/fonts/svgfont/iris-weather/iris-weather-font.woff +0 -0
  37. package/public/fonts/svgfont/theme/theme-font.eot +0 -0
  38. package/public/fonts/svgfont/theme/theme-font.svg +0 -1
  39. package/public/fonts/svgfont/theme/theme-font.ttf +0 -0
  40. package/public/fonts/svgfont/theme/theme-font.woff +0 -0
  41. package/public/styles/scss/_init.scss +0 -24
  42. package/public/styles/scss/_layout.scss +0 -213
  43. package/public/styles/scss/lib/_etourisme-font.scss +0 -55
  44. package/public/styles/scss/lib/_info-neige-font.scss +0 -36
  45. package/public/styles/scss/lib/_iris-tides-font.scss +0 -38
  46. package/public/styles/scss/lib/_iris-weather-font.scss +0 -47
  47. package/public/styles/scss/lib/_theme-font.scss +0 -135
  48. package/public/styles/scss/mixins/_mixin-font.scss +0 -31
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iris.interactive/handcook",
3
- "version": "1.0.12",
3
+ "version": "2.0.0",
4
4
  "description": "The web cooking by IRIS Interactive",
5
5
  "main": "./public/scripts/index.js",
6
6
  "scripts": {
@@ -0,0 +1,39 @@
1
+ <!--
2
+ ~ IRIS Interactive
3
+ ~
4
+ ~ NOTICE OF LICENSE
5
+ ~
6
+ ~ This source file is no subject to a specific license
7
+ ~ but it belongs to the company IRIS Interactive.
8
+ ~ You can contact IRIS Interactive at the following
9
+ ~ address: contact@iris-interactive.fr
10
+ ~
11
+ ~ @author Lucas ROCHE
12
+ ~ @date 27/01/2022 14:31
13
+ ~ @copyright Copyright (c) 2002-2022 IRIS Interactive, Inc. (http://www.iris-interactive.fr)
14
+ -->
15
+
16
+ <html>
17
+ <head>
18
+ <title>IRIStyle</title>
19
+ <script type="text/javascript">var exports = {};</script>
20
+ <script type="text/javascript" src="scripts/index.js"></script>
21
+ <link rel="stylesheet" href="styles/style.css">
22
+
23
+ </head>
24
+ <body>
25
+ <div id="step-1" style="height: 1800px; background-color: red;">
26
+ <a href="#step-2" data-trigger="wpiris-scroll">To step 2</a>
27
+ </div>
28
+ <div id="step-2" style="height: 1800px; background-color: green;">
29
+ <a href="#step-3" data-trigger="wpiris-scroll">To step 3</a>
30
+ </div>
31
+ <div id="step-3" style="height: 1800px; background-color: yellow;">
32
+ <a href="#step-1" data-trigger="wpiris-scroll">To step 1</a>
33
+ </div>
34
+ </body>
35
+ <script type="text/javascript">
36
+ const SmoothScroll = exports.SmoothScroll;
37
+ SmoothScroll( '[data-trigger="wpiris-scroll"]', 1000 );
38
+ </script>
39
+ </html>
@@ -0,0 +1,9 @@
1
+ {
2
+ "/scripts/index.js": "/scripts/index.js",
3
+ "/styles/style.css": "/styles/style.css",
4
+ "/index.html": "/index.html",
5
+ "/styles/scss/_utils.scss": "/styles/scss/_utils.scss",
6
+ "/styles/scss/_variables.scss": "/styles/scss/_variables.scss",
7
+ "/styles/scss/handcook.scss": "/styles/scss/handcook.scss",
8
+ "/scripts/SmoothScroll.js": "/scripts/SmoothScroll.js"
9
+ }
@@ -0,0 +1 @@
1
+ const easeInCubic=function(e){return e*e*e},scrollToElem=(e,t,o,n,r)=>{const l=t-e;let c=l/o;c=Math.min(c,1);const a=(i=c)*i*i;var i;window.scroll(0,r+n*a),l<o&&requestAnimationFrame((t=>{const l=t||(new Date).getTime();scrollToElem(e,l,o,n,r)}))},SmoothScroll=(e,t=1e3)=>{document.querySelectorAll(e).forEach(((e,o)=>{e.addEventListener("click",(o=>{o.preventDefault();const n=""!=e.getAttribute("href")?document.querySelector(e.getAttribute("href")):document.querySelector(e.dataset.href),r=void 0!==e.dataset.shift?e.dataset.shift:0;requestAnimationFrame((e=>{const o=e||(new Date).getTime(),l=o,c=window.pageYOffset,a=n.getBoundingClientRect().top-r;scrollToElem(l,o,t,a,c)}))}))}))};export default SmoothScroll;
@@ -1,236 +1 @@
1
- /******/ (() => { // webpackBootstrap
2
- /******/ "use strict";
3
- /******/ var __webpack_modules__ = ({
4
-
5
- /***/ "./resources/assets/scripts/SmoothScroll.js":
6
- /*!**************************************************!*\
7
- !*** ./resources/assets/scripts/SmoothScroll.js ***!
8
- \**************************************************/
9
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10
-
11
- __webpack_require__.r(__webpack_exports__);
12
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
14
- /* harmony export */ });
15
- var easeInCubic = function easeInCubic(t) {
16
- return t * t * t;
17
- };
18
-
19
- var scrollToElem = function scrollToElem(startTime, currentTime, duration, scrollEndElemTop, startScrollOffset) {
20
- var runtime = currentTime - startTime;
21
- var progress = runtime / duration;
22
- progress = Math.min(progress, 1);
23
- var ease = easeInCubic(progress);
24
- window.scroll(0, startScrollOffset + scrollEndElemTop * ease);
25
-
26
- if (runtime < duration) {
27
- requestAnimationFrame(function (timestamp) {
28
- var currentTime = timestamp || new Date().getTime();
29
- scrollToElem(startTime, currentTime, duration, scrollEndElemTop, startScrollOffset);
30
- });
31
- }
32
- };
33
-
34
- var SmoothScroll = function SmoothScroll(triggerAttribute) {
35
- var durationAnimation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
36
- var triggerElement = document.querySelectorAll(triggerAttribute);
37
- triggerElement.forEach(function (element, key) {
38
- element.addEventListener('click', function (event) {
39
- event.preventDefault();
40
- var target = element.getAttribute('href') != '' ? document.querySelector(element.getAttribute('href')) : document.querySelector(element.dataset.href);
41
- var shift = element.dataset.shift !== undefined ? element.dataset.shift : 0;
42
- var anim = requestAnimationFrame(function (timestamp) {
43
- var stamp = timestamp || new Date().getTime();
44
- var start = stamp;
45
- var startScrollOffset = window.pageYOffset;
46
- var scrollEndElemTop = target.getBoundingClientRect().top - shift;
47
- scrollToElem(start, stamp, durationAnimation, scrollEndElemTop, startScrollOffset);
48
- });
49
- });
50
- });
51
- };
52
-
53
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SmoothScroll);
54
-
55
- /***/ }),
56
-
57
- /***/ "./resources/index.js":
58
- /*!****************************!*\
59
- !*** ./resources/index.js ***!
60
- \****************************/
61
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
62
-
63
- __webpack_require__.r(__webpack_exports__);
64
- /* harmony import */ var _package_script_SmoothScroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @package_script/SmoothScroll */ "./resources/assets/scripts/SmoothScroll.js");
65
-
66
- exports.SmoothScroll = _package_script_SmoothScroll__WEBPACK_IMPORTED_MODULE_0__["default"];
67
-
68
- /***/ }),
69
-
70
- /***/ "./resources/style.scss":
71
- /*!******************************!*\
72
- !*** ./resources/style.scss ***!
73
- \******************************/
74
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
75
-
76
- __webpack_require__.r(__webpack_exports__);
77
- // extracted by mini-css-extract-plugin
78
-
79
-
80
- /***/ })
81
-
82
- /******/ });
83
- /************************************************************************/
84
- /******/ // The module cache
85
- /******/ var __webpack_module_cache__ = {};
86
- /******/
87
- /******/ // The require function
88
- /******/ function __webpack_require__(moduleId) {
89
- /******/ // Check if module is in cache
90
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
91
- /******/ if (cachedModule !== undefined) {
92
- /******/ return cachedModule.exports;
93
- /******/ }
94
- /******/ // Create a new module (and put it into the cache)
95
- /******/ var module = __webpack_module_cache__[moduleId] = {
96
- /******/ // no module.id needed
97
- /******/ // no module.loaded needed
98
- /******/ exports: {}
99
- /******/ };
100
- /******/
101
- /******/ // Execute the module function
102
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
103
- /******/
104
- /******/ // Return the exports of the module
105
- /******/ return module.exports;
106
- /******/ }
107
- /******/
108
- /******/ // expose the modules object (__webpack_modules__)
109
- /******/ __webpack_require__.m = __webpack_modules__;
110
- /******/
111
- /************************************************************************/
112
- /******/ /* webpack/runtime/chunk loaded */
113
- /******/ (() => {
114
- /******/ var deferred = [];
115
- /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
116
- /******/ if(chunkIds) {
117
- /******/ priority = priority || 0;
118
- /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
119
- /******/ deferred[i] = [chunkIds, fn, priority];
120
- /******/ return;
121
- /******/ }
122
- /******/ var notFulfilled = Infinity;
123
- /******/ for (var i = 0; i < deferred.length; i++) {
124
- /******/ var [chunkIds, fn, priority] = deferred[i];
125
- /******/ var fulfilled = true;
126
- /******/ for (var j = 0; j < chunkIds.length; j++) {
127
- /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
128
- /******/ chunkIds.splice(j--, 1);
129
- /******/ } else {
130
- /******/ fulfilled = false;
131
- /******/ if(priority < notFulfilled) notFulfilled = priority;
132
- /******/ }
133
- /******/ }
134
- /******/ if(fulfilled) {
135
- /******/ deferred.splice(i--, 1)
136
- /******/ var r = fn();
137
- /******/ if (r !== undefined) result = r;
138
- /******/ }
139
- /******/ }
140
- /******/ return result;
141
- /******/ };
142
- /******/ })();
143
- /******/
144
- /******/ /* webpack/runtime/define property getters */
145
- /******/ (() => {
146
- /******/ // define getter functions for harmony exports
147
- /******/ __webpack_require__.d = (exports, definition) => {
148
- /******/ for(var key in definition) {
149
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
150
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
151
- /******/ }
152
- /******/ }
153
- /******/ };
154
- /******/ })();
155
- /******/
156
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
157
- /******/ (() => {
158
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
159
- /******/ })();
160
- /******/
161
- /******/ /* webpack/runtime/make namespace object */
162
- /******/ (() => {
163
- /******/ // define __esModule on exports
164
- /******/ __webpack_require__.r = (exports) => {
165
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
166
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
167
- /******/ }
168
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
169
- /******/ };
170
- /******/ })();
171
- /******/
172
- /******/ /* webpack/runtime/jsonp chunk loading */
173
- /******/ (() => {
174
- /******/ // no baseURI
175
- /******/
176
- /******/ // object to store loaded and loading chunks
177
- /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
178
- /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
179
- /******/ var installedChunks = {
180
- /******/ "/scripts/index": 0,
181
- /******/ "styles/style": 0
182
- /******/ };
183
- /******/
184
- /******/ // no chunk on demand loading
185
- /******/
186
- /******/ // no prefetching
187
- /******/
188
- /******/ // no preloaded
189
- /******/
190
- /******/ // no HMR
191
- /******/
192
- /******/ // no HMR manifest
193
- /******/
194
- /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
195
- /******/
196
- /******/ // install a JSONP callback for chunk loading
197
- /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
198
- /******/ var [chunkIds, moreModules, runtime] = data;
199
- /******/ // add "moreModules" to the modules object,
200
- /******/ // then flag all "chunkIds" as loaded and fire callback
201
- /******/ var moduleId, chunkId, i = 0;
202
- /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
203
- /******/ for(moduleId in moreModules) {
204
- /******/ if(__webpack_require__.o(moreModules, moduleId)) {
205
- /******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
206
- /******/ }
207
- /******/ }
208
- /******/ if(runtime) var result = runtime(__webpack_require__);
209
- /******/ }
210
- /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
211
- /******/ for(;i < chunkIds.length; i++) {
212
- /******/ chunkId = chunkIds[i];
213
- /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
214
- /******/ installedChunks[chunkId][0]();
215
- /******/ }
216
- /******/ installedChunks[chunkIds[i]] = 0;
217
- /******/ }
218
- /******/ return __webpack_require__.O(result);
219
- /******/ }
220
- /******/
221
- /******/ var chunkLoadingGlobal = self["webpackChunk_iris_interactive_handcook"] = self["webpackChunk_iris_interactive_handcook"] || [];
222
- /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
223
- /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
224
- /******/ })();
225
- /******/
226
- /************************************************************************/
227
- /******/
228
- /******/ // startup
229
- /******/ // Load entry module and return exports
230
- /******/ // This entry module depends on other loaded chunks and execution need to be delayed
231
- /******/ __webpack_require__.O(undefined, ["styles/style"], () => (__webpack_require__("./resources/index.js")))
232
- /******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["styles/style"], () => (__webpack_require__("./resources/style.scss")))
233
- /******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
234
- /******/
235
- /******/ })()
236
- ;
1
+ (()=>{"use strict";var e,t={25:()=>{var e=function e(t,r,n,o,i){var a=r-t,c=a/n;c=Math.min(c,1);var u,v=(u=c)*u*u;window.scroll(0,i+o*v),a<n&&requestAnimationFrame((function(r){var a=r||(new Date).getTime();e(t,a,n,o,i)}))};const t=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3,n=document.querySelectorAll(t);n.forEach((function(t,n){t.addEventListener("click",(function(n){n.preventDefault();var o=""!=t.getAttribute("href")?document.querySelector(t.getAttribute("href")):document.querySelector(t.dataset.href),i=void 0!==t.dataset.shift?t.dataset.shift:0;requestAnimationFrame((function(t){var n=t||(new Date).getTime(),a=n,c=window.pageYOffset,u=o.getBoundingClientRect().top-i;e(a,n,r,u,c)}))}))}))};exports.SmoothScroll=t},696:()=>{}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,n),i.exports}n.m=t,e=[],n.O=(t,r,o,i)=>{if(!r){var a=1/0;for(f=0;f<e.length;f++){for(var[r,o,i]=e[f],c=!0,u=0;u<r.length;u++)(!1&i||a>=i)&&Object.keys(n.O).every((e=>n.O[e](r[u])))?r.splice(u--,1):(c=!1,i<a&&(a=i));if(c){e.splice(f--,1);var v=o();void 0!==v&&(t=v)}}return t}i=i||0;for(var f=e.length;f>0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[r,o,i]},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={505:0,449:0};n.O.j=t=>0===e[t];var t=(t,r)=>{var o,i,[a,c,u]=r,v=0;if(a.some((t=>0!==e[t]))){for(o in c)n.o(c,o)&&(n.m[o]=c[o]);if(u)var f=u(n)}for(t&&t(r);v<a.length;v++)i=a[v],n.o(e,i)&&e[i]&&e[i][0](),e[a[v]]=0;return n.O(f)},r=self.webpackChunk_iris_interactive_handcook=self.webpackChunk_iris_interactive_handcook||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),n.O(void 0,[449],(()=>n(25)));var o=n.O(void 0,[449],(()=>n(696)));o=n.O(o)})();
@@ -81,12 +81,6 @@
81
81
  }
82
82
  }
83
83
 
84
- /* Masquer un element
85
- /* ============================================= */
86
- .hide {
87
- display: none;
88
- }
89
-
90
84
  /* Opening
91
85
  /* ============================================= */
92
86
  .is-opened {
@@ -51,10 +51,17 @@ $margin-medium: 40px;
51
51
  $margin-small: 20px;
52
52
  $margin-xsmall: 20px;
53
53
 
54
+ $viewport-borders: (
55
+ "large": $margin-large,
56
+ "medium": $margin-medium,
57
+ "small": $margin-small,
58
+ "xsmall": $margin-xsmall,
59
+ );
60
+
54
61
 
55
62
  /* Breakpoint
56
63
  / ================================================== */
57
- $breakpoint-desktop: $container; // min-width
64
+ $breakpoint-desktop: 1000.1px; // min-width
58
65
  $breakpoint-xlarge: math.div($container, 1 - math.div($margin-xlarge, 100%) * 2)+1; // min-width
59
66
  $breakpoint-large: math.div($container, 1 - math.div($margin-xlarge, 100%) * 2); // max-width
60
67
  $breakpoint-medium: 1000px; // max-width
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * IRIS Interactive
3
+ *
4
+ * NOTICE OF LICENSE
5
+ *
6
+ * This source file is no subject to a specific license
7
+ * but it belongs to the company IRIS Interactive.
8
+ * You can contact IRIS Interactive at the following
9
+ * address: contact@iris-interactive.fr
10
+ *
11
+ * @author Fabien SERRA
12
+ * @date 27/01/2022 13:39
13
+ * @copyright Copyright (c) 2002-2022 IRIS Interactive, Inc. (http://www.iris-interactive.fr)
14
+ */
15
+
16
+ @import "variables";
17
+ @import "mixins/mixin-layout";
18
+ @import "mixins/mixin-style";
19
+ @import "utils";
@@ -6,12 +6,23 @@
6
6
 
7
7
  /* Main gutter
8
8
  / ================================================== */
9
+ @function viewport-border($index) {
10
+ @return map_get($viewport-borders, $index);
11
+ }
12
+
13
+
14
+ /* Breakpoints
15
+ /* ============================================= */
9
16
  @mixin breakpoint($point) {
10
17
 
11
18
  @if $point == "xlarge" {
12
19
  @media screen and (min-width: #{$breakpoint-xlarge}) {
13
20
  @content;
14
21
  }
22
+ } @else if $point == "desktop" {
23
+ @media screen and (min-width: #{$breakpoint-desktop}) {
24
+ @content;
25
+ }
15
26
  } @else if $point == "large" {
16
27
  @media screen and (max-width: #{$breakpoint-large}) {
17
28
  @content;
@@ -28,10 +39,6 @@
28
39
  @media screen and (max-width: #{$breakpoint-xsmall}) {
29
40
  @content;
30
41
  }
31
- } @else if $point == "desktop" {
32
- @media screen and (min-width: #{$breakpoint-desktop}) {
33
- @content;
34
- }
35
42
  } @else {
36
43
  @media screen and (max-width: $point) {
37
44
  @content;
@@ -55,11 +62,6 @@
55
62
  @return #{$remSize}rem;
56
63
  }
57
64
 
58
- // TODO : n'est plus utilisé
59
- @function rem-size-ratio( $size, $ratio ) {
60
- @return calc((#{$size} / 16 * 1rem) * #{$ratio});
61
- }
62
-
63
65
  @function vw-size( $size ) {
64
66
  $ceil-size: math.div(math.div($container, 1px), 1 - math.div($margin-xlarge, 100%) * 2);
65
67
  @return calc(#{$size} * 100 / #{$ceil-size} * 1vw);
@@ -74,11 +76,8 @@
74
76
  /* Hover - TODO
75
77
  /* ============================================= */
76
78
  @mixin hover {
77
-
78
- .no-touchevents & {
79
- &:hover {
80
- @content;
81
- }
79
+ &:hover {
80
+ @content;
82
81
  }
83
82
  }
84
83
 
@@ -115,7 +115,7 @@
115
115
  z-index: 1;
116
116
  pointer-events: auto;
117
117
  content: "";
118
- background-color: rgba(0, 0, 0, 0);
118
+ background-color: transparent;
119
119
  }
120
120
  }
121
121