Модуль для накладывания скриншотов макетов поверх верстаемых страниц. Позволяет:
Работают, когда фокус на <body>
. Результат настроек сохраняется в localStorage.
P
– переключение всей функциональности (по умолчанию выключен). При отключении остальные хоткеи не действуют.I
– режим инверсии макетов. По умолчанию включен.R
– при включенном модуле очищает localStorage от данных по смещениям изображений и перезагружает страницу.ArrowUp
, ArrowDown
, ArrowLeft
, ArrowRight
– смещают положение изображения. Настройки сохраняются для каждой страницы и каждого брейкпоинта на ней.<script>
window.pixelperfect = {
breakpoints: [320, 768, 1260, 1380, 1600],
folder: 'img/pixelperfect'
};
</script>
<script src="https://efiand.github.io/pixelperfect-tool/pixelperfect.min.js" defer></script>
Отсутствие в production-режиме изображений PP и кода подключения скрипта – настраивается разработчиком отдельно исходя из возможностей его сборки.
Установка: npm i -DE pixelperfect-tool
.
Модуль инициализирует библиотеку только один раз независимо от количества вызовов.
window.pixelperfect = {
breakpoints: [320, 768, 1260, 1380, 1600],
folder: 'img/pixelperfect'
};
export * from 'pixelperfect-tool/loader.js';
import loadPixelperfect from 'pixelperfect-tool';
loadPixelperfect({
breakpoints: [320, 768, 1260, 1380, 1600],
folder: 'img/pixelperfect'
});
Renderless-компонент с возможностью добавления опций.
<template>
<pixelperfect-tool :options="pixelperfectOptions" />
</template>
<script lang="ts" setup>
import type { PixelperfectOptions } from 'pixelperfect-tool';
import PixelperfectTool from 'pixelperfect-tool/vue';
const pixelperfectOptions: PixelperfectOptions = {
breakpoints: [320, 768, 1260, 1380, 1600],
folder: 'img/pixelperfect'
};
</script>
Предоставляет вышеупомянутый vue-компонент PixelperfectTool
, инициализирующий библиотеку на клиентской стороне только в dev-режиме.
Подключение модуля в nuxt.config.ts
:
export default defineNuxtConfig({
modules: ['pixelperfect-tool/nuxt'],
// Кастомный путь к изображениям, чтобы они не попадали в билд
nitro: {
...(process.env.NODE_ENV === 'development'
? {
publicAssets: [
{
baseURL: 'pixelperfect', // доступен в браузере как /pixelperfect
dir: 'dev/pixelperfect' // путь относительно @/server/
}
]
}
: {})
}
});
Использование в приложении отличается только отсутствием необходимости импортировать компонент.
Передаются через объект window.pixelperfect
. Все настройки опциональны, и если дефолтные подходят, то необходимости создавать объект нет.
page
– по умолчанию это URL загруженной страницы от корня (не включая корневой слэш и концевой .html
, если он там есть). Например, для страницы /about.html
значение будет 'about'
. Для главной страницы (/
) – значение по умолчанию 'index'
.breakpoints
– числовой массив ширин макетов (порядок произвольный). При первичной загрузке с определенной шириной окна или при ресайзе происходит смена картинки на подходящую для текущей ширины. Значение по умолчанию – [320, 768, 1240]
. Если текущая ширина экрана меньше минимального брейкпоинта, фоновое изображение отключается.folder
– имя каталога (относительно корня проекта), где лежат изображения. Значение по умолчанию – 'pixelperfect'
.ext
– расширение изображений. По умолчанию – 'jpg'
.selector
– CSS-селектор элемента, с которым связан функционал. Значение по умолчанию – 'body'
.Формат путей к фоновым изображениям макетов (значения Настроек) – /<folder>/<page>-<breakpoint>.<ext>
.