unimodal

1.0.0 • Public • Published

unimodal npm version

Модальное окно с произвольной разметкой и стилизацией.

Возможности

  • Несколько произвольно расположенных открывающих и закрывающих элементов для каждого модального окна.
  • Блокирование основной прокрутки с сохранением позиции экрана.
  • Собственная прокрутка по правой стороне окна при переполнении контентной части.
  • Закрытие по Esc.
  • Запрет выхода фокуса за пределы содержимого модального окна.

Установка

npm i -DE unimodal

Использование

Разметка

Элементы разметки помечаются дата-атрибутами с одинаковым значением:

  • data-modal - на узел модального окна.
  • data-modal-open - на все узлы, открывающие это окно.
  • data-modal-close - на все узлы, закрывающие это окно.

Стили

Для выравнивания содержимого по вьюпорту рекомендуются следующие стили: modal.css.

Если используются postcss-import и БЭМ-блок modal, можно импортировать часть переиспользуемых стилей модального окна:

@import url("../node_modules/unimodal/modal.css");

Использование готового скрипта

<script>
  window.MODAL_PREFIX = 'modal--'; // modal-- - значение по уполчанию
</script>
<script src="https://efiand.github.io/unimodal/modal.min.js"></script>

Кастомное подключение модуля в систему сборки

import Modal from 'unimodal';

for (const modalElement of document.querySelectorAll('[data-modal]')) {
  new Modal(modalElement, 'modal--'); // modal-- - значение по уполчанию
}

или:

import { initModals } from 'unimodal';

initModals('modal--'); // modal-- - значение по уполчанию

Второй параметр конструктора - префикс имён классов-модификаторов:

  • *ready - для стилизации модальных особенностей. Полезно для прогрессивного улучшения, когда до загрузки JS модальное окно в потоке.
  • *opened - для стилизации состояния открытого окна.

Readme

Keywords

Package Sidebar

Install

npm i unimodal

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

8.4 kB

Total Files

8

Last publish

Collaborators

  • efiand