brightness() CSS function
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
The brightness() CSS function applies a linear multiplier value on an element or an input image, making the image appear brighter or darker. It is used as a value for the filter and backdrop-filter properties.
Try it
filter: brightness(1);
filter: brightness(1.75);
filter: brightness(50%);
filter: brightness(0);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Syntax
/* Completely black */
brightness(0)
/* No change */
brightness()
brightness(1)
brightness(100%)
/* 60% brightness */
brightness(.6)
brightness(60%)
/* Double brightness */
brightness(2)
brightness(200%)
Parameters
<number>or<percentage>Optional-
Specifies the amount of the conversion. A value less than
100%darkens the input image or element, while a value over100%brightens it. A value of0%creates a completely black image or element, while a value of100%leaves the input unchanged. Values between0%and100%are linear multipliers on the effect. Values greater than100%are allowed, providing brighter results. The initial value for interpolation is1. Negative values are not allowed. The default value is1.
Return value
A <filter-function> value.
Formal syntax
<brightness()> =
brightness( [ <number> | <percentage> ]? )
Examples
>Applying brightness using the backdrop-filter property
This example shows how to apply the brightness() filter to a paragraph via the backdrop-filter CSS property.
CSS
.container {
background: url("be_fierce.jpg") no-repeat right / contain #d4d5b2;
}
p {
backdrop-filter: brightness(150%);
text-shadow: 2px 2px white;
}
Result
In this example, the colors in the area behind the <p> element shift linearly. If the backdrop-filter property was set to brightness(0%), the <div> area with the <p> element would have been black and hidden the image behind. At brightness(100%), the <div> area color would be the same as the input #d4d5b2, and the image behind would be completely transparent. With the brightness set to 150% as in this example, the colors in the image behind are getting hidden by the brightness of the <div> element.
Applying brightness using the filter property
In this example, a brightness() filter is applied to the entire element, including content, border, and background image via the filter CSS property. The result shows three variations of different brightness values.
p:first-of-type {
filter: brightness(50%);
}
p:last-of-type {
filter: brightness(200%);
}
Using the SVG filter
This example shows three images for comparison: an image with a brightness() filter function applied, an image with the equivalent SVG filter applied, and the original image.
SVG
The SVG <feComponentTransfer> filter element can also be used to adjust the brightness of content by creating equivalent brightness adjustments on nested <feFuncR>, <feFuncG>, and <feFuncB> linear elements. We set the same slope for the red, green, and blue filter primitives, then we can reference the SVG effect by the ID of the <filter>:
<svg height="0" role="none">
<filter id="brightness75" color-interpolation-filters="sRGB">
<feComponentTransfer>
<feFuncR type="linear" slope="0.75" />
<feFuncG type="linear" slope="0.75" />
<feFuncB type="linear" slope="0.75" />
</feComponentTransfer>
</filter>
</svg>
The following declarations produce the same effect:
filter: brightness(0.75);
filter: brightness(75%);
filter: url("#brightness75"); /* with embedded SVG */
filter: url("fileName.svg#brightness75"); /* external SVG */
CSS
We include CSS that will adjust the brightness of elements based on their css-filter or svg-filter class:
.css-filter {
filter: brightness(0.75);
}
.svg-filter {
filter: url("#brightness75");
}
Specifications
| Specification |
|---|
| Filter Effects Module Level 1> # funcdef-filter-brightness> |
Browser compatibility
See also
- CSS filter effects module
- The other
<filter-function>functions available to be used in values of thefilterandbackdrop-filterproperties include: