public function contrast($color, $dark = null, $light = null, $threshold = null) { // filter: contrast(3.2); // should be kept as is, so check for color if (!$color instanceof Less_Tree_Color) { return null; } if (!$light) { $light = $this->rgba(255, 255, 255, 1.0); } if (!$dark) { $dark = $this->rgba(0, 0, 0, 1.0); } if (!$dark instanceof Less_Tree_Color) { $dark = new Less_Tree_Color(array(1, 1, 1)); //throw new Less_Exception_Compiler('The second argument to contrast must be a color' . ($dark instanceof Less_Tree_Expression ? ' (did you forgot commas?)' : '') ); } if (!$light instanceof Less_Tree_Color) { $light = new Less_Tree_Color(array(1, 1, 1)); //throw new Less_Exception_Compiler('The third argument to contrast must be a color' . ($light instanceof Less_Tree_Expression ? ' (did you forgot commas?)' : '') ); } //Figure out which is actually light and dark! if ($dark->luma() > $light->luma()) { $t = $light; $light = $dark; $dark = $t; } if (!$threshold) { $threshold = 0.43; } else { $threshold = Less_Functions::number($threshold); } if ($color->luma() < $threshold) { return $light; } else { return $dark; } }