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
capricorn86 avatar

capricorn86/happy-dom

0
View on GitHub↗
4,532 stars·299 forks·TypeScript·MIT·22 views

Happy Dom

happy-dom is a JavaScript-based headless browser simulation and virtual DOM engine. It implements the Document Object Model and Web APIs to execute frontend code and run tests within non-browser environments such as Node.js.

The project provides a programmatic interface for creating and testing custom elements and shadow DOM structures. It supports stateful page instance management to simulate multiple concurrent browsing sessions and includes a programmable clock to synchronize asynchronous operations.

The system covers a broad range of browser simulation capabilities, including DOM manipulation and mutation monitoring, network request execution, and the management of window settings and viewport dimensions. It also allows for the injection of browser-standard globals into the execution context.

Features

  • DOM Simulations - Implements a complete Document Object Model using JavaScript to simulate browser behavior without a graphical interface.
  • Simulated Browser Environments - Provides a JavaScript-based headless browser simulation to execute frontend code in non-browser environments.
  • Virtual Browser Environments - Creates a virtual DOM and browser APIs in Node.js to test web applications without a graphical interface.
  • Node.js DOM Implementations - Implements a virtual Document Object Model and Web APIs specifically designed to run within Node.js.
  • Global Window Injections - Injects browser-standard globals like window and document into Node.js for seamless test execution.
  • Virtual DOM Testing - Enables creating and modifying virtual HTML elements to verify UI responses to programmatic changes.
  • DOM Observers - Utilizes observers to monitor and react to structural changes within the simulated DOM.
  • Virtual DOM Implementations - Provides a virtual DOM engine for manipulating HTML elements and monitoring mutations without a real browser.
  • DOM Mutation Observation - Implements MutationObserver to track and react to structural changes in the virtual DOM.
  • HTML DOM Manipulators - Provides a full suite of tools for creating, appending, and querying nodes within a virtual document.
  • Asynchronous Simulation Workflows - Simulates network requests and page lifecycles to test how applications handle timing and external data.
  • Asynchronous Control Flow - Provides a programmable clock to synchronize asynchronous operations and timers during tests.
  • Browser Page Management - Manages multiple page instances and navigation between URLs to simulate complex user browsing sessions.
  • Web Components - Provides a simulated environment for building and testing custom elements and shadow DOM structures.
  • Viewport and Timer Control - Allows programmatic adjustment of viewport dimensions and timer execution during active tests.
  • Shadow DOM Encapsulation - Supports isolated document fragments to ensure styles and elements remain encapsulated within custom elements.
  • Independent Instance Management - Maintains independent window and document states to simulate multiple concurrent browsing sessions.
  • Page Lifecycle Controls - Provides programmatic control over page lifecycles, including waiting for or aborting asynchronous operations.
  • Web Components - Supports the creation and testing of custom elements and declarative shadow DOM.

Star history

Star history chart for capricorn86/happy-domStar history chart for capricorn86/happy-dom

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. 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

Frequently asked questions

What does capricorn86/happy-dom do?

happy-dom is a JavaScript-based headless browser simulation and virtual DOM engine. It implements the Document Object Model and Web APIs to execute frontend code and run tests within non-browser environments such as Node.js.

What are the main features of capricorn86/happy-dom?

The main features of capricorn86/happy-dom are: DOM Simulations, Simulated Browser Environments, Virtual Browser Environments, Node.js DOM Implementations, Global Window Injections, Virtual DOM Testing, DOM Observers, Virtual DOM Implementations.

Which projects share features with capricorn86/happy-dom?

Projects with overlapping indexed features include: javascript-tutorial/ru.javascript.info — This project is a comprehensive JavaScript programming tutorial and frontend web development curriculum. It serves as… jsdom/jsdom — jsdom is a Node.js DOM implementation that functions as a headless browser emulator and virtual browser environment.… antonioru/beautiful-react-hooks — This project is a collection of reusable React hooks designed to wrap browser APIs, manage state persistence, and… wicg/webcomponents — Web Components is a set of specifications for creating reusable custom elements with encapsulated styling and logic… mdn/dom-examples — This project is a comprehensive reference library of runnable code samples and implementation guides for Web APIs, CSS… ustbhuangyi/better-scroll — Better-scroll is a JavaScript scroll library and touch interaction engine designed to create high-performance…

Projects sharing features with Happy Dom

These projects share indexed features with Happy Dom. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • javascript-tutorial/ru.javascript.infojavascript-tutorial avatar

    javascript-tutorial/ru.javascript.info

    4,057View on GitHub↗

    This project is a comprehensive JavaScript programming tutorial and frontend web development curriculum. It serves as a structured educational resource for learning the JavaScript language, ranging from basic syntax to advanced asynchronous patterns and modern programming techniques. The resource functions as a frontend engineering textbook and CSS layout guide, providing detailed instructional material on building responsive user interfaces. It covers the design of custom web components and the application of styles and positioning to create effective frontend interfaces. The curriculum enc

    HTMLjavascriptrussiantutorial
    View on GitHub↗4,057
  • jsdom/jsdomjsdom avatar

    jsdom/jsdom

    21,587View on GitHub↗

    jsdom is a Node.js DOM implementation that functions as a headless browser emulator and virtual browser environment. It provides a pure JavaScript implementation of web standards, acting as a web standards polyfill that simulates the window and document objects within a non-browser runtime. The project implements W3C and WHATWG specifications to provide a programmatic environment for parsing HTML and manipulating content. It serves as an HTML parser and serializer, allowing for the transformation of HTML strings into document structures and the export of those structures back into text. The

    JavaScript
    View on GitHub↗21,587
  • antonioru/beautiful-react-hooksantonioru avatar

    antonioru/beautiful-react-hooks

    8,355View on GitHub↗

    This project is a collection of reusable React hooks designed to wrap browser APIs, manage state persistence, and handle DOM observation. It provides a consistent interface for integrating native browser capabilities directly into the React component lifecycle. The library includes specialized toolkits for monitoring the browser environment, such as window resizing, network connectivity, and viewport visibility. It also provides mechanisms for managing execution timing through debouncing, throttling, and the control of timeouts and intervals. Additional capabilities cover state management wi

    JavaScriptcustom-hooksfront-endhooks
    View on GitHub↗8,355
  • wicg/webcomponentsWICG avatar

    WICG/webcomponents

    4,494View on GitHub↗

    Web Components is a set of specifications for creating reusable custom elements with encapsulated styling and logic for the web. It provides a standard for defining new HTML tags that function as independent components across different browser engines. The system is built on three primary pillars: the Custom Elements standard for defining new tags, the Shadow DOM implementation for isolating internal document structures and styles, and the HTML Templates specification for defining reusable fragments of markup that remain inert until instantiated. These capabilities enable modular web design

    HTML
    View on GitHub↗4,494
  • Compare all 30 related projects→