A lightweight JavaScript wrapper that simplifies cross-browser usage of the Fullscreen API.
Screenfull.js is a lightweight JavaScript library that provides a simple, cross-browser wrapper for the Fullscreen API. It solves the problem of browser inconsistencies and vendor prefixes when implementing fullscreen functionality, allowing developers to request fullscreen mode for any page element with clean, modern code.
Frontend developers who need to implement fullscreen functionality in web applications without dealing with browser-specific implementations and vendor prefixes.
Developers choose Screenfull.js because it eliminates the need to write and maintain verbose compatibility code for the Fullscreen API across different browsers, providing a tiny, dependency-free solution that just works.
Simple wrapper for cross-browser usage of the JavaScript Fullscreen API
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically handles vendor prefixes (webkit, moz) and implementation differences, eliminating the need to write verbose compatibility code, as shown in the vanilla JavaScript comparison.
At only 0.7 kB gzipped with zero dependencies, it adds negligible overhead, making it ideal for performance-sensitive web applications.
All asynchronous methods like request() and exit() return promises, enabling clean async/await usage and simplifying error handling in modern JavaScript.
Provides intuitive .on() and .off() methods for listening to fullscreen change and error events, reducing boilerplate code compared to raw event listeners.
Does not support fullscreen on iPhone due to browser limitations, which is a major drawback for mobile-first or cross-platform projects.
Requires ESM module support, forcing developers to use transpilation or downgrade to version 5.2.0 for older environments, adding setup complexity.
Marked as feature complete with no new features accepted, which risks obsolescence if browser APIs evolve or new use cases emerge.