@pnx-mixtape/dialog
v2.0.2
Published
dialog component
Keywords
Readme
@pnx-mixtape/dialog
Documentation and examples: CTA
Installation
npm install @pnx-mixtape/dialog --save-devHow to use
CSS
- PostCSS workflow:
@import '@pnx-mixtape/dialog'; - Native CSS:
@import url('dist/dialog.css'); - Link tag:
<link href="dist/dialog.css" rel="stylesheet" type="text/css">
Web Components
Web Components are self defined, simply import the desired feature. These do not use the Shadow DOM. External CSS applies.
- DialogBase import:
import '@pnx-mixtape/dialog/DialogBase';and be sure to include<mx-dialog>around the<dialog />tag. - The triggering element should either have
aria-controls="[id]"orhref="#[id]"where the ID matches the dialog (required). - Use the
[data-modal]attribute to triggerHTMLDialogElement.showModal()on open. When omittedHTMLDialogElement.show()is used. - Add
[data-close]to any button that should callHTMLDialogElement.close()
<button aria-controls="example-dialog" class="button button--primary">
Dialog trigger
</button>
<mx-dialog id="example-dialog" data-modal>
<dialog class="dialog">
<button
autofocus
class="button button--icon-only button--secondary icon icon--close"
data-close
>
Close dialog
</button>
<div class="dialog__content">
<h2>Title</h2>
<p>Body content.</p>
</div>
</dialog>
</mx-dialog>See twig files for all HTML examples.
Vanilla JS (to be deprecated)
- ES6 import:
import Dialog from '@pnx-mixtape/dialog'; - Script tag:
<script src="dist/dialog.js" type="text/javascript"></script>
HTML
<button
data-dialog
aria-controls="example-dialog"
class="button button--primary"
>
Dialog trigger
</button>
<dialog class="dialog" id="example-dialog">
<div class="dialog__content">
<h2>Title</h2>
<p>Body content.</p>
</div>
</dialog>