wpt / css / compositing / parsing / background-blend-mode-computed-multiple.html

Status: PASS | Duration: 49ms | Subtests: 7/7 | Open test on wpt.live | wpt.fyi

Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)

SubtestStatusMessage
Property background-blend-mode value 'normal'PASS
Property background-blend-mode value 'multiply'PASS
Property background-blend-mode value 'normal, luminosity'PASS
Property background-blend-mode value 'screen, overlay'PASS
Property background-blend-mode value 'color, saturation'PASS
Property background-blend-mode value 'normal, luminosity, color'PASS
Property background-blend-mode value 'screen, overlay, screen'PASS

/css/compositing/parsing/background-blend-mode-computed-multiple.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Compositing and Blending Level 1: getComputedStyle().backgroundBlendMode</title>
<link rel="help" href="https://drafts.fxtf.org/compositing-1/#propdef-background-blend-mode">
<meta name="assert" content="background-blend-mode computed value is as specified even when the number of images vary.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
<style>
    #target {
        background-image: linear-gradient(green, green), linear-gradient(green, green), linear-gradient(green, green);
    }
</style>
</head>
<body>
<div id="target"></div>
<script>
// This is testing the case with multiple background images
//
// see https://drafts.fxtf.org/compositing-1/#background-blend-mode
// and https://drafts.csswg.org/css-backgrounds-3/#layering
// > The lists are matched up from the first value: excess values at the end are not used.
// and
// > If a property doesn’t have enough comma-separated values
// > to match the number of layers, the UA must calculate its used value
// > by repeating the list of values until there are enough.
// but in https://drafts.csswg.org/css-values-4/#linked-properties
// it was decided that
// > The computed values of the coordinating list properties are not affected by such truncation or repetition.
//
// There is a distinction between specified values, used values, and computed values.

// if three images and one value, just send back the specified list.
test_computed_value("background-blend-mode", "normal");
test_computed_value("background-blend-mode", "multiply");

// if three images and two values, just send back the specified list.
test_computed_value("background-blend-mode", "normal, luminosity");
test_computed_value("background-blend-mode", "screen, overlay");
test_computed_value("background-blend-mode", "color, saturation");

// if three images and three values, just send back the specified list.
test_computed_value("background-blend-mode", "normal, luminosity, color");
test_computed_value("background-blend-mode", "screen, overlay, screen");
</script>
</body>
</html>