diff --git a/crates/typst/src/visualize/color.rs b/crates/typst/src/visualize/color.rs index 185e990b7..17f4b5a43 100644 --- a/crates/typst/src/visualize/color.rs +++ b/crates/typst/src/visualize/color.rs @@ -1191,7 +1191,7 @@ impl Color { Color::Hsv(Hsv::new(RgbHue::from_degrees(m[0]), m[1], m[2], m[3])) } ColorSpace::Cmyk => Color::Cmyk(Cmyk::new(m[0], m[1], m[2], m[3])), - ColorSpace::D65Gray => Color::Luma(Luma::new(m[0], m[1])), + ColorSpace::D65Gray => Color::Luma(Luma::new(m[0], m[3])), }) } diff --git a/tests/ref/issue-color-mix-luma.png b/tests/ref/issue-color-mix-luma.png new file mode 100644 index 000000000..957168926 Binary files /dev/null and b/tests/ref/issue-color-mix-luma.png differ diff --git a/tests/suite/visualize/color.typ b/tests/suite/visualize/color.typ index 332594615..da93cb4e2 100644 --- a/tests/suite/visualize/color.typ +++ b/tests/suite/visualize/color.typ @@ -329,3 +329,7 @@ #color.hsl(blue) \ #color.hsv(blue) \ #luma(blue) + +--- issue-color-mix-luma --- +// When mixing luma colors, we accidentally used the wrong component. +#rect(fill: gradient.linear(black, silver, space: luma))