@@ -240,31 +240,39 @@ namespace Sass {
240
240
}
241
241
}
242
242
243
+ inline double alpha_num (Number* n) {
244
+ if (n->unit () == " %" ) {
245
+ return std::min (std::max (n->value (), 0.0 ), 100.0 );
246
+ } else {
247
+ return std::min (std::max (n->value (), 0.0 ), 1.0 );
248
+ }
249
+ }
250
+
243
251
Signature rgb_sig = " rgb($red, $green, $blue)" ;
244
252
BUILT_IN (rgb)
245
253
{
246
254
return new (ctx.mem ) Color (pstate,
247
- color_num (ARGR (" $red" , Number, 0 , 255 )),
248
- color_num (ARGR (" $green" , Number, 0 , 255 )),
249
- color_num (ARGR (" $blue" , Number, 0 , 255 )));
255
+ color_num (ARG (" $red" , Number)),
256
+ color_num (ARG (" $green" , Number)),
257
+ color_num (ARG (" $blue" , Number)));
250
258
}
251
259
252
260
Signature rgba_4_sig = " rgba($red, $green, $blue, $alpha)" ;
253
261
BUILT_IN (rgba_4)
254
262
{
255
263
return new (ctx.mem ) Color (pstate,
256
- color_num (ARGR (" $red" , Number, 0 , 255 )),
257
- color_num (ARGR (" $green" , Number, 0 , 255 )),
258
- color_num (ARGR (" $blue" , Number, 0 , 255 )),
259
- ARGR ( " $alpha" , Number, 0 , 1 )-> value ( ));
264
+ color_num (ARG (" $red" , Number)),
265
+ color_num (ARG (" $green" , Number)),
266
+ color_num (ARG (" $blue" , Number)),
267
+ alpha_num ( ARG ( " $alpha" , Number) ));
260
268
}
261
269
262
270
Signature rgba_2_sig = " rgba($color, $alpha)" ;
263
271
BUILT_IN (rgba_2)
264
272
{
265
273
Color* c_arg = ARG (" $color" , Color);
266
274
Color* new_c = new (ctx.mem ) Color (*c_arg);
267
- new_c->a (ARGR ( " $alpha" , Number, 0 , 1 )-> value ( ));
275
+ new_c->a (alpha_num ( ARG ( " $alpha" , Number) ));
268
276
new_c->disp (" " );
269
277
return new_c;
270
278
}
0 commit comments