The MDN Content Kitchensink
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Warning: Don't delete this page. It's used by mdn/yari for its automation.
About this page
The kitchensink is a page that attempts to incorporate every possible content element and Yari macro.
This page attempts to be the complete intersection of every other page. Not in terms of the text but in terms of the styles and macros. Let's start with some notes…
Text that uses the <kbd> tag: Shift
Note: Here's a block indicator note.
Warning: Here's a block indicator warning.
Prev/Next buttons
Another one…
Code snippets
>Plain text
___________________________
< I'm an expert in my field. >
---------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
HTML
<pre></pre>
JavaScript
const f = () => {
return Math.random();
};
CSS
:root {
--first-color: #488cff;
--second-color: #ffff8c;
}
#firstParagraph {
background-color: var(--first-color);
color: var(--second-color);
}
WebAssembly
(func (param i32) (param f32) (local f64)
local.get 0
local.get 1
local.get 2)
Rust
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
assert_eq!(2 + 2, 4);
}
}
Python
class BookListView(generic.ListView):
model = Book
# your own name for the list as a template variable
context_object_name = 'my_book_list'
queryset = Book.objects.filter(title__icontains='war')[:5]
template_name = 'books/my_arbitrary_template_name_list.html'
Interactive examples
>Try it
<p>New Products:</p>
<ul>
<li><data value="398">Mini Ketchup</data></li>
<li><data value="399">Jumbo Ketchup</data></li>
<li><data value="400">Mega Jumbo Ketchup</data></li>
</ul>
data:hover::after {
content: " (ID " attr(value) ")";
font-size: 0.7em;
}
Try it
const set = new Set();
set.add(42);
set.add("forty two");
const iterator = set[Symbol.iterator]();
console.log(iterator.next().value);
// Expected output: 42
console.log(iterator.next().value);
// Expected output: "forty two"
Try it
filter: url("/shared-assets/images/examples/shadow.svg#element-id");
filter: blur(5px);
filter: contrast(200%);
filter: grayscale(80%);
filter: hue-rotate(90deg);
filter: drop-shadow(16px 16px 20px red) invert(75%);
<section id="default-example">
<div class="example-container">
<img
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</div>
</section>
.example-container {
background-color: white;
width: 260px;
height: 260px;
display: flex;
align-items: center;
justify-content: center;
}
#example-element {
flex: 1;
padding: 30px;
}
Tables
>Markdown table
| Constant name | Value | Description |
|---|---|---|
QUERY_COUNTER_BITS_EXT |
0x8864 | The number of bits used to hold the query result for the given target. |
CURRENT_QUERY_EXT |
0x8865 | The currently active query. |
QUERY_RESULT_EXT |
0x8866 | The query result. |
QUERY_RESULT_AVAILABLE_EXT |
0x8867 | A Boolean indicating whether a query result is available. |
TIME_ELAPSED_EXT |
0x88BF | Elapsed time (in nanoseconds). |
TIMESTAMP_EXT |
0x8E28 | The current time. |
GPU_DISJOINT_EXT |
0x8FBB | A Boolean indicating whether the GPU performed any disjoint operation. |
HTML table
| Content categories | Flow content, phrasing content, palpable content. |
|---|---|
| Permitted content | Phrasing content. |
| Tag omission | None, both the starting and ending tag are mandatory. |
| Permitted parents | Any element that accepts phrasing content. |
| Implicit ARIA role | No corresponding role |
| Permitted ARIA roles | Any |
| DOM interface | HTMLElement |
| Value | Possible subvalues | Description |
|---|---|---|
width |
A positive integer number, or the text device-width |
Defines the pixel width of the viewport that you want the website to be rendered at. |
user-scalable Read only |
yes or no |
If set to no, the user is not able to zoom in the webpage.
The default is yes. Browser settings can ignore this rule,
and iOS10+ ignores it by default.
|
viewport-fit |
auto, contain or cover |
The
The
The |
Every macro under the sun
Well, almost every macro. Hopefully only the ones that are in active use.
An HTTP error code meaning "Bad Gateway".
A server can act as a gateway or proxy (go-between) between a client (like your Web browser) and another, upstream server. When you request to access a URL, the gateway server can relay your request to the upstream server. "502" means that the upstream server has returned an invalid response.
- JavaScript
Arrayon MDN
Listening for mouse movement is even easier than listening for key presses: all we need is the listener for the mousemove event.
Browser compatibility
Loading…
Axis-Aligned Bounding Box
One of the simpler forms of collision detection is between two rectangles that are axis aligned — meaning no rotation. The algorithm works by ensuring there is no gap between any of the 4 sides of the rectangles. Any gap means a collision does not exist.
var rect1 = { x: 5, y: 5, width: 50, height: 50 };
var rect2 = { x: 20, y: 10, width: 10, height: 10 };
if (
rect1.x < rect2.x + rect2.width &&
rect1.x + rect1.width > rect2.x &&
rect1.y < rect2.y + rect2.height &&
rect1.y + rect1.height > rect2.y
) {
// collision detected!
}
// filling in the values =>
if (5 < 30 && 55 > 20 && 5 < 20 && 55 > 10) {
// collision detected!
}
Rect code
<div id="cr-stage"></div>
<p>
Move the rectangle with arrow keys. Green means collision, blue means no
collision.
</p>
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/crafty/0.5.4/crafty-min.js"></script>
Crafty.init(200, 200);
var dim1 = { x: 5, y: 5, w: 50, h: 50 };
var dim2 = { x: 20, y: 10, w: 60, h: 40 };
var rect1 = Crafty.e("2D, Canvas, Color").attr(dim1).color("red");
var rect2 = Crafty.e("2D, Canvas, Color, Keyboard, Fourway")
.fourway(2)
.attr(dim2)
.color("blue");
rect2.bind("EnterFrame", function () {
if (
rect1.x > rect2.x + rect2.w &&
rect1.x + rect1.w > rect2.x &&
rect1.y > rect2.y + rect2.h &&
rect1.h + rect1.y > rect2.y
) {
// collision detected!
this.color("green");
} else {
// no collision
this.color("blue");
}
});
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
tabs.mutedInfo
Obsolete CSSOM interfaces Deprecated
- Accessibility resources at MDN
- Web accessibility on Wikipedia
The AvailableInWorkers macro inserts a localized note box indicating that a feature is available in a Web worker context.
Note: This feature is available in Web Workers.
- Create a
<canvas>element and set itswidthandheightattributes to the original, smaller resolution. - Set its CSS
widthandheightproperties to be 2x or 4x the value of the HTMLwidthandheight. If the canvas was created with a 128 pixel width, for example, we would set the CSSwidthto512pxif we wanted a 4x scale. - Set the
<canvas>element'simage-renderingCSS property to some value that does not make the image blurry. Eithercrisp-edgesorpixelatedwill work. Check out theimage-renderingarticle for more information on the differences between these values, and which prefixes to use depending on the browser.
-
AJAX on Wikipedia
XMLHttpRequestFetch API
<feGaussianBlur>keySplinesSVG attribute- dir
- lang
:dirdirection
Types
alarms.Alarm-
Information about a particular alarm.
Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.