Stacking context is a three-dimensional conceptualization of HTML elements along an imaginary z-axis relative to the user, who is assumed to be facing the viewport or the webpage. The stacking context determines how elements are layered on top of one another along the z-axis (think of it as the "depth" dimension on your screen). Stacking context determines the visual order of how overlapping content is rendered.| developer.mozilla.org
This article explains how to create fully-customized| developer.mozilla.org
JavaScript's strict mode is a way to opt in to a restricted variant of JavaScript, thereby implicitly opting-out of "sloppy mode". Strict mode isn't just a subset: it intentionally has different semantics from normal code. Strict mode code and non-strict mode code can coexist, so scripts can opt into strict mode incrementally.| developer.mozilla.org
The TypeError object represents an error when an operation could not be performed, typically (but not exclusively) when a value is not of the expected type.| developer.mozilla.org
Symbol is a built-in object whose constructor returns a symbol primitive — also called a Symbol value or just a Symbol — that's guaranteed to be unique. Symbols are often used to add unique property keys to an object that won't collide with keys any other code might add to the object, and which are hidden from any mechanisms other code will typically use to access the object. That enables a form of weak encapsulation, or a weak form of information hiding.| developer.mozilla.org
The Reflect.set() static method is like the property accessor and assignment syntax, but as a function.| developer.mozilla.org
The Reflect.getOwnPropertyDescriptor() static method is like Object.getOwnPropertyDescriptor(). It returns a property descriptor of the given property if it exists on the object, undefined otherwise.| developer.mozilla.org
The Proxy() constructor creates Proxy objects.| developer.mozilla.org
Boolean values can be one of two values: true or false, representing the truth value of a logical proposition.| developer.mozilla.org
We are an open community of developers, technical writers, and learners building resources for a better Web, regardless of brand, browser, or platform. Anyone can contribute, and each person who does contribute has an impact on millions of readers. Learn how to contribute and drive innovation on the Open Web.| developer.mozilla.org
The spread (...) syntax allows an iterable, such as an array or string, to be expanded in places where zero or more arguments (for function calls) or elements (for array literals) are expected. In an object literal, the spread syntax enumerates the properties of an object and adds the key-value pairs to the object being created.| developer.mozilla.org
The Object.assign() static method copies all enumerable own properties from one or more source objects to a target object. It returns the modified target object.| developer.mozilla.org
The slice() method of Array instances returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included) where start and end represent the index of items in that array. The original array will not be modified.| developer.mozilla.org
The Array.from() static method creates a new, shallow-copied Array instance from an iterable or array-like object.| developer.mozilla.org
The concat() method of Array instances is used to merge two or more arrays. This method does not change the existing arrays, but instead returns a new array.| developer.mozilla.org
An object reference is a link to an object. Object references can be used exactly like the linked objects.| developer.mozilla.org
A deep copy of an object is a copy whose properties do not share the same references (point to the same underlying values) as those of the source object from which the copy was made. As a result, when you change either the source or the copy, you can be assured you're not causing the other object to change too. That behavior contrasts with the behavior of a shallow copy, in which changes to nested properties in the source or the copy may cause the other object to change too.| developer.mozilla.org
XMLHttpRequest supports both synchronous and asynchronous communications. In general, however, asynchronous requests should be preferred to synchronous requests for performance reasons.| developer.mozilla.org
SVG elements can be modified using attributes that specify details about exactly how the element should be handled or rendered.| developer.mozilla.org
The http-equiv attribute of the element allows you to provide processing instructions for the browser as if the response that returned the document included certain HTTP headers. The metadata is document-level metadata that applies to the whole page.| developer.mozilla.org
The HTML element represents a document section containing interactive controls for submitting information.| developer.mozilla.org
Elements in HTML have attributes; these are additional values that configure the elements or adjust their behavior in various ways to meet the criteria the users want.| developer.mozilla.org
The CSS universal selector (*) matches elements of any type.| developer.mozilla.org
The CSS type selector matches elements by node name. In other words, it selects all elements of the given type within a document.| developer.mozilla.org
The subsequent-sibling combinator (~, a tilde) separates two selectors and matches all instances of the second element that follow the first element (not necessarily immediately) and share the same parent element.| developer.mozilla.org
The next-sibling combinator (+) separates two selectors and matches the second element only if it immediately follows the first element, and both are children of the same parent element.| developer.mozilla.org
The CSS ID selector matches an element based on the value of the element's id attribute. In order for the element to be selected, its id attribute must match exactly the value given in the selector.| developer.mozilla.org
The descendant combinator — typically represented by a single space (" ") character — combines two selectors such that elements matched by the second selector are selected if they have an ancestor (parent, parent's parent, parent's parent's parent, etc.) element matching the first selector. Selectors that utilize a descendant combinator are called descendant selectors.| developer.mozilla.org
The column combinator (||) is placed between two CSS selectors. It matches only those elements matched by the second selector that belong to the column elements matched by the first.| developer.mozilla.org
The CSS class selector matches elements based on the contents of their class attribute.| developer.mozilla.org
The child combinator (>) is placed between two CSS selectors. It matches only those elements matched by the second selector that are the direct children of elements matched by the first.| developer.mozilla.org
The HTTP Pragma header is an implementation-specific header that may have various effects along the request-response chain. This header serves for backwards compatibility with HTTP/1.0 caches that do not support the Cache-Control HTTP/1.1 header.| developer.mozilla.org
The Math.atan2() static method returns the angle in the plane (in radians) between the positive x-axis and the ray from (0, 0) to the point (x, y), for Math.atan2(y, x).| developer.mozilla.org
Fired when the server sends a 401 or 407 status code and a WWW-Authenticate header using the Basic scheme (that is, when the server asks the client to provide authentication credentials, such as a username and password).| developer.mozilla.org
A media type (formerly known as a Multipurpose Internet Mail Extensions or MIME type) indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.| developer.mozilla.org
The HTML autocomplete attribute lets web developers specify what if any permission the user agent has to provide automated assistance in filling out form field values, as well as guidance to the browser as to the type of information expected in the field.| developer.mozilla.org
The PublicKeyCredentialRequestOptions dictionary represents the object passed to CredentialsContainer.get() as the value of the publicKey option.| developer.mozilla.org
The PublicKeyCredentialCreationOptions dictionary represents the object passed to CredentialsContainer.create() as the value of the publicKey option: that is, when using create() to create a public key credential using the Web Authentication API.| developer.mozilla.org
The signalCurrentUserDetails() static method of the PublicKeyCredential interface signals to the authenticator that a particular user has updated their user name and/or display name on the relying party (RP) server.| developer.mozilla.org
The signalAllAcceptedCredentials() static method of the PublicKeyCredential interface signals to the authenticator all of the valid credential IDs that the relying party (RP) server still holds for a particular user.| developer.mozilla.org
The create() method of the CredentialsContainer interface creates a new credential, which can then be stored and later retrieved using the navigator.credentials.get() method. The retrieved credential can then be used by a website to authenticate a user.| developer.mozilla.org
The Map object holds key-value pairs and remembers the original insertion order of the keys. Any value (both objects and primitive values) may be used as either a key or a value.| developer.mozilla.org
The Storage interface of the Web Storage API provides access to a particular domain's session or local storage. It allows, for example, the addition, modification, or deletion of stored data items.| MDN Web Docs
The undefined global property represents the primitive value undefined. It is one of JavaScript's primitive types.| MDN Web Docs
The Object type represents one of JavaScript's data types. It is used to store various keyed collections and more complex entities. Objects can be created using the Object() constructor or the object initializer / literal syntax.| MDN Web Docs
The JSON.stringify() static method converts a JavaScript value to a JSON string, optionally replacing values if a replacer function is specified or optionally including only the specified properties if a replacer array is specified.| MDN Web Docs
The box-sizing CSS property sets how the total width and height of an element is calculated.| MDN Web Docs
The read-only scrollY property of the Window interface returns the number of pixels by which the document is currently scrolled vertically. This value is subpixel precise in modern browsers, meaning that it isn't necessarily a whole number. You can get the number of pixels the document is scrolled horizontally from the scrollX property.| MDN Web Docs
The read-only scrollX property of the Window interface returns the number of pixels by which the document is currently scrolled horizontally. This value is subpixel precise in modern browsers, meaning that it isn't necessarily a whole number. You can get the number of pixels the document is scrolled vertically from the scrollY property.| MDN Web Docs
The getClientRects() method of the Element interface returns a collection of DOMRect objects that indicate the bounding rectangles for each CSS border box in a client.| MDN Web Docs
A DOMRect describes the size and position of a rectangle.| developer.mozilla.org
In computer graphics, a viewport represents a polygonal (normally rectangular) area that is currently being viewed.| developer.mozilla.org
Baseline identifies the availability of web platform features across popular browsers, including APIs, CSS properties, and JavaScript syntax. Baseline describes web features as being either widely available or newly available. Features that do not meet the Baseline criteria are said to have limited availability.| developer.mozilla.org
The URLSearchParams interface defines utility methods to work with the query string of a URL.| MDN Web Docs
A sidebar is a pane that is displayed at the side of the browser window, next to the web page. This page describes sidebars, specifying them, designing them, and examples of use.| MDN Web Docs
The extends keyword is used in class declarations or class expressions to create a class that is a child of another class.| MDN Web Docs
The async function declaration creates a binding of a new async function to a given name. The await keyword is permitted within the function body, enabling asynchronous, promise-based behavior to be written in a cleaner style and avoiding the need to explicitly configure promise chains.| MDN Web Docs
The ResizeObserver interface reports changes to the dimensions of an Element's content or border box, or the bounding box of an SVGElement.| MDN Web Docs
The Barcode Detection API detects linear and two-dimensional barcodes in images.| MDN Web Docs
An arrow function expression is a compact alternative to a traditional function expression, with some semantic differences and deliberate limitations in usage:| MDN Web Docs
Events are things that happen in the system you are programming, which the system tells you about so your code can react to them. For example, if the user clicks a button on a webpage, you might want to react to that action by displaying an information box. In this article, we discuss some important concepts surrounding events, and look at the fundamentals of how they work in browsers.| MDN Web Docs
Images help bring more color and life to the web. This post describes how images are represented by humans and on different devices, with details about color spaces and vision theory.| MDN Blog
Global Privacy Control (GPC) is on the way to becoming a formal privacy standard with the recent publication of its first working draft. Let's take a look at what the implications are for developers and users.| MDN Blog
Let's have a look at MDN Web Docs content projects in 2024, with highlights of our top picks and recommended reading, and at what's next on MDN for 2025.| MDN Blog
There's a new Learn Web Development section on MDN that merges the MDN Curriculum with the Learn section. Here's the background to these changes, what's new, and what you can expect to see in the future.| MDN Blog
Join JavaScriptmas this December for daily coding challenges designed to boost your skills and bring festive fun. Solve challenges on Scrimba, learn something new, and take part for a chance to win exciting prizes!| MDN Blog
Learn about reading network request waterfalls, identifying common network performance issues, and optimizing page rendering.| MDN Blog
Here are six effective strategies for landing your first developer job. These are especially relevant if you're self-taught or breaking into the tech industry without a traditional CS degree.| MDN Blog
We are thrilled to announce the new MDN community page that will be a hub to recognize our contributors and a place for contributors to get involved.| MDN Blog
Learn about lesser-known web performance bottlenecks connected to excessive JavaScript usage, like long tasks, large bundle sizes, and hydration issues.| MDN Blog
For many of us, the holidays are over, and the time has come to focus. Now is an ideal time to dive into learning web development, and you're in luck — MDN and Scrimba are offering a 30% discount on select courses for the next month!| MDN Blog
This post demonstrates how to use the Streams API in a web application to fetch and transform text on the fly. By processing the data as it arrives, this approach enhances performance, responsiveness, and resource efficiency.| MDN Blog
Learn how to use Intl.Segmenter for locale-sensitive text segmentation in JavaScript to simplify localization, count words or sentences in different languages, and more.| MDN Blog
Learn how to use Git stash to break down large commits. Discover a better approach for saving work when switching branches.| MDN Blog
This post explores what mobile app debugging is, commonly used techniques, and how you can debug mobile apps on multiple devices.| MDN Blog
The 'name' attribute of the HTML details element is gaining more support across browsers. Learn how this feature allows creating exclusive accordions without scripting widgets from scratch.| MDN Blog
This guide explains how to use Static Site Generation in Next.js to build scalable and secure web applications with fast loading times and a focus on performance.| MDN Blog
Interop 2023 has successfully concluded, and the Interop 2024 project is now officially underway. Learn what Interop is, discover the updates from Interop 2023 now on MDN, and find out what's coming to the web next.| MDN Blog
Discover essential tips and tricks for using Visual Studio Code (VS Code), a powerful IDE. Learn how to leverage its integrated editing features and Git support, and explore a few extensions.| MDN Blog
Thinking about making the move from GitHub to GitLab? This guide demystifies the migration process, addressing common concerns for DevSecOps teams that are looking to seamlessly transition between the two platforms. This post provides a step-by-step guided tutorial on how to migrate your data from GitHub into GitLab.| MDN Blog
The new CSS linear() timing function enables custom easing in animations. Explore how linear() works compared with other timing functions used for easing, with practical examples.| MDN Blog
We recently launched a feature called AI Explain, but we have rolled this back for now. In this post, we look into the story behind AI Explain: its development, launch, and the reasons that led us to press the pause button.| MDN Blog
Learn how to use JavaScript to draw any regular shape to a HTML canvas with a single function, and how to modify it to draw multiple shapes.| MDN Blog
The Temporal.ZonedDateTime object represents a date and time with a time zone. It is fundamentally represented as a combination of an instant, a time zone, and a calendar system.| MDN Web Docs
Specificity is the algorithm used by browsers to determine the CSS declaration that is the most relevant to an element, which in turn, determines the property value to apply to the element. The specificity algorithm calculates the weight of a CSS selector to determine which rule from competing CSS declarations gets applied to an element.| developer.mozilla.org
The HTTP Set-Cookie response header is used to send a cookie from the server to the user agent, so that the user agent can send it back to the server later. To send multiple cookies, multiple Set-Cookie headers should be sent in the same response.| developer.mozilla.org
The grid CSS property is a shorthand property that sets all of the explicit and implicit grid properties in a single declaration.| developer.mozilla.org
Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources. CORS also relies on a mechanism by which browsers make a "preflight" request to the server hosting the cross-origin resource, in order to check that the server will permit the actual request. In that preflight, the browser sends headers that indicate the HTTP method and headers tha...| developer.mozilla.org
The crossorigin attribute, valid on the , , ,| developer.mozilla.org
The Element.getBoundingClientRect() method returns a DOMRect object providing information about the size of an element and its position relative to the viewport.| MDN Web Docs
Browsers are starting to roll out changes in default UA styles for nested section headings. This post describes the incoming changes, how to identify if it's an issue on your websites, and hints for conformant and better-structured pages.| MDN Web Docs
A new way to handle dates and times is being added to JavaScript. Let's take a look at Temporal, what problems it solves, the current state, and what you'll find in the new documentation about it on MDN.| MDN Web Docs
Learn techniques to improve the Largest Contentful Paint metric, a part of Core Web Vitals, for your website.| MDN Web Docs
The Web Locks API allows scripts running in one tab or worker to asynchronously acquire a lock, hold it while work is performed, then release it. While held, no other script executing in the same origin can acquire the same lock, which allows a web app running in multiple tabs or workers to coordinate work and the use of resources.| MDN Web Docs
The origin private file system (OPFS) is a storage endpoint provided as part of the File System API, which is private to the origin of the page and not visible to the user like the regular file system. It provides access to a special kind of file that is highly optimized for performance and offers in-place write access to its content.| MDN Web Docs
A cookie (also known as a web cookie or browser cookie) is a small piece of data a server sends to a user's web browser. The browser may store cookies, create new cookies, modify existing ones, and send them back to the same server with later requests. Cookies enable web applications to store limited amounts of data and remember state information; by default the HTTP protocol is stateless.| MDN Web Docs
The preserveAspectRatio attribute indicates how an element with a viewBox providing a given aspect ratio must fit into a viewport with a different aspect ratio.| MDN Web Docs
Developing a web application that uses server-sent events is straightforward. You'll need a bit of code on the server to stream events to the front-end, but the client side code works almost identically to websockets in part of handling incoming events. This is a one-way connection, so you can't send events from a client to a server.| MDN Web Docs
Before about 2010, the CSS :visited selector allowed websites to uncover a user's browsing history and figure out what sites the user had visited. This was done through window.getComputedStyle and other techniques. This process was quick to execute, and made it possible not only to determine where the user had been on the web, but could also be used to guess a lot of information about the user's identity.| MDN Web Docs