makeup-floating-label
Module for creating an accessible, progressively enhanced floating label.
Experimental
This 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.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)')
Methods
refresh()
: call this after form autofill or reset to refresh the label state
Custom Events
Dependencies
Polyfills
Development
npm start
npm test
npm run lint
npm run fix
npm run build
npm run clean
Test Reports
Each test run will generate the following reports:
/reports/coverage
contains Istanbul code coverage report/reports/html
contains HTML test report
CI Build
https://travis-ci.org/makeup-js/makeup-floating-label
Code Coverage
https://coveralls.io/github/makeup-js/makeup-floating-label