luncheon / elab

Multiple selection with just markup.

Home Page:https://luncheon.github.io/elab/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

elab

Multiple selection with just markup.

Demo / CodePen

Installation

via npm (with a module bundler)

$ npm install elab
import 'elab/simple/simple.css' // or 'elab/material/material.css'
import 'elab/simple/simple.js'  // or 'elab/material/material.js'

via CDN (jsDelivr)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/elab@0.3.0/simple/simple.css" />
<script src="https://cdn.jsdelivr.net/npm/elab@0.3.0/simple/simple.js"></script>
<!-- or
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/elab@0.3.0/material/material.css" />
<script src="https://cdn.jsdelivr.net/npm/elab@0.3.0/material/material.js"></script>
-->

Download

simple.css simple.js

material.css material.js

Usage

<!-- 1. Load CSS and JS. -->
<link rel="stylesheet" href="elab/simple.css" />
<script src="elab/simple.js"></script>

<!-- 2. Place an element having "elab" class and `tabindex` attribute.
        [Optional] Add "elab-wrap" class to apply word-wrap. -->
<div class="elab elab-wrap" tabindex="0">
  <ul>
    <!-- 3. [Optional] Place an item having `data-selected-all` to indicate or toggle all items. -->
    <li data-selected-all>All</li>

    <!-- 4. Place items having `data-value` with `data-selected` or `data-disabled` as appropriate. -->
    <li data-value="cupcake">Cupcake</li>
    <li data-value="donut">Donut</li>
    <li data-value="eclair" data-selected>Eclair</li>
    <li data-value="froyo" data-disabled>Froyo</li>
    <li data-value="gingerbread">Gingerbread</li>
    <li data-value="honeycomb">Honeycomb</li>
    <li data-value="ice" data-selected>Ice</li>

    <!-- 5. [Optional] Place an item having `data-placeholder` at last to display the placeholder. -->
    <li data-placeholder>Select...</li>
  </ul>

  <!-- 6. [Optional] Place an icon to indicate this is a dropdown, such as "▾". -->
  <div style="padding: 0 0.5em;"></div>
</div>

<!-- Listen to "change" and/or "close" events using `addEventListener()`.
     `event.detail.values` is an array having selected values. -->
<script>
  {
    const element = document.querySelector('.elab')
    element.addEventListener('change', event => console.log('change', event.detail.values))
    element.addEventListener('close', event => console.log('close', event.detail.values))
  }
</script>

License

WTFPL

About

Multiple selection with just markup.

https://luncheon.github.io/elab/

License:Do What The F*ck You Want To Public License


Languages

Language:TypeScript 42.2%Language:JavaScript 22.8%Language:HTML 16.9%Language:SCSS 14.2%Language:CSS 3.9%