( function( global, factory ) {
} )(
typeof window !== "undefined" ? window : this, // global
function( window, noGlobal ) { /* код модуля */ } // factory
);
// Если доступен объект module значит используется сборщик CommonJS
if ( typeof module === "object" && typeof module.exports === "object" ) {
// Если доступен document
module.exports = global.document
// То всё гуд, мы в браузере, нужно выполнить код модуля
// и вернуть то, что он вернет
? factory( global /* это window */ , true )
// Иначе возвращается функция, которая при необходимости выведет
// ошибку если при ее вызове не будет доступен document
: function( w ) {
if ( !w.document ) {
throw new Error( "jQuery requires a window with a document" );
}
return factory( w );
};
// Модуль просто подключен через тег script
} else {
// Выполнить код модуля
factory( global );
}
Вложенных массивов же Sass не знает? В доке не нашёл.
$text_sizes: (
s: ( s:20px, m:48px, l:100px ),
m: ( s:24px, m:56px, l:114px ),
l: ( s:28px, m:68px, l:138px ),
xl: ( s:32px, m:74px, l:154px ),
xxl: ( s:36px, m:88px, l:184px ),
);
@each $size, $def in $text_sizes {
.text_size_#{$size} {
@each $word_size, $word_width in $def {
.text__word_width_#{$word_size} {
width: $word_width;
}
}
}
}
{% if some_variable == 2 %}
{% include "file1.twig" %}
{% else %}
{% include "file2.twig" %}
{% endif %}
auto
, есть значение none
.@media screen and (min-width : 861px) {
.block { max-height:400px; overflow-y:scroll; }
}
script
сам vue.js и дист-сборку плагина https://github.com/phegman/v-show-slide/blob/maste..."use strict";var _createClass=function(){function e(e,i){for(var t=0;t<i.length;t++){var n=i[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(i,t,n){return t&&e(i.prototype,t),n&&e(i,n),i}}();function _classCallCheck(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}var VShowSlide=function(){function e(){_classCallCheck(this,e),this.easingOptions={builtIn:["linear","ease","ease-in","ease-out","ease-in-out"],custom:{}}}return _createClass(e,[{key:"install",value:function(e,i){this.validateOptions(i),e.directive("show-slide",{bind:this.bind.bind(this),inserted:this.inserted.bind(this),componentUpdated:this.componentUpdated.bind(this)})}},{key:"bind",value:function(e,i){this.parseArgs(e,i)}},{key:"inserted",value:function(e,i){this.initializeTarget(e,i.value)}},{key:"componentUpdated",value:function(e,i){this.toggleSlide(e,i)}},{key:"validateOptions",value:function(e){void 0!==e&&e.hasOwnProperty("customEasing")&&(this.easingOptions.custom=e.customEasing)}},{key:"kebabToCamel",value:function(e){return e.replace(/-([a-z])/g,function(e){return e[1].toUpperCase()})}},{key:"parseArgs",value:function(e,i){if(i.hasOwnProperty("arg")){var t=i.arg.split(":");this.validateEasing(e,t),this.validateDuration(e,t)}else e.duration=300,e.durationInSeconds="0.3s",e.easing="ease"}},{key:"validateEasing",value:function(e,i){i.hasOwnProperty(1)?this.easingOptions.builtIn.includes(i[1])?e.easing=i[1]:this.easingOptions.custom.hasOwnProperty(this.kebabToCamel(i[1]))?e.easing=this.easingOptions.custom[this.kebabToCamel(i[1])]:e.easing="ease":e.easing="ease"}},{key:"validateDuration",value:function(e,i){e.duration=i.hasOwnProperty(0)?parseInt(i[0]):300,e.durationInSeconds=e.duration/1e3+"s"}},{key:"initializeTarget",value:function(e,i){i||(e.style.height="0px"),e.style.overflow="hidden",e.style.transition="height "+e.easing+" "+e.durationInSeconds}},{key:"toggleSlide",value:function(e,i){i.value!==i.oldValue&&(i.value?this.slideOpen(e):this.slideClosed(e))}},{key:"slideOpen",value:function(e){e.isAnimating&&clearTimeout(e.timeout),e.isAnimating=!0;var i=e.scrollHeight;e.style.height=i+"px",e.timeout=setTimeout(function(){e.style.height="auto",e.isAnimating=!1},e.duration)}},{key:"slideClosed",value:function(e){e.isAnimating&&clearTimeout(e.timeout),e.isAnimating=!0;var i=e.scrollHeight;e.style.height=i+"px",setTimeout(function(){e.style.height="0px"},25),e.timeout=setTimeout(function(){e.isAnimating=!1},e.duration)}}]),e}(),vShowSlide=new VShowSlide;
Vue.use(vShowSlide, {
customEasing: {
exampleEasing: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)'
}
});
<div class="block1">
<div class="block1__title title">Title</div>
</div>
<div class="block2">
<div class="block2__title title">Title</div>
</div>
<div class="block3">
<div class="block3__title title title_size_large">Title</div>
</div>
<div class="block3 block3_theme_dark">
<div class="block3__title block3__title_inverse title">Title</div>
</div>
block__elem_mod-name_mod-value
class="text text_size_s24 text_align_left"
text
с модификаторами.size
со значением s24
align
со значением left
.element::before {
--this-font-size: 2em;
font-size: 36px; // Для ишака
font-size: var(--this-font-size);// Для нормальных браузеров
}
.element::before {
font-size: 36px; // Для ишака
font-size: var(--fz, 2em);// Для нормальных браузеров
}