LoginSignup
13
9

More than 3 years have passed since last update.

ミニマルなモーダルライブラリをnpmで公開しました

Last updated at Posted at 2020-04-21

【更新履歴】
2020/10/28 v1.0.0の機能について追記。デモをGithub Pagesに移動。


ミニマルなモーダルライブラリ(MinimalModal.js)を自作してみたので紹介します。

MinimalModal.jsとは :thinking:

TypeScriptで作成された、軽量かつ最小限の機能のモーダルライブラリです。

なんでこのライブラリ作ったの? :thinking:

Micromodal.jsを使おうと思ったのですが、
背景スクロール無効がなかったり、IE未対応といったところが私の用途には合わなかったため、
いっそのこと作ってしまったほうが早いかなと考え、作ってみました。

機能 :yum:

  • モーダル用エレメントのopen属性の有無、及びaria-hiddenのtrue/falseの切り替え
    (開閉のアニメーションはCSSで実装)
  • 背景をクリックまたはESCキー押下でモーダルを閉じる。
    (HTMLの実装次第で背景クリックでも閉じないようにできる)
  • タブキーのフォーカス移動でモーダル外に出ることが出来ないように制御
    (focus-trapに依存)
  • モーダル表示時に背景のスクロールを無効化
    (body-scroll-lockに依存)
  • TypeScript製
  • IE11 をサポート

導入方法 :rocket:

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

使い方 :page_facing_up:

自動

MinimalModal.activate();

 → デモ

手動

// open
const modal = document.querySelector('#someModal');
MinimalModal.show(modal);

// close
MinimalModal.close();

 → デモ

ライセンス :lock:

MIT

npm

@yuki0410/minimal-modal

Github

ohnaka0410/minimal-modal

まとめ

自分でモーダルを実装する際にソッと使ってってみようと思います。

13
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9