const media = {
queryList: {
mobile: window.matchMedia('(min-width: 0px) and (max-width: 768px)'),
tablet: window.matchMedia('(min-width: 768px) and (max-width: 992px)'),
desktop: window.matchMedia('(min-width: 992px)'),
},
queryIf(func, type) {
if (this.queryList[type].matches) func();
},
query(type, func) {
this.queryIf(func, type);
this.queryList.mobile.addEventListener('change', () => this.queryIf(func, type));
},
};
export default media;
import media from '/path';
media.query('mobile', () => document.querySelector('body').style.background = 'red');
media.query('tablet', () => document.querySelector('body').style.background = 'green');
document.querySelector('.popup').style.display = 'none';
<link rel="preload" href="fonts/ubuntu/ubuntu-v14-latin-ext_latin_cyrillic-ext_cyrillic-300.woff2" as="font" type="font/woff2" crossorigin>
function html() {
return src('src/**/*.{html,njk}', { base: 'src', since: lastRun('html') })
// Nunjucks
.pipe(nunjucksInheritance({ base: 'src' })) // Ищем изменения в зависимостях
.pipe(nunjucks({ path: 'src' })) // Компилируем в HTML
// Добавляет индентацию для заинклюженных блоков.
.pipe(prettyHtml({ indent_size: 2 }))
// HTML-валидатор.
.pipe(htmlhint('.htmlhintrc'))
.pipe(htmlhint.reporter())
// Манифест.
// Если флаг --dist без --norev.
.pipe(gulpif(dist, gulpif(!norev, revReplace({
manifest: src('manifest/manifest.json', { allowEmpty: true }),
}))))
// Выгрузка.
.pipe(dest(buildHtml))
// browserSync.
.pipe(gulpif(!dist, browserSync.stream())); // Если нет флага --dist.
}
if ( is_home() ) :
endif;
is_home()
- Это и есть проверка на "страницу записей"is_front_page()
- Проверка на "Главная страница" gulp.task("imgsWebp", function() {
return gulp.src("src/blocks/**/*.{jpg,jpeg,png,gif,ico}")
// Конвертирует изображение в webp и сжимает его.
.pipe(webp({
quality: 100
}))
// Выгрузка.
.pipe(gulp.dest(buildImgs))
// Browsersync.
.pipe(gulpif(!dist, browserSync.stream())); // Если нет флага --dist.
});
<div class="container">
<div class="row">
<div class="col-2 sidebar">
sidebar
</div>
<div class="col-10 offset-2">
content
</div>
</div>
</div>
.sidebar {
position: fixed;
height: 100vh;
}