opacity() 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 opacity() CSS function applies transparency to the input image. It is used as a value for the filter and backdrop-filter properties.
Try it
filter: opacity(1);
filter: opacity(80%);
filter: opacity(50%);
filter: opacity(0.2);
filter: opacity(0);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Note:
This function is similar to the more established opacity property. The difference is that with filters, some browsers provide hardware acceleration for better performance.
Syntax
/* Completely transparent */
opacity(0)
/* No change */
opacity()
opacity(1)
opacity(100%)
/* 60% opacity */
opacity(.6)
opacity(60%)
Parameters
<number>or<percentage>Optional-
Specifies the amount of the conversion. A value of
0%applies complete transparency, while a value of100%leaves the input unchanged. Values between0%and100%are linear multipliers on the effect. Values above100%are allowed, but the effect is clamped to100%. The initial value for interpolation is1. The default value is1.
Return value
A <filter-function> value.
Formal syntax
<opacity()> =
opacity( [ <number> | <percentage> ]? )
Examples
>Using the SVG filter
This example shows three images for comparison: an image with an opacity() 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 opacity of content by creating equivalent transparency on a nested <feFuncA> table element. We set the tableValues for the alpha filter primitive, then we can reference the SVG effect by the ID of the <filter>:
<svg height="0" role="none">
<filter id="opacity70" color-interpolation-filters="sRGB">
<feComponentTransfer>
<feFuncA type="table" tableValues="0 0.7" />
</feComponentTransfer>
</filter>
</svg>
The following declarations produce the same effect:
filter: opacity(0.7);
filter: opacity(70%);
filter: url("#opacity70"); /* with embedded SVG */
filter: url("fileName.svg#opacity70"); /* external SVG */
CSS
We include CSS that will adjust the opacity of elements based on their css-filter or svg-filter class:
.css-filter {
filter: opacity(0.7);
}
.svg-filter {
filter: url("#opacity70");
}
Specifications
| Specification |
|---|
| Filter Effects Module Level 1> # funcdef-filter-opacity> |
Browser compatibility
See also
- CSS filter effects module
- The other
<filter-function>functions available to be used in values of thefilterandbackdrop-filterproperties include: - The CSS
opacityproperty