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
npm install makeup-floating-label
yarn add makeup-floating-label
Example
const FloatingLabel = require('makeup-floating-label');
const widgetEls = document.querySelectorAll('.floating-label');
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 eloptions.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 focusoptions.labelElementInvalidModifier
: the classname to add to the label when the textbox has an an aria-invalid stateoptions.labelElementDisabledModifier
: the classname to add to the label when the textbox has an a disabled stateoptions.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