From 9fb49b0b5374ccfb7f1adec721335b98235d10cb Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Wed, 24 Apr 2024 15:25:13 -0700 Subject: [PATCH] Fix bugs caught by to-gamut() tests (#2227) --- lib/src/value/color/gamut_map_method/local_minde.dart | 7 +++---- lib/src/visitor/serialize.dart | 10 ++++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/src/value/color/gamut_map_method/local_minde.dart b/lib/src/value/color/gamut_map_method/local_minde.dart index b444cdf55..a8b896d21 100644 --- a/lib/src/value/color/gamut_map_method/local_minde.dart +++ b/lib/src/value/color/gamut_map_method/local_minde.dart @@ -33,12 +33,11 @@ final class LocalMindeGamutMap extends GamutMapMethod { var alpha = originOklch.alphaOrNull; if (fuzzyGreaterThanOrEquals(lightness ?? 0, 1)) { - return color.space == ColorSpace.rgb - ? SassColor.rgb(255, 255, 255, color.alphaOrNull) + return color.isLegacy + ? SassColor.rgb(255, 255, 255, color.alphaOrNull).toSpace(color.space) : SassColor.forSpaceInternal(color.space, 1, 1, 1, color.alphaOrNull); } else if (fuzzyLessThanOrEquals(lightness ?? 0, 0)) { - return SassColor.forSpaceInternal( - color.space, 0, 0, 0, color.alphaOrNull); + return SassColor.rgb(0, 0, 0, color.alphaOrNull).toSpace(color.space); } var clipped = color.toGamut(GamutMapMethod.clip); diff --git a/lib/src/visitor/serialize.dart b/lib/src/visitor/serialize.dart index 9b497d45e..ae70415c3 100644 --- a/lib/src/visitor/serialize.dart +++ b/lib/src/visitor/serialize.dart @@ -608,14 +608,16 @@ final class _SerializeVisitor _maybeWriteSlashAlpha(value); _buffer.writeCharCode($rparen); - case ColorSpace.lab || - ColorSpace.oklab || - ColorSpace.lch || - ColorSpace.oklch + case ColorSpace.lab || ColorSpace.lch when !_inspect && !fuzzyInRange(value.channel0, 0, 100) && !value.isChannel1Missing && !value.isChannel2Missing: + case ColorSpace.oklab || ColorSpace.oklch + when !_inspect && + !fuzzyInRange(value.channel0, 0, 1) && + !value.isChannel1Missing && + !value.isChannel2Missing: case ColorSpace.lch || ColorSpace.oklch when !_inspect && fuzzyLessThan(value.channel1, 0) &&