【更新履歴】
2020/10/28 v1.0.0の機能について追記。デモをGithub Pagesに移動。
ミニマルなモーダルライブラリ(MinimalModal.js)を自作してみたので紹介します。
MinimalModal.jsとは
TypeScriptで作成された、軽量かつ最小限の機能のモーダルライブラリです。
なんでこのライブラリ作ったの?
Micromodal.jsを使おうと思ったのですが、
背景スクロール無効がなかったり、IE未対応といったところが私の用途には合わなかったため、
いっそのこと作ってしまったほうが早いかなと考え、作ってみました。
機能
- モーダル用エレメントのopen属性の有無、及びaria-hiddenのtrue/falseの切り替え
(開閉のアニメーションはCSSで実装) - 背景をクリックまたはESCキー押下でモーダルを閉じる。
(HTMLの実装次第で背景クリックでも閉じないようにできる) - タブキーのフォーカス移動でモーダル外に出ることが出来ないように制御
(focus-trapに依存) - モーダル表示時に背景のスクロールを無効化
(body-scroll-lockに依存) - TypeScript製
- IE11 をサポート
導入方法
npm経由
Console
% npm install @yuki0410/minimal-modal --save
// Common.JS
const MinimalModal = require('@yuki0410/minimal-modal');
// ESModules
import MinimalModal from '@yuki0410/minimal-modal';
CDN経由
<script src="https://cdn.jsdelivr.net/npm/@yuki0410/minimal-modal/dist/minimal-modal.min.js"></script>
直接ダウンロード
Console
% curl -o https://cdn.jsdelivr.net/npm/@yuki0410/minimal-modal/dist/minimal-modal.min.js
使い方
自動
MinimalModal.activate();
→ デモ
手動
// open
const modal = document.querySelector('#someModal');
MinimalModal.show(modal);
// close
MinimalModal.close();
→ デモ
ライセンス
MIT
npm
Github
まとめ
自分でモーダルを実装する際にソッと使ってってみようと思います。