3,122 → 3,178 |
namespace de\pointedears\css\least; |
|
/** |
* Mix-ins for the LEAST extended CSS parser |
* Mix-ins for the LEAST CSS preprocessor |
* |
* @author Thomas 'PointedEars' Lahn <php@PointedEars.de> |
*/ |
abstract class Mixins |
{ |
/** @section General functions */ |
|
/** |
* Generates a CSS property declaration whose value is a |
* <code>linear-gradient()</code> function call for |
* supported function name prefixes. |
* Generates a CSS section for each keyword prefix. |
* |
* @param string $property |
* Property to be declared |
* @param string $keyword |
* Section keyword |
* @param string $params |
* Parameters to the <code>linear-gradient()</code> function |
* @param array $prefixes |
* Pass to override supported function name prefixes |
* Section parameters (name, medium, etc.) |
* @param string $content |
* Section content |
* @param array[string] $prefixes |
* Keyword prefixes |
*/ |
public static function linear_gradient ($property, $params, |
array $prefixes = array('-moz-', '-o-', '-webkit-', '')) |
public static function prefix_section ($keyword, $params, |
$content, array $prefixes) |
{ |
ob_start(); |
foreach ($prefixes as $prefix) |
{ |
echo "{$property}: {$prefix}linear-gradient({$params});\n"; |
echo "@{$prefix}{$keyword} {$params} {\n {$content}\n}\n"; |
} |
ob_end_flush(); |
} |
|
|
/** |
* Generates a CSS property declaration whose value is a |
* <code>radial-gradient()</code> function call for |
* supported function name prefixes. |
* function call, for each function name prefix. |
* |
* @param string $property |
* Property to be declared |
* @param string $params |
* Parameters to the <code>radial-gradient()</code> function |
* @param array $prefixes |
* Pass to override supported function name prefixes |
* @param string $function |
* CSS function to be called |
* @param string $args |
* Arguments to the function |
* @param array[string] $prefixes |
* Function name prefixes |
*/ |
public static function radial_gradient ($property, $params, |
array $prefixes = array('-moz-', '-webkit-')) |
public static function prefix_function ($property, $function, $args, |
array $prefixes) |
{ |
ob_start(); |
foreach ($prefixes as $prefix) |
{ |
echo "{$property}: {$prefix}radial-gradient({$params});\n"; |
echo "{$property}: {$prefix}{$function}({$args});\n"; |
} |
ob_end_flush(); |
} |
|
/** |
* Generates a CSS property declaration for each |
* property name prefix. |
* |
* @param string $suffix |
* Property name suffix |
* @param string $value |
* Property value |
* @param array[string] $prefixes |
* Property name prefixes |
*/ |
public static function prefix_property ($property, $suffix, $value, |
array $prefixes) |
{ |
ob_start(); |
foreach ($prefixes as $prefix) |
{ |
echo "{$prefix}{$property}{$suffix}: {$value};\n"; |
} |
ob_end_flush(); |
} |
|
/** @section Gradients */ |
|
/** |
* Generates a CSS property declaration whose value is a |
* <code>linear-gradient()</code> function call for |
* each function name prefix. |
* |
* @param string $property |
* Property to be declared |
* @param string $args |
* Arguments to the <code>linear-gradient()</code> function |
* @param array[string] $prefixes (optional) |
* Pass to override supported function name prefixes |
* @see self::prefix_function() |
*/ |
public static function linear_gradient ($property, $args, |
array $prefixes = array('-moz-', '-o-', '-webkit-', '')) |
{ |
self::prefix_function($property, 'linear-gradient', $args, $prefixes); |
} |
|
/** |
* Generates a CSS property declaration whose value is a |
* <code>radial-gradient()</code> function call for each |
* function name prefix. |
* |
* @param string $property |
* Property to be declared |
* @param string $args |
* Arguments to the <code>radial-gradient()</code> function |
* @param array[string] $prefixes (optional) |
* Pass to override supported function name prefixes |
* @see self::prefix_function() |
*/ |
public static function radial_gradient ($property, $args, |
array $prefixes = array('-moz-', '-webkit-')) |
{ |
self::prefix_function($property, 'radial-gradient', $args, $prefixes); |
} |
|
/** |
* Generates a CSS <code>transition</code> property declaration |
* for supported property name prefixes. |
* for each property name prefix. |
* |
* @param string $suffix |
* Property name suffix |
* @param string $value |
* Property value |
* @param array $prefixes |
* @param array[string] $prefixes (optional) |
* Pass to override supported property name prefixes |
* @see self::prefix_property() |
*/ |
public static function transition ($suffix, $value, |
array $prefixes = array('-moz-', '-webkit-', '')) |
{ |
ob_start(); |
foreach ($prefixes as $prefix) |
{ |
echo "{$prefix}transition{$suffix}: {$value};\n"; |
} |
ob_end_flush(); |
self::prefix_property('transition', $suffix, $value, $prefixes); |
} |
|
/** @section Animations */ |
|
/** |
* Generates a CSS <code>@keyframes</code> section for |
* supported keyword prefixes. |
* each keyword prefix. |
* |
* @param string $name |
* Animation name as referred by the <code>animation-name</code> |
* property declaration. |
* Animation name as referred by an <code>animation-name</code> |
* property value. |
* @param string $data |
* Keyframes data |
* @param array $prefixes |
* @param array[string] $prefixes (optional) |
* Pass to override supported keyword prefixes |
* @see self::prefix_section() |
*/ |
public static function keyframes ($name, $data, |
array $prefixes = array('-moz-', '-webkit-', '')) |
{ |
ob_start(); |
foreach ($prefixes as $prefix) |
{ |
echo "@{$prefix}keyframes {$name} {\n {$data}\n}\n"; |
} |
ob_end_flush(); |
self::prefix_section('keyframes', $name, $data, $prefixes); |
} |
|
/** |
* Generates a CSS <code>animation</code> property declaration |
* for supported property name prefixes. |
* for each property name prefix. |
* |
* @param string $suffix |
* Property name suffix |
* Property name suffix, e.g. <tt>"-name"</tt> for |
* <code>animation-name</code> |
* @param string $value |
* Property value |
* @param array $prefixes |
* @param array[string] $prefixes (optional) |
* Pass to override supported property name prefixes |
* @see self::prefix_property() |
*/ |
public static function animation ($suffix, $value, |
array $prefixes = array('-moz-', '-webkit-', '')) |
{ |
ob_start(); |
foreach ($prefixes as $prefix) |
{ |
echo "{$prefix}animation{$suffix}: {$value};\n"; |
} |
ob_end_flush(); |
self::prefix_property('animation', $suffix, $value, $prefixes); |
} |
} |