Get to know MDN better
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The CSSFunctionRule interface of the CSS Object Model represents CSS @function (custom function) at-rules.
CSSRule CSSGroupingRule CSSFunctionRuleThis interface also inherits properties from CSSGroupingRule.
CSSFunctionRule.name Read onlyReturns a string representing the custom function's name.
CSSFunctionRule.returnType Read onlyReturns a string representing the custom function's return type.
This interface also inherits methods from CSSGroupingRule.
CSSFunctionRule.getParameters()Returns an array of objects representing the custom function's parameters.
In this example, we define a CSS custom function and then access it using the CSSOM.
Our CSS defines a custom function using the @function at-rule. The function is called --lighter(), and outputs a lightened version of an input color. --lighter() accepts two parameters, a <color> and a <number>. It returns an oklch() color created using relative color syntax; the input color is transformed into an oklch() color and its lightness channel is increased by the input number.
Our script starts by getting a reference to the stylesheet attached to our document using HTMLStyleElement.sheet, then getting a reference to the only rule in the stylesheet, the CSSFunctionRule — via CSSStylesheet.cssRules. We then log each of the CSSFunctionRule members to the console.
| CSS Functions and Mixins Module # the-function-interface |
Enable JavaScript to view this browser compatibility table.
This page was last modified on Jan 6, 2026 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.