Modernizr tests which native CSS3 and HTML5 features are available in the current UA and makes the results available to you in two ways: as properties on a global Modernizr
object, and as classes on the <html>
element. This information allows you to progressively enhance your pages with a granular level of control over the experience.
Modernizr has an optional (not included) conditional resource loader called Modernizr.load()
, based on Yepnope.js. You can get a build that includes Modernizr.load()
, as well as choosing which feature tests to include on the Download page.
Often times people want t
8F7C
o know when an asynchronous test is done so they can allow their application to react to it.
In the past, you've had to rely on watching properties or <html>
classes. Only events on asynchronous tests are
supported. Synchronous tests should be handled synchronously for speed and consistency reasons.
The new api looks like this:
// Listen to a test, give it a callback
Modernizr.on('testname', function( result ) {
if (result) {
console.log('The test passed!');
}
else {
console.log('The test failed!');
}
});
We guarantee that we'll only invoke your function once (per time that you call on
). We are currently not exposing
a method for exposing the trigger
functionality. Instead, if you'd like to have control over async tests, use the
src/addTest
feature, and any test that you set will automatically expose and trigger the on
functionality.
Run the test suite
grunt build
//outputs to ./dist/modernizr-build.js
grunt qunit
grunt build
serve .
visit <url>/tests
serve the root dir, <url>/test/modular.html
- checkout the modernizr.com code
- install all your gems and bundles and jekyll and shit
jekyll
serve ./_sites
- visit /download
- It should be just a big list of things you can build with no frills.
Modernizr can be used programmatically via npm:
var modernizr = require("modernizr");
A build
method is exposed for generating custom Modernizr builds. Example:
var modernizr = require("modernizr");
var result = modernizr.build({}, function (result) {
console.log(result.code); // full source
console.log(result.min); // minfied output
});
The first parameter takes a JSON object of options and feature-detects to include. See lib/config-all.json
for all available options.
The second parameter is a function invoked on task completion.
MIT license