JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 76
  • Score
    100M100P100Q87072F
  • License MIT

Module for creating an accessible, progressively enhanced floating label

Package Exports

  • makeup-floating-label

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (makeup-floating-label) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

makeup-floating-label

Module for creating an accessible, unobtrusive, progressively enhanced floating label.

In a non-javascript state the label will not obscure the textbox; the label will remain in its default floated position above the textbox.

Experimental

This CommonJS module is still in an experimental state, until it reaches v1.0.0 you must consider all minor releases as breaking changes. Patch releases may introduce new features, but will be backwards compatible.

Install

// via npm
npm install makeup-floating-label

// via yarn
yarn add makeup-floating-label

Example

// require the module
const FloatingLabel = require('makeup-floating-label');

// get NodeList
const widgetEls = document.querySelectorAll('.floating-label');

// assign next id to each element
widgetEls.forEach(function(el) {
    var widget = new FloatingLabel(el);
});

Markup:

<div class="floating-label">
    <label class="floating-label__label" for="input-1">Input 1</label>
    <input class="floating-label__textbox" id="input-1" name="input-1" />
</div>

Params

  • el: the root widget el
  • options.labelElementAnimateModifier: the classname to add when the label begins its CSS animation (default: 'floating-label__label--animate')
  • options.labelElementInlineModifier: the classname to add when the label is in its non-floating state (default: 'floating-label__label--inline')
  • options.labelElementFocusModifier: the classname to add to the label when the textbox has keyboard focus
  • options.labelElementInvalidModifier: the classname to add to the label when the textbox has an an aria-invalid state
  • options.labelElementDisabledModifier: the classname to add to the label when the textbox has an a disabled state
  • options.textboxElementBackgroundRGB: for the purposes of a Chrome autofill bug, if your textbox background colour is not white, specify its RGB value (default: 'rgb(255, 255, 255)'). An array of RGB values is also supported in the case your textbox background has different colours on focus, invalid, disabled, etc.

Methods

  • refresh(): call this after form autofill or reset to refresh the label state

Custom Events

None

Dependencies

None

Polyfills

None