Rev 37 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 37 | Rev 38 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | <?php
|
1 | <?php
|
2 | 2 | ||
3 | namespace de\pointedears\css\least; |
3 | namespace de\pointedears\css\least; |
4 | 4 | ||
5 | /**
|
5 | /**
|
6 | * Mix-ins for the LEAST extended CSS parser
|
6 | * Mix-ins for the LEAST CSS preprocessor
|
7 | *
|
7 | *
|
8 | * @author Thomas 'PointedEars' Lahn <php@PointedEars.de>
|
8 | * @author Thomas 'PointedEars' Lahn <php@PointedEars.de>
|
9 | */
|
9 | */
|
10 | abstract class Mixins |
10 | abstract class Mixins |
11 | {
|
11 | {
|
- | 12 | /** @section General functions */
|
|
- | 13 | ||
12 | /**
|
14 | /**
|
13 | * Generates a CSS property declaration whose value is a
|
15 | * Generates a CSS section for each keyword prefix.
|
14 | * <code>linear-gradient()</code> function call for
|
- | |
15 | * supported function name prefixes.
|
- | |
16 | *
|
16 | *
|
17 | * @param string $property
|
17 | * @param string $keyword
|
18 | * Property to be declared
|
18 | * Section keyword
|
19 | * @param string $params
|
19 | * @param string $params
|
20 | * Parameters to the <code>linear-gradient()</code> function
|
20 | * Section parameters (name, medium, etc.)
|
- | 21 | * @param string $content
|
|
- | 22 | * Section content
|
|
21 | * @param array $prefixes
|
23 | * @param array[string] $prefixes
|
22 | * Pass to override supported function name prefixes
|
24 | * Keyword prefixes
|
23 | */
|
25 | */
|
24 | public static function linear_gradient ($property, $params, |
26 | public static function prefix_section ($keyword, $params, |
25 | array $prefixes = array('-moz-', '-o-', '-webkit-', '')) |
27 | $content, array $prefixes) |
26 | {
|
28 | {
|
27 | ob_start(); |
29 | ob_start(); |
28 | foreach ($prefixes as $prefix) |
30 | foreach ($prefixes as $prefix) |
29 | {
|
31 | {
|
30 | echo "{$property}: {$prefix}linear-gradient({$params});\n"; |
32 | echo "@{$prefix}{$keyword} {$params} {\n {$content}\n}\n"; |
31 | }
|
33 | }
|
32 | ob_end_flush(); |
34 | ob_end_flush(); |
33 | }
|
35 | }
|
34 | 36 | ||
35 | /**
|
37 | /**
|
36 | * Generates a CSS property declaration whose value is a
|
38 | * Generates a CSS property declaration whose value is a
|
37 | * <code>radial-gradient()</code> function call for
|
- | |
38 | * supported function name prefixes.
|
39 | * function call, for each function name prefix.
|
39 | *
|
40 | *
|
40 | * @param string $property
|
41 | * @param string $property
|
41 | * Property to be declared
|
42 | * Property to be declared
|
- | 43 | * @param string $function
|
|
- | 44 | * CSS function to be called
|
|
42 | * @param string $params
|
45 | * @param string $args
|
43 | * Parameters to the <code>radial-gradient()</code> function
|
46 | * Arguments to the function
|
44 | * @param array $prefixes
|
47 | * @param array[string] $prefixes
|
45 | * Pass to override supported function name prefixes
|
48 | * Function name prefixes
|
46 | */
|
49 | */
|
47 | public static function radial_gradient ($property, $params, |
50 | public static function prefix_function ($property, $function, $args, |
- | 51 | array $prefixes) |
|
- | 52 | {
|
|
- | 53 | ob_start(); |
|
48 | array $prefixes = array('-moz-', '-webkit-')) |
54 | foreach ($prefixes as $prefix) |
- | 55 | {
|
|
- | 56 | echo "{$property}: {$prefix}{$function}({$args});\n"; |
|
- | 57 | }
|
|
- | 58 | ob_end_flush(); |
|
- | 59 | }
|
|
- | 60 | ||
- | 61 | /**
|
|
- | 62 | * Generates a CSS property declaration for each
|
|
- | 63 | * property name prefix.
|
|
- | 64 | *
|
|
- | 65 | * @param string $suffix
|
|
- | 66 | * Property name suffix
|
|
- | 67 | * @param string $value
|
|
- | 68 | * Property value
|
|
- | 69 | * @param array[string] $prefixes
|
|
- | 70 | * Property name prefixes
|
|
- | 71 | */
|
|
- | 72 | public static function prefix_property ($property, $suffix, $value, |
|
- | 73 | array $prefixes) |
|
49 | {
|
74 | {
|
50 | ob_start(); |
75 | ob_start(); |
51 | foreach ($prefixes as $prefix) |
76 | foreach ($prefixes as $prefix) |
52 | {
|
77 | {
|
53 | echo "{$property}: {$prefix}radial-gradient({$params});\n"; |
78 | echo "{$prefix}{$property}{$suffix}: {$value};\n"; |
54 | }
|
79 | }
|
55 | ob_end_flush(); |
80 | ob_end_flush(); |
- | 81 | }
|
|
- | 82 | ||
- | 83 | /** @section Gradients */
|
|
- | 84 | ||
- | 85 | /**
|
|
- | 86 | * Generates a CSS property declaration whose value is a
|
|
- | 87 | * <code>linear-gradient()</code> function call for
|
|
- | 88 | * each function name prefix.
|
|
- | 89 | *
|
|
- | 90 | * @param string $property
|
|
- | 91 | * Property to be declared
|
|
- | 92 | * @param string $args
|
|
- | 93 | * Arguments to the <code>linear-gradient()</code> function
|
|
- | 94 | * @param array[string] $prefixes (optional)
|
|
- | 95 | * Pass to override supported function name prefixes
|
|
- | 96 | * @see self::prefix_function()
|
|
- | 97 | */
|
|
- | 98 | public static function linear_gradient ($property, $args, |
|
- | 99 | array $prefixes = array('-moz-', '-o-', '-webkit-', '')) |
|
- | 100 | {
|
|
- | 101 | self::prefix_function($property, 'linear-gradient', $args, $prefixes); |
|
- | 102 | }
|
|
- | 103 | ||
- | 104 | /**
|
|
- | 105 | * Generates a CSS property declaration whose value is a
|
|
- | 106 | * <code>radial-gradient()</code> function call for each
|
|
- | 107 | * function name prefix.
|
|
- | 108 | *
|
|
- | 109 | * @param string $property
|
|
- | 110 | * Property to be declared
|
|
- | 111 | * @param string $args
|
|
- | 112 | * Arguments to the <code>radial-gradient()</code> function
|
|
- | 113 | * @param array[string] $prefixes (optional)
|
|
- | 114 | * Pass to override supported function name prefixes
|
|
- | 115 | * @see self::prefix_function()
|
|
- | 116 | */
|
|
- | 117 | public static function radial_gradient ($property, $args, |
|
- | 118 | array $prefixes = array('-moz-', '-webkit-')) |
|
- | 119 | {
|
|
- | 120 | self::prefix_function($property, 'radial-gradient', $args, $prefixes); |
|
56 | }
|
121 | }
|
57 | 122 | ||
58 | /**
|
123 | /**
|
59 | * Generates a CSS <code>transition</code> property declaration
|
124 | * Generates a CSS <code>transition</code> property declaration
|
60 | * for supported property name prefixes.
|
125 | * for each property name prefix.
|
61 | *
|
126 | *
|
62 | * @param string $suffix
|
127 | * @param string $suffix
|
63 | * Property name suffix
|
128 | * Property name suffix
|
64 | * @param string $value
|
129 | * @param string $value
|
65 | * Property value
|
130 | * Property value
|
66 | * @param array $prefixes
|
131 | * @param array[string] $prefixes (optional)
|
67 | * Pass to override supported property name prefixes
|
132 | * Pass to override supported property name prefixes
|
- | 133 | * @see self::prefix_property()
|
|
68 | */
|
134 | */
|
69 | public static function transition ($suffix, $value, |
135 | public static function transition ($suffix, $value, |
70 | array $prefixes = array('-moz-', '-webkit-', '')) |
136 | array $prefixes = array('-moz-', '-webkit-', '')) |
71 | {
|
137 | {
|
72 | ob_start(); |
- | |
73 | foreach ($prefixes as $prefix) |
- | |
74 | {
|
- | |
75 | echo "{$prefix}transition{$suffix}: {$value};\n"; |
138 | self::prefix_property('transition', $suffix, $value, $prefixes); |
76 | }
|
- | |
77 | ob_end_flush(); |
- | |
78 | }
|
139 | }
|
79 | 140 | ||
- | 141 | /** @section Animations */
|
|
- | 142 | ||
80 | /**
|
143 | /**
|
81 | * Generates a CSS <code>@keyframes</code> section for
|
144 | * Generates a CSS <code>@keyframes</code> section for
|
82 | * supported keyword prefixes.
|
145 | * each keyword prefix.
|
83 | *
|
146 | *
|
84 | * @param string $name
|
147 | * @param string $name
|
85 | * Animation name as referred by the <code>animation-name</code>
|
148 | * Animation name as referred by an <code>animation-name</code>
|
86 | * property declaration.
|
149 | * property value.
|
87 | * @param string $data
|
150 | * @param string $data
|
88 | * Keyframes data
|
151 | * Keyframes data
|
89 | * @param array $prefixes
|
152 | * @param array[string] $prefixes (optional)
|
90 | * Pass to override supported keyword prefixes
|
153 | * Pass to override supported keyword prefixes
|
- | 154 | * @see self::prefix_section()
|
|
91 | */
|
155 | */
|
92 | public static function keyframes ($name, $data, |
156 | public static function keyframes ($name, $data, |
93 | array $prefixes = array('-moz-', '-webkit-', '')) |
157 | array $prefixes = array('-moz-', '-webkit-', '')) |
94 | {
|
158 | {
|
95 | ob_start(); |
- | |
96 | foreach ($prefixes as $prefix) |
- | |
97 | {
|
- | |
98 | echo "@{$prefix}keyframes {$name} {\n {$data}\n}\n"; |
159 | self::prefix_section('keyframes', $name, $data, $prefixes); |
99 | }
|
- | |
100 | ob_end_flush(); |
- | |
101 | }
|
160 | }
|
102 | 161 | ||
103 | /**
|
162 | /**
|
104 | * Generates a CSS <code>animation</code> property declaration
|
163 | * Generates a CSS <code>animation</code> property declaration
|
105 | * for supported property name prefixes.
|
164 | * for each property name prefix.
|
106 | *
|
165 | *
|
107 | * @param string $suffix
|
166 | * @param string $suffix
|
- | 167 | * Property name suffix, e.g. <tt>"-name"</tt> for
|
|
108 | * Property name suffix
|
168 | * <code>animation-name</code>
|
109 | * @param string $value
|
169 | * @param string $value
|
110 | * Property value
|
170 | * Property value
|
111 | * @param array $prefixes
|
171 | * @param array[string] $prefixes (optional)
|
112 | * Pass to override supported property name prefixes
|
172 | * Pass to override supported property name prefixes
|
- | 173 | * @see self::prefix_property()
|
|
113 | */
|
174 | */
|
114 | public static function animation ($suffix, $value, |
175 | public static function animation ($suffix, $value, |
115 | array $prefixes = array('-moz-', '-webkit-', '')) |
176 | array $prefixes = array('-moz-', '-webkit-', '')) |
116 | {
|
177 | {
|
117 | ob_start(); |
- | |
118 | foreach ($prefixes as $prefix) |
- | |
119 | {
|
- | |
120 | echo "{$prefix}animation{$suffix}: {$value};\n"; |
178 | self::prefix_property('animation', $suffix, $value, $prefixes); |
121 | }
|
- | |
122 | ob_end_flush(); |
- | |
123 | }
|
179 | }
|
124 | }
|
180 | }
|
125 | 181 |