# Modernizr/Modernizr

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/modernizr-modernizr).**

25,680 stars · 2,953 forks · JavaScript · mit

## Links

- GitHub: https://github.com/Modernizr/Modernizr
- Homepage: https://www.npmjs.com/package/modernizr
- awesome-repositories: https://awesome-repositories.com/repository/modernizr-modernizr.md

## Topics

`css3-features` `feature-detection` `hacktoberfest` `javascript` `javascript-library` `modernizr`

## Description

Modernizr is a browser feature detection library that determines which web technologies are supported by a user's browser by executing small snippets of code to verify actual capabilities. By avoiding reliance on unreliable user-agent strings, it provides a reliable foundation for progressive enhancement, allowing developers to build interfaces that adapt their functionality and styling based on the specific features available in the client environment.

The project distinguishes itself through a configuration-driven build system that generates custom, minimized JavaScript files containing only the specific tests required for a project. It facilitates progressive enhancement by automatically applying descriptive CSS classes to the root document element, enabling developers to write conditional styles that respond to the detected environment. Additionally, it includes utilities for normalizing vendor-prefixed CSS properties and programmatically evaluating media queries to ensure consistent behavior across diverse rendering engines.

Modernizr supports a broad range of testing primitives, including DOM-based verification, event probing, and style injection, to identify differences in how browsers handle modern web standards. These detection capabilities can be integrated directly into automated build pipelines via command-line tools or programmatic configuration, ensuring that applications only attempt to utilize features supported by the current browser.

## Tags

### Web Development

- [Browser Feature Detection Libraries](https://awesome-repositories.com/f/web-development/browser-feature-detection-libraries.md) — Determines which web technologies are supported by a user's browser without relying on unreliable user-agent strings.
- [Feature Detection Libraries](https://awesome-repositories.com/f/web-development/feature-detection-libraries.md) — Executes small snippets of JavaScript to verify browser support for specific web technologies instead of relying on unreliable user agent strings.
- [Progressive Enhancement Tools](https://awesome-repositories.com/f/web-development/progressive-enhancement-tools.md) — Applies conditional CSS classes to the root element to ensure consistent visual presentation across diverse browser environments.
- [Capability Detection Engines](https://awesome-repositories.com/f/web-development/capability-detection-engines.md) — Detects the availability of web technologies in a user's browser by checking for actual capabilities instead of relying on unreliable user-agent strings. ([source](https://modernizr.com/docs/))
- [Browser Feature Detection Utilities](https://awesome-repositories.com/f/web-development/browser-feature-detection-utilities.md) — Evaluates media queries programmatically to determine if the current browser environment meets specific layout requirements. ([source](https://modernizr.com/docs/))
- [Progressive Enhancement Frameworks](https://awesome-repositories.com/f/web-development/progressive-enhancement-frameworks.md) — Builds web interfaces that adapt their functionality and styling based on the specific features supported by the user's current browser.
- [Browser Capability Profilers](https://awesome-repositories.com/f/web-development/browser-capability-profilers.md) — Determines the actual technical capabilities of a user's browser to avoid relying on inaccurate user-agent strings.
- [Progressive Enhancement Utilities](https://awesome-repositories.com/f/web-development/progressive-enhancement-utilities.md) — Applies descriptive classes to the root document element to allow developers to write conditional styles based on detected browser capabilities.
- [Automated Capability Checks](https://awesome-repositories.com/f/web-development/automated-capability-checks.md) — Integrates programmatic checks into build pipelines to ensure web applications only attempt to use supported capabilities.
- [CSS Vendor Prefix Normalizers](https://awesome-repositories.com/f/web-development/css-vendor-prefix-normalizers.md) — Maps standard CSS property names to their browser-specific prefixed equivalents by querying the runtime environment for supported property variations.
- [Custom Feature Test Providers](https://awesome-repositories.com/f/web-development/custom-feature-test-providers.md) — Allows developers to define custom feature tests by providing a name and a boolean function to extend the detection object. ([source](https://modernizr.com/docs/))
- [Vendor Prefix Normalizers](https://awesome-repositories.com/f/web-development/vendor-prefix-normalizers.md) — Retrieves the browser-supported version of CSS properties or functions in a standard camelCase format. ([source](https://modernizr.com/docs/))
- [CSS Property Detectors](https://awesome-repositories.com/f/web-development/css-property-detectors.md) — Verifies if a CSS property is supported by the browser by checking all vendor-prefixed variations. ([source](https://modernizr.com/docs/))
- [CSS Property Normalizers](https://awesome-repositories.com/f/web-development/css-property-normalizers.md) — Identifies supported vendor-prefixed versions of web standards and returns them in a consistent format.
- [CSS Property Support Testers](https://awesome-repositories.com/f/web-development/css-property-support-testers.md) — Checks if specific CSS properties are supported by the browser while optionally validating property values. ([source](https://modernizr.com/docs/))
- [Vendor Prefix Managers](https://awesome-repositories.com/f/web-development/vendor-prefix-managers.md) — Automatically resolves and applies the correct browser-specific versions of CSS properties to ensure consistent rendering.

### Development Tools & Productivity

- [Build-Time Code Generators](https://awesome-repositories.com/f/development-tools-productivity/build-time-code-generators.md) — Assembles a custom, minimized JavaScript file containing only the specific feature tests requested during the build process.
- [Custom Build Generators](https://awesome-repositories.com/f/development-tools-productivity/custom-build-generators.md) — Produces optimized detection files containing only the specific feature tests required for a particular project.

### User Interface & Experience

- [Conditional CSS Styling](https://awesome-repositories.com/f/user-interface-experience/conditional-css-styling.md) — Applies CSS classes to the root element based on detected browser capabilities to ensure consistent visual presentation. ([source](https://modernizr.com/docs/))

### Testing & Quality Assurance

- [Compatibility Testing Utilities](https://awesome-repositories.com/f/testing-quality-assurance/compatibility-testing-utilities.md) — Identifies and manages differences in how various web browsers handle modern CSS properties, DOM events, and advanced web technologies.
- [DOM-Based Feature Testers](https://awesome-repositories.com/f/testing-quality-assurance/dom-based-feature-testers.md) — Creates temporary elements and applies styles to the document to observe how the browser engine renders or handles specific web features.
- [Event Support Verifiers](https://awesome-repositories.com/f/testing-quality-assurance/event-support-verifiers.md) — Tests for the existence of DOM events by attempting to attach listeners to elements and checking if the browser supports the event interface.
