@@ -15,20 +15,30 @@ CssColor? tryParseColor(css.Expression? expression) {
1515 case 'hsla' :
1616 final params = expression.params;
1717 if (params.length >= 3 ) {
18- final param0 = params[0 ];
19- final h = param0 is css.NumberTerm
20- ? _parseColorHue (param0.number)
21- : param0 is css.AngleTerm
22- ? _parseColorHue (param0.angle, param0.unit)
23- : null ;
24- final param1 = params[1 ];
25- final s = param1 is css.PercentageTerm
26- ? param1.valueAsDouble.clamp (0.0 , 1.0 )
27- : null ;
28- final param2 = params[2 ];
29- final l = param2 is css.PercentageTerm
30- ? param2.valueAsDouble.clamp (0.0 , 1.0 )
31- : null ;
18+ final [param0, param1, param2] = params;
19+ final double ? h;
20+ if (param0 is css.NumberTerm ) {
21+ h = _parseColorHue (param0.number);
22+ } else if (param0 is css.AngleTerm ) {
23+ h = _parseColorHue (param0.angle, param0.unit);
24+ } else {
25+ h = null ;
26+ }
27+
28+ final double ? s;
29+ if (param1 is css.PercentageTerm ) {
30+ s = param1.valueAsDouble.clamp (0.0 , 1.0 );
31+ } else {
32+ s = null ;
33+ }
34+
35+ final double ? l;
36+ if (param2 is css.PercentageTerm ) {
37+ l = param2.valueAsDouble.clamp (0.0 , 1.0 );
38+ } else {
39+ l = null ;
40+ }
41+
3242 final hslA = params.length >= 4 ? _parseColorAlpha (params[3 ]) : 1.0 ;
3343 if (h != null && s != null && l != null && hslA != null ) {
3444 final hslValue = HSLColor .fromAHSL (hslA, h, s, l).toColor ();
0 commit comments