CSS function page template

Note: Remove this note block before publishing.

Page front matter:

The front matter at the top of the page is used to define "page metadata". The values should be updated appropriately for the particular function. Note the presence (or absence) of parenthesis.

title: NameOfTheFunction()
slug: Web/CSS/NameOfTheFunction
page-type: css-function
  - experimental
  - deprecated
  - non-standard
browser-compat: css.types.NameOfTheFunction

The title value is displayed at the top of the page. The title format is NameOfTheFunction(). For example, the pow() function has a title of pow().


The slug value is the end of the URL path after https://developer.mozilla.org/en-US/docs/. This will be formatted as Web/CSS/NameOfTheFunction. Note the absence of parentheses in the slug. For example, the slug for the pow() function is Web/CSS/pow.


The page-type value for CSS functions is css-function.


Flags describing the status of this feature. An array which may contain one or more of the following: experimental, deprecated, non-standard. This key should not be set manually: it is set automatically based on values in the browser compatibility data for the feature. See "How to add or update feature statuses".


Replace the placeholder value css.types.NameOfTheFunction with the query string for the function in the Browser compat data repo. Check the Other macros in the page section of this note block to see how this key-value is used to generate content for the Specifications and Browser compatibility sections.

Top-of-the-page macros

A number of macro calls appear at the top of the content section (immediately below the page front matter). These macros are automatically added by the toolchain (there is no need to add/remove):

  • {{SeeCompatTable}}: This macro generates an Experimental banner, which indicates that the technology is experimental. If the technology is experimental and is hidden behind a preference in Firefox, you should also fill in an entry for it in the Experimental features in Firefox page.
  • {{Deprecated_Header}}: This macro generates a Deprecated banner, which indicates that the use of the technology is discouraged.
  • {{Non-standard_Header}} — this generates a Non-standard banner that indicates that the feature is not part of any specification.

You should update or delete the following macros according to the advice below:

  • {{CSSRef}}: This macro must be present on every CSS page. It generates a suitable CSS sidebar, depending on the tags included on the page. Remember to remove the {{MDNSidebar}} macro when you use this template.

Do not provide status header macros manually. Refer to the section "How to add or update feature statuses" to add these statuses to the page.

Samples of the Experimental, Deprecated, and Non-standard banners are shown right after this note block.

Other macros in the page

  • Formal syntax section: The content for the Formal syntax section is generated using the {{CSSSyntax}} macro. This macro fetches data from the specifications using the @webref/css npm package.
  • Specifications and Browser compatibility sections: The build tool automatically uses the browser-compat key-value pair from the page front matter to insert data into the Specifications and Browser compatibility sections (replacing the {{Specifications}} and {{Compat}} macros in those sections, respectively). Note that you may first need to create/update an entry for the function and its specification in our Browser compat data repo. See our compatibility tables guide for information on adding or editing entries.

Remember to remove this note block before publishing.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

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.

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Begin the content on the page with an introductory paragraph, which names the function and says what it does. This should ideally be one or two short sentences.

Try it

This title is auto-generated by the macro {{EmbedInteractiveExample}}.

This section is for interactive examples added using the {{EmbedInteractiveExample}} macro. You create these examples in the mdn/interactive-examples repository. See the Interactive examples section in our Writing guidelines for more information.


Include a CSS code block to show the main use cases of the syntax, including examples of parameters that the function can accept. Only include the function itself, not a complete declaration in which it occurs. For example, use minmax(200px, 1fr), not grid-template-columns: minmax(min-content, 300px).

Don't end the syntax lines with semicolons: this should emphasize that we are not showing complete valid CSS code here, just the syntax usage.

Show all the invocation patterns that the function can take. Preceding all such cases, add a comment to describe the use case and another comment to name the parameters and highlight syntax punctuation and the order of parameters. The parameter names in the comment should match the parameters listed in the "Parameters" section.

The comment showing each invocation pattern should be followed by exactly one empty line.

For example:

/* Without a fallback */
/* var( <custom-property-name> ) */

/* With an empty fallback */
/* var( <custom-property-name> , ) */

/* With a fallback value */
/* var( <custom-property-name> , <declaration-value> ) */
var(--custom-prop, initial)
var(--custom-prop, #FF0000)
var(--my-background, linear-gradient(transparent, aqua), pink)
var(--custom-prop, var(--default-value))
var(--custom-prop, var(--default-value, red))


List the parameters that the function can accept as a <dl>. List them in the order that they appear in the Formal syntax section. Indicate if a parameter is optional using the optional_inline badge. Include one term and definition for each parameter.


Include a description of the parameter, its data type, and its default value if any.

<declaration-value> Optional

Include a description of the parameter, its data type, and its default value if any.

Return value

Describe the value returned by the function. Begin the description with the word "Returns"; for example, "Returns a <number> or <dimension>."


This section is optional but recommended. It contains a description of the function and explains how it works. Use this section to explain related terms and add use cases for the function.

Formal syntax

Not all functions have formal syntax: if a function doesn't, omit this whole section.


To use this macro, remove the backticks and backslash in the markdown file.


Note that we use the plural "Examples" even if the page only contains one example.

Add a descriptive heading

Each example must have an H3 heading (###) naming the example. The heading should be descriptive of what the example is doing. For example, "A simple example" does not say anything about the example and therefore, not a good heading. The heading should be concise. For a longer description, use the paragraph after the heading.

See our guide on how to add code examples for more information.

Note: Sometimes you will want to link to examples given on another page.

Scenario 1: If you have some examples on this page and some more examples on another page:

Include an H3 heading (###) for each example on this page and then a final H3 heading (###) with the text "More examples", under which you can link to the examples on other pages. For example:

## Examples

### Using the polygon() function

Example of polygon()

### More examples

Links to more examples on other pages

Scenario 2: If you only have examples on another page and none on this page:

Don't add any H3 headings; just add the links directly under the H2 heading "Examples". For example:

## Examples

For examples of this function, see [the page on basic-shape](https://example.org).

Accessibility concerns

This is an optional section. You can include any warnings here for accessibility concerns that developers should be aware of while using this function. You can also include workarounds for these accessibility concerns if there are any.



To use this macro, remove the backticks and backslash in the markdown file.

Browser compatibility


To use this macro, remove the backticks and backslash in the markdown file.

See also

Include links to reference pages and guides related to the current function. For more guidelines, see the See also section in the Writing style guide.

  • link1
  • link2
  • external_link (year)