JavaScript frameworks are an essential part of modern front-end web development, providing developers with tried and tested tools for building scalable, interactive web applications. Many modern companies use frameworks as a standard part of their tooling, so many front-end devel … | Continue reading
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 … | Continue reading
So far so good. We've got to the point where we can start build up our sample TodoMVC app in Ember. In the next article we'll look at building up the markup structure of our app, as a group of logical components. | Continue reading
The void operator evaluates the given expression and then returns undefined. | Continue reading
In a browser, the chrome is any visible aspect of a browser aside from the webpages themselves (e.g., toolbars, menu bar, tabs). This is not to be confused with the Google Chrome browser. | Continue reading
The StorageManager interface of the the Storage API provides an interface for managing persistance permissions and estimating available storage. You can get a reference to this interface using either navigator.storage or WorkerNavigator.storage. | Continue reading
The :focus-within CSS pseudo-class represents an element that has received focus or contains an element that has received focus. In other words, it represents an element that is itself matched by the :focus pseudo-class or has a descendant that is matched by :focus. (This include … | Continue reading
The text-underline-position CSS property specifies the position of the underline which is set using the text-decoration property's underline value. | Continue reading
Client-side form validation sometimes requires JavaScript if you want to customize styling and error messages, but it always requires you to think carefully about the user. Always remember to help your users correct the data they provide. To that end, be sure to: | Continue reading
The experimental pipeline operator | (currently at stage 1) pipes the value of an expression into a function. This allows the creation of chained function calls in a readable manner. The result is syntactic sugar in which a function call with a single argument can be written like … | Continue reading
Template literals are string literals allowing embedded expressions. You can use multi-line strings and string interpolation features with them. | Continue reading
Many webpages contain a number of sections which are independent of each other. For example a listing of article headlines and content, as in the mark-up below. | Continue reading
The HTTP 402 Payment Required is a nonstandard client error status response code that is reserved for future use. | Continue reading
The Forwarded header contains information from the client-facing side of proxy servers that is altered or lost when a proxy is involved in the path of the request. | Continue reading
JavaScript has a concurrency model based on an event loop, which is responsible for executing the code, collecting and processing events, and executing queued sub-tasks. | Continue reading
This article provides information about the changes in Firefox 70 that will affect developers. Firefox 70 was released on October 22, 2019. | Continue reading
The all shorthand CSS property resets all of an element's properties (except unicode-bidi and direction). | Continue reading
The prefers-color-scheme CSS media feature is used to detect if the user has requested the system use a light or dark color theme. | Continue reading
The Atomics object provides atomic operations as static methods. They are used with SharedArrayBuffer objects. | Continue reading
The modern web has quickly become a viable platform not only for creating stunning, high quality games, but also for distributing those games. | Continue reading
That's a wrap for responsive images — we hope you enjoyed playing with these new techniques. As a recap, there are two distinct problems we've been discussing here: | Continue reading
HTML (HyperText Markup Language) is the most basic building block of the Web. It defines the meaning and structure of web content. Other technologies besides HTML are generally used to describe a web page's appearance/presentation (CSS) or functionality/behavior (JavaScript). | Continue reading
The HTML marquee element is used to insert a scrolling area of text. You can control what happens when the text reaches the edges of its content area using its attributes. | Continue reading
This page should guide you through the initial steps of contributing to Mozilla. Welcome, we're delighted to see you! :) | Continue reading
The global undefined property represents the primitive value undefined. It is one of JavaScript's primitive types. | Continue reading
Open in new window | Continue reading
The devtools live inside your browser in a subwindow that looks roughly like this, depending on what browser you are using: | Continue reading
Creates a new inline group in the Web Console log. This indents following console messages by an additional level, until console.groupEnd() is called. | Continue reading
This finishes our high-level tour of the major components of the WebAssembly text format and how they get reflected in the WebAssembly JS API. | Continue reading
The HTML datalist element contains a set of option elements that represent the values available for other controls. | Continue reading
Subresource Integrity (SRI) is a security feature that enables browsers to verify that resources they fetch (for example, from a CDN) are delivered without unexpected manipulation. It works by allowing you to provide a cryptographic hash that a fetched resource must match. | Continue reading
The destructuring assignment syntax is a JavaScript expression that makes it possible to unpack values from arrays, or properties from objects, into distinct variables. | Continue reading
JavaScript is a bit confusing for developers experienced in class-based languages (like Java or C++), as it is dynamic and does not provide a class implementation per se (the class keyword is introduced in ES2015, but is syntactical sugar, JavaScript remains prototype-based). | Continue reading
The Fetch API provides an interface for fetching resources (including across the network). It will seem familiar to anyone who has used XMLHttpRequest, but the new API provides a more powerful and flexible feature set. | Continue reading
At this point, you should have a good idea of what APIs are, how they work, and what you can do with them in your JavaScript code. You are probably excited to start actually doing some fun things with specific APIs, so let's go! Next up, we'll look at manipulating documents with … | Continue reading
Plugins are a security and performance problem for Firefox users. NPAPI plugins are an obsolete technology, and Mozilla has been moving toward a Web which doesn't need plugins. The last remaining NPAPI plugin, Adobe Flash, has announced an end-of-life plan. To support the transi … | Continue reading
The Date.now() method returns the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC. | Continue reading
This set of articles provides quick explanations to help you understand the steps that need to be taken to conform to the recommendations outlined in the W3C Web Content Accessibility Guidelines 2.0 or 2.1 (or just WCAG, for the purposes of this writing). | Continue reading
The Clear-Site-Data header clears browsing data (cookies, storage, cache) associated with the requesting website. It allows web developers to have more control over the data stored locally by a browser for their origins. | Continue reading
This article provides information about the changes in Firefox 63 that will affect developers. Firefox 63 was released on October 23, 2018. | Continue reading
The HTML Details Element (details) creates a disclosure widget in which information is visible only when the widget is toggled into an "open" state. | Continue reading
Operator precedence determines the way in which operators are parsed with respect to each other. Operators with higher precedence become the operands of operators with lower precedence. | Continue reading
The CSS layout cookbook aims to bring together recipes for common layout patterns, things you might need to implement in your own sites. In addition to providing code you can use as a starting point in your projects, these recipes highlight the different ways layout specification … | Continue reading
Contribute to MDN Web Docs | Continue reading
Pre-release versions of Firefox include a new storage access policy that blocks cookies and other site data from third-party tracking resources. This new policy is designed as an alternative to the current policies offered in release versions of Firefox, and protects against cros … | Continue reading
The HTML img element embeds an image into the document. | Continue reading
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request. | Continue reading