awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
sindresorhus avatar

sindresorhus/screenfull

0
View on GitHub↗
7,144 stars·683 forks·HTML·MIT·13 viewssindresorhus.com/screenfull↗

Screenfull

Screenfull is a lightweight JavaScript utility that wraps the browser's Fullscreen API into a single, consistent interface. It normalizes the vendor-prefixed fullscreen methods across different browsers, providing a unified way to request, exit, and toggle fullscreen mode on any DOM element or the entire page.

The library handles cross-browser differences automatically, abstracting away the webkit, moz, and ms prefixes behind a clean API. It includes runtime feature detection to check browser support before exposing fullscreen methods, and uses promises for asynchronous fullscreen requests and exits, enabling straightforward error handling and chaining. Screenfull also provides event-driven state tracking, listening to native fullscreenchange and fullscreenerror events to maintain accurate internal state and fire callbacks when fullscreen mode is entered, exited, or fails.

Beyond the core request and exit functions, Screenfull offers a toggle method that automatically determines whether to enter or exit fullscreen based on the current state. It includes utilities for querying the current fullscreen element, checking whether fullscreen is active, and attaching or removing event listeners for change and error events. The library also provides a fullscreen availability check that considers iframe permissions, helping developers avoid runtime errors when fullscreen is not permitted.

Features

  • Fullscreen API Wrappers - The core purpose of the library: a cross-browser wrapper for the Fullscreen API.
  • Fullscreen State Trackers - Listens to native fullscreen events to maintain accurate internal state.
  • Fullscreen State Toggles - Provides a single toggle method that automatically enters or exits fullscreen.
  • Browser API Normalizers - Normalizes browser-specific Fullscreen API methods into a single consistent interface.
  • Fullscreen Target Mapping - Allows requesting fullscreen on a specific DOM element or the entire document.
  • Fullscreen Feature Detectors - Checks browser support for fullscreen methods before exposing them.
  • Fullscreen Management - Provides a unified API to detect whether the document is currently in fullscreen mode.
  • Native Fullscreen Toggles - Provides a toggle method that automatically enters or exits native fullscreen mode.
  • Fullscreen Entry Request - Requests fullscreen for a specific DOM element or the whole page, returning a promise.
  • Fullscreen Exit Request - Exits fullscreen mode and returns to normal view, resolving a promise when done.
  • Fullscreen Toggle Requests - Ships a toggle method that returns a promise when fullscreen mode changes.
  • Fullscreen Toggle Utilities - Provides a toggle utility that automatically determines whether to enter or exit fullscreen.
  • Fullscreen Mode Togglers - Switches a page or element into fullscreen mode using a consistent cross-browser wrapper.
  • Vendor Prefix Normalizers - Normalizes vendor-prefixed fullscreen method names across browsers into a unified API.
  • Fullscreen Event Attachers - Attaches callbacks for fullscreen entry, exit, and error events.
  • Promise-Based Chains - Wraps fullscreen requests and exits in promises for chaining and error handling.
  • Fullscreen Event Listeners - Provides cross-browser event listener attachment for fullscreen state changes and errors.
  • Fullscreen Change Callbacks - Fires a callback whenever the fullscreen state changes.
  • Fullscreen Event Detachers - Detaches previously registered callbacks from fullscreen change or error events.
  • Fullscreen Event Subscribers - Subscribes to fullscreen change and error events for reactive behavior.
  • Fullscreen Permission Checkers - Checks whether the browser permits entering fullscreen mode, considering iframe permissions.
  • Fullscreen Support Detectors - Provides a function to check fullscreen availability, considering iframe permissions.

Star history

Star history chart for sindresorhus/screenfullStar history chart for sindresorhus/screenfull

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Screenfull

Similar open-source projects, ranked by how many features they share with Screenfull.
  • sindresorhus/screenfull.jssindresorhus avatar

    sindresorhus/screenfull.js

    7,143View on GitHub↗

    screenfull.js is a JavaScript wrapper for the Fullscreen API that provides a unified interface for toggling, monitoring, and verifying the fullscreen state of web page elements. It functions as a cross-browser utility to manage how elements expand to fill the display. The library handles browser-specific differences by normalizing inconsistent vendor methods into a single interface. This ensures consistent behavior when implementing immersive web experiences or interactive media playback across different web browsers. The toolset covers fullscreen management, including capabilities for enter

    HTML
    View on GitHub↗7,143
  • webrtchacks/adapterwebrtcHacks avatar

    webrtcHacks/adapter

    3,742View on GitHub↗

    Adapter is a browser compatibility layer and normalization library for WebRTC. It functions as an API shim that standardizes interfaces and behavior across different web browsers to ensure consistent real-time audio and video communication. The project distinguishes itself by detecting browser engine versions to identify specific quirks and specification differences. It applies targeted patches and wrappers to insulate applications from inconsistent API implementations and browser-specific prefix differences. The library covers a broad range of normalization capabilities, including interface

    JavaScript
    View on GitHub↗3,742
  • browserstate/history.jsbrowserstate avatar

    browserstate/history.js

    10,659View on GitHub↗

    history.js is a cross-browser URL state manager and HTML5 History API polyfill. It functions as a single page application router that manages browser URL and history state consistently across HTML5 and HTML4 browsers, enabling navigation without triggering full page reloads. The project provides a JavaScript framework adapter that integrates history management with the event systems of jQuery, MooTools, and Prototype. It ensures compatibility through a fallback mechanism that switches to hash-based navigation and hashbang URLs when the native HTML5 History API is unavailable. The system cove

    JavaScripthashchangehtml5-historyhtml5-history-api
    View on GitHub↗10,659
  • nickersoft/push.jsNickersoft avatar

    Nickersoft/push.js

    8,665View on GitHub↗

    Push.js is a cross-browser JavaScript library for displaying native desktop notifications from web applications. It wraps the divergent browser notification APIs into a single consistent interface, handling permission requests through a promise-based flow and providing graceful fallback when the native Notification API is unavailable. The library distinguishes itself through its event-driven lifecycle hooks, which expose callbacks for notification events such as show, click, close, and error. It also supports programmatic dismissal by returning a notification handle with a close method, and i

    JavaScriptjavascriptjavascript-librarynotification-api
    View on GitHub↗8,665
See all 30 alternatives to Screenfull→

Frequently asked questions

What does sindresorhus/screenfull do?

Screenfull is a lightweight JavaScript utility that wraps the browser's Fullscreen API into a single, consistent interface. It normalizes the vendor-prefixed fullscreen methods across different browsers, providing a unified way to request, exit, and toggle fullscreen mode on any DOM element or the entire page.

What are the main features of sindresorhus/screenfull?

The main features of sindresorhus/screenfull are: Fullscreen API Wrappers, Fullscreen State Trackers, Fullscreen State Toggles, Browser API Normalizers, Fullscreen Target Mapping, Fullscreen Feature Detectors, Fullscreen Management, Native Fullscreen Toggles.

What are some open-source alternatives to sindresorhus/screenfull?

Open-source alternatives to sindresorhus/screenfull include: sindresorhus/screenfull.js — screenfull.js is a JavaScript wrapper for the Fullscreen API that provides a unified interface for toggling,… webrtchacks/adapter — Adapter is a browser compatibility layer and normalization library for WebRTC. It functions as an API shim that… nickersoft/push.js — Push.js is a cross-browser JavaScript library for displaying native desktop notifications from web applications. It… browserstate/history.js — history.js is a cross-browser URL state manager and HTML5 History API polyfill. It functions as a single page… boltsframework/bolts-android — Bolts-Android is a mobile development library for Android that provides a framework for deep-linking and a system for… guzzle/promises — This project is a PHP implementation of the Promises/A+ specification, providing a library for managing asynchronous…