@@ -41,16 +41,15 @@ public HSL() {
4141 }
4242
4343 /**
44- * Parse HSL per
45- *
46- * @spec https://www.w3.org/TR/2025/CRD-css-color-4-20250424/#the-hsl-notation
47- * @spec https://www.w3.org/TR/2025/WD-css-color-5-20250318/#relative-HSL
44+ * Parse HSL per
4845 *
4946 * @param ac
5047 * @param exp
5148 * @param caller
5249 * @return
5350 * @throws InvalidParamException
51+ * @spec https://www.w3.org/TR/2025/CRD-css-color-4-20250424/#the-hsl-notation
52+ * @spec https://www.w3.org/TR/2025/WD-css-color-5-20250318/#relative-HSL
5453 */
5554
5655 public static final HSL parseHSL (ApplContext ac , CssExpression exp , CssColor caller )
@@ -154,6 +153,10 @@ public static final HSL parseHSL(ApplContext ac, CssExpression exp, CssColor cal
154153
155154 // S
156155 switch (val .getType ()) {
156+ case CssTypes .CSS_NUMBER :
157+ if (!separator_space ) {
158+ throw new InvalidParamException ("colorfunc" , val , "HSL" , ac );
159+ }
157160 case CssTypes .CSS_PERCENTAGE :
158161 case CssTypes .CSS_VARIABLE :
159162 hsl .setSaturation (ac , val );
@@ -180,6 +183,10 @@ public static final HSL parseHSL(ApplContext ac, CssExpression exp, CssColor cal
180183
181184 // L
182185 switch (val .getType ()) {
186+ case CssTypes .CSS_NUMBER :
187+ if (!separator_space ) {
188+ throw new InvalidParamException ("colorfunc" , val , "HSL" , ac );
189+ }
183190 case CssTypes .CSS_PERCENTAGE :
184191 case CssTypes .CSS_VARIABLE :
185192 hsl .setLightness (ac , val );
@@ -268,7 +275,8 @@ public static final CssValue filterValue(ApplContext ac, CssValue val)
268275 // TODO add warning about uncheckability
269276 // might need to extend...
270277 } else {
271- if (val .getType () == CssTypes .CSS_PERCENTAGE ) {
278+ if ((val .getType () == CssTypes .CSS_PERCENTAGE ) ||
279+ (val .getType () == CssTypes .CSS_NUMBER )) {
272280 CssCheckableValue v = val .getCheckableValue ();
273281 if (!v .warnPositiveness (ac , "RGB" )) {
274282 CssNumber nb = new CssNumber ();
@@ -281,6 +289,8 @@ public static final CssValue filterValue(ApplContext ac, CssValue val)
281289 ac .getFrame ().addWarning ("out-of-range" , Util .displayFloat (p ));
282290 return new CssPercentage (100 );
283291 }
292+ } else if (val .getRawType () == CssTypes .CSS_NUMBER ) {
293+ val .getNumber ().warnLowerEqualThan (ac , 100. , null );
284294 }
285295 }
286296 }
0 commit comments