/** * Return a color 10% points *darker* * * @param ILess_Node $color * @param ILess_Node * @return string * @throws InvalidArgumentException If the node is invalid */ public function darken(ILess_Node $color, ILess_Node_Dimension $percentage = null) { // this is a keyword if ($color instanceof ILess_Node_Keyword && ILess_Color::isNamedColor($color->value)) { $color = new ILess_Node_Color(ILess_Color::color($color->value)); } if (!$color instanceof ILess_Node_Color) { throw new InvalidArgumentException('Cannot darken the color. Invalid color given.'); } $percentage = $percentage ? $percentage->value / 100 : 10; $lightness = $this->clamp($color->getLightness(true) - $percentage); return $this->hsla($color->getHue(true), $color->getSaturation(true), $lightness, $color->getAlpha(true)); }
/** * Creates new color from the keyword * * @param string $keyword * @return ILess_Color */ public static function fromKeyword($keyword) { $color = null; // is this named color? if (self::isNamedColor($keyword)) { $color = new ILess_Color(substr(ILess_Color::color($keyword), 1)); $color->keyword = $keyword; } elseif ($keyword === 'transparent') { $color = new ILess_Color(array(255, 255, 255), 0); $color->isTransparentKeyword = true; } return $color; }