Version Notes
phpsass library updated.
Download this release
Release Info
Developer | Laurent Clouet |
Extension | Sass |
Version | 1.1.3 |
Comparing to | |
See all releases |
Code changes from version 1.1.2 to 1.1.3
- app/code/community/Laurent/Sass/etc/config.xml +1 -1
- lib/phpsass/Extensions/Compass/Compass.php +511 -0
- lib/phpsass/Extensions/Compass/stylesheets/_compass.scss +3 -0
- lib/phpsass/Extensions/Compass/stylesheets/_lemonade.scss +37 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/_css3.scss +20 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/_layout.scss +3 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/_reset-legacy.scss +3 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/_reset.scss +3 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/_support.scss +40 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/_typography.scss +4 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/_utilities.scss +8 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_appearance.scss +15 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_background-clip.scss +33 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_background-origin.scss +33 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_background-size.scss +24 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_border-radius.scss +109 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_box-shadow.scss +77 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_box-sizing.scss +11 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_box.scss +77 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_columns.scss +132 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_filter.scss +15 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_font-face.scss +46 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_hyphenation.scss +68 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_images.scss +189 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_inline-block.scss +22 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_opacity.scss +23 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_pie.scss +69 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_regions.scss +18 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_shared.scss +60 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_text-shadow.scss +83 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_transform-legacy.scss +81 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_transform.scss +593 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_transition.scss +238 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_user-interface.scss +14 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/layout/_grid-background.scss +161 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/layout/_sticky-footer.scss +28 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/layout/_stretching.scss +29 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/reset/_utilities-legacy.scss +168 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/reset/_utilities.scss +173 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/_links.scss +3 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/_lists.scss +4 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/_text.scss +4 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/_vertical_rhythm.scss +220 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/links/_hover-link.scss +7 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/links/_link-colors.scss +37 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/links/_unstyled-link.scss +9 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/lists/_bullets.scss +36 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/lists/_horizontal-list.scss +70 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/lists/_inline-block-list.scss +54 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/lists/_inline-list.scss +50 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/text/_ellipsis.scss +20 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/text/_force-wrap.scss +20 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/text/_nowrap.scss +4 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/typography/text/_replacement.scss +70 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_color.scss +1 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_general.scss +6 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_print.scss +25 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_sprites.scss +2 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_tables.scss +3 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/color/_contrast.scss +24 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_clearfix.scss +44 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_float.scss +34 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_hacks.scss +48 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_min.scss +19 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_tabs.scss +1 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_tag-cloud.scss +26 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/sprites/_base.scss +67 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +101 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +34 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/tables/_borders.scss +50 -0
- lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/tables/_scaffolding.scss +13 -0
- lib/phpsass/Extensions/ExtensionInterface.php +7 -0
- lib/phpsass/Extensions/Own/Own.php +90 -0
- lib/phpsass/Extensions/Own/css/test/test2/test.scss +3 -0
- lib/phpsass/Extensions/README.md +10 -0
- lib/phpsass/Extensions/Susy/Susy.php +75 -0
- lib/phpsass/Extensions/Susy/stylesheets/_susy.scss +16 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_background.scss +18 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_functions.scss +376 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_grid.scss +286 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_isolation.scss +48 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_margin.scss +93 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_media.scss +112 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_padding.scss +92 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_settings.scss +56 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_support.scss +198 -0
- lib/phpsass/Extensions/Susy/stylesheets/susy/_units.scss +159 -0
- lib/phpsass/Extensions/example.php +86 -0
- lib/phpsass/Extensions/example.scss +8 -0
- lib/phpsass/Extensions/theme.scss +1 -0
- lib/phpsass/README.md +3 -4
- lib/phpsass/SassFile.php +1 -1
- lib/phpsass/SassParser.php +17 -3
- lib/phpsass/VERSION +2 -0
- lib/phpsass/script/SassScriptFunction.php +18 -2
- lib/phpsass/script/SassScriptLexer.php +4 -0
- lib/phpsass/script/SassScriptOperation.php +1 -1
- lib/phpsass/script/literals/SassBoolean.php +11 -0
- lib/phpsass/script/literals/SassColour.php +9 -0
- lib/phpsass/script/literals/SassList.php +9 -0
- lib/phpsass/script/literals/SassNumber.php +21 -0
- lib/phpsass/test.php +1 -4
- lib/phpsass/tests/alt.css +14 -15
- lib/phpsass/tests/colour-nth.css +2 -0
- lib/phpsass/tests/colour-nth.scss +3 -0
- lib/phpsass/tests/extend_included.css +3 -0
- lib/phpsass/tests/functions.css +69 -9
- lib/phpsass/tests/if_parentheses.css +2 -0
- lib/phpsass/tests/if_parentheses.scss +6 -0
- lib/phpsass/tests/list_empty.css +2 -0
- lib/phpsass/tests/list_empty.scss +5 -0
- lib/phpsass/tests/list_variable.css +2 -0
- lib/phpsass/tests/list_variable.scss +9 -0
- lib/phpsass/tests/media_in_for.css +6 -0
- lib/phpsass/tests/media_in_for.scss +10 -0
- lib/phpsass/tests/media_in_mixin.css +3 -0
- lib/phpsass/tests/media_in_mixin.scss +9 -0
- lib/phpsass/tests/media_in_mixin_in_mixin.css +4 -0
- lib/phpsass/tests/media_in_mixin_in_mixin.scss +18 -0
- lib/phpsass/tests/mixin-content.css +1 -0
- lib/phpsass/tests/mixin-content.sass +2 -0
- lib/phpsass/tests/mixin-content.scss +2 -0
- lib/phpsass/tests/mixin-list-params.css +7 -0
- lib/phpsass/tests/mixin-list-params.scss +17 -0
- lib/phpsass/tests/mixin-params.css +8 -0
- lib/phpsass/tests/mixin-params.scss +8 -0
- lib/phpsass/tests/mixin-rgba-param.css +2 -0
- lib/phpsass/tests/mixin-rgba-param.scss +7 -0
- lib/phpsass/tests/mixin_in_mixin.css +2 -0
- lib/phpsass/tests/mixin_in_mixin.scss +15 -0
- lib/phpsass/tests/mixin_setvar.css +2 -0
- lib/phpsass/tests/mixin_setvar.scss +10 -0
- lib/phpsass/tests/phpSassTest.php +36 -0
- lib/phpsass/tree/SassContentNode.php +9 -1
- lib/phpsass/tree/SassMediaNode.php +15 -4
- lib/phpsass/tree/SassNode.php +10 -0
- package.xml +5 -5
app/code/community/Laurent/Sass/etc/config.xml
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
<config>
|
15 |
<modules>
|
16 |
<Laurent_Sass>
|
17 |
-
<version>1.1.
|
18 |
</Laurent_Sass>
|
19 |
</modules>
|
20 |
<global>
|
14 |
<config>
|
15 |
<modules>
|
16 |
<Laurent_Sass>
|
17 |
+
<version>1.1.3</version>
|
18 |
</Laurent_Sass>
|
19 |
</modules>
|
20 |
<global>
|
lib/phpsass/Extensions/Compass/Compass.php
ADDED
@@ -0,0 +1,511 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
require_once dirname(__FILE__) . '/../ExtensionInterface.php';
|
3 |
+
class Compass implements ExtensionInterface
|
4 |
+
{
|
5 |
+
|
6 |
+
public static $filesFolder = 'stylesheets';
|
7 |
+
public static $filePaths = null;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* List with alias functions in Compass
|
11 |
+
* @var array
|
12 |
+
*/
|
13 |
+
public static $functions = array(
|
14 |
+
'resolve-path',
|
15 |
+
'adjust-lightness',
|
16 |
+
'scale-lightness',
|
17 |
+
'adjust-saturation',
|
18 |
+
'scale-saturation',
|
19 |
+
'scale-color-value',
|
20 |
+
'is-position',
|
21 |
+
'is-position-list',
|
22 |
+
'opposite-position',
|
23 |
+
'-webkit',
|
24 |
+
'-moz',
|
25 |
+
'-o',
|
26 |
+
'-ms',
|
27 |
+
'-svg',
|
28 |
+
'-pie',
|
29 |
+
'-css2',
|
30 |
+
'owg',
|
31 |
+
'prefixed',
|
32 |
+
'prefix',
|
33 |
+
'elements-of-type',
|
34 |
+
'enumerate',
|
35 |
+
'font-files',
|
36 |
+
'image-width',
|
37 |
+
'image-height',
|
38 |
+
'inline-image',
|
39 |
+
'inline-font-files',
|
40 |
+
'blank',
|
41 |
+
'compact',
|
42 |
+
'-compass-nth',
|
43 |
+
'-compass-list',
|
44 |
+
'-compass-list',
|
45 |
+
'-compass-space-list',
|
46 |
+
'-compass-list-size',
|
47 |
+
'-compass-slice',
|
48 |
+
'first-value-of',
|
49 |
+
'nest',
|
50 |
+
'append-selector',
|
51 |
+
'headers',
|
52 |
+
'pi',
|
53 |
+
'sin',
|
54 |
+
'cos',
|
55 |
+
'tan',
|
56 |
+
'comma-list',
|
57 |
+
'prefixed-for-transition',
|
58 |
+
'stylesheet-url',
|
59 |
+
'font-url',
|
60 |
+
'image-url'
|
61 |
+
);
|
62 |
+
|
63 |
+
public static function getFunctions($namespace)
|
64 |
+
{
|
65 |
+
|
66 |
+
$output = array();
|
67 |
+
foreach (self::$functions as $function) {
|
68 |
+
$originalFunction = $function;
|
69 |
+
$function[0] = strtoupper($function[0]);
|
70 |
+
$func = create_function('$c', 'return strtoupper($c[1]);');
|
71 |
+
$function = preg_replace_callback('/-([a-z])/', $func, $function);
|
72 |
+
$output[$originalFunction] = $namespace . strtolower(__CLASS__) . $function;
|
73 |
+
}
|
74 |
+
|
75 |
+
return $output;
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Returns an array with all files in $root path recursively and assign each array Key with clean alias
|
80 |
+
* @param $root
|
81 |
+
* @return array
|
82 |
+
*/
|
83 |
+
public static function getFilesArray($root)
|
84 |
+
{
|
85 |
+
|
86 |
+
$alias = array();
|
87 |
+
$directories = array();
|
88 |
+
$last_letter = $root[strlen($root) - 1];
|
89 |
+
$root = ($last_letter == '\\' || $last_letter == '/') ? $root : $root . DIRECTORY_SEPARATOR;
|
90 |
+
|
91 |
+
$directories[] = $root;
|
92 |
+
|
93 |
+
while (sizeof($directories)) {
|
94 |
+
$dir = array_pop($directories);
|
95 |
+
if ($handle = opendir($dir)) {
|
96 |
+
while (false !== ($file = readdir($handle))) {
|
97 |
+
if ($file == '.' || $file == '..') {
|
98 |
+
continue;
|
99 |
+
}
|
100 |
+
$file = $dir . $file;
|
101 |
+
if (is_dir($file)) {
|
102 |
+
$directory_path = $file . DIRECTORY_SEPARATOR;
|
103 |
+
array_push($directories, $directory_path);
|
104 |
+
} elseif (is_file($file)) {
|
105 |
+
$key = basename($file);
|
106 |
+
$alias[substr($key, 1, strpos($key, '.') - 1)] = $file;
|
107 |
+
}
|
108 |
+
}
|
109 |
+
closedir($handle);
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
return $alias;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Implementation of hook_resolve_path_NAMESPACE().
|
118 |
+
*/
|
119 |
+
public static function resolveExtensionPath($callerImport, $parser, $syntax = 'scss')
|
120 |
+
{
|
121 |
+
$alias = str_replace('/_', '/', str_replace(array('.scss', '.sass'), '', $callerImport));
|
122 |
+
if (strrpos($alias, '/') !== false) {
|
123 |
+
$alias = substr($alias, strrpos($alias, '/') + 1);
|
124 |
+
}
|
125 |
+
if (self::$filePaths == null) {
|
126 |
+
self::$filePaths = self::getFilesArray(dirname(__FILE__) . '/' . self::$filesFolder . '/');
|
127 |
+
}
|
128 |
+
if (isset(self::$filePaths[$alias])) {
|
129 |
+
return self::$filePaths[$alias];
|
130 |
+
}
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* Resolves requires to the compass namespace (eg namespace/css3/border-radius)
|
135 |
+
*/
|
136 |
+
public static function compassResolvePath($file)
|
137 |
+
{
|
138 |
+
if ($file{0} == '/') {
|
139 |
+
return $file;
|
140 |
+
}
|
141 |
+
if (!$path = realpath($file)) {
|
142 |
+
$path = SassScriptFunction::$context->node->token->filename;
|
143 |
+
$path = substr($path, 0, strrpos($path, '/')) . '/';
|
144 |
+
$path = $path . $file;
|
145 |
+
$last = '';
|
146 |
+
while ($path != $last) {
|
147 |
+
$last = $path;
|
148 |
+
$path = preg_replace('`(^|/)(?!\.\./)([^/]+)/\.\./`', '$1', $path);
|
149 |
+
}
|
150 |
+
$path = realpath($path);
|
151 |
+
}
|
152 |
+
if ($path) {
|
153 |
+
return $path;
|
154 |
+
}
|
155 |
+
return false;
|
156 |
+
}
|
157 |
+
|
158 |
+
public static function compassImageWidth($file)
|
159 |
+
{
|
160 |
+
if ($info = self::compassImageInfo($file)) {
|
161 |
+
return new SassNumber($info[0] . 'px');
|
162 |
+
}
|
163 |
+
return new SassNumber('0px');
|
164 |
+
}
|
165 |
+
|
166 |
+
public static function compassImageHeight($file)
|
167 |
+
{
|
168 |
+
if ($info = self::compassImageInfo($file)) {
|
169 |
+
return new SassNumber($info[1] . 'px');
|
170 |
+
}
|
171 |
+
return new SassNumber('0px');
|
172 |
+
}
|
173 |
+
|
174 |
+
public static function compassImageInfo($file)
|
175 |
+
{
|
176 |
+
if ($path = self::compassResolvePath($file)) {
|
177 |
+
if ($info = getimagesize($path)) {
|
178 |
+
return $info;
|
179 |
+
}
|
180 |
+
}
|
181 |
+
return false;
|
182 |
+
}
|
183 |
+
|
184 |
+
|
185 |
+
public static function compassInlineImage($file, $mime = null)
|
186 |
+
{
|
187 |
+
if ($path = self::compassUrl($file, true, false)) {
|
188 |
+
$info = getimagesize($path);
|
189 |
+
$mime = $info['mime'];
|
190 |
+
$data = base64_encode(file_get_contents($path));
|
191 |
+
# todo - do not return encoded if file size > 32kb
|
192 |
+
return new SassString("url('data:$mime;base64,$data')");
|
193 |
+
}
|
194 |
+
return new SassString('');
|
195 |
+
}
|
196 |
+
|
197 |
+
public static function compassInlineFontFiles($file)
|
198 |
+
{
|
199 |
+
$args = func_get_args();
|
200 |
+
$files = array();
|
201 |
+
$mimes = array(
|
202 |
+
'otf' => 'font.opentype',
|
203 |
+
'ttf' => 'font.truetype',
|
204 |
+
'woff' => 'font.woff',
|
205 |
+
'off' => 'font.openfont',
|
206 |
+
);
|
207 |
+
|
208 |
+
while (count($args)) {
|
209 |
+
$path = self::compassResolvePath(array_shift($args));
|
210 |
+
$data = base64_encode(file_get_contents($path));
|
211 |
+
$format = array_shift($args);
|
212 |
+
|
213 |
+
$ext = array_pop(explode('.', $file));
|
214 |
+
if (isset($mimes[$ext])) {
|
215 |
+
$mime = $mimes[$ext];
|
216 |
+
} else {
|
217 |
+
continue;
|
218 |
+
}
|
219 |
+
|
220 |
+
$files[] = "url('data:$mime;base64,$data') format('$format')";
|
221 |
+
}
|
222 |
+
|
223 |
+
return new SassString(implode(', ', $files));
|
224 |
+
}
|
225 |
+
|
226 |
+
public static function compassBlank($object)
|
227 |
+
{
|
228 |
+
if (is_object($object)) {
|
229 |
+
$object = $object->value;
|
230 |
+
}
|
231 |
+
$result = false;
|
232 |
+
if (is_bool($object)) {
|
233 |
+
$result = !$object;
|
234 |
+
}
|
235 |
+
if (is_string($object)) {
|
236 |
+
$result = (strlen(trim($object, ' ,')) === 0);
|
237 |
+
}
|
238 |
+
|
239 |
+
return new SassBoolean($result);
|
240 |
+
}
|
241 |
+
|
242 |
+
public static function compassCompact()
|
243 |
+
{
|
244 |
+
$sep = ', ';
|
245 |
+
|
246 |
+
$args = func_get_args();
|
247 |
+
$list = array();
|
248 |
+
|
249 |
+
// remove blank entries
|
250 |
+
// append non-blank entries to list
|
251 |
+
foreach ($args as $k => $v) {
|
252 |
+
if (is_object($v)) {
|
253 |
+
$string = (isset($v->value) ? $v->value : false);
|
254 |
+
} else {
|
255 |
+
$string = (string)$v;
|
256 |
+
}
|
257 |
+
if (empty($string) || $string == 'false') {
|
258 |
+
unset($args[$k]);
|
259 |
+
continue;
|
260 |
+
}
|
261 |
+
$list[] = $string;
|
262 |
+
}
|
263 |
+
return new SassString(implode($sep, $list));
|
264 |
+
}
|
265 |
+
|
266 |
+
public static function compassCompassNth()
|
267 |
+
{
|
268 |
+
$args = func_get_args();
|
269 |
+
$place = array_pop($args);
|
270 |
+
$list = array();
|
271 |
+
foreach ($args as $arg) {
|
272 |
+
$list = array_merge($list, self::compassList($arg));
|
273 |
+
}
|
274 |
+
|
275 |
+
if ($place == 'first') {
|
276 |
+
$place = 0;
|
277 |
+
}
|
278 |
+
if ($place == 'last') {
|
279 |
+
$place = count($list) - 1;
|
280 |
+
}
|
281 |
+
|
282 |
+
if (isset($list[$place])) {
|
283 |
+
return current(SassScriptLexer::$instance->lex($list[$place], new SassContext()));
|
284 |
+
}
|
285 |
+
return new SassBoolean(false);
|
286 |
+
}
|
287 |
+
|
288 |
+
public static function compassCompassList()
|
289 |
+
{
|
290 |
+
$args = func_get_args();
|
291 |
+
$list = array();
|
292 |
+
foreach ($args as $arg) {
|
293 |
+
$list = array_merge($list, self::compassList($arg));
|
294 |
+
}
|
295 |
+
return new SassString(implode(', ', $list));
|
296 |
+
}
|
297 |
+
|
298 |
+
public static function compassCompassSpaceList()
|
299 |
+
{
|
300 |
+
$args = func_get_args();
|
301 |
+
$list = self::compassList($args, ',');
|
302 |
+
return new SassString(implode(' ', $list));
|
303 |
+
}
|
304 |
+
|
305 |
+
public static function compassCompassListSize()
|
306 |
+
{
|
307 |
+
$args = func_get_args();
|
308 |
+
$list = self::compassList($args, ',');
|
309 |
+
return new SassNumber(count($list));
|
310 |
+
}
|
311 |
+
|
312 |
+
public static function compassCompassListSlice($list, $start, $end)
|
313 |
+
{
|
314 |
+
$args = func_get_args();
|
315 |
+
$end = array_pop($args);
|
316 |
+
$start = array_pop($args);
|
317 |
+
$list = self::compassList($args, ',');
|
318 |
+
return implode(',', array_slice($list, $start, $end));
|
319 |
+
}
|
320 |
+
|
321 |
+
public static function compassFirstValueOf()
|
322 |
+
{
|
323 |
+
$args = array();
|
324 |
+
$args[] = 'first';
|
325 |
+
return call_user_func_array('self::compassCompassNth', $args);
|
326 |
+
}
|
327 |
+
|
328 |
+
public static function compassList($list, $seperator = ',')
|
329 |
+
{
|
330 |
+
if (is_object($list)) {
|
331 |
+
$list = $list->value;
|
332 |
+
}
|
333 |
+
if (is_array($list)) {
|
334 |
+
$newlist = array();
|
335 |
+
foreach ($list as $listlet) {
|
336 |
+
$newlist = array_merge($newlist, self::compassList($listlet, $seperator));
|
337 |
+
}
|
338 |
+
$list = implode(', ', $newlist);
|
339 |
+
}
|
340 |
+
|
341 |
+
$out = array();
|
342 |
+
$size = 0;
|
343 |
+
$braces = 0;
|
344 |
+
$stack = '';
|
345 |
+
for ($i = 0; $i < strlen($list); $i++) {
|
346 |
+
$char = substr($list, $i, 1);
|
347 |
+
switch ($char) {
|
348 |
+
case '(':
|
349 |
+
$braces++;
|
350 |
+
$stack .= $char;
|
351 |
+
break;
|
352 |
+
case ')':
|
353 |
+
$braces--;
|
354 |
+
$stack .= $char;
|
355 |
+
break;
|
356 |
+
case $seperator:
|
357 |
+
if ($braces === 0) {
|
358 |
+
$out[] = $stack;
|
359 |
+
$stack = '';
|
360 |
+
$size++;
|
361 |
+
break;
|
362 |
+
}
|
363 |
+
|
364 |
+
default:
|
365 |
+
$stack .= $char;
|
366 |
+
}
|
367 |
+
}
|
368 |
+
$out[] = $stack;
|
369 |
+
return $out;
|
370 |
+
}
|
371 |
+
|
372 |
+
// http://compass-style.org/reference/compass/helpers/selectors/#nest
|
373 |
+
public static function compassNest()
|
374 |
+
{
|
375 |
+
$args = func_get_args();
|
376 |
+
$output = explode(',', array_pop($args));
|
377 |
+
|
378 |
+
for ($i = count($args) - 1; $i >= 0; $i--) {
|
379 |
+
$current = explode(',', $args[$i]);
|
380 |
+
$size = count($output);
|
381 |
+
foreach ($current as $selector) {
|
382 |
+
for ($j = 0; $j < $size; $j++) {
|
383 |
+
$output[] = trim($selector) . " " . trim($output[$j]);
|
384 |
+
}
|
385 |
+
}
|
386 |
+
$output = array_slice($output, $size);
|
387 |
+
}
|
388 |
+
|
389 |
+
return new SassString(implode(', ', $output));
|
390 |
+
}
|
391 |
+
|
392 |
+
public static function compassAppendSelector($initial, $new)
|
393 |
+
{
|
394 |
+
$list = explode(',', $initial);
|
395 |
+
foreach ($list as $k => $selector) {
|
396 |
+
$list[$k] = trim($selector) . $new;
|
397 |
+
}
|
398 |
+
return new SassString(implode(', ', $list));
|
399 |
+
}
|
400 |
+
|
401 |
+
public static function compassHeaders($from = false, $to = false)
|
402 |
+
{
|
403 |
+
if (is_object($from)) {
|
404 |
+
$from = $from->value;
|
405 |
+
}
|
406 |
+
if (is_object($to)) {
|
407 |
+
$to = $to->value;
|
408 |
+
}
|
409 |
+
|
410 |
+
if (!$from || !is_numeric($from)) {
|
411 |
+
$from = 1;
|
412 |
+
}
|
413 |
+
if (!$to || !is_numeric($to)) {
|
414 |
+
$to = 6;
|
415 |
+
}
|
416 |
+
|
417 |
+
$from = (int)$from;
|
418 |
+
$to = (int)$to;
|
419 |
+
|
420 |
+
$output = array();
|
421 |
+
for ($i = $from; $i <= $to; $i++) {
|
422 |
+
$output[] = 'h' . $i;
|
423 |
+
}
|
424 |
+
return new SassString(implode(', ', $output));
|
425 |
+
}
|
426 |
+
|
427 |
+
public static function compassCommaList()
|
428 |
+
{
|
429 |
+
print_r(func_get_args());
|
430 |
+
die;
|
431 |
+
}
|
432 |
+
|
433 |
+
public static function compassPrefixedForTransition($prefix, $property)
|
434 |
+
{
|
435 |
+
|
436 |
+
}
|
437 |
+
|
438 |
+
public static function compassPi()
|
439 |
+
{
|
440 |
+
return pi();
|
441 |
+
}
|
442 |
+
|
443 |
+
public static function compassSin($number)
|
444 |
+
{
|
445 |
+
return new SassNumber(sin($number));
|
446 |
+
}
|
447 |
+
|
448 |
+
public static function compassCos($number)
|
449 |
+
{
|
450 |
+
return new SassNumber(sin($number));
|
451 |
+
}
|
452 |
+
|
453 |
+
public static function compassTan($number)
|
454 |
+
{
|
455 |
+
return new SassNumber(sin($number));
|
456 |
+
}
|
457 |
+
|
458 |
+
# not sure what should happen with these
|
459 |
+
|
460 |
+
public static function compassStylesheetUrl($path, $only_path = false)
|
461 |
+
{
|
462 |
+
|
463 |
+
return self::compassUrl($path, $only_path);
|
464 |
+
}
|
465 |
+
|
466 |
+
public static function compassFontUrl($path, $only_path = false)
|
467 |
+
{
|
468 |
+
return self::compassUrl($path, $only_path);
|
469 |
+
}
|
470 |
+
|
471 |
+
public static function compassImageUrl($path, $only_path = false)
|
472 |
+
{
|
473 |
+
return self::compassUrl($path, $only_path);
|
474 |
+
}
|
475 |
+
|
476 |
+
public static function compassUrl($path, $only_path = false, $web_path = true)
|
477 |
+
{
|
478 |
+
$opath = $path;
|
479 |
+
if (!$path = SassFile::get_file($path, SassParser::$instance, false)) {
|
480 |
+
throw new Exception('File not found: ' . $opath);
|
481 |
+
}
|
482 |
+
|
483 |
+
$path = $path[0];
|
484 |
+
if ($web_path) {
|
485 |
+
$webroot = realpath($_SERVER['DOCUMENT_ROOT']);
|
486 |
+
$path = str_replace($webroot, '', $path);
|
487 |
+
}
|
488 |
+
|
489 |
+
if ($only_path) {
|
490 |
+
return new SassString($path);
|
491 |
+
}
|
492 |
+
return new SassString("url('$path')");
|
493 |
+
}
|
494 |
+
|
495 |
+
public static function compassOppositePosition($from)
|
496 |
+
{
|
497 |
+
$ret = '';
|
498 |
+
if ($from == 'top') {
|
499 |
+
$ret = 'bottom';
|
500 |
+
} else if ($from == 'bottom') {
|
501 |
+
$ret = 'top';
|
502 |
+
} else if ($from == 'left') {
|
503 |
+
$ret = 'right';
|
504 |
+
} else if ($from == 'right') {
|
505 |
+
$ret = 'left';
|
506 |
+
} else if ($from == 'center') {
|
507 |
+
$ret = 'center';
|
508 |
+
}
|
509 |
+
return $ret;
|
510 |
+
}
|
511 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/_compass.scss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
@import "compass/compass/utilities";
|
2 |
+
@import "compass/compass/_typography";
|
3 |
+
@import "compass/compass/_css3";
|
lib/phpsass/Extensions/Compass/stylesheets/_lemonade.scss
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin image-dimensions($file) {
|
2 |
+
height: image-height($file);
|
3 |
+
width: image-width($file);
|
4 |
+
}
|
5 |
+
|
6 |
+
@mixin sprite-image($file) {
|
7 |
+
background: sprite-image($file) $repeat;
|
8 |
+
}
|
9 |
+
|
10 |
+
@mixin sized-sprite-image($file) {
|
11 |
+
background: sprite-image($file);
|
12 |
+
@include image-dimensions($file);
|
13 |
+
}
|
14 |
+
|
15 |
+
@mixin sprite-folder($folder, $image-dimensions: false) {
|
16 |
+
.#{$folder} {
|
17 |
+
@if $image-dimensions {
|
18 |
+
background: sprite-url($folder);
|
19 |
+
} @else {
|
20 |
+
background: sprite-url($folder) no-repeat;
|
21 |
+
}
|
22 |
+
}
|
23 |
+
@for $i from 0 to sprite-files-in-folder($folder) {
|
24 |
+
$file: sprite-file-from-folder($folder, $i);
|
25 |
+
.#{$folder}-#{image-basename($file)} {
|
26 |
+
@extend .#{$folder};
|
27 |
+
background-position: sprite-position(sprite-file-from-folder($folder, $i));
|
28 |
+
@if $image-dimensions {
|
29 |
+
@include image-dimensions($file);
|
30 |
+
}
|
31 |
+
}
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
@mixin sized-sprite-folder($folder) {
|
36 |
+
@include sprite-folder($folder, true);
|
37 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/_css3.scss
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "css3/css3/_border-radius";
|
2 |
+
@import "css3/css3/_inline-block";
|
3 |
+
@import "css3/css3/_opacity";
|
4 |
+
@import "css3/css3/_box-shadow";
|
5 |
+
@import "css3/css3/_text-shadow";
|
6 |
+
@import "css3/css3/_columns";
|
7 |
+
@import "css3/css3/_box-sizing";
|
8 |
+
@import "css3/css3/_box";
|
9 |
+
@import "css3/css3/_images";
|
10 |
+
@import "css3/css3/_background-clip";
|
11 |
+
@import "css3/css3/_background-origin";
|
12 |
+
@import "css3/css3/_background-size";
|
13 |
+
@import "css3/css3/_font-face";
|
14 |
+
@import "css3/css3/_transform";
|
15 |
+
@import "css3/css3/_transition";
|
16 |
+
@import "css3/css3/_appearance";
|
17 |
+
@import "css3/css3/_regions";
|
18 |
+
@import "css3/css3/_hyphenation";
|
19 |
+
@import "css3/css3/_filter";
|
20 |
+
@import "css3/css3/_user-interface";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/_layout.scss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
@import "layout/layout/_grid-background";
|
2 |
+
@import "layout/layout/_sticky-footer";
|
3 |
+
@import "layout/layout/_stretching";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/_reset-legacy.scss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
@import "reset/reset/_utilities-legacy";
|
2 |
+
|
3 |
+
@include global-reset;
|
lib/phpsass/Extensions/Compass/stylesheets/compass/_reset.scss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
@import "reset/reset/_utilities";
|
2 |
+
|
3 |
+
@include global-reset;
|
lib/phpsass/Extensions/Compass/stylesheets/compass/_support.scss
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Usually compass hacks apply to both ie6 & 7 -- set this to false to disable support for both.
|
2 |
+
$legacy-support-for-ie: true !default;
|
3 |
+
|
4 |
+
// Setting this to false will result in smaller output, but no support for ie6 hacks
|
5 |
+
$legacy-support-for-ie6: $legacy-support-for-ie !default;
|
6 |
+
|
7 |
+
// Setting this to false will result in smaller output, but no support for ie7 hacks
|
8 |
+
$legacy-support-for-ie7: $legacy-support-for-ie !default;
|
9 |
+
|
10 |
+
// Setting this to false will result in smaller output, but no support for legacy ie8 hacks
|
11 |
+
$legacy-support-for-ie8: $legacy-support-for-ie !default;
|
12 |
+
|
13 |
+
// @private
|
14 |
+
// The user can simply set $legacy-support-for-ie and 6, 7, and 8 will be set accordingly,
|
15 |
+
// But in case the user set each of those explicitly, we need to sync the value of
|
16 |
+
// this combined variable.
|
17 |
+
$legacy-support-for-ie: $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8;
|
18 |
+
|
19 |
+
// Whether to output legacy support for mozilla.
|
20 |
+
// Usually this means hacks to support Firefox 3.6 or earlier.
|
21 |
+
$legacy-support-for-mozilla: true;
|
22 |
+
|
23 |
+
// Support for mozilla in experimental css3 properties (-moz).
|
24 |
+
$experimental-support-for-mozilla: true !default;
|
25 |
+
// Support for webkit in experimental css3 properties (-webkit).
|
26 |
+
$experimental-support-for-webkit: true !default;
|
27 |
+
// Support for webkit's original (non-standard) gradient syntax.
|
28 |
+
$support-for-original-webkit-gradients: true !default;
|
29 |
+
// Support for opera in experimental css3 properties (-o).
|
30 |
+
$experimental-support-for-opera: true !default;
|
31 |
+
// Support for microsoft in experimental css3 properties (-ms).
|
32 |
+
$experimental-support-for-microsoft: true !default;
|
33 |
+
// Support for khtml in experimental css3 properties (-khtml).
|
34 |
+
$experimental-support-for-khtml: false !default;
|
35 |
+
// Support for svg in experimental css3 properties.
|
36 |
+
// Setting this to true might add significant size to your
|
37 |
+
// generated stylesheets.
|
38 |
+
$experimental-support-for-svg: false !default;
|
39 |
+
// Support for CSS PIE in experimental css3 properties (-pie).
|
40 |
+
$experimental-support-for-pie: false !default;
|
lib/phpsass/Extensions/Compass/stylesheets/compass/_typography.scss
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
@import "typography/typography/_links";
|
2 |
+
@import "typography/typography/lists";
|
3 |
+
@import "typography/typography/_text";
|
4 |
+
@import "typography/typography/_vertical_rhythm";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/_utilities.scss
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "utilities/utilities/_color";
|
2 |
+
@import "utilities/utilities/_general";
|
3 |
+
@import "utilities/utilities/_sprites";
|
4 |
+
@import "utilities/utilities/tables";
|
5 |
+
// deprecated
|
6 |
+
@import "typography/typography/_links";
|
7 |
+
@import "typography/typography/lists";
|
8 |
+
@import "typography/typography/_text";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_appearance.scss
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Change the appearance for Mozilla, Webkit and possibly the future.
|
4 |
+
// The appearance property is currently not present in any newer CSS specification.
|
5 |
+
//
|
6 |
+
// There is no official list of accepted values, but you might check these source:
|
7 |
+
//
|
8 |
+
// * [Mozilla](https://developer.mozilla.org/en/CSS/-moz-appearance)
|
9 |
+
// * [Webkit](http://code.google.com/p/webkit-mirror/source/browse/Source/WebCore/css/CSSValueKeywords.in?spec=svnf1aea559dcd025a8946aa7da6e4e8306f5c1b604&r=63c7d1af44430b314233fea342c3ddb2a052e365)
|
10 |
+
// (search for 'appearance' within the page)
|
11 |
+
|
12 |
+
@mixin appearance($ap) {
|
13 |
+
$ap: unquote($ap);
|
14 |
+
@include experimental(appearance, $ap, -moz, -webkit, not -o, not -ms, not -khtml, official);
|
15 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_background-clip.scss
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// The default value is `padding-box` -- the box model used by modern browsers.
|
4 |
+
//
|
5 |
+
// If you wish to do so, you can override the default constant with `border-box`
|
6 |
+
//
|
7 |
+
// To override to the default border-box model, use this code:
|
8 |
+
// $default-background-clip: border-box
|
9 |
+
|
10 |
+
$default-background-clip: padding-box !default;
|
11 |
+
|
12 |
+
// Clip the background (image and color) at the edge of the padding or border.
|
13 |
+
//
|
14 |
+
// Legal Values:
|
15 |
+
//
|
16 |
+
// * padding-box
|
17 |
+
// * border-box
|
18 |
+
// * text
|
19 |
+
|
20 |
+
@mixin background-clip($clip: $default-background-clip) {
|
21 |
+
// webkit and mozilla use the deprecated short [border | padding]
|
22 |
+
$clip: unquote($clip);
|
23 |
+
$deprecated: $clip;
|
24 |
+
@if $clip == padding-box {
|
25 |
+
$deprecated: padding;
|
26 |
+
}
|
27 |
+
@if $clip == border-box {
|
28 |
+
$deprecated: border;
|
29 |
+
}
|
30 |
+
// Support for webkit and mozilla's use of the deprecated short form
|
31 |
+
@include experimental(background-clip, $deprecated, -moz, -webkit, not -o, not -ms, not -khtml, not official);
|
32 |
+
@include experimental(background-clip, $clip, not -moz, not -webkit, not -o, not -ms, -khtml, official);
|
33 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_background-origin.scss
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Override `$default-background-origin` to change the default.
|
2 |
+
|
3 |
+
@import "shared";
|
4 |
+
|
5 |
+
$default-background-origin: content-box !default;
|
6 |
+
|
7 |
+
// Position the background off the edge of the padding, border or content
|
8 |
+
//
|
9 |
+
// * Possible values:
|
10 |
+
// * `padding-box`
|
11 |
+
// * `border-box`
|
12 |
+
// * `content-box`
|
13 |
+
// * browser defaults to `padding-box`
|
14 |
+
// * mixin defaults to `content-box`
|
15 |
+
|
16 |
+
@mixin background-origin($origin: $default-background-origin) {
|
17 |
+
$origin: unquote($origin);
|
18 |
+
// webkit and mozilla use the deprecated short [border | padding | content]
|
19 |
+
$deprecated: $origin;
|
20 |
+
@if $origin == padding-box {
|
21 |
+
$deprecated: padding;
|
22 |
+
}
|
23 |
+
@if $origin == border-box {
|
24 |
+
$deprecated: border;
|
25 |
+
}
|
26 |
+
@if $origin == content-box {
|
27 |
+
$deprecated: content;
|
28 |
+
}
|
29 |
+
|
30 |
+
// Support for webkit and mozilla's use of the deprecated short form
|
31 |
+
@include experimental(background-origin, $deprecated, -moz, -webkit, not -o, not -ms, not -khtml, not official);
|
32 |
+
@include experimental(background-origin, $origin, not -moz, not -webkit, -o, -ms, -khtml, official);
|
33 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_background-size.scss
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// override to change the default
|
4 |
+
$default-background-size: 100% auto !default;
|
5 |
+
|
6 |
+
// Set the size of background images using px, width and height, or percentages.
|
7 |
+
// Currently supported in: Opera, Gecko, Webkit.
|
8 |
+
//
|
9 |
+
// * percentages are relative to the background-origin (default = padding-box)
|
10 |
+
// * mixin defaults to: `$default-background-size`
|
11 |
+
@mixin background-size($size-1: $default-background-size,
|
12 |
+
$size-2: false,
|
13 |
+
$size-3: false,
|
14 |
+
$size-4: false,
|
15 |
+
$size-5: false,
|
16 |
+
$size-6: false,
|
17 |
+
$size-7: false,
|
18 |
+
$size-8: false,
|
19 |
+
$size-9: false,
|
20 |
+
$size-10: false) {
|
21 |
+
$size-1: if(type-of($size-1) == string, unquote($size-1), $size-1);
|
22 |
+
$sizes: compact($size-1, $size-2, $size-3, $size-4, $size-5, $size-6, $size-7, $size-8, $size-9, $size-10);
|
23 |
+
@include experimental(background-size, $sizes, -moz, -webkit, -o, not -ms, not -khtml);
|
24 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_border-radius.scss
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
$default-border-radius: 5px !default;
|
4 |
+
|
5 |
+
// Round all corners by a specific amount, defaults to value of `$default-border-radius`.
|
6 |
+
//
|
7 |
+
// When two values are passed, the first is the horizontal radius
|
8 |
+
// and the second is the vertical radius.
|
9 |
+
//
|
10 |
+
// Note: webkit does not support shorthand syntax for several corners at once.
|
11 |
+
// So in the case where you pass several values only the first will be passed to webkit.
|
12 |
+
//
|
13 |
+
// Examples:
|
14 |
+
//
|
15 |
+
// .simple { @include border-radius(4px, 4px); }
|
16 |
+
// .compound { @include border-radius(2px 5px, 3px 6px); }
|
17 |
+
// .crazy { @include border-radius(1px 3px 5px 7px, 2px 4px 6px 8px)}
|
18 |
+
//
|
19 |
+
// Which generates:
|
20 |
+
//
|
21 |
+
// .simple {
|
22 |
+
// -webkit-border-radius: 4px 4px;
|
23 |
+
// -moz-border-radius: 4px / 4px;
|
24 |
+
// -khtml-border-radius: 4px / 4px;
|
25 |
+
// border-radius: 4px / 4px; }
|
26 |
+
//
|
27 |
+
// .compound {
|
28 |
+
// -webkit-border-radius: 2px 3px;
|
29 |
+
// -moz-border-radius: 2px 5px / 3px 6px;
|
30 |
+
// -khtml-border-radius: 2px 5px / 3px 6px;
|
31 |
+
// border-radius: 2px 5px / 3px 6px; }
|
32 |
+
//
|
33 |
+
// .crazy {
|
34 |
+
// -webkit-border-radius: 1px 2px;
|
35 |
+
// -moz-border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px;
|
36 |
+
// -khtml-border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px;
|
37 |
+
// border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px; }
|
38 |
+
|
39 |
+
@mixin border-radius($radius: $default-border-radius, $vertical-radius: false) {
|
40 |
+
|
41 |
+
@if $vertical-radius {
|
42 |
+
// Webkit doesn't understand the official shorthand syntax for specifying
|
43 |
+
// a vertical radius unless so in case there's several we only take the first.
|
44 |
+
@include experimental(border-radius, first-value-of($radius) first-value-of($vertical-radius), not -moz, -webkit, not -o, not -ms, not -khtml, not official);
|
45 |
+
@include experimental("border-radius", $radius unquote("/") $vertical-radius, -moz, not -webkit, not -o, not -ms, -khtml, official);
|
46 |
+
} @else {
|
47 |
+
@include experimental(border-radius, $radius);
|
48 |
+
}
|
49 |
+
}
|
50 |
+
|
51 |
+
// Round radius at position by amount.
|
52 |
+
//
|
53 |
+
// * legal values for `$vert`: `top`, `bottom`
|
54 |
+
// * legal values for `$horz`: `left`, `right`
|
55 |
+
|
56 |
+
@mixin border-corner-radius($vert, $horz, $radius: $default-border-radius) {
|
57 |
+
// Support for mozilla's syntax for specifying a corner
|
58 |
+
@include experimental("border-radius-#{$vert}#{$horz}", $radius, -moz, not -webkit, not -o, not -ms, not -khtml, not official);
|
59 |
+
@include experimental("border-#{$vert}-#{$horz}-radius", $radius, not -moz, -webkit, not -o, not -ms, -khtml, official);
|
60 |
+
|
61 |
+
}
|
62 |
+
|
63 |
+
// Round top-left corner only
|
64 |
+
|
65 |
+
@mixin border-top-left-radius($radius: $default-border-radius) {
|
66 |
+
@include border-corner-radius(top, left, $radius);
|
67 |
+
}
|
68 |
+
|
69 |
+
// Round top-right corner only
|
70 |
+
|
71 |
+
@mixin border-top-right-radius($radius: $default-border-radius) {
|
72 |
+
@include border-corner-radius(top, right, $radius);
|
73 |
+
}
|
74 |
+
|
75 |
+
// Round bottom-left corner only
|
76 |
+
|
77 |
+
@mixin border-bottom-left-radius($radius: $default-border-radius) {
|
78 |
+
@include border-corner-radius(bottom, left, $radius);
|
79 |
+
}
|
80 |
+
|
81 |
+
// Round bottom-right corner only
|
82 |
+
|
83 |
+
@mixin border-bottom-right-radius($radius: $default-border-radius) {
|
84 |
+
@include border-corner-radius(bottom, right, $radius);
|
85 |
+
}
|
86 |
+
|
87 |
+
// Round both top corners by amount
|
88 |
+
@mixin border-top-radius($radius: $default-border-radius) {
|
89 |
+
@include border-top-left-radius($radius);
|
90 |
+
@include border-top-right-radius($radius);
|
91 |
+
}
|
92 |
+
|
93 |
+
// Round both right corners by amount
|
94 |
+
@mixin border-right-radius($radius: $default-border-radius) {
|
95 |
+
@include border-top-right-radius($radius);
|
96 |
+
@include border-bottom-right-radius($radius);
|
97 |
+
}
|
98 |
+
|
99 |
+
// Round both bottom corners by amount
|
100 |
+
@mixin border-bottom-radius($radius: $default-border-radius) {
|
101 |
+
@include border-bottom-left-radius($radius);
|
102 |
+
@include border-bottom-right-radius($radius);
|
103 |
+
}
|
104 |
+
|
105 |
+
// Round both left corners by amount
|
106 |
+
@mixin border-left-radius($radius: $default-border-radius) {
|
107 |
+
@include border-top-left-radius($radius);
|
108 |
+
@include border-bottom-left-radius($radius);
|
109 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_box-shadow.scss
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// @doc off
|
2 |
+
// These defaults make the arguments optional for this mixin
|
3 |
+
// If you like, set different defaults before importing.
|
4 |
+
// @doc on
|
5 |
+
|
6 |
+
@import "shared";
|
7 |
+
|
8 |
+
// The default color for box shadows
|
9 |
+
$default-box-shadow-color: #333333 !default;
|
10 |
+
|
11 |
+
// The default horizontal offset. Positive is to the right.
|
12 |
+
$default-box-shadow-h-offset: 0px !default;
|
13 |
+
|
14 |
+
// The default vertical offset. Positive is down.
|
15 |
+
$default-box-shadow-v-offset: 0px !default;
|
16 |
+
|
17 |
+
// The default blur length.
|
18 |
+
$default-box-shadow-blur: 5px !default;
|
19 |
+
|
20 |
+
// The default spread length.
|
21 |
+
$default-box-shadow-spread: false !default;
|
22 |
+
|
23 |
+
// The default shadow inset: inset or false (for standard shadow).
|
24 |
+
$default-box-shadow-inset: false !default;
|
25 |
+
|
26 |
+
// Provides cross-browser for Webkit, Gecko, and CSS3 box shadows when one or more box
|
27 |
+
// shadows are needed.
|
28 |
+
// Each shadow argument should adhere to the standard css3 syntax for the
|
29 |
+
// box-shadow property.
|
30 |
+
@mixin box-shadow($shadow-1: default,
|
31 |
+
$shadow-2: false,
|
32 |
+
$shadow-3: false,
|
33 |
+
$shadow-4: false,
|
34 |
+
$shadow-5: false,
|
35 |
+
$shadow-6: false,
|
36 |
+
$shadow-7: false,
|
37 |
+
$shadow-8: false,
|
38 |
+
$shadow-9: false,
|
39 |
+
$shadow-10: false) {
|
40 |
+
@if $shadow-1 == default {
|
41 |
+
$shadow-1: -compass-space-list(compact(if($default-box-shadow-inset, inset, false), $default-box-shadow-h-offset, $default-box-shadow-v-offset, $default-box-shadow-blur, $default-box-shadow-spread, $default-box-shadow-color));
|
42 |
+
}
|
43 |
+
$shadow: compact($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10);
|
44 |
+
@include experimental(box-shadow, $shadow, -moz, -webkit, not -o, not -ms, not -khtml, official);
|
45 |
+
}
|
46 |
+
|
47 |
+
// Provides a single cross-browser CSS box shadow for Webkit, Gecko, and CSS3.
|
48 |
+
// Includes default arguments for color, horizontal offset, vertical offset, blur length, spread length, and inset.
|
49 |
+
@mixin single-box-shadow($color: $default-box-shadow-color,
|
50 |
+
$hoff: $default-box-shadow-h-offset,
|
51 |
+
$voff: $default-box-shadow-v-offset,
|
52 |
+
$blur: $default-box-shadow-blur,
|
53 |
+
$spread: $default-box-shadow-spread,
|
54 |
+
$inset: $default-box-shadow-inset) {
|
55 |
+
@if not ($inset == true or $inset == false or $inset == inset) {
|
56 |
+
@warn "$inset expected to be true or the inset keyword. Got #{$inset} instead. Using: inset";
|
57 |
+
}
|
58 |
+
|
59 |
+
@if $color == none {
|
60 |
+
@include box-shadow(none);
|
61 |
+
} @else {
|
62 |
+
$full: $hoff $voff;
|
63 |
+
@if $blur {
|
64 |
+
$full: $full $blur;
|
65 |
+
}
|
66 |
+
@if $spread {
|
67 |
+
$full: $full $spread;
|
68 |
+
}
|
69 |
+
@if $color {
|
70 |
+
$full: $full $color;
|
71 |
+
}
|
72 |
+
@if $inset {
|
73 |
+
$full: inset $full;
|
74 |
+
}
|
75 |
+
@include box-shadow($full);
|
76 |
+
}
|
77 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_box-sizing.scss
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Change the box model for Mozilla, Webkit, IE8 and the future
|
4 |
+
//
|
5 |
+
// @param $bs
|
6 |
+
// [ content-box | border-box ]
|
7 |
+
|
8 |
+
@mixin box-sizing($bs) {
|
9 |
+
$bs: unquote($bs);
|
10 |
+
@include experimental(box-sizing, $bs, -moz, -webkit, not -o, not -ms, not -khtml, official);
|
11 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_box.scss
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// display:box; must be used for any of the other flexbox mixins to work properly
|
4 |
+
@mixin display-box {
|
5 |
+
@include experimental-value(display, box, -moz, -webkit, not -o, -ms, not -khtml, official);
|
6 |
+
}
|
7 |
+
|
8 |
+
// Default box orientation, assuming that the user wants something less block-like
|
9 |
+
$default-box-orient: horizontal !default;
|
10 |
+
|
11 |
+
// Box orientation [ horizontal | vertical | inline-axis | block-axis | inherit ]
|
12 |
+
@mixin box-orient($orientation: $default-box-orient) {
|
13 |
+
$orientation: unquote($orientation);
|
14 |
+
@include experimental(box-orient, $orientation, -moz, -webkit, not -o, -ms, not -khtml, official);
|
15 |
+
}
|
16 |
+
|
17 |
+
// Default box-align
|
18 |
+
$default-box-align: stretch !default;
|
19 |
+
|
20 |
+
// Box align [ start | end | center | baseline | stretch ]
|
21 |
+
@mixin box-align($alignment: $default-box-align) {
|
22 |
+
$alignment: unquote($alignment);
|
23 |
+
@include experimental(box-align, $alignment, -moz, -webkit, not -o, -ms, not -khtml, official);
|
24 |
+
}
|
25 |
+
|
26 |
+
// Default box flex
|
27 |
+
$default-box-flex: 0 !default;
|
28 |
+
|
29 |
+
// mixin which takes an int argument for box flex. Apply this to the children inside the box.
|
30 |
+
//
|
31 |
+
// For example: "div.display-box > div.child-box" would get the box flex mixin.
|
32 |
+
@mixin box-flex($flex: $default-box-flex) {
|
33 |
+
@include experimental(box-flex, $flex, -moz, -webkit, not -o, -ms, not -khtml, official);
|
34 |
+
}
|
35 |
+
|
36 |
+
// Default flex group
|
37 |
+
$default-box-flex-group: 1 !default;
|
38 |
+
|
39 |
+
// mixin which takes an int argument for flexible grouping
|
40 |
+
@mixin box-flex-group($group: $default-box-flex-group) {
|
41 |
+
@include experimental(box-flex-group, $group, -moz, -webkit, not -o, -ms, not -khtml, official);
|
42 |
+
}
|
43 |
+
|
44 |
+
// default for ordinal group
|
45 |
+
$default-box-ordinal-group: 1 !default;
|
46 |
+
|
47 |
+
// mixin which takes an int argument for ordinal grouping and rearranging the order
|
48 |
+
@mixin box-ordinal-group($group: $default-ordinal-flex-group) {
|
49 |
+
@include experimental(box-ordinal-group, $group, -moz, -webkit, not -o, -ms, not -khtml, official);
|
50 |
+
}
|
51 |
+
|
52 |
+
// Box direction default value
|
53 |
+
$default-box-direction: normal !default;
|
54 |
+
|
55 |
+
// mixin for box-direction [ normal | reverse | inherit ]
|
56 |
+
@mixin box-direction($direction: $default-box-direction) {
|
57 |
+
$direction: unquote($direction);
|
58 |
+
@include experimental(box-direction, $direction, -moz, -webkit, not -o, -ms, not -khtml, official);
|
59 |
+
}
|
60 |
+
|
61 |
+
// default for box lines
|
62 |
+
$default-box-lines: single !default;
|
63 |
+
|
64 |
+
// mixin for box lines [ single | multiple ]
|
65 |
+
@mixin box-lines($lines: $default-box-lines) {
|
66 |
+
$lines: unquote($lines);
|
67 |
+
@include experimental(box-lines, $lines, -moz, -webkit, not -o, -ms, not -khtml, official);
|
68 |
+
}
|
69 |
+
|
70 |
+
// default for box pack
|
71 |
+
$default-box-pack: start !default;
|
72 |
+
|
73 |
+
// mixin for box pack [ start | end | center | justify ]
|
74 |
+
@mixin box-pack($pack: $default-box-pack) {
|
75 |
+
$pack: unquote($pack);
|
76 |
+
@include experimental(box-pack, $pack, -moz, -webkit, not -o, -ms, not -khtml, official);
|
77 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_columns.scss
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Specify the shorthand `columns` property.
|
4 |
+
//
|
5 |
+
// Example:
|
6 |
+
//
|
7 |
+
// @include columns(20em 2)
|
8 |
+
@mixin columns($width-and-count) {
|
9 |
+
@include experimental(columns, $width-and-count, -moz, -webkit, -o, -ms, not -khtml, official);
|
10 |
+
}
|
11 |
+
|
12 |
+
// Specify the number of columns
|
13 |
+
@mixin column-count($count) {
|
14 |
+
@include experimental(column-count, $count, -moz, -webkit, -o, -ms, not -khtml, official);
|
15 |
+
}
|
16 |
+
|
17 |
+
// Specify the gap between columns e.g. `20px`
|
18 |
+
@mixin column-gap($width) {
|
19 |
+
@include experimental(column-gap, $width, -moz, -webkit, -o, -ms, not -khtml, official);
|
20 |
+
}
|
21 |
+
|
22 |
+
// Specify the width of columns e.g. `100px`
|
23 |
+
@mixin column-width($width) {
|
24 |
+
@include experimental(column-width, $width, -moz, -webkit, -o, -ms, not -khtml, official);
|
25 |
+
}
|
26 |
+
|
27 |
+
// Specify the width of the rule between columns e.g. `1px`
|
28 |
+
@mixin column-rule-width($width) {
|
29 |
+
@include experimental(column-rule-width, $width, -moz, -webkit, -o, -ms, not -khtml, official);
|
30 |
+
}
|
31 |
+
|
32 |
+
// Specify the style of the rule between columns e.g. `dotted`.
|
33 |
+
// This works like border-style.
|
34 |
+
@mixin column-rule-style($style) {
|
35 |
+
@include experimental(column-rule-style, unquote($style), -moz, -webkit, -o, -ms, not -khtml, official);
|
36 |
+
}
|
37 |
+
|
38 |
+
// Specify the color of the rule between columns e.g. `blue`.
|
39 |
+
// This works like border-color.
|
40 |
+
@mixin column-rule-color($color) {
|
41 |
+
@include experimental(column-rule-color, $color, -moz, -webkit, -o, -ms, not -khtml, official);
|
42 |
+
}
|
43 |
+
|
44 |
+
// Mixin encompassing all column rule properties
|
45 |
+
// For example:
|
46 |
+
//
|
47 |
+
// @include column-rule(1px, solid, #c00)
|
48 |
+
//
|
49 |
+
// Or the values can be space separated:
|
50 |
+
//
|
51 |
+
// @include column-rule(1px solid #c00)
|
52 |
+
@mixin column-rule($width, $style: false, $color: false) {
|
53 |
+
$full: -compass-space-list(compact($width, $style, $color));
|
54 |
+
@include experimental(column-rule, $full, -moz, -webkit, -o, -ms, not -khtml, official);
|
55 |
+
}
|
56 |
+
|
57 |
+
// Mixin for setting column-break-before
|
58 |
+
//
|
59 |
+
// * legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
|
60 |
+
//
|
61 |
+
// Example:
|
62 |
+
// h2.before {@include column-break-before(always);}
|
63 |
+
//
|
64 |
+
// Which generates:
|
65 |
+
//
|
66 |
+
// h2.before {
|
67 |
+
// -webkit-column-break-before: always;
|
68 |
+
// column-break-before: always;}
|
69 |
+
@mixin column-break-before($value: auto) {
|
70 |
+
@include experimental(column-break-before, $value, not -moz, -webkit, not -o, not -ms, not -khtml, official);
|
71 |
+
}
|
72 |
+
|
73 |
+
// Mixin for setting column-break-after
|
74 |
+
//
|
75 |
+
// * legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
|
76 |
+
//
|
77 |
+
// Example:
|
78 |
+
// h2.after {@include column-break-after(always); }
|
79 |
+
//
|
80 |
+
// Which generates:
|
81 |
+
//
|
82 |
+
// h2.after {
|
83 |
+
// -webkit-column-break-after: always;
|
84 |
+
// column-break-after: always; }
|
85 |
+
@mixin column-break-after($value: auto) {
|
86 |
+
@include experimental(column-break-after, $value, not -moz, -webkit, not -o, not -ms, not -khtml, official);
|
87 |
+
}
|
88 |
+
|
89 |
+
// Mixin for setting column-break-inside
|
90 |
+
//
|
91 |
+
// * legal values are auto, avoid, avoid-page, avoid-column
|
92 |
+
//
|
93 |
+
// Example:
|
94 |
+
// h2.inside {@include column-break-inside();}
|
95 |
+
// Which generates:
|
96 |
+
//
|
97 |
+
// h2.inside {
|
98 |
+
// -webkit-column-break-inside: auto;
|
99 |
+
// column-break-inside: auto;}
|
100 |
+
@mixin column-break-inside($value: auto) {
|
101 |
+
@include experimental(column-break-inside, $value, not -moz, -webkit, not -o, not -ms, not -khtml, official);
|
102 |
+
}
|
103 |
+
|
104 |
+
// All-purpose mixin for setting column breaks.
|
105 |
+
//
|
106 |
+
// * legal values for $type : before, after, inside
|
107 |
+
// * legal values for '$value' are dependent on $type
|
108 |
+
// * when $type = before, legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
|
109 |
+
// * when $type = after, legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
|
110 |
+
// * when $type = inside, legal values are auto, avoid, avoid-page, avoid-column
|
111 |
+
//
|
112 |
+
// Examples:
|
113 |
+
// h2.before {@include column-break(before, always);}
|
114 |
+
// h2.after {@include column-break(after, always); }
|
115 |
+
// h2.inside {@include column-break(inside); }
|
116 |
+
//
|
117 |
+
// Which generates:
|
118 |
+
// h2.before {
|
119 |
+
// -webkit-column-break-before: always;
|
120 |
+
// column-break-before: always;}
|
121 |
+
//
|
122 |
+
// h2.after {
|
123 |
+
// -webkit-column-break-after: always;
|
124 |
+
// column-break-after: always; }
|
125 |
+
//
|
126 |
+
// h2.inside {
|
127 |
+
// -webkit-column-break-inside: auto;
|
128 |
+
// column-break-inside: auto;}
|
129 |
+
|
130 |
+
@mixin column-break($type: before, $value: auto) {
|
131 |
+
@include experimental("column-break-#{$type}", $value, not -moz, -webkit, not -o, not -ms, not -khtml, official);
|
132 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_filter.scss
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Provides cross-browser support for the upcoming (?) css3 filter property.
|
4 |
+
//
|
5 |
+
// Each filter argument should adhere to the standard css3 syntax for the
|
6 |
+
// filter property.
|
7 |
+
@mixin filter
|
8 |
+
|
9 |
+
(
|
10 |
+
$filter-1,
|
11 |
+
$filter-2: false, $filter-3: false, $filter-4: false, $filter-5: false, $filter-6: false, $filter-7: false, $filter-8: false, $filter-9: false, $filter-10: false)
|
12 |
+
{
|
13 |
+
$filter: compact($filter-1, $filter-2, $filter-3, $filter-4, $filter-5, $filter-6, $filter-7, $filter-8, $filter-9, $filter-10);
|
14 |
+
@include experimental(filter, $filter, -moz, -webkit, not -o, not -ms, not -khtml, official);
|
15 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_font-face.scss
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Cross-browser support for @font-face. Supports IE, Gecko, Webkit, Opera.
|
4 |
+
//
|
5 |
+
// * $name is required, arbitrary, and what you will use in font stacks.
|
6 |
+
// * $font-files is required using font-files('relative/location', 'format').
|
7 |
+
// for best results use this order: woff, opentype/truetype, svg
|
8 |
+
// * $eot is required by IE, and is a relative location of the eot file.
|
9 |
+
// * $weight shows if the font is bold, defaults to normal
|
10 |
+
// * $style defaults to normal, might be also italic
|
11 |
+
// * For android 2.2 Compatiblity, please ensure that your web page has
|
12 |
+
// a meta viewport tag.
|
13 |
+
// * To support iOS < 4.2, an SVG file must be provided
|
14 |
+
//
|
15 |
+
// If you need to generate other formats check out the Font Squirrel
|
16 |
+
// [font generator](http://www.fontsquirrel.com/fontface/generator)
|
17 |
+
//
|
18 |
+
|
19 |
+
// In order to refer to a specific style of the font in your stylesheets as
|
20 |
+
// e.g. "font-style: italic;", you may add a couple of @font-face includes
|
21 |
+
// containing the respective font files for each style and specying
|
22 |
+
// respective the $style parameter.
|
23 |
+
|
24 |
+
// Order of the includes matters, and it is: normal, bold, italic, bold+italic.
|
25 |
+
|
26 |
+
@mixin font-face($name,
|
27 |
+
$font-files,
|
28 |
+
$eot: false,
|
29 |
+
$weight: false,
|
30 |
+
$style: false) {
|
31 |
+
$iefont: unquote("#{$eot}?#iefix");
|
32 |
+
@font-face {
|
33 |
+
font-family: quote($name);
|
34 |
+
@if $eot {
|
35 |
+
src: font-url($eot);
|
36 |
+
$font-files: font-url($iefont) unquote("format('eot')"), $font-files;
|
37 |
+
}
|
38 |
+
src: $font-files;
|
39 |
+
@if $weight {
|
40 |
+
font-weight: $weight;
|
41 |
+
}
|
42 |
+
@if $style {
|
43 |
+
font-style: $style;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_hyphenation.scss
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Mixins to support specific CSS Text Level 3 elements
|
4 |
+
//
|
5 |
+
//
|
6 |
+
//
|
7 |
+
// Mixin for word-break properties
|
8 |
+
// http://www.w3.org/css3-text/#word-break
|
9 |
+
// * legal values for $type : normal, keep-all, break-all
|
10 |
+
//
|
11 |
+
// Example:
|
12 |
+
// p.wordBreak {@include word-break(break-all);}
|
13 |
+
//
|
14 |
+
// Which generates:
|
15 |
+
// p.wordBreak {
|
16 |
+
// -ms-word-break: break-all;
|
17 |
+
// word-break: break-all;
|
18 |
+
// word-break: break-word;}
|
19 |
+
//
|
20 |
+
@mixin word-break($value: normal) {
|
21 |
+
@if $value == break-all {
|
22 |
+
//Most browsers handle the break-all case the same...
|
23 |
+
@include experimental(word-break, $value, not -moz, not -webkit, not -o, -ms, not -khtml, official);
|
24 |
+
//Webkit handles break-all differently... as break-word
|
25 |
+
@include experimental(word-break, break-word, not -moz, not -webkit, not -o, not -ms, not -khtml, official);
|
26 |
+
} @else {
|
27 |
+
@include experimental(word-break, $value, not -moz, not -webkit, not -o, -ms, not -khtml, official);
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
// Mixin for the hyphens property
|
32 |
+
//
|
33 |
+
// W3C specification: http://www.w3.org/TR/css3-text/#hyphens
|
34 |
+
// * legal values for $type : auto, manual, none
|
35 |
+
//
|
36 |
+
// Example:
|
37 |
+
// p {
|
38 |
+
// @include hyphens(auto);}
|
39 |
+
// Which generates:
|
40 |
+
// p {
|
41 |
+
// -moz-hyphens: auto;
|
42 |
+
// -webkit-hyphens: auto;
|
43 |
+
// hyphens: auto;}
|
44 |
+
//
|
45 |
+
@mixin hyphens($value: auto) {
|
46 |
+
@include experimental(hyphens, $value, -moz, -webkit, not -o, not -ms, not -khtml, official);
|
47 |
+
}
|
48 |
+
|
49 |
+
// Mixin for x-browser hyphenation based on @auchenberg's post:
|
50 |
+
// Removes the need for the <wbr/> HTML tag
|
51 |
+
// http://blog.kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/
|
52 |
+
//
|
53 |
+
// Example:
|
54 |
+
// div {@include hyphenation;}
|
55 |
+
//
|
56 |
+
// Which generates:
|
57 |
+
// div {
|
58 |
+
// -ms-word-break: break-all;
|
59 |
+
// word-break: break-all;
|
60 |
+
// word-break: break-word;
|
61 |
+
// -moz-hyphens: auto;
|
62 |
+
// -webkit-hyphens: auto;
|
63 |
+
// hyphens: auto;}
|
64 |
+
//
|
65 |
+
@mixin hyphenation {
|
66 |
+
@include word-break(break-all);
|
67 |
+
@include hyphens;
|
68 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_images.scss
ADDED
@@ -0,0 +1,189 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
@import "compass/utilities/general/hacks";
|
3 |
+
|
4 |
+
// Background property support for vendor prefixing within values.
|
5 |
+
@mixin background($background-1,
|
6 |
+
$background-2: false,
|
7 |
+
$background-3: false,
|
8 |
+
$background-4: false,
|
9 |
+
$background-5: false,
|
10 |
+
$background-6: false,
|
11 |
+
$background-7: false,
|
12 |
+
$background-8: false,
|
13 |
+
$background-9: false,
|
14 |
+
$background-10: false) {
|
15 |
+
$backgrounds: compact($background-1, $background-2, $background-3, $background-4, $background-5, $background-6, $background-7, $background-8, $background-9, $background-10);
|
16 |
+
$mult-bgs: -compass-list-size($backgrounds) > 1;
|
17 |
+
$add-pie-bg: prefixed(-pie, $backgrounds) or $mult-bgs;
|
18 |
+
@if $experimental-support-for-svg and prefixed(-svg, $backgrounds) {
|
19 |
+
background: -svg($backgrounds);
|
20 |
+
}
|
21 |
+
@if $support-for-original-webkit-gradients and prefixed(-owg, $backgrounds) {
|
22 |
+
background: -owg($backgrounds);
|
23 |
+
}
|
24 |
+
@if $experimental-support-for-webkit and prefixed(-webkit, $backgrounds) {
|
25 |
+
background: -webkit($backgrounds);
|
26 |
+
}
|
27 |
+
@if $experimental-support-for-mozilla and prefixed(-moz, $backgrounds) {
|
28 |
+
background: -moz($backgrounds);
|
29 |
+
}
|
30 |
+
@if $experimental-support-for-opera and prefixed(-o, $backgrounds) {
|
31 |
+
background: -o($backgrounds);
|
32 |
+
}
|
33 |
+
@if $experimental-support-for-pie and $add-pie-bg {
|
34 |
+
-pie-background: -pie($backgrounds);
|
35 |
+
}
|
36 |
+
background: $backgrounds;
|
37 |
+
}
|
38 |
+
|
39 |
+
@mixin background-with-css2-fallback($background-1,
|
40 |
+
$background-2: false,
|
41 |
+
$background-3: false,
|
42 |
+
$background-4: false,
|
43 |
+
$background-5: false,
|
44 |
+
$background-6: false,
|
45 |
+
$background-7: false,
|
46 |
+
$background-8: false,
|
47 |
+
$background-9: false,
|
48 |
+
$background-10: false) {
|
49 |
+
$backgrounds: compact($background-1, $background-2, $background-3, $background-4, $background-5, $background-6, $background-7, $background-8, $background-9, $background-10);
|
50 |
+
$mult-bgs: -compass-list-size($backgrounds) > 1;
|
51 |
+
$simple-background: if($mult-bgs or prefixed(-css2, $backgrounds), -css2(-compass-nth($backgrounds, last)), false);
|
52 |
+
@if not blank($simple-background) {
|
53 |
+
background: $simple-background;
|
54 |
+
}
|
55 |
+
@include background($background-1, $background-2, $background-3, $background-4, $background-5, $background-6, $background-7, $background-8, $background-9, $background-10);
|
56 |
+
}
|
57 |
+
|
58 |
+
// Background image property support for vendor prefixing within values.
|
59 |
+
@mixin background-image($image-1,
|
60 |
+
$image-2: false,
|
61 |
+
$image-3: false,
|
62 |
+
$image-4: false,
|
63 |
+
$image-5: false,
|
64 |
+
$image-6: false,
|
65 |
+
$image-7: false,
|
66 |
+
$image-8: false,
|
67 |
+
$image-9: false,
|
68 |
+
$image-10: false) {
|
69 |
+
$images: compact($image-1, $image-2, $image-3, $image-4, $image-5, $image-6, $image-7, $image-8, $image-9, $image-10);
|
70 |
+
$add-pie-bg: prefixed(-pie, $images) or -compass-list-size($images) > 1;
|
71 |
+
|
72 |
+
@if $experimental-support-for-svg and prefixed(-svg, $images) {
|
73 |
+
background-image: -svg($images);
|
74 |
+
background-size: 100%;
|
75 |
+
}
|
76 |
+
@if $support-for-original-webkit-gradients and prefixed(-owg, $images) {
|
77 |
+
background-image: -owg($images);
|
78 |
+
}
|
79 |
+
@if $experimental-support-for-webkit and prefixed(-webkit, $images) {
|
80 |
+
background-image: -webkit($images);
|
81 |
+
}
|
82 |
+
@if $experimental-support-for-mozilla and prefixed(-moz, $images) {
|
83 |
+
background-image: -moz($images);
|
84 |
+
}
|
85 |
+
@if $experimental-support-for-opera and prefixed(-o, $images) {
|
86 |
+
background-image: -o($images);
|
87 |
+
}
|
88 |
+
@if $experimental-support-for-pie and $add-pie-bg {
|
89 |
+
@warn "PIE does not support background-image. Use @include background(#{$images}) instead."
|
90 |
+
}
|
91 |
+
background-image: $images;
|
92 |
+
}
|
93 |
+
|
94 |
+
// Emit a IE-Specific filters that renders a simple linear gradient.
|
95 |
+
// For use in IE 6 - 8. Best practice would have you apply this via a
|
96 |
+
// conditional IE stylesheet, but if you must, you should place this before
|
97 |
+
// any background-image properties that you have specified.
|
98 |
+
//
|
99 |
+
// For the `$orientation` parameter, you can pass `vertical` or `horizontal`.
|
100 |
+
@mixin filter-gradient($start-color, $end-color, $orientation: vertical) {
|
101 |
+
@include has-layout;
|
102 |
+
$gradient-type: if($orientation == vertical, 0, 1);
|
103 |
+
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8 {
|
104 |
+
filter: progid:DXImageTransform.Microsoft.gradient
|
105 |
+
(gradientType =#{$gradient-type}, startColorstr = '#{ie-hex-str($start-color)}', endColorstr = '#{ie-hex-str($end-color)}');
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
// Border image property support for vendor prefixing properties and values.
|
110 |
+
@mixin border-image($value) {
|
111 |
+
@if $experimental-support-for-mozilla {
|
112 |
+
-moz-border-image: -moz(reject(-compass-list($value), fill));
|
113 |
+
}
|
114 |
+
@if $support-for-original-webkit-gradients {
|
115 |
+
-webkit-border-image: -owg(reject(-compass-list($value), fill));
|
116 |
+
}
|
117 |
+
@if $experimental-support-for-webkit {
|
118 |
+
-webkit-border-image: -webkit(reject(-compass-list($value), fill));
|
119 |
+
}
|
120 |
+
@if $experimental-support-for-opera {
|
121 |
+
-o-border-image: -o(reject(-compass-list($value), fill));
|
122 |
+
}
|
123 |
+
@if $experimental-support-for-svg {
|
124 |
+
border-image: -svg(reject(-compass-list($value), fill));
|
125 |
+
}
|
126 |
+
border-image: $value;
|
127 |
+
}
|
128 |
+
|
129 |
+
// List style image property support for vendor prefixing within values.
|
130 |
+
@mixin list-style-image($image) {
|
131 |
+
@if $experimental-support-for-mozilla and prefixed(-moz, $image) {
|
132 |
+
list-style-image: -moz($image);
|
133 |
+
}
|
134 |
+
@if $support-for-original-webkit-gradients and prefixed(-owg, $image) {
|
135 |
+
list-style-image: -owg($image);
|
136 |
+
}
|
137 |
+
@if $experimental-support-for-webkit and prefixed(-webkit, $image) {
|
138 |
+
list-style-image: -webkit($image);
|
139 |
+
}
|
140 |
+
@if $experimental-support-for-opera and prefixed(-o, $image) {
|
141 |
+
list-style-image: -o($image);
|
142 |
+
}
|
143 |
+
@if $experimental-support-for-svg and prefixed(-svg, $image) {
|
144 |
+
list-style-image: -svg($image);
|
145 |
+
}
|
146 |
+
list-style-image: $image;
|
147 |
+
}
|
148 |
+
|
149 |
+
// List style property support for vendor prefixing within values.
|
150 |
+
@mixin list-style($value) {
|
151 |
+
$value: -compass-list($value);
|
152 |
+
@if $experimental-support-for-mozilla and prefixed(-moz, $value) {
|
153 |
+
list-style-image: -moz($value);
|
154 |
+
}
|
155 |
+
@if $support-for-original-webkit-gradients and prefixed(-owg, $value) {
|
156 |
+
list-style-image: -owg($value);
|
157 |
+
}
|
158 |
+
@if $experimental-support-for-webkit and prefixed(-webkit, $value) {
|
159 |
+
list-style-image: -webkit($value);
|
160 |
+
}
|
161 |
+
@if $experimental-support-for-opera and prefixed(-o, $value) {
|
162 |
+
list-style-image: -o($value);
|
163 |
+
}
|
164 |
+
@if $experimental-support-for-svg and prefixed(-svg, $value) {
|
165 |
+
list-style-image: -svg($value);
|
166 |
+
}
|
167 |
+
list-style-image: $value;
|
168 |
+
}
|
169 |
+
|
170 |
+
// content property support for vendor prefixing within values.
|
171 |
+
@mixin content($value) {
|
172 |
+
$value: -compass-list($value);
|
173 |
+
@if $experimental-support-for-mozilla and prefixed(-moz, $value) {
|
174 |
+
content: -moz($value);
|
175 |
+
}
|
176 |
+
@if $support-for-original-webkit-gradients and prefixed(-owg, $value) {
|
177 |
+
content: -owg($value);
|
178 |
+
}
|
179 |
+
@if $experimental-support-for-webkit and prefixed(-webkit, $value) {
|
180 |
+
content: -webkit($value);
|
181 |
+
}
|
182 |
+
@if $experimental-support-for-opera and prefixed(-o, $value) {
|
183 |
+
content: -o($value);
|
184 |
+
}
|
185 |
+
@if $experimental-support-for-svg and prefixed(-svg, $value) {
|
186 |
+
content: -svg($value);
|
187 |
+
}
|
188 |
+
content: $value;
|
189 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_inline-block.scss
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Set `$inline-block-alignment` to `none` or `false` to disable the output
|
4 |
+
// of a vertical-align property in the inline-block mixin.
|
5 |
+
// Or set it to a legal value for `vertical-align` to change the default.
|
6 |
+
$inline-block-alignment: middle !default;
|
7 |
+
|
8 |
+
// Provides a cross-browser method to implement `display: inline-block;`
|
9 |
+
@mixin inline-block($alignment: $inline-block-alignment) {
|
10 |
+
@if $legacy-support-for-mozilla {
|
11 |
+
display: -moz-inline-stack;
|
12 |
+
}
|
13 |
+
display: inline-block;
|
14 |
+
@if $alignment and $alignment != none {
|
15 |
+
vertical-align: $alignment;
|
16 |
+
}
|
17 |
+
@if $legacy-support-for-ie {
|
18 |
+
*vertical-align: auto;
|
19 |
+
zoom: 1;
|
20 |
+
*display: inline;
|
21 |
+
}
|
22 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_opacity.scss
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Provides cross-browser CSS opacity. Takes a number between 0 and 1 as the argument, e.g. 0.5 for 50% opacity.
|
4 |
+
//
|
5 |
+
// @param $opacity
|
6 |
+
// A number between 0 and 1, where 0 is transparent and 1 is opaque.
|
7 |
+
|
8 |
+
@mixin opacity($opacity) {
|
9 |
+
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8 {
|
10 |
+
filter: unquote("progid:DXImageTransform.Microsoft.Alpha(Opacity=#{round($opacity * 100)})");
|
11 |
+
}
|
12 |
+
opacity: $opacity;
|
13 |
+
}
|
14 |
+
|
15 |
+
// Make an element completely transparent.
|
16 |
+
@mixin transparent {
|
17 |
+
@include opacity(0);
|
18 |
+
}
|
19 |
+
|
20 |
+
// Make an element completely opaque.
|
21 |
+
@mixin opaque {
|
22 |
+
@include opacity(1);
|
23 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_pie.scss
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
$experimental-support-for-pie: true;
|
2 |
+
|
3 |
+
// It is recommended that you use Sass's @extend directive to apply the behavior
|
4 |
+
// to your PIE elements. To assist you, Compass provides this variable.
|
5 |
+
// When set, it will cause the `@include pie` mixin to extend this class.
|
6 |
+
// The class name you provide should **not** include the `.`.
|
7 |
+
$pie-base-class: false !default;
|
8 |
+
|
9 |
+
// The default approach to using PIE.
|
10 |
+
// Can be one of:
|
11 |
+
//
|
12 |
+
// * relative (default)
|
13 |
+
// * z-index
|
14 |
+
// * none
|
15 |
+
$pie-default-approach: relative !default;
|
16 |
+
|
17 |
+
// The location of your PIE behavior file
|
18 |
+
// This should be root-relative to your web server
|
19 |
+
// relative assets don't work. It is recommended that
|
20 |
+
// you set this yourself.
|
21 |
+
$pie-behavior: stylesheet-url("PIE.htc") !default;
|
22 |
+
|
23 |
+
// When using the z-index approach, the
|
24 |
+
// first ancestor of the PIE element at
|
25 |
+
// or before the container's opaque background
|
26 |
+
// should have a z-index set as well to ensure
|
27 |
+
// propert z-index stacking.
|
28 |
+
//
|
29 |
+
// The `$position` argument must be some non-static
|
30 |
+
// value (absolute, relative, etc.)
|
31 |
+
@mixin pie-container($z-index: 0, $position: relative) {
|
32 |
+
z-index: $z-index;
|
33 |
+
position: $position;
|
34 |
+
}
|
35 |
+
|
36 |
+
// PIE elements must have this behavior attached to them.
|
37 |
+
// IE is broken -- it doesn't think of behavior urls as
|
38 |
+
// relative to the stylesheet. It considers them relative
|
39 |
+
// to the webpage. As a result, you cannot reliably use
|
40 |
+
// compass's relative_assets with PIE.
|
41 |
+
//
|
42 |
+
// * `$approach` - one of: relative, z-index, or none
|
43 |
+
// * `$z-index` - when using the z-index approach, this
|
44 |
+
// is the z-index that is applied.
|
45 |
+
@mixin pie-element($approach: $pie-default-approach,
|
46 |
+
$z-index: 0) {
|
47 |
+
behavior: $pie-behavior;
|
48 |
+
@if $approach == relative {
|
49 |
+
position: relative;
|
50 |
+
} @else if $approach == z-index {
|
51 |
+
z-index: $z-index;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
// a smart mixin that knows to extend or include pie-element according
|
56 |
+
// to your stylesheet's configuration variables.
|
57 |
+
@mixin pie($base-class: $pie-base-class) {
|
58 |
+
@if $base-class {
|
59 |
+
@extend .#{$base-class};
|
60 |
+
} @else {
|
61 |
+
@include pie-element;
|
62 |
+
}
|
63 |
+
}
|
64 |
+
|
65 |
+
// Watch `$n` levels of ancestors for changes to their class attribute
|
66 |
+
// So that cascading styles will work correctly on the PIE element.
|
67 |
+
@mixin pie-watch-ancestors($n) {
|
68 |
+
-pie-watch-ancestors: $n;
|
69 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_regions.scss
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// Webkit, IE10 and future support for [CSS Regions](http://dev.w3.org/csswg/css3-regions/)
|
4 |
+
//
|
5 |
+
// $target is a value you use to link two regions of your css. Give the source of your content the flow-into property, and give your target container the flow-from property.
|
6 |
+
//
|
7 |
+
// For a visual explanation, see the diagrams at Chris Coyier's
|
8 |
+
// [CSS-Tricks](http://css-tricks.com/content-folding/)
|
9 |
+
|
10 |
+
@mixin flow-into($target) {
|
11 |
+
$target: unquote($target);
|
12 |
+
@include experimental(flow-into, $target, not -moz, -webkit, not -o, -ms, not -khtml, not official);
|
13 |
+
}
|
14 |
+
|
15 |
+
@mixin flow-from($target) {
|
16 |
+
$target: unquote($target);
|
17 |
+
@include experimental(flow-from, $target, not -moz, -webkit, not -o, -ms, not -khtml, not official);
|
18 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_shared.scss
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "compass/support";
|
2 |
+
|
3 |
+
// This mixin provides basic support for CSS3 properties and
|
4 |
+
// their corresponding experimental CSS2 properties when
|
5 |
+
// the implementations are identical except for the property
|
6 |
+
// prefix.
|
7 |
+
@mixin experimental($property, $value,
|
8 |
+
$moz: $experimental-support-for-mozilla,
|
9 |
+
$webkit: $experimental-support-for-webkit,
|
10 |
+
$o: $experimental-support-for-opera,
|
11 |
+
$ms: $experimental-support-for-microsoft,
|
12 |
+
$khtml: $experimental-support-for-khtml,
|
13 |
+
$official: true) {
|
14 |
+
@if $webkit and $experimental-support-for-webkit {
|
15 |
+
-webkit-#{$property} : $value;
|
16 |
+
}
|
17 |
+
@if $khtml and $experimental-support-for-khtml {
|
18 |
+
-khtml-#{$property} : $value;
|
19 |
+
}
|
20 |
+
@if $moz and $experimental-support-for-mozilla {
|
21 |
+
-moz-#{$property} : $value;
|
22 |
+
}
|
23 |
+
@if $ms and $experimental-support-for-microsoft {
|
24 |
+
-ms-#{$property} : $value;
|
25 |
+
}
|
26 |
+
@if $o and $experimental-support-for-opera {
|
27 |
+
-o-#{$property} : $value;
|
28 |
+
}
|
29 |
+
@if $official {
|
30 |
+
#{$property} : $value;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
// Same as experimental(), but for cases when the property is the same and the value is vendorized
|
35 |
+
@mixin experimental-value($property, $value,
|
36 |
+
$moz: $experimental-support-for-mozilla,
|
37 |
+
$webkit: $experimental-support-for-webkit,
|
38 |
+
$o: $experimental-support-for-opera,
|
39 |
+
$ms: $experimental-support-for-microsoft,
|
40 |
+
$khtml: $experimental-support-for-khtml,
|
41 |
+
$official: true) {
|
42 |
+
@if $webkit and $experimental-support-for-webkit {
|
43 |
+
#{$property} : -webkit-#{$value};
|
44 |
+
}
|
45 |
+
@if $khtml and $experimental-support-for-khtml {
|
46 |
+
#{$property} : -khtml-#{$value};
|
47 |
+
}
|
48 |
+
@if $moz and $experimental-support-for-mozilla {
|
49 |
+
#{$property} : -moz-#{$value};
|
50 |
+
}
|
51 |
+
@if $ms and $experimental-support-for-microsoft {
|
52 |
+
#{$property} : -ms-#{$value};
|
53 |
+
}
|
54 |
+
@if $o and $experimental-support-for-opera {
|
55 |
+
#{$property} : -o-#{$value};
|
56 |
+
}
|
57 |
+
@if $official {
|
58 |
+
#{$property} : #{$value};
|
59 |
+
}
|
60 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_text-shadow.scss
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// These defaults make the arguments optional for this mixin
|
4 |
+
// If you like, set different defaults in your project
|
5 |
+
|
6 |
+
$default-text-shadow-color: #aaa !default;
|
7 |
+
$default-text-shadow-h-offset: 0px !default;
|
8 |
+
$default-text-shadow-v-offset: 0px !default;
|
9 |
+
$default-text-shadow-blur: 1px !default;
|
10 |
+
$default-text-shadow-spread: false !default;
|
11 |
+
|
12 |
+
// Provides cross-browser text shadows when one or more shadows are needed.
|
13 |
+
// Each shadow argument should adhere to the standard css3 syntax for the
|
14 |
+
// text-shadow property.
|
15 |
+
//
|
16 |
+
// Note: if any shadow has a spread parameter, this will cause the mixin
|
17 |
+
// to emit the shadow declaration twice, first without the spread,
|
18 |
+
// then with the spread included. This allows you to progressively
|
19 |
+
// enhance the browsers that do support the spread parameter.
|
20 |
+
@mixin text-shadow($shadow-1: default,
|
21 |
+
$shadow-2: false,
|
22 |
+
$shadow-3: false,
|
23 |
+
$shadow-4: false,
|
24 |
+
$shadow-5: false,
|
25 |
+
$shadow-6: false,
|
26 |
+
$shadow-7: false,
|
27 |
+
$shadow-8: false,
|
28 |
+
$shadow-9: false,
|
29 |
+
$shadow-10: false) {
|
30 |
+
@if $shadow-1 == default {
|
31 |
+
$shadow-1: compact($default-text-shadow-h-offset $default-text-shadow-v-offset $default-text-shadow-blur $default-text-shadow-spread $default-text-shadow-color);
|
32 |
+
}
|
33 |
+
$shadows-without-spread: join((),(), comma);
|
34 |
+
$shadows: join((),(), comma);
|
35 |
+
$has-spread: false;
|
36 |
+
@each $shadow in compact($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10) {
|
37 |
+
@if length($shadow) > 4 {
|
38 |
+
$has-spread: true;
|
39 |
+
$shadows-without-spread: append($shadows-without-spread, nth($shadow, 1) nth($shadow, 2) nth($shadow, 3) nth($shadow, 5));
|
40 |
+
$shadows: append($shadows, $shadow);
|
41 |
+
}
|
42 |
+
else {
|
43 |
+
$shadows-without-spread: append($shadows-without-spread, $shadow);
|
44 |
+
$shadows: append($shadows, $shadow);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
@if $has-spread {
|
48 |
+
text-shadow: $shadows-without-spread;
|
49 |
+
}
|
50 |
+
text-shadow: $shadows;
|
51 |
+
}
|
52 |
+
|
53 |
+
// Provides a single cross-browser CSS text shadow.
|
54 |
+
//
|
55 |
+
// Provides sensible defaults for the color, horizontal offset, vertical offset, blur, and spread
|
56 |
+
// according to the configuration defaults above.
|
57 |
+
@mixin single-text-shadow($hoff: false,
|
58 |
+
$voff: false,
|
59 |
+
$blur: false,
|
60 |
+
$spread: false,
|
61 |
+
$color: false) {
|
62 |
+
// A lot of people think the color comes first. It doesn't.
|
63 |
+
@if type-of($hoff) == color {
|
64 |
+
$temp-color: $hoff;
|
65 |
+
$hoff: $voff;
|
66 |
+
$voff: $blur;
|
67 |
+
$blur: $spread;
|
68 |
+
$spread: $color;
|
69 |
+
$color: $temp-color;
|
70 |
+
}
|
71 |
+
// Can't rely on default assignment with multiple supported argument orders.
|
72 |
+
$hoff: if($hoff, $hoff, $default-text-shadow-h-offset);
|
73 |
+
$voff: if($voff, $voff, $default-text-shadow-v-offset);
|
74 |
+
$blur: if($blur, $blur, $default-text-shadow-blur);
|
75 |
+
$spread: if($spread, $spread, $default-text-shadow-spread);
|
76 |
+
$color: if($color, $color, $default-text-shadow-color);
|
77 |
+
// We don't need experimental support for this property.
|
78 |
+
@if $color == none or $hoff == none {
|
79 |
+
@include text-shadow(none);
|
80 |
+
} @else {
|
81 |
+
@include text-shadow(compact($hoff $voff $blur $spread $color));
|
82 |
+
}
|
83 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_transform-legacy.scss
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
@warn "This version of the transform module has been deprecated and will be removed.";
|
4 |
+
|
5 |
+
// CSS Transform and Transform-Origin
|
6 |
+
|
7 |
+
// Apply a transform sent as a complete string.
|
8 |
+
|
9 |
+
@mixin apply-transform($transform) {
|
10 |
+
@include experimental(transform, $transform, -moz, -webkit, -o, not -ms, not -khtml, official);
|
11 |
+
}
|
12 |
+
|
13 |
+
// Apply a transform-origin sent as a complete string.
|
14 |
+
|
15 |
+
@mixin apply-origin($origin) {
|
16 |
+
@include experimental(transform-origin, $origin, -moz, -webkit, -o, not -ms, not -khtml, official);
|
17 |
+
}
|
18 |
+
|
19 |
+
// transform-origin requires x and y coordinates
|
20 |
+
//
|
21 |
+
// * only applies the coordinates if they are there so that it can be called by scale, rotate and skew safely
|
22 |
+
|
23 |
+
@mixin transform-origin($originx: 50%, $originy: 50%) {
|
24 |
+
@if $originx or $originy {
|
25 |
+
@if $originy {
|
26 |
+
@include apply-origin($originx or 50% $originy);
|
27 |
+
} @else {
|
28 |
+
@include apply-origin($originx);
|
29 |
+
}
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
// A full transform mixin with everything you could want
|
34 |
+
//
|
35 |
+
// * including origin adjustments if you want them
|
36 |
+
// * scale, rotate and skew require units of degrees(deg)
|
37 |
+
// * scale takes a multiplier, rotate and skew take degrees
|
38 |
+
|
39 |
+
@mixin transform($scale: 1,
|
40 |
+
$rotate: 0deg,
|
41 |
+
$transx: 0,
|
42 |
+
$transy: 0,
|
43 |
+
$skewx: 0deg,
|
44 |
+
$skewy: 0deg,
|
45 |
+
$originx: false,
|
46 |
+
$originy: false) {
|
47 |
+
$transform: scale($scale) rotate($rotate) translate($transx, $transy) skew($skewx, $skewy);
|
48 |
+
@include apply-transform($transform);
|
49 |
+
@include transform-origin($originx, $originy);
|
50 |
+
}
|
51 |
+
|
52 |
+
// Transform Partials
|
53 |
+
//
|
54 |
+
// These work well on their own, but they don't add to each other, they override.
|
55 |
+
// Use them with extra origin args, or along side +transform-origin
|
56 |
+
|
57 |
+
// Adjust only the scale, with optional origin coordinates
|
58 |
+
|
59 |
+
@mixin scale($scale: 1.25, $originx: false, $originy: false) {
|
60 |
+
@include apply-transform(scale($scale));
|
61 |
+
@include transform-origin($originx, $originy);
|
62 |
+
}
|
63 |
+
|
64 |
+
// Adjust only the rotation, with optional origin coordinates
|
65 |
+
|
66 |
+
@mixin rotate($rotate: 45deg, $originx: false, $originy: false) {
|
67 |
+
@include apply-transform(rotate($rotate));
|
68 |
+
@include transform-origin($originx, $originy);
|
69 |
+
}
|
70 |
+
|
71 |
+
// Adjust only the translation
|
72 |
+
|
73 |
+
@mixin translate($transx: 0, $transy: 0) {
|
74 |
+
@include apply-transform(translate($transx, $transy));
|
75 |
+
}
|
76 |
+
|
77 |
+
// Adjust only the skew, with optional origin coordinates
|
78 |
+
@mixin skew($skewx: 0deg, $skewy: 0deg, $originx: false, $originy: false) {
|
79 |
+
@include apply-transform(skew($skewx, $skewy));
|
80 |
+
@include transform-origin($originx, $originy);
|
81 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_transform.scss
ADDED
@@ -0,0 +1,593 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// @doc off
|
4 |
+
// Note ----------------------------------------------------------------------
|
5 |
+
// Safari, Chrome, and Firefox all support 3D transforms. However,
|
6 |
+
// only in the most recent builds. You should also provide fallback 2d support for
|
7 |
+
// Opera and IE. IE10 is slated to have 3d enabled, but is currently unreleased.
|
8 |
+
// To make that easy, all 2D transforms include an browser-targeting toggle ($only3d)
|
9 |
+
// to switch between the two support lists. The toggle defaults to 'false' (2D),
|
10 |
+
// and also accepts 'true' (3D). Currently the lists are as follows:
|
11 |
+
// 2D: Mozilla, Webkit, Opera, Official
|
12 |
+
// 3D: Webkit, Firefox.
|
13 |
+
|
14 |
+
// Available Transforms ------------------------------------------------------
|
15 |
+
// - Scale (2d and 3d)
|
16 |
+
// - Rotate (2d and 3d)
|
17 |
+
// - Translate (2d and 3d)
|
18 |
+
// - Skew (2d only)
|
19 |
+
|
20 |
+
// Transform Parameters ------------------------------------------------------
|
21 |
+
// - Transform Origin (2d and 3d)
|
22 |
+
// - Perspective (3d)
|
23 |
+
// - Perspective Origin (3d)
|
24 |
+
// - Transform Style (3d)
|
25 |
+
// - Backface Visibility (3d)
|
26 |
+
|
27 |
+
// Mixins --------------------------------------------------------------------
|
28 |
+
// transform-origin
|
29 |
+
// - shortcuts: transform-origin2d, transform-origin3d
|
30 |
+
// - helpers: apply-origin
|
31 |
+
// transform
|
32 |
+
// - shortcuts: transform2d, transform3d
|
33 |
+
// - helpers: simple-transform, create-transform
|
34 |
+
// perspective
|
35 |
+
// - helpers: perspective-origin
|
36 |
+
// transform-style
|
37 |
+
// backface-visibility
|
38 |
+
// scale
|
39 |
+
// - shortcuts: scaleX, scaleY, scaleZ, scale3d
|
40 |
+
// rotate
|
41 |
+
// - shortcuts: rotateX, rotateY, rotate3d
|
42 |
+
// translate
|
43 |
+
// - shortcuts: translateX, translateY, translateZ, translate3d
|
44 |
+
// skew
|
45 |
+
// - shortcuts: skewX, skewY
|
46 |
+
|
47 |
+
// Defaults ------------------------------------------------------------------
|
48 |
+
// @doc on
|
49 |
+
|
50 |
+
// The default x-origin for transforms
|
51 |
+
$default-origin-x: 50% !default;
|
52 |
+
// The default y-origin for transforms
|
53 |
+
$default-origin-y: 50% !default;
|
54 |
+
// The default z-origin for transforms
|
55 |
+
$default-origin-z: 50% !default;
|
56 |
+
|
57 |
+
// The default x-multiplier for scaling
|
58 |
+
$default-scale-x: 1.25 !default;
|
59 |
+
// The default y-multiplier for scaling
|
60 |
+
$default-scale-y: $default-scale-x !default;
|
61 |
+
// The default z-multiplier for scaling
|
62 |
+
$default-scale-z: $default-scale-x !default;
|
63 |
+
|
64 |
+
// The default angle for rotations
|
65 |
+
$default-rotate: 45deg !default;
|
66 |
+
|
67 |
+
// The default x-vector for the axis of 3d rotations
|
68 |
+
$default-vector-x: 1 !default;
|
69 |
+
// The default y-vector for the axis of 3d rotations
|
70 |
+
$default-vector-y: 1 !default;
|
71 |
+
// The default z-vector for the axis of 3d rotations
|
72 |
+
$default-vector-z: 1 !default;
|
73 |
+
|
74 |
+
// The default x-length for translations
|
75 |
+
$default-translate-x: 1em !default;
|
76 |
+
// The default y-length for translations
|
77 |
+
$default-translate-y: $default-translate-x !default;
|
78 |
+
// The default z-length for translations
|
79 |
+
$default-translate-z: $default-translate-x !default;
|
80 |
+
|
81 |
+
// The default x-angle for skewing
|
82 |
+
$default-skew-x: 5deg !default;
|
83 |
+
// The default y-angle for skewing
|
84 |
+
$default-skew-y: 5deg !default;
|
85 |
+
|
86 |
+
// **Transform-origin**
|
87 |
+
// Transform-origin sent as a complete string
|
88 |
+
//
|
89 |
+
// @include apply-origin( origin [, 3D-only ] )
|
90 |
+
//
|
91 |
+
// where 'origin' is a space separated list containing 1-3 (x/y/z) coordinates
|
92 |
+
// in percentages, absolute (px, cm, in, em etc..) or relative
|
93 |
+
// (left, top, right, bottom, center) units
|
94 |
+
//
|
95 |
+
// @param only3d Set this to true to only apply this
|
96 |
+
// mixin where browsers have 3D support.
|
97 |
+
@mixin apply-origin($origin, $only3d) {
|
98 |
+
$only3d: $only3d or -compass-list-size(-compass-list($origin)) > 2;
|
99 |
+
@if $only3d {
|
100 |
+
@include experimental(transform-origin, $origin, -moz, -webkit, -o, -ms, not -khtml, official);
|
101 |
+
} @else {
|
102 |
+
@include experimental(transform-origin, $origin, -moz, -webkit, -o, -ms, not -khtml, official);
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
// Transform-origin sent as individual arguments:
|
107 |
+
//
|
108 |
+
// @include transform-origin( [ origin-x, origin-y, origin-z, 3D-only ] )
|
109 |
+
//
|
110 |
+
// where the 3 'origin-' arguments represent x/y/z coordinates.
|
111 |
+
//
|
112 |
+
// **NOTE:** setting z coordinates triggers 3D support list, leave false for 2D support
|
113 |
+
@mixin transform-origin($origin-x: $default-origin-x,
|
114 |
+
$origin-y: $default-origin-y,
|
115 |
+
$origin-z: false,
|
116 |
+
$only3d: if($origin-z, true, false)) {
|
117 |
+
$origin: unquote('');
|
118 |
+
@if $origin-x or $origin-y or $origin-z {
|
119 |
+
@if $origin-x {
|
120 |
+
$origin: $origin-x;
|
121 |
+
} @else {
|
122 |
+
$origin: 50%;
|
123 |
+
}
|
124 |
+
@if $origin-y {
|
125 |
+
$origin: $origin $origin-y;
|
126 |
+
} @else {
|
127 |
+
@if $origin-z {
|
128 |
+
$origin: $origin 50%;
|
129 |
+
}
|
130 |
+
}
|
131 |
+
@if $origin-z {
|
132 |
+
$origin: $origin $origin-z;
|
133 |
+
}
|
134 |
+
@include apply-origin($origin, $only3d);
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
// Transform sent as a complete string:
|
139 |
+
//
|
140 |
+
// @include transform( transforms [, 3D-only ] )
|
141 |
+
//
|
142 |
+
// where 'transforms' is a space separated list of all the transforms to be applied.
|
143 |
+
@mixin transform($transform,
|
144 |
+
$only3d: false) {
|
145 |
+
@if $only3d {
|
146 |
+
@include experimental(transform, $transform, -moz, -webkit, -o, -ms, not -khtml, official);
|
147 |
+
} @else {
|
148 |
+
@include experimental(transform, $transform, -moz, -webkit, -o, -ms, not -khtml, official);
|
149 |
+
}
|
150 |
+
}
|
151 |
+
|
152 |
+
// Shortcut to target all browsers with 2D transform support
|
153 |
+
@mixin transform2d($trans) {
|
154 |
+
@include transform($trans, false);
|
155 |
+
}
|
156 |
+
|
157 |
+
// Shortcut to target only browsers with 3D transform support
|
158 |
+
@mixin transform3d($trans) {
|
159 |
+
@include transform($trans, true);
|
160 |
+
}
|
161 |
+
|
162 |
+
// @doc off
|
163 |
+
// 3D Parameters -------------------------------------------------------------
|
164 |
+
// @doc on
|
165 |
+
|
166 |
+
// Set the perspective of 3D transforms on the children of an element:
|
167 |
+
//
|
168 |
+
// @include perspective( perspective )
|
169 |
+
//
|
170 |
+
// where 'perspective' is a unitless number representing the depth of the
|
171 |
+
// z-axis. The higher the perspective, the more exaggerated the foreshortening.
|
172 |
+
// values from 500 to 1000 are more-or-less "normal" - a good starting-point.
|
173 |
+
@mixin perspective($p) {
|
174 |
+
@include experimental(perspective, $p, -moz, -webkit, -o, -ms, not -khtml, official);
|
175 |
+
}
|
176 |
+
|
177 |
+
// Set the origin position for the perspective
|
178 |
+
//
|
179 |
+
// @include perspective-origin(origin-x [origin-y])
|
180 |
+
//
|
181 |
+
// where the two arguments represent x/y coordinates
|
182 |
+
@mixin perspective-origin($origin: 50%) {
|
183 |
+
@include experimental(perspective-origin, $origin, -moz, -webkit, -o, -ms, not -khtml, official);
|
184 |
+
}
|
185 |
+
|
186 |
+
// Determine whether a 3D objects children also live in the given 3D space
|
187 |
+
//
|
188 |
+
// @include transform-style( [ style ] )
|
189 |
+
//
|
190 |
+
// where `style` can be either `flat` or `preserve-3d`.
|
191 |
+
// Browsers default to `flat`, mixin defaults to `preserve-3d`.
|
192 |
+
@mixin transform-style($style: preserve-3d) {
|
193 |
+
@include experimental(transform-style, $style, -moz, -webkit, -o, -ms, not -khtml, official);
|
194 |
+
}
|
195 |
+
|
196 |
+
// Determine the visibility of an element when it's back is turned
|
197 |
+
//
|
198 |
+
// @include backface-visibility( [ visibility ] )
|
199 |
+
//
|
200 |
+
// where `visibility` can be either `visible` or `hidden`.
|
201 |
+
// Browsers default to visible, mixin defaults to hidden
|
202 |
+
@mixin backface-visibility($visibility: hidden) {
|
203 |
+
@include experimental(backface-visibility, $visibility, -moz, -webkit, -o, -ms, not -khtml, official);
|
204 |
+
}
|
205 |
+
|
206 |
+
// @doc off
|
207 |
+
// Transform Partials --------------------------------------------------------
|
208 |
+
// These work well on their own, but they don't add to each other, they override.
|
209 |
+
// Use along with transform parameter mixins to adjust origin, perspective and style
|
210 |
+
// ---------------------------------------------------------------------------
|
211 |
+
|
212 |
+
// Scale ---------------------------------------------------------------------
|
213 |
+
// @doc on
|
214 |
+
|
215 |
+
// Scale an object along the x and y axis:
|
216 |
+
//
|
217 |
+
// @include scale( [ scale-x, scale-y, perspective, 3D-only ] )
|
218 |
+
//
|
219 |
+
// where the 'scale-' arguments are unitless multipliers of the x and y dimensions
|
220 |
+
// and perspective, which works the same as the stand-alone perspective property/mixin
|
221 |
+
// but applies to the individual element (multiplied with any parent perspective)
|
222 |
+
//
|
223 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
224 |
+
@mixin scale($scale-x: $default-scale-x,
|
225 |
+
$scale-y: $scale-x,
|
226 |
+
$perspective: false,
|
227 |
+
$only3d: false) {
|
228 |
+
$trans: scale($scale-x, $scale-y);
|
229 |
+
@if $perspective {
|
230 |
+
$trans: perspective($perspective) $trans;
|
231 |
+
}
|
232 |
+
@include transform($trans, $only3d);
|
233 |
+
}
|
234 |
+
|
235 |
+
// Scale an object along the x axis
|
236 |
+
// @include scaleX( [ scale-x, perspective, 3D-only ] )
|
237 |
+
//
|
238 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
239 |
+
@mixin scaleX($scale: $default-scale-x,
|
240 |
+
$perspective: false,
|
241 |
+
$only3d: false) {
|
242 |
+
$trans: scaleX($scale);
|
243 |
+
@if $perspective {
|
244 |
+
$trans: perspective($perspective) $trans;
|
245 |
+
}
|
246 |
+
@include transform($trans, $only3d);
|
247 |
+
}
|
248 |
+
|
249 |
+
// Scale an object along the y axis
|
250 |
+
// @include scaleY( [ scale-y, perspective, 3D-only ] )
|
251 |
+
//
|
252 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
253 |
+
@mixin scaleY($scale: $default-scale-y,
|
254 |
+
$perspective: false,
|
255 |
+
$only3d: false) {
|
256 |
+
$trans: scaleY($scale);
|
257 |
+
@if $perspective {
|
258 |
+
$trans: perspective($perspective) $trans;
|
259 |
+
}
|
260 |
+
@include transform($trans, $only3d);
|
261 |
+
}
|
262 |
+
|
263 |
+
// Scale an object along the z axis
|
264 |
+
// @include scaleZ( [ scale-z, perspective ] )
|
265 |
+
//
|
266 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
267 |
+
@mixin scaleZ($scale: $default-scale-z,
|
268 |
+
$perspective: false) {
|
269 |
+
$trans: scaleZ($scale);
|
270 |
+
@if $perspective {
|
271 |
+
$trans: perspective($perspective) $trans;
|
272 |
+
}
|
273 |
+
@include transform3d($trans);
|
274 |
+
}
|
275 |
+
|
276 |
+
// Scale and object along all three axis
|
277 |
+
// @include scale3d( [ scale-x, scale-y, scale-z, perspective ] )
|
278 |
+
//
|
279 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
280 |
+
@mixin scale3d($scale-x: $default-scale-x,
|
281 |
+
$scale-y: $default-scale-y,
|
282 |
+
$scale-z: $default-scale-z,
|
283 |
+
$perspective: false) {
|
284 |
+
$trans: scale3d($scale-x, $scale-y, $scale-z);
|
285 |
+
@if $perspective {
|
286 |
+
$trans: perspective($perspective) $trans;
|
287 |
+
}
|
288 |
+
@include transform3d($trans);
|
289 |
+
}
|
290 |
+
|
291 |
+
// @doc off
|
292 |
+
// Rotate --------------------------------------------------------------------
|
293 |
+
// @doc on
|
294 |
+
|
295 |
+
// Rotate an object around the z axis (2D)
|
296 |
+
// @include rotate( [ rotation, perspective, 3D-only ] )
|
297 |
+
// where 'rotation' is an angle set in degrees (deg) or radian (rad) units
|
298 |
+
//
|
299 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
300 |
+
@mixin rotate($rotate: $default-rotate,
|
301 |
+
$perspective: false,
|
302 |
+
$only3d: false) {
|
303 |
+
$trans: rotate($rotate);
|
304 |
+
@if $perspective {
|
305 |
+
$trans: perspective($perspective) $trans;
|
306 |
+
}
|
307 |
+
@include transform($trans, $only3d);
|
308 |
+
}
|
309 |
+
|
310 |
+
// A longcut for 'rotate' in case you forget that 'z' is implied
|
311 |
+
//
|
312 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
313 |
+
@mixin rotateZ($rotate: $default-rotate,
|
314 |
+
$perspective: false,
|
315 |
+
$only3d: false) {
|
316 |
+
@include rotate($rotate, $perspective, $only3d);
|
317 |
+
}
|
318 |
+
|
319 |
+
// Rotate an object around the x axis (3D)
|
320 |
+
// @include rotateX( [ rotation, perspective ] )
|
321 |
+
//
|
322 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
323 |
+
@mixin rotateX($rotate: $default-rotate,
|
324 |
+
$perspective: false) {
|
325 |
+
$trans: rotateX($rotate);
|
326 |
+
@if $perspective {
|
327 |
+
$trans: perspective($perspective) $trans;
|
328 |
+
}
|
329 |
+
@include transform3d($trans);
|
330 |
+
}
|
331 |
+
|
332 |
+
// Rotate an object around the y axis (3D)
|
333 |
+
// @include rotate( [ rotation, perspective ] )
|
334 |
+
//
|
335 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
336 |
+
@mixin rotateY($rotate: $default-rotate,
|
337 |
+
$perspective: false) {
|
338 |
+
$trans: rotateY($rotate);
|
339 |
+
@if $perspective {
|
340 |
+
$trans: perspective($perspective) $trans;
|
341 |
+
}
|
342 |
+
@include transform3d($trans);
|
343 |
+
}
|
344 |
+
|
345 |
+
// Rotate an object around an arbitrary axis (3D)
|
346 |
+
// @include rotate( [ vector-x, vector-y, vector-z, rotation, perspective ] )
|
347 |
+
// where the 'vector-' arguments accept unitless numbers.
|
348 |
+
// These numbers are not important on their own, but in relation to one another
|
349 |
+
// creating an axis from your transform-origin, along the axis of Xx = Yy = Zz.
|
350 |
+
//
|
351 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
352 |
+
@mixin rotate3d($vector-x: $default-vector-x,
|
353 |
+
$vector-y: $default-vector-y,
|
354 |
+
$vector-z: $default-vector-z,
|
355 |
+
$rotate: $default-rotate,
|
356 |
+
$perspective: false) {
|
357 |
+
$trans: rotate3d($vector-x, $vector-y, $vector-z, $rotate);
|
358 |
+
@if $perspective {
|
359 |
+
$trans: perspective($perspective) $trans;
|
360 |
+
}
|
361 |
+
@include transform3d($trans);
|
362 |
+
}
|
363 |
+
|
364 |
+
// @doc off
|
365 |
+
// Translate -----------------------------------------------------------------
|
366 |
+
// @doc on
|
367 |
+
|
368 |
+
// Move an object along the x or y axis (2D)
|
369 |
+
// @include translate( [ translate-x, translate-y, perspective, 3D-only ] )
|
370 |
+
// where the 'translate-' arguments accept any distance in percentages or absolute (px, cm, in, em etc..) units.
|
371 |
+
//
|
372 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
373 |
+
@mixin translate($translate-x: $default-translate-x,
|
374 |
+
$translate-y: $default-translate-y,
|
375 |
+
$perspective: false,
|
376 |
+
$only3d: false) {
|
377 |
+
$trans: translate($translate-x, $translate-y);
|
378 |
+
@if $perspective {
|
379 |
+
$trans: perspective($perspective) $trans;
|
380 |
+
}
|
381 |
+
@include transform($trans, $only3d);
|
382 |
+
}
|
383 |
+
|
384 |
+
// Move an object along the x axis (2D)
|
385 |
+
// @include translate( [ translate-x, perspective, 3D-only ] )
|
386 |
+
//
|
387 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
388 |
+
@mixin translateX($trans-x: $default-translate-x,
|
389 |
+
$perspective: false,
|
390 |
+
$only3d: false) {
|
391 |
+
$trans: translateX($trans-x);
|
392 |
+
@if $perspective {
|
393 |
+
$trans: perspective($perspective) $trans;
|
394 |
+
}
|
395 |
+
@include transform($trans, $only3d);
|
396 |
+
}
|
397 |
+
|
398 |
+
// Move an object along the y axis (2D)
|
399 |
+
// @include translate( [ translate-y, perspective, 3D-only ] )
|
400 |
+
//
|
401 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
402 |
+
@mixin translateY($trans-y: $default-translate-y,
|
403 |
+
$perspective: false,
|
404 |
+
$only3d: false) {
|
405 |
+
$trans: translateY($trans-y);
|
406 |
+
@if $perspective {
|
407 |
+
$trans: perspective($perspective) $trans;
|
408 |
+
}
|
409 |
+
@include transform($trans, $only3d);
|
410 |
+
}
|
411 |
+
|
412 |
+
// Move an object along the z axis (3D)
|
413 |
+
// @include translate( [ translate-z, perspective ] )
|
414 |
+
//
|
415 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
416 |
+
@mixin translateZ($trans-z: $default-translate-z,
|
417 |
+
$perspective: false) {
|
418 |
+
$trans: translateZ($trans-z);
|
419 |
+
@if $perspective {
|
420 |
+
$trans: perspective($perspective) $trans;
|
421 |
+
}
|
422 |
+
@include transform3d($trans);
|
423 |
+
}
|
424 |
+
|
425 |
+
// Move an object along the x, y and z axis (3D)
|
426 |
+
// @include translate( [ translate-x, translate-y, translate-z, perspective ] )
|
427 |
+
//
|
428 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
429 |
+
@mixin translate3d($translate-x: $default-translate-x,
|
430 |
+
$translate-y: $default-translate-y,
|
431 |
+
$translate-z: $default-translate-z,
|
432 |
+
$perspective: false) {
|
433 |
+
$trans: translate3d($translate-x, $translate-y, $translate-z);
|
434 |
+
@if $perspective {
|
435 |
+
$trans: perspective($perspective) $trans;
|
436 |
+
}
|
437 |
+
@include transform3d($trans);
|
438 |
+
}
|
439 |
+
|
440 |
+
// @doc off
|
441 |
+
// Skew ----------------------------------------------------------------------
|
442 |
+
// @doc on
|
443 |
+
|
444 |
+
// Skew an element:
|
445 |
+
//
|
446 |
+
// @include skew( [ skew-x, skew-y, 3D-only ] )
|
447 |
+
//
|
448 |
+
// where the 'skew-' arguments accept css angles in degrees (deg) or radian (rad) units.
|
449 |
+
//
|
450 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
451 |
+
@mixin skew($skew-x: $default-skew-x,
|
452 |
+
$skew-y: $default-skew-y,
|
453 |
+
$only3d: false) {
|
454 |
+
$trans: skew($skew-x, $skew-y);
|
455 |
+
@include transform($trans, $only3d);
|
456 |
+
}
|
457 |
+
|
458 |
+
// Skew an element along the x axiz
|
459 |
+
//
|
460 |
+
// @include skew( [ skew-x, 3D-only ] )
|
461 |
+
//
|
462 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
463 |
+
@mixin skewX($skew-x: $default-skew-x,
|
464 |
+
$only3d: false) {
|
465 |
+
$trans: skewX($skew-x);
|
466 |
+
@include transform($trans, $only3d);
|
467 |
+
}
|
468 |
+
|
469 |
+
// Skew an element along the y axis
|
470 |
+
//
|
471 |
+
// @include skew( [ skew-y, 3D-only ] )
|
472 |
+
//
|
473 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
474 |
+
@mixin skewY($skew-y: $default-skew-y,
|
475 |
+
$only3d: false) {
|
476 |
+
$trans: skewY($skew-y);
|
477 |
+
@include transform($trans, $only3d);
|
478 |
+
}
|
479 |
+
|
480 |
+
// Full transform mixins
|
481 |
+
// For settings any combination of transforms as arguments
|
482 |
+
// These are complex and not highly recommended for daily use. They are mainly
|
483 |
+
// here for backward-compatibility purposes.
|
484 |
+
//
|
485 |
+
// * they include origin adjustments
|
486 |
+
// * scale takes a multiplier (unitless), rotate and skew take degrees (deg)
|
487 |
+
//
|
488 |
+
// **Note** This mixin cannot be combined with other transform mixins.
|
489 |
+
@mixin create-transform($perspective: false,
|
490 |
+
$scale-x: false,
|
491 |
+
$scale-y: false,
|
492 |
+
$scale-z: false,
|
493 |
+
$rotate-x: false,
|
494 |
+
$rotate-y: false,
|
495 |
+
$rotate-z: false,
|
496 |
+
$rotate3d: false,
|
497 |
+
$trans-x: false,
|
498 |
+
$trans-y: false,
|
499 |
+
$trans-z: false,
|
500 |
+
$skew-x: false,
|
501 |
+
$skew-y: false,
|
502 |
+
$origin-x: false,
|
503 |
+
$origin-y: false,
|
504 |
+
$origin-z: false,
|
505 |
+
$only3d: false) {
|
506 |
+
$trans: unquote("");
|
507 |
+
|
508 |
+
// perspective
|
509 |
+
@if $perspective {
|
510 |
+
$trans: perspective($perspective);
|
511 |
+
}
|
512 |
+
|
513 |
+
// scale
|
514 |
+
@if $scale-x and $scale-y {
|
515 |
+
@if $scale-z {
|
516 |
+
$trans: $trans scale3d($scale-x, $scale-y, $scale-z);
|
517 |
+
} @else {
|
518 |
+
$trans: $trans scale($scale-x, $scale-y);
|
519 |
+
}
|
520 |
+
} @else {
|
521 |
+
@if $scale-x {
|
522 |
+
$trans: $trans scaleX($scale-x);
|
523 |
+
}
|
524 |
+
@if $scale-y {
|
525 |
+
$trans: $trans scaleY($scale-y);
|
526 |
+
}
|
527 |
+
@if $scale-z {
|
528 |
+
$trans: $trans scaleZ($scale-z);
|
529 |
+
}
|
530 |
+
}
|
531 |
+
|
532 |
+
// rotate
|
533 |
+
@if $rotate-x {
|
534 |
+
$trans: $trans rotateX($rotate-x);
|
535 |
+
}
|
536 |
+
@if $rotate-y {
|
537 |
+
$trans: $trans rotateY($rotate-y);
|
538 |
+
}
|
539 |
+
@if $rotate-z {
|
540 |
+
$trans: $trans rotateZ($rotate-z);
|
541 |
+
}
|
542 |
+
@if $rotate3d {
|
543 |
+
$trans: $trans rotate3d($rotate3d);
|
544 |
+
}
|
545 |
+
|
546 |
+
// translate
|
547 |
+
@if $trans-x and $trans-y {
|
548 |
+
@if $trans-z {
|
549 |
+
$trans: $trans translate3d($trans-x, $trans-y, $trans-z);
|
550 |
+
} @else {
|
551 |
+
$trans: $trans translate($trans-x, $trans-y);
|
552 |
+
}
|
553 |
+
} @else {
|
554 |
+
@if $trans-x {
|
555 |
+
$trans: $trans translateX($trans-x);
|
556 |
+
}
|
557 |
+
@if $trans-y {
|
558 |
+
$trans: $trans translateY($trans-y);
|
559 |
+
}
|
560 |
+
@if $trans-z {
|
561 |
+
$trans: $trans translateZ($trans-z);
|
562 |
+
}
|
563 |
+
}
|
564 |
+
|
565 |
+
// skew
|
566 |
+
@if $skew-x and $skew-y {
|
567 |
+
$trans: $trans skew($skew-x, $skew-y);
|
568 |
+
} @else {
|
569 |
+
@if $skew-x {
|
570 |
+
$trans: $trans skewX($skew-x);
|
571 |
+
}
|
572 |
+
@if $skew-y {
|
573 |
+
$trans: $trans skewY($skew-y);
|
574 |
+
}
|
575 |
+
}
|
576 |
+
|
577 |
+
// apply it!
|
578 |
+
@include transform($trans, $only3d);
|
579 |
+
@include transform-origin($origin-x, $origin-y, $origin-z, $only3d);
|
580 |
+
}
|
581 |
+
|
582 |
+
// A simplified set of options
|
583 |
+
// backwards-compatible with the previous version of the 'transform' mixin
|
584 |
+
@mixin simple-transform($scale: false,
|
585 |
+
$rotate: false,
|
586 |
+
$trans-x: false,
|
587 |
+
$trans-y: false,
|
588 |
+
$skew-x: false,
|
589 |
+
$skew-y: false,
|
590 |
+
$origin-x: false,
|
591 |
+
$origin-y: false) {
|
592 |
+
@include create-transform(false, $scale, $scale, false, false, false, $rotate, false, $trans-x, $trans-y, false, $skew-x, $skew-y, $origin-x, $origin-y, false, false);
|
593 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_transition.scss
ADDED
@@ -0,0 +1,238 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "shared";
|
2 |
+
|
3 |
+
// CSS Transitions
|
4 |
+
// Currently only works in Webkit.
|
5 |
+
//
|
6 |
+
// * expected in CSS3, FireFox 3.6/7 and Opera Presto 2.3
|
7 |
+
// * We'll be prepared.
|
8 |
+
//
|
9 |
+
// Including this submodule sets following defaults for the mixins:
|
10 |
+
//
|
11 |
+
// $default-transition-property : all
|
12 |
+
// $default-transition-duration : 1s
|
13 |
+
// $default-transition-function : false
|
14 |
+
// $default-transition-delay : false
|
15 |
+
//
|
16 |
+
// Override them if you like. Timing-function and delay are set to false for browser defaults (ease, 0s).
|
17 |
+
|
18 |
+
$default-transition-property: all !default;
|
19 |
+
|
20 |
+
$default-transition-duration: 1s !default;
|
21 |
+
|
22 |
+
$default-transition-function: false !default;
|
23 |
+
|
24 |
+
$default-transition-delay: false !default;
|
25 |
+
|
26 |
+
$transitionable-prefixed-values: transform, transform-origin !default;
|
27 |
+
|
28 |
+
// One or more properties to transition
|
29 |
+
//
|
30 |
+
// * for multiple, use a comma-delimited list
|
31 |
+
// * also accepts "all" or "none"
|
32 |
+
|
33 |
+
@mixin transition-property($property-1: $default-transition-property,
|
34 |
+
$property-2: false,
|
35 |
+
$property-3: false,
|
36 |
+
$property-4: false,
|
37 |
+
$property-5: false,
|
38 |
+
$property-6: false,
|
39 |
+
$property-7: false,
|
40 |
+
$property-8: false,
|
41 |
+
$property-9: false,
|
42 |
+
$property-10: false) {
|
43 |
+
@if type-of($property-1) == string {
|
44 |
+
$property-1: unquote($property-1);
|
45 |
+
}
|
46 |
+
$properties: compact($property-1, $property-2, $property-3, $property-4, $property-5, $property-6, $property-7, $property-8, $property-9, $property-10);
|
47 |
+
@if $experimental-support-for-webkit {
|
48 |
+
-webkit-transition-property: prefixed-for-transition(-webkit, $properties);
|
49 |
+
}
|
50 |
+
@if $experimental-support-for-mozilla {
|
51 |
+
-moz-transition-property: prefixed-for-transition(-moz, $properties);
|
52 |
+
}
|
53 |
+
@if $experimental-support-for-opera {
|
54 |
+
-o-transition-property: prefixed-for-transition(-o, $properties);
|
55 |
+
}
|
56 |
+
transition-property: $properties;
|
57 |
+
}
|
58 |
+
|
59 |
+
// One or more durations in seconds
|
60 |
+
//
|
61 |
+
// * for multiple, use a comma-delimited list
|
62 |
+
// * these durations will affect the properties in the same list position
|
63 |
+
|
64 |
+
@mixin transition-duration($duration-1: $default-transition-duration,
|
65 |
+
$duration-2: false,
|
66 |
+
$duration-3: false,
|
67 |
+
$duration-4: false,
|
68 |
+
$duration-5: false,
|
69 |
+
$duration-6: false,
|
70 |
+
$duration-7: false,
|
71 |
+
$duration-8: false,
|
72 |
+
$duration-9: false,
|
73 |
+
$duration-10: false) {
|
74 |
+
@if type-of($duration-1) == string {
|
75 |
+
$duration-1: unquote($duration-1);
|
76 |
+
}
|
77 |
+
$durations: compact($duration-1, $duration-2, $duration-3, $duration-4, $duration-5, $duration-6, $duration-7, $duration-8, $duration-9, $duration-10);
|
78 |
+
@include experimental(transition-duration, $durations, -moz, -webkit, -o, not -ms, not -khtml, official);
|
79 |
+
}
|
80 |
+
|
81 |
+
// One or more timing functions
|
82 |
+
//
|
83 |
+
// * [ ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(x1, y1, x2, y2)]
|
84 |
+
// * For multiple, use a comma-delimited list
|
85 |
+
// * These functions will effect the properties in the same list position
|
86 |
+
|
87 |
+
@mixin transition-timing-function($function-1: $default-transition-function,
|
88 |
+
$function-2: false,
|
89 |
+
$function-3: false,
|
90 |
+
$function-4: false,
|
91 |
+
$function-5: false,
|
92 |
+
$function-6: false,
|
93 |
+
$function-7: false,
|
94 |
+
$function-8: false,
|
95 |
+
$function-9: false,
|
96 |
+
$function-10: false) {
|
97 |
+
$function-1: unquote($function-1);
|
98 |
+
$functions: compact($function-1, $function-2, $function-3, $function-4, $function-5, $function-6, $function-7, $function-8, $function-9, $function-10);
|
99 |
+
@include experimental(transition-timing-function, $functions, -moz, -webkit, -o, not -ms, not -khtml, official);
|
100 |
+
}
|
101 |
+
|
102 |
+
// One or more transition-delays in seconds
|
103 |
+
//
|
104 |
+
// * for multiple, use a comma-delimited list
|
105 |
+
// * these delays will effect the properties in the same list position
|
106 |
+
|
107 |
+
@mixin transition-delay($delay-1: $default-transition-delay,
|
108 |
+
$delay-2: false,
|
109 |
+
$delay-3: false,
|
110 |
+
$delay-4: false,
|
111 |
+
$delay-5: false,
|
112 |
+
$delay-6: false,
|
113 |
+
$delay-7: false,
|
114 |
+
$delay-8: false,
|
115 |
+
$delay-9: false,
|
116 |
+
$delay-10: false) {
|
117 |
+
@if type-of($delay-1) == string {
|
118 |
+
$delay-1: unquote($delay-1);
|
119 |
+
}
|
120 |
+
$delays: compact($delay-1, $delay-2, $delay-3, $delay-4, $delay-5, $delay-6, $delay-7, $delay-8, $delay-9, $delay-10);
|
121 |
+
@include experimental(transition-delay, $delays, -moz, -webkit, -o, not -ms, not -khtml, official);
|
122 |
+
}
|
123 |
+
|
124 |
+
// Transition all-in-one shorthand
|
125 |
+
|
126 |
+
@mixin single-transition($property: $default-transition-property,
|
127 |
+
$duration: $default-transition-duration,
|
128 |
+
$function: $default-transition-function,
|
129 |
+
$delay: $default-transition-delay) {
|
130 |
+
@include transition(compact($property $duration $function $delay));
|
131 |
+
}
|
132 |
+
|
133 |
+
@mixin transition($transition-1: default,
|
134 |
+
$transition-2: false,
|
135 |
+
$transition-3: false,
|
136 |
+
$transition-4: false,
|
137 |
+
$transition-5: false,
|
138 |
+
$transition-6: false,
|
139 |
+
$transition-7: false,
|
140 |
+
$transition-8: false,
|
141 |
+
$transition-9: false,
|
142 |
+
$transition-10: false) {
|
143 |
+
@if $transition-1 == default {
|
144 |
+
$transition-1: compact($default-transition-property $default-transition-duration $default-transition-function $default-transition-delay);
|
145 |
+
}
|
146 |
+
$transitions: false;
|
147 |
+
@if type-of($transition-1) == list and type-of(nth($transition-1,1)) == list {
|
148 |
+
$transitions: join($transition-1, compact($transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10), comma);
|
149 |
+
} @else {
|
150 |
+
$transitions: compact($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10);
|
151 |
+
}
|
152 |
+
$delays: comma-list();
|
153 |
+
$has-delays: false;
|
154 |
+
$webkit-value: comma-list();
|
155 |
+
$moz-value: comma-list();
|
156 |
+
$o-value: comma-list();
|
157 |
+
|
158 |
+
// This block can be made considerably simpler at the point in time that
|
159 |
+
// we no longer need to deal with the differences in how delays are treated.
|
160 |
+
@each $transition in $transitions {
|
161 |
+
// Extract the values from the list
|
162 |
+
// (this would be cleaner if nth took a 3rd argument to provide a default value).
|
163 |
+
$property: nth($transition, 1);
|
164 |
+
$duration: false;
|
165 |
+
$timing-function: false;
|
166 |
+
$delay: false;
|
167 |
+
@if length($transition) > 1 {
|
168 |
+
$duration: nth($transition, 2);
|
169 |
+
}
|
170 |
+
@if length($transition) > 2 {
|
171 |
+
$timing-function: nth($transition, 3);
|
172 |
+
}
|
173 |
+
@if length($transition) > 3 {
|
174 |
+
$delay: nth($transition, 4);
|
175 |
+
$has-delays: true;
|
176 |
+
}
|
177 |
+
|
178 |
+
// If a delay is provided without a timing function
|
179 |
+
@if is-time($timing-function) and not $delay {
|
180 |
+
$delay: $timing-function;
|
181 |
+
$timing-function: false;
|
182 |
+
$has-delays: true;
|
183 |
+
}
|
184 |
+
|
185 |
+
// Keep a list of delays in case one is specified
|
186 |
+
$delays: append($delays, if($delay, $delay, 0s));
|
187 |
+
|
188 |
+
$webkit-value: append($webkit-value, compact(prefixed-for-transition(-webkit, $property) $duration $timing-function));
|
189 |
+
$moz-value: append($moz-value, compact(prefixed-for-transition(-moz, $property) $duration $timing-function $delay));
|
190 |
+
$o-value: append($o-value, compact(prefixed-for-transition(-o, $property) $duration $timing-function $delay));
|
191 |
+
}
|
192 |
+
|
193 |
+
@if $experimental-support-for-webkit {
|
194 |
+
-webkit-transition: $webkit-value;
|
195 |
+
// old webkit doesn't support the delay parameter in the shorthand so we progressively enhance it.
|
196 |
+
@if $has-delays {
|
197 |
+
-webkit-transition-delay: $delays;
|
198 |
+
}
|
199 |
+
}
|
200 |
+
@if $experimental-support-for-mozilla {
|
201 |
+
-moz-transition: $moz-value;
|
202 |
+
}
|
203 |
+
@if $experimental-support-for-opera {
|
204 |
+
-o-transition: $o-value;
|
205 |
+
}
|
206 |
+
transition: $transitions;
|
207 |
+
}
|
208 |
+
|
209 |
+
// coerce a list to be comma delimited or make a new, empty comma delimited list.
|
210 |
+
@function comma-list($list: ()) {
|
211 |
+
@return join((), $list, comma);
|
212 |
+
}
|
213 |
+
|
214 |
+
// Returns `$property` with the given prefix if it is found in `$transitionable-prefixed-values`.
|
215 |
+
@function prefixed-for-transition($prefix, $property) {
|
216 |
+
@if type-of($property) == list {
|
217 |
+
$new-list: comma-list();
|
218 |
+
@each $v in $property {
|
219 |
+
$new-list: append($new-list, prefixed-for-transition($prefix, $v));
|
220 |
+
}
|
221 |
+
@return $new-list;
|
222 |
+
} @else {
|
223 |
+
@if index($transitionable-prefixed-values, $property) {
|
224 |
+
@return #{$prefix}-#{$property};
|
225 |
+
} @else {
|
226 |
+
@return $property;
|
227 |
+
}
|
228 |
+
}
|
229 |
+
}
|
230 |
+
|
231 |
+
// Checks if the value given is a unit of time.
|
232 |
+
@function is-time($value) {
|
233 |
+
@if type-of($value) == number {
|
234 |
+
@return not not index(s ms, unit($value));
|
235 |
+
} @else {
|
236 |
+
@return false;
|
237 |
+
}
|
238 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/css3/_user-interface.scss
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// User Interface ------------------------------------------------------------
|
2 |
+
// This file can be expanded to handle all the user interface properties as
|
3 |
+
// they become available in browsers:
|
4 |
+
// http://www.w3.org/TR/2000/WD-css3-userint-20000216
|
5 |
+
@import "shared";
|
6 |
+
|
7 |
+
// This property controls the selection model and granularity of an element.
|
8 |
+
//
|
9 |
+
// @param $select
|
10 |
+
// [ none | text | toggle | element | elements | all | inherit ]
|
11 |
+
@mixin user-select($select) {
|
12 |
+
$select: unquote($select);
|
13 |
+
@include experimental(user-select, $select, -moz, -webkit, not -o, not -ms, -khtml, official);
|
14 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/layout/_grid-background.scss
ADDED
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "compass/css3/images";
|
2 |
+
@import "compass/css3/background-size";
|
3 |
+
|
4 |
+
// Set the color of your columns
|
5 |
+
$grid-background-column-color: rgba(100, 100, 225, 0.25) !default;
|
6 |
+
// Set the color of your gutters
|
7 |
+
$grid-background-gutter-color: rgba(0, 0, 0, 0) !default;
|
8 |
+
|
9 |
+
// Set the total number of columns in your grid
|
10 |
+
$grid-background-total-columns: 24 !default;
|
11 |
+
// Set the width of your columns
|
12 |
+
$grid-background-column-width: 30px !default;
|
13 |
+
// Set the width of your gutters
|
14 |
+
$grid-background-gutter-width: 10px !default;
|
15 |
+
// Set the offset, if your columns are padded in from the container edge
|
16 |
+
$grid-background-offset: 0px !default;
|
17 |
+
|
18 |
+
// Set the color of your baseline
|
19 |
+
$grid-background-baseline-color: rgba(0, 0, 0, 0.5) !default;
|
20 |
+
// Set the height of your baseline grid
|
21 |
+
$grid-background-baseline-height: 1.5em !default;
|
22 |
+
|
23 |
+
// toggle your columns grids on and off
|
24 |
+
$show-column-grid-backgrounds: true !default;
|
25 |
+
// toggle your vertical grids on and off
|
26 |
+
$show-baseline-grid-backgrounds: true !default;
|
27 |
+
// toggle all your grids on and off
|
28 |
+
$show-grid-backgrounds: true !default;
|
29 |
+
|
30 |
+
// optionally force your grid-image to remain fluid
|
31 |
+
// no matter what units you used to declared your grid.
|
32 |
+
$grid-background-force-fluid: false !default;
|
33 |
+
|
34 |
+
// Create the gradient needed for baseline grids
|
35 |
+
@function get-baseline-gradient($color: $grid-background-baseline-color) {
|
36 |
+
$gradient: linear-gradient(bottom, $color 5%, rgba($color, 0) 5%);
|
37 |
+
@return $gradient;
|
38 |
+
}
|
39 |
+
|
40 |
+
// Create the color-stops needed for horizontal grids
|
41 |
+
@function build-grid-background($total: $grid-background-total-columns,
|
42 |
+
$column: $grid-background-column-width,
|
43 |
+
$gutter: $grid-background-gutter-width,
|
44 |
+
$offset: $grid-background-offset,
|
45 |
+
$column-color: $grid-background-column-color,
|
46 |
+
$gutter-color: $grid-background-gutter-color) {
|
47 |
+
$grid: compact();
|
48 |
+
$grid: append($grid, $gutter-color $offset, comma);
|
49 |
+
@for $i from 0 to $total {
|
50 |
+
|
51 |
+
// $a represents the start of this column, initially equal to the offset
|
52 |
+
$a: $offset;
|
53 |
+
@if $i > 0 {
|
54 |
+
$a: $a + (($column + $gutter) * $i);
|
55 |
+
}
|
56 |
+
|
57 |
+
// $g represents the start of this gutter, equal to $a plus one column-width
|
58 |
+
$g: $a + $column;
|
59 |
+
|
60 |
+
// $z represents the end of a gutter, equal to $g plus one gutter-width
|
61 |
+
$z: $g + $gutter;
|
62 |
+
|
63 |
+
@if (unit($a) == "%") and ($i == ($total - 1)) {
|
64 |
+
$z: 100%;
|
65 |
+
}
|
66 |
+
|
67 |
+
// and we add this column/gutter pair to our grid
|
68 |
+
$grid: join($grid, ($column-color $a, $column-color $g, $gutter-color $g, $gutter-color $z));
|
69 |
+
}
|
70 |
+
|
71 |
+
@return $grid;
|
72 |
+
}
|
73 |
+
|
74 |
+
// Return the gradient needed for horizontal grids
|
75 |
+
@function get-column-gradient($total: $grid-background-total-columns,
|
76 |
+
$column: $grid-background-column-width,
|
77 |
+
$gutter: $grid-background-gutter-width,
|
78 |
+
$offset: $grid-background-offset,
|
79 |
+
$column-color: $grid-background-column-color,
|
80 |
+
$gutter-color: $grid-background-gutter-color,
|
81 |
+
$force-fluid: $grid-background-force-fluid) {
|
82 |
+
$grid: unquote("");
|
83 |
+
|
84 |
+
// don't force fluid grids when they are already fluid.
|
85 |
+
@if unit($column) == "%" {
|
86 |
+
$force-fluid: false;
|
87 |
+
}
|
88 |
+
|
89 |
+
@if $force-fluid {
|
90 |
+
$grid: get-column-fluid-grid($total, $column, $gutter, $offset, $column-color, $gutter-color);
|
91 |
+
} @else {
|
92 |
+
$grid: build-grid-background($total, $column, $gutter, $offset, $column-color, $gutter-color);
|
93 |
+
}
|
94 |
+
|
95 |
+
// return the horizontal grid as a gradient
|
96 |
+
$gradient: linear-gradient(left, $grid);
|
97 |
+
@return $gradient;
|
98 |
+
}
|
99 |
+
|
100 |
+
// Convert a grid from fixed units into percentages.
|
101 |
+
@function get-column-fluid-grid($total: $grid-background-total-columns,
|
102 |
+
$column: $grid-background-column-width,
|
103 |
+
$gutter: $grid-background-gutter-width,
|
104 |
+
$offset: $grid-background-offset,
|
105 |
+
$column-color: $grid-background-column-color,
|
106 |
+
$gutter-color: $grid-background-gutter-color) {
|
107 |
+
$context: ($column * $total) + ($gutter * ($total - 1) + ($offset * 2));
|
108 |
+
$offset: $offset / $context * 100%;
|
109 |
+
$column: $column / $context * 100%;
|
110 |
+
$gutter: $gutter / $context * 100%;
|
111 |
+
|
112 |
+
// return the horizontal grid as a set of color-stops
|
113 |
+
$grid: build-grid-background($total, $column, $gutter, $offset, $column-color, $gutter-color);
|
114 |
+
@return $grid;
|
115 |
+
}
|
116 |
+
|
117 |
+
// Add just the baseline grid to an element's background
|
118 |
+
@mixin baseline-grid-background($baseline: $grid-background-baseline-height,
|
119 |
+
$color: $grid-background-baseline-color) {
|
120 |
+
@if $show-grid-backgrounds and $show-baseline-grid-backgrounds {
|
121 |
+
@include background-image(get-baseline-gradient($color));
|
122 |
+
@include background-size(100% $baseline);
|
123 |
+
background-position: left top;
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
// Add just the horizontal grid to an element's background
|
128 |
+
@mixin column-grid-background($total: $grid-background-total-columns,
|
129 |
+
$column: $grid-background-column-width,
|
130 |
+
$gutter: $grid-background-gutter-width,
|
131 |
+
$offset: $grid-background-offset,
|
132 |
+
$column-color: $grid-background-column-color,
|
133 |
+
$gutter-color: $grid-background-gutter-color,
|
134 |
+
$force-fluid: $grid-background-force-fluid) {
|
135 |
+
@if $show-grid-backgrounds and $show-column-grid-backgrounds {
|
136 |
+
@include background-image(get-column-gradient($total, $column, $gutter, $offset, $column-color, $gutter-color, $force-fluid));
|
137 |
+
background-position: left top;
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
// Add both horizontal and baseline grids to an element's background
|
142 |
+
@mixin grid-background($total: $grid-background-total-columns,
|
143 |
+
$column: $grid-background-column-width,
|
144 |
+
$gutter: $grid-background-gutter-width,
|
145 |
+
$baseline: $grid-background-baseline-height,
|
146 |
+
$offset: $grid-background-offset,
|
147 |
+
$column-color: $grid-background-column-color,
|
148 |
+
$gutter-color: $grid-background-gutter-color,
|
149 |
+
$baseline-color: $grid-background-baseline-color,
|
150 |
+
$force-fluid: $grid-background-force-fluid) {
|
151 |
+
@if $show-grid-backgrounds {
|
152 |
+
@if $show-baseline-grid-backgrounds and $show-column-grid-backgrounds {
|
153 |
+
@include background-image(get-baseline-gradient($baseline-color), get-column-gradient($total, $column, $gutter, $offset, $column-color, $gutter-color, $force-fluid));
|
154 |
+
@include background-size(100% $baseline, auto);
|
155 |
+
background-position: left top;
|
156 |
+
} @else {
|
157 |
+
@include baseline-grid-background($baseline, $baseline-color);
|
158 |
+
@include column-grid-background($total, $column, $gutter, $offset, $column-color, $gutter-color, $force-fluid);
|
159 |
+
}
|
160 |
+
}
|
161 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/layout/_sticky-footer.scss
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Based on a [blog post by Ryan Fait](http://ryanfait.com/resources/footer-stick-to-bottom-of-page/).
|
2 |
+
//
|
3 |
+
// Must be mixed into the top level of your stylesheet.
|
4 |
+
//
|
5 |
+
// Footer element must be outside of root wrapper element.
|
6 |
+
//
|
7 |
+
// Footer must be a fixed height.
|
8 |
+
|
9 |
+
@mixin sticky-footer($footer-height, $root-selector: unquote("#root"), $root-footer-selector: unquote("#root_footer"), $footer-selector: unquote("#footer")) {
|
10 |
+
html, body {
|
11 |
+
height: 100%;
|
12 |
+
}
|
13 |
+
#{$root-selector} {
|
14 |
+
clear: both;
|
15 |
+
min-height: 100%;
|
16 |
+
height: auto !important;
|
17 |
+
height: 100%;
|
18 |
+
margin-bottom: -$footer-height;
|
19 |
+
#{$root-footer-selector} {
|
20 |
+
height: $footer-height;
|
21 |
+
}
|
22 |
+
}
|
23 |
+
#{$footer-selector} {
|
24 |
+
clear: both;
|
25 |
+
position: relative;
|
26 |
+
height: $footer-height;
|
27 |
+
}
|
28 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/layout/_stretching.scss
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// stretch element height to specified top and bottom position
|
2 |
+
|
3 |
+
@mixin stretch-y($offset-top: 0, $offset-bottom: 0) {
|
4 |
+
@include stretch($offset-top, false, $offset-bottom, false);
|
5 |
+
}
|
6 |
+
|
7 |
+
// stretch element width to specified left and right position
|
8 |
+
|
9 |
+
@mixin stretch-x($offset-left: 0, $offset-right: 0) {
|
10 |
+
@include stretch(false, $offset-right, false, $offset-left);
|
11 |
+
}
|
12 |
+
|
13 |
+
// shorthand to stretch element height and width
|
14 |
+
|
15 |
+
@mixin stretch($offset-top: 0, $offset-right: 0, $offset-bottom: 0, $offset-left: 0) {
|
16 |
+
position: absolute;
|
17 |
+
@if $offset-top {
|
18 |
+
top: $offset-top;
|
19 |
+
}
|
20 |
+
@if $offset-bottom {
|
21 |
+
bottom: $offset-bottom;
|
22 |
+
}
|
23 |
+
@if $offset-left {
|
24 |
+
left: $offset-left;
|
25 |
+
}
|
26 |
+
@if $offset-right {
|
27 |
+
right: $offset-right;
|
28 |
+
}
|
29 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/reset/_utilities-legacy.scss
ADDED
@@ -0,0 +1,168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Based on [Eric Meyer's reset](http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/)
|
2 |
+
// Global reset rules.
|
3 |
+
// For more specific resets, use the reset mixins provided below
|
4 |
+
//
|
5 |
+
// *Please Note*: tables still need `cellspacing="0"` in the markup.
|
6 |
+
@mixin global-reset {
|
7 |
+
html, body, div, span, applet, object, iframe,
|
8 |
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
9 |
+
a, abbr, acronym, address, big, cite, code,
|
10 |
+
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
11 |
+
small, strike, strong, sub, sup, tt, var,
|
12 |
+
dl, dt, dd, ol, ul, li,
|
13 |
+
fieldset, form, label, legend,
|
14 |
+
table, caption, tbody, tfoot, thead, tr, th, td {
|
15 |
+
@include reset-box-model;
|
16 |
+
@include reset-font;
|
17 |
+
}
|
18 |
+
body {
|
19 |
+
@include reset-body;
|
20 |
+
}
|
21 |
+
ol, ul {
|
22 |
+
@include reset-list-style;
|
23 |
+
}
|
24 |
+
table {
|
25 |
+
@include reset-table;
|
26 |
+
}
|
27 |
+
caption, th, td {
|
28 |
+
@include reset-table-cell;
|
29 |
+
}
|
30 |
+
q, blockquote {
|
31 |
+
@include reset-quotation;
|
32 |
+
}
|
33 |
+
a img {
|
34 |
+
@include reset-image-anchor-border;
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
// Reset all elements within some selector scope. To reset the selector itself,
|
39 |
+
// mixin the appropriate reset mixin for that element type as well. This could be
|
40 |
+
// useful if you want to style a part of your page in a dramatically different way.
|
41 |
+
//
|
42 |
+
// *Please Note*: tables still need `cellspacing="0"` in the markup.
|
43 |
+
@mixin nested-reset {
|
44 |
+
div, span, object, iframe, h1, h2, h3, h4, h5, h6, p,
|
45 |
+
pre, a, abbr, acronym, address, code, del, dfn, em, img,
|
46 |
+
dl, dt, dd, ol, ul, li, fieldset, form, label, legend, caption, tbody, tfoot, thead, tr {
|
47 |
+
@include reset-box-model;
|
48 |
+
@include reset-font;
|
49 |
+
}
|
50 |
+
table {
|
51 |
+
@include reset-table;
|
52 |
+
}
|
53 |
+
caption, th, td {
|
54 |
+
@include reset-table-cell;
|
55 |
+
}
|
56 |
+
q, blockquote {
|
57 |
+
@include reset-quotation;
|
58 |
+
}
|
59 |
+
a img {
|
60 |
+
@include reset-image-anchor-border;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
// Reset the box model measurements.
|
65 |
+
@mixin reset-box-model {
|
66 |
+
margin: 0;
|
67 |
+
padding: 0;
|
68 |
+
border: 0;
|
69 |
+
outline: 0;
|
70 |
+
}
|
71 |
+
|
72 |
+
// Reset the font and vertical alignment.
|
73 |
+
@mixin reset-font {
|
74 |
+
font: {
|
75 |
+
weight: inherit;
|
76 |
+
style: inherit;
|
77 |
+
size: 100%;
|
78 |
+
family: inherit;
|
79 |
+
}
|
80 |
+
;
|
81 |
+
vertical-align: baseline;
|
82 |
+
}
|
83 |
+
|
84 |
+
// Resets the outline when focus.
|
85 |
+
// For accessibility you need to apply some styling in its place.
|
86 |
+
@mixin reset-focus {
|
87 |
+
outline: 0;
|
88 |
+
}
|
89 |
+
|
90 |
+
// Reset a body element.
|
91 |
+
@mixin reset-body {
|
92 |
+
line-height: 1;
|
93 |
+
color: black;
|
94 |
+
background: white;
|
95 |
+
}
|
96 |
+
|
97 |
+
// Reset the list style of an element.
|
98 |
+
@mixin reset-list-style {
|
99 |
+
list-style: none;
|
100 |
+
}
|
101 |
+
|
102 |
+
// Reset a table
|
103 |
+
@mixin reset-table {
|
104 |
+
border-collapse: separate;
|
105 |
+
border-spacing: 0;
|
106 |
+
vertical-align: middle;
|
107 |
+
}
|
108 |
+
|
109 |
+
// Reset a table cell (`th`, `td`)
|
110 |
+
@mixin reset-table-cell {
|
111 |
+
text-align: left;
|
112 |
+
font-weight: normal;
|
113 |
+
vertical-align: middle;
|
114 |
+
}
|
115 |
+
|
116 |
+
// Reset a quotation (`q`, `blockquote`)
|
117 |
+
@mixin reset-quotation {
|
118 |
+
quotes: "" "";
|
119 |
+
&:before, &:after {
|
120 |
+
content: "";
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
// Resets the border.
|
125 |
+
@mixin reset-image-anchor-border {
|
126 |
+
border: none;
|
127 |
+
}
|
128 |
+
|
129 |
+
// Unrecognized elements are displayed inline.
|
130 |
+
// This reset provides a basic reset for html5 elements
|
131 |
+
// so they are rendered correctly in browsers that don't recognize them
|
132 |
+
// and reset in browsers that have default styles for them.
|
133 |
+
@mixin reset-html5 {
|
134 |
+
#{elements-of-type(html5-block)} {
|
135 |
+
@include reset-box-model;
|
136 |
+
display: block;
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
// Resets the display of inline and block elements to their default display
|
141 |
+
// according to their tag type. Elements that have a default display that varies across
|
142 |
+
// versions of html or browser are not handled here, but this covers the 90% use case.
|
143 |
+
// Usage Example:
|
144 |
+
//
|
145 |
+
// // Turn off the display for both of these classes
|
146 |
+
// .unregistered-only, .registered-only
|
147 |
+
// display: none
|
148 |
+
// // Now turn only one of them back on depending on some other context.
|
149 |
+
// body.registered
|
150 |
+
// +reset-display(".registered-only")
|
151 |
+
// body.unregistered
|
152 |
+
// +reset-display(".unregistered-only")
|
153 |
+
@mixin reset-display($selector: "", $important: false) {
|
154 |
+
#{append-selector(elements-of-type("inline"), $selector)} {
|
155 |
+
@if $important {
|
156 |
+
display: inline !important;
|
157 |
+
} @else {
|
158 |
+
display: inline;
|
159 |
+
}
|
160 |
+
}
|
161 |
+
#{append-selector(elements-of-type("block"), $selector)} {
|
162 |
+
@if $important {
|
163 |
+
display: block !important;
|
164 |
+
} @else {
|
165 |
+
display: block;
|
166 |
+
}
|
167 |
+
}
|
168 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/reset/_utilities.scss
ADDED
@@ -0,0 +1,173 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Based on [Eric Meyer's reset 2.0](http://meyerweb.com/eric/tools/css/reset/index.html)
|
2 |
+
// Global reset rules.
|
3 |
+
// For more specific resets, use the reset mixins provided below
|
4 |
+
@mixin global-reset {
|
5 |
+
html, body, div, span, applet, object, iframe,
|
6 |
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
7 |
+
a, abbr, acronym, address, big, cite, code,
|
8 |
+
del, dfn, em, img, ins, kbd, q, s, samp,
|
9 |
+
small, strike, strong, sub, sup, tt, var,
|
10 |
+
b, u, i, center,
|
11 |
+
dl, dt, dd, ol, ul, li,
|
12 |
+
fieldset, form, label, legend,
|
13 |
+
table, caption, tbody, tfoot, thead, tr, th, td,
|
14 |
+
article, aside, canvas, details, embed,
|
15 |
+
figure, figcaption, footer, header, hgroup,
|
16 |
+
menu, nav, output, ruby, section, summary,
|
17 |
+
time, mark, audio, video {
|
18 |
+
@include reset-box-model;
|
19 |
+
@include reset-font;
|
20 |
+
}
|
21 |
+
// Unlike Eric's original reset, we reset the html element to be compatible
|
22 |
+
// with the vertical rhythm mixins.
|
23 |
+
html {
|
24 |
+
@include reset-body;
|
25 |
+
}
|
26 |
+
ol, ul {
|
27 |
+
@include reset-list-style;
|
28 |
+
}
|
29 |
+
table {
|
30 |
+
@include reset-table;
|
31 |
+
}
|
32 |
+
caption, th, td {
|
33 |
+
@include reset-table-cell;
|
34 |
+
}
|
35 |
+
q, blockquote {
|
36 |
+
@include reset-quotation;
|
37 |
+
}
|
38 |
+
a img {
|
39 |
+
@include reset-image-anchor-border;
|
40 |
+
}
|
41 |
+
@include reset-html5;
|
42 |
+
}
|
43 |
+
|
44 |
+
// Reset all elements within some selector scope. To reset the selector itself,
|
45 |
+
// mixin the appropriate reset mixin for that element type as well. This could be
|
46 |
+
// useful if you want to style a part of your page in a dramatically different way.
|
47 |
+
@mixin nested-reset {
|
48 |
+
div, span, applet, object, iframe,
|
49 |
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
50 |
+
a, abbr, acronym, address, big, cite, code,
|
51 |
+
del, dfn, em, img, ins, kbd, q, s, samp,
|
52 |
+
small, strike, strong, sub, sup, tt, var,
|
53 |
+
b, u, i, center,
|
54 |
+
dl, dt, dd, ol, ul, li,
|
55 |
+
fieldset, form, label, legend,
|
56 |
+
table, caption, tbody, tfoot, thead, tr, th, td,
|
57 |
+
article, aside, canvas, details, embed,
|
58 |
+
figure, figcaption, footer, header, hgroup,
|
59 |
+
menu, nav, output, ruby, section, summary,
|
60 |
+
time, mark, audio, video {
|
61 |
+
@include reset-box-model;
|
62 |
+
@include reset-font;
|
63 |
+
}
|
64 |
+
table {
|
65 |
+
@include reset-table;
|
66 |
+
}
|
67 |
+
caption, th, td {
|
68 |
+
@include reset-table-cell;
|
69 |
+
}
|
70 |
+
q, blockquote {
|
71 |
+
@include reset-quotation;
|
72 |
+
}
|
73 |
+
a img {
|
74 |
+
@include reset-image-anchor-border;
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
// Reset the box model measurements.
|
79 |
+
@mixin reset-box-model {
|
80 |
+
margin: 0;
|
81 |
+
padding: 0;
|
82 |
+
border: 0;
|
83 |
+
}
|
84 |
+
|
85 |
+
// Reset the font and vertical alignment.
|
86 |
+
@mixin reset-font {
|
87 |
+
font: inherit;
|
88 |
+
font-size: 100%;
|
89 |
+
vertical-align: baseline;
|
90 |
+
}
|
91 |
+
|
92 |
+
// Resets the outline when focus.
|
93 |
+
// For accessibility you need to apply some styling in its place.
|
94 |
+
@mixin reset-focus {
|
95 |
+
outline: 0;
|
96 |
+
}
|
97 |
+
|
98 |
+
// Reset a body element.
|
99 |
+
@mixin reset-body {
|
100 |
+
line-height: 1;
|
101 |
+
}
|
102 |
+
|
103 |
+
// Reset the list style of an element.
|
104 |
+
@mixin reset-list-style {
|
105 |
+
list-style: none;
|
106 |
+
}
|
107 |
+
|
108 |
+
// Reset a table
|
109 |
+
@mixin reset-table {
|
110 |
+
border-collapse: collapse;
|
111 |
+
border-spacing: 0;
|
112 |
+
}
|
113 |
+
|
114 |
+
// Reset a table cell (`th`, `td`)
|
115 |
+
@mixin reset-table-cell {
|
116 |
+
text-align: left;
|
117 |
+
font-weight: normal;
|
118 |
+
vertical-align: middle;
|
119 |
+
}
|
120 |
+
|
121 |
+
// Reset a quotation (`q`, `blockquote`)
|
122 |
+
@mixin reset-quotation {
|
123 |
+
quotes: none;
|
124 |
+
&:before, &:after {
|
125 |
+
content: "";
|
126 |
+
content: none;
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
// Resets the border.
|
131 |
+
@mixin reset-image-anchor-border {
|
132 |
+
border: none;
|
133 |
+
}
|
134 |
+
|
135 |
+
// Unrecognized elements are displayed inline.
|
136 |
+
// This reset provides a basic reset for block html5 elements
|
137 |
+
// so they are rendered correctly in browsers that don't recognize them
|
138 |
+
// and reset in browsers that have default styles for them.
|
139 |
+
@mixin reset-html5 {
|
140 |
+
#{elements-of-type(html5-block)} {
|
141 |
+
display: block;
|
142 |
+
}
|
143 |
+
}
|
144 |
+
|
145 |
+
// Resets the display of inline and block elements to their default display
|
146 |
+
// according to their tag type. Elements that have a default display that varies across
|
147 |
+
// versions of html or browser are not handled here, but this covers the 90% use case.
|
148 |
+
// Usage Example:
|
149 |
+
//
|
150 |
+
// // Turn off the display for both of these classes
|
151 |
+
// .unregistered-only, .registered-only
|
152 |
+
// display: none
|
153 |
+
// // Now turn only one of them back on depending on some other context.
|
154 |
+
// body.registered
|
155 |
+
// +reset-display(".registered-only")
|
156 |
+
// body.unregistered
|
157 |
+
// +reset-display(".unregistered-only")
|
158 |
+
@mixin reset-display($selector: "", $important: false) {
|
159 |
+
#{append-selector(elements-of-type("inline"), $selector)} {
|
160 |
+
@if $important {
|
161 |
+
display: inline !important;
|
162 |
+
} @else {
|
163 |
+
display: inline;
|
164 |
+
}
|
165 |
+
}
|
166 |
+
#{append-selector(elements-of-type("block"), $selector)} {
|
167 |
+
@if $important {
|
168 |
+
display: block !important;
|
169 |
+
} @else {
|
170 |
+
display: block;
|
171 |
+
}
|
172 |
+
}
|
173 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/_links.scss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
@import "links/links/_hover-link";
|
2 |
+
@import "links/links/_link-colors";
|
3 |
+
@import "links/links/_unstyled-link";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/_lists.scss
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
@import "lists/lists/_horizontal-list";
|
2 |
+
@import "lists/lists/_inline-list";
|
3 |
+
@import "lists/lists/_inline-block-list";
|
4 |
+
@import "lists/lists/_bullets";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/_text.scss
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
@import "text/text/_ellipsis";
|
2 |
+
@import "text/text/_nowrap";
|
3 |
+
@import "text/text/_replacement";
|
4 |
+
@import "text/text/_force-wrap";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/_vertical_rhythm.scss
ADDED
@@ -0,0 +1,220 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "compass/layout/grid-background";
|
2 |
+
|
3 |
+
// The base font size.
|
4 |
+
$base-font-size: 16px !default;
|
5 |
+
|
6 |
+
// The base line height determines the basic unit of vertical rhythm.
|
7 |
+
$base-line-height: 24px !default;
|
8 |
+
|
9 |
+
// Set the default border style for rhythm borders.
|
10 |
+
$default-rhythm-border-style: solid !default;
|
11 |
+
|
12 |
+
// The default font size in all browsers.
|
13 |
+
$browser-default-font-size: 16px;
|
14 |
+
|
15 |
+
// Set to false if you want to use absolute pixels in sizing your typography.
|
16 |
+
$relative-font-sizing: true !default;
|
17 |
+
|
18 |
+
// Allows the `adjust-font-size-to` mixin and the `lines-for-font-size` function
|
19 |
+
// to round the line height to the nearest half line height instead of the
|
20 |
+
// nearest integral line height to avoid large spacing between lines.
|
21 |
+
$round-to-nearest-half-line: false !default;
|
22 |
+
|
23 |
+
// Ensure there is at least this many pixels
|
24 |
+
// of vertical padding above and below the text.
|
25 |
+
$min-line-padding: 2px !default;
|
26 |
+
|
27 |
+
// $base-font-size but in your output unit of choice.
|
28 |
+
// Defaults to 1em when `$relative-font-sizing` is true.
|
29 |
+
$font-unit: if($relative-font-sizing, 1em, $base-font-size) !default;
|
30 |
+
|
31 |
+
// The basic unit of font rhythm.
|
32 |
+
$base-rhythm-unit: $base-line-height / $base-font-size * $font-unit;
|
33 |
+
|
34 |
+
// The leader is the amount of whitespace in a line.
|
35 |
+
// It might be useful in your calculations.
|
36 |
+
$base-leader: ($base-line-height - $base-font-size) * $font-unit / $base-font-size;
|
37 |
+
|
38 |
+
// The half-leader is the amount of whitespace above and below a line.
|
39 |
+
// It might be useful in your calculations.
|
40 |
+
$base-half-leader: $base-leader / 2;
|
41 |
+
|
42 |
+
// True if a number has a relative unit.
|
43 |
+
@function relative-unit($number) {
|
44 |
+
@return unit($number) == "%" or unit($number) == "em" or unit($number) == "rem"
|
45 |
+
}
|
46 |
+
|
47 |
+
// True if a number has an absolute unit.
|
48 |
+
@function absolute-unit($number) {
|
49 |
+
@return not (relative-unit($number) or unitless($number));
|
50 |
+
}
|
51 |
+
|
52 |
+
@if $relative-font-sizing and not relative-unit($font-unit) {
|
53 |
+
@warn "$relative-font-sizing is true but $font-unit is set to #{$font-unit} which is not a relative unit.";
|
54 |
+
}
|
55 |
+
|
56 |
+
// Establishes a font baseline for the given font-size.
|
57 |
+
@mixin establish-baseline($font-size: $base-font-size) {
|
58 |
+
// IE 6 refuses to resize fonts set in pixels and it weirdly resizes fonts
|
59 |
+
// whose root is set in ems. So we set the root font size in percentages of
|
60 |
+
// the default font size.
|
61 |
+
* html {
|
62 |
+
font-size: 100% * ($font-size / $browser-default-font-size);
|
63 |
+
}
|
64 |
+
html {
|
65 |
+
font-size: $font-size;
|
66 |
+
@include adjust-leading-to(1, if($relative-font-sizing, $font-size, $base-font-size));
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
// Resets the line-height to 1 vertical rhythm unit.
|
71 |
+
// Does not work on elements whose font-size is different from $base-font-size.
|
72 |
+
//
|
73 |
+
// @deprecated This mixin will be removed in the next release.
|
74 |
+
// Please use the `adjust-leading-to` mixin instead.
|
75 |
+
@mixin reset-baseline {
|
76 |
+
@include adjust-leading-to(1, if($relative-font-sizing, $base-font-size, $base-font-size));
|
77 |
+
}
|
78 |
+
|
79 |
+
// Show a background image that can be used to debug your alignments.
|
80 |
+
// Include the $img argument if you would rather use your own image than the
|
81 |
+
// Compass default gradient image.
|
82 |
+
@mixin debug-vertical-alignment($img: false) {
|
83 |
+
@if $img {
|
84 |
+
background: image-url($img);
|
85 |
+
} @else {
|
86 |
+
@include baseline-grid-background($base-rhythm-unit);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
// Adjust a block to have a different font size and line height to maintain the
|
91 |
+
// rhythm. $lines specifies how many multiples of the baseline rhythm each line
|
92 |
+
// of this font should use up. It does not have to be an integer, but it
|
93 |
+
// defaults to the smallest integer that is large enough to fit the font.
|
94 |
+
// Use $from-size to adjust from a font-size other than the base font-size.
|
95 |
+
@mixin adjust-font-size-to($to-size, $lines: lines-for-font-size($to-size), $from-size: $base-font-size) {
|
96 |
+
@if not $relative-font-sizing and $from-size != $base-font-size {
|
97 |
+
@warn "$relative-font-sizing is false but a relative font size was passed to adjust-font-size-to";
|
98 |
+
}
|
99 |
+
font-size: $font-unit * $to-size / $from-size;
|
100 |
+
@include adjust-leading-to($lines, if($relative-font-sizing, $to-size, $base-font-size));
|
101 |
+
}
|
102 |
+
|
103 |
+
// Adjust a block to have different line height to maintain the rhythm.
|
104 |
+
// $lines specifies how many multiples of the baseline rhythm each line of this
|
105 |
+
// font should use up. It does not have to be an integer, but it defaults to the
|
106 |
+
// smallest integer that is large enough to fit the font.
|
107 |
+
@mixin adjust-leading-to($lines, $font-size: $base-font-size) {
|
108 |
+
line-height: rhythm($lines, $font-size);
|
109 |
+
}
|
110 |
+
|
111 |
+
// Calculate rhythm units.
|
112 |
+
@function rhythm($lines: 1,
|
113 |
+
$font-size: $base-font-size,
|
114 |
+
$offset: 0) {
|
115 |
+
@if not $relative-font-sizing and $font-size != $base-font-size {
|
116 |
+
@warn "$relative-font-sizing is false but a relative font size was passed to the rhythm function";
|
117 |
+
}
|
118 |
+
$rhythm: $font-unit * ($lines * $base-line-height - $offset) / $font-size;
|
119 |
+
// Round the pixels down to nearest integer.
|
120 |
+
@if unit($rhythm) == px {
|
121 |
+
$rhythm: floor($rhythm);
|
122 |
+
}
|
123 |
+
@return $rhythm;
|
124 |
+
}
|
125 |
+
|
126 |
+
// Calculate the minimum multiple of rhythm units needed to contain the font-size.
|
127 |
+
@function lines-for-font-size($font-size) {
|
128 |
+
$lines: if($round-to-nearest-half-line,
|
129 |
+
ceil(2 * $font-size / $base-line-height) / 2, ceil($font-size / $base-line-height));
|
130 |
+
@if $lines * $base-line-height - $font-size < $min-line-padding * 2 {
|
131 |
+
$lines: $lines + if($round-to-nearest-half-line, 0.5, 1);
|
132 |
+
}
|
133 |
+
@return $lines;
|
134 |
+
}
|
135 |
+
|
136 |
+
// Apply leading whitespace. The $property can be margin or padding.
|
137 |
+
@mixin leader($lines: 1, $font-size: $base-font-size, $property: margin) {
|
138 |
+
#{$property}-top: rhythm($lines, $font-size);
|
139 |
+
}
|
140 |
+
|
141 |
+
// Apply leading whitespace as padding.
|
142 |
+
@mixin padding-leader($lines: 1, $font-size: $base-font-size) {
|
143 |
+
padding-top: rhythm($lines, $font-size);
|
144 |
+
}
|
145 |
+
|
146 |
+
// Apply leading whitespace as margin.
|
147 |
+
@mixin margin-leader($lines: 1, $font-size: $base-font-size) {
|
148 |
+
margin-top: rhythm($lines, $font-size);
|
149 |
+
}
|
150 |
+
|
151 |
+
// Apply trailing whitespace. The $property can be margin or padding.
|
152 |
+
@mixin trailer($lines: 1, $font-size: $base-font-size, $property: margin) {
|
153 |
+
#{$property}-bottom: rhythm($lines, $font-size);
|
154 |
+
}
|
155 |
+
|
156 |
+
// Apply trailing whitespace as padding.
|
157 |
+
@mixin padding-trailer($lines: 1, $font-size: $base-font-size) {
|
158 |
+
padding-bottom: rhythm($lines, $font-size);
|
159 |
+
}
|
160 |
+
|
161 |
+
// Apply trailing whitespace as margin.
|
162 |
+
@mixin margin-trailer($lines: 1, $font-size: $base-font-size) {
|
163 |
+
margin-bottom: rhythm($lines, $font-size);
|
164 |
+
}
|
165 |
+
|
166 |
+
// Shorthand mixin to apply whitespace for top and bottom margins and padding.
|
167 |
+
@mixin rhythm($leader: 0, $padding-leader: 0, $padding-trailer: 0, $trailer: 0, $font-size: $base-font-size) {
|
168 |
+
@include leader($leader, $font-size);
|
169 |
+
@include padding-leader($padding-leader, $font-size);
|
170 |
+
@include padding-trailer($padding-trailer, $font-size);
|
171 |
+
@include trailer($trailer, $font-size);
|
172 |
+
}
|
173 |
+
|
174 |
+
// Apply a border and whitespace to any side without destroying the vertical
|
175 |
+
// rhythm. The whitespace must be greater than the width of the border.
|
176 |
+
@mixin apply-side-rhythm-border($side, $width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
|
177 |
+
@if not $relative-font-sizing and $font-size != $base-font-size {
|
178 |
+
@warn "$relative-font-sizing is false but a relative font size was passed to apply-side-rhythm-border";
|
179 |
+
}
|
180 |
+
border-#{$side}: {
|
181 |
+
style: $border-style;
|
182 |
+
width: $font-unit * $width / $font-size;
|
183 |
+
}
|
184 |
+
;
|
185 |
+
padding-#{$side}: rhythm($lines, $font-size, $offset: $width);
|
186 |
+
}
|
187 |
+
|
188 |
+
// Apply borders and whitespace equally to all sides.
|
189 |
+
@mixin rhythm-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
|
190 |
+
@if not $relative-font-sizing and $font-size != $base-font-size {
|
191 |
+
@warn "$relative-font-sizing is false but a relative font size was passed to rhythm-borders";
|
192 |
+
}
|
193 |
+
border: {
|
194 |
+
style: $border-style;
|
195 |
+
width: $font-unit * $width / $font-size;
|
196 |
+
}
|
197 |
+
;
|
198 |
+
padding: rhythm($lines, $font-size, $offset: $width);
|
199 |
+
}
|
200 |
+
|
201 |
+
// Apply a leading border.
|
202 |
+
@mixin leading-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
|
203 |
+
@include apply-side-rhythm-border(top, $width, $lines, $font-size, $border-style);
|
204 |
+
}
|
205 |
+
|
206 |
+
// Apply a trailing border.
|
207 |
+
@mixin trailing-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
|
208 |
+
@include apply-side-rhythm-border(bottom, $width, $lines, $font-size, $border-style);
|
209 |
+
}
|
210 |
+
|
211 |
+
// Apply both leading and trailing borders.
|
212 |
+
@mixin horizontal-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
|
213 |
+
@include leading-border($width, $lines, $font-size, $border-style);
|
214 |
+
@include trailing-border($width, $lines, $font-size, $border-style);
|
215 |
+
}
|
216 |
+
|
217 |
+
// Alias for `horizontal-borders` mixin.
|
218 |
+
@mixin h-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
|
219 |
+
@include horizontal-borders($width, $lines, $font-size, $border-style);
|
220 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/links/_hover-link.scss
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// a link that only has an underline when you hover over it
|
2 |
+
@mixin hover-link {
|
3 |
+
text-decoration: none;
|
4 |
+
&:hover {
|
5 |
+
text-decoration: underline;
|
6 |
+
}
|
7 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/links/_link-colors.scss
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Set all the colors for a link with one mixin call.
|
2 |
+
// Order of arguments is:
|
3 |
+
//
|
4 |
+
// 1. normal
|
5 |
+
// 2. hover
|
6 |
+
// 3. active
|
7 |
+
// 4. visited
|
8 |
+
// 5. focus
|
9 |
+
//
|
10 |
+
// Those states not specified will inherit.
|
11 |
+
// Mixin to an anchor link like so:
|
12 |
+
// a
|
13 |
+
// +link-colors(#00c, #0cc, #c0c, #ccc, #cc0)
|
14 |
+
|
15 |
+
@mixin link-colors($normal, $hover: false, $active: false, $visited: false, $focus: false) {
|
16 |
+
color: $normal;
|
17 |
+
@if $visited {
|
18 |
+
&:visited {
|
19 |
+
color: $visited;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
@if $focus {
|
23 |
+
&:focus {
|
24 |
+
color: $focus;
|
25 |
+
}
|
26 |
+
}
|
27 |
+
@if $hover {
|
28 |
+
&:hover {
|
29 |
+
color: $hover;
|
30 |
+
}
|
31 |
+
}
|
32 |
+
@if $active {
|
33 |
+
&:active {
|
34 |
+
color: $active;
|
35 |
+
}
|
36 |
+
}
|
37 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/links/_unstyled-link.scss
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// A link that looks and acts like the text it is contained within
|
2 |
+
@mixin unstyled-link {
|
3 |
+
color: inherit;
|
4 |
+
text-decoration: inherit;
|
5 |
+
cursor: inherit;
|
6 |
+
&:active, &:focus {
|
7 |
+
outline: none;
|
8 |
+
}
|
9 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/lists/_bullets.scss
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Turn off the bullet for an element of a list
|
2 |
+
@mixin no-bullet {
|
3 |
+
list-style-image: none;
|
4 |
+
list-style-type: none;
|
5 |
+
margin-left: 0;
|
6 |
+
}
|
7 |
+
|
8 |
+
// turns off the bullets for an entire list
|
9 |
+
@mixin no-bullets {
|
10 |
+
list-style: none;
|
11 |
+
li {
|
12 |
+
@include no-bullet;
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
// Make a list(ul/ol) have an image bullet.
|
17 |
+
//
|
18 |
+
// The mixin should be used like this for an icon that is 5x7:
|
19 |
+
//
|
20 |
+
// ul.pretty
|
21 |
+
// +pretty-bullets("my-icon.png", 5px, 7px)
|
22 |
+
//
|
23 |
+
// Additionally, if the image dimensions are not provided,
|
24 |
+
// The image dimensions will be extracted from the image itself.
|
25 |
+
//
|
26 |
+
// ul.pretty
|
27 |
+
// +pretty-bullets("my-icon.png")
|
28 |
+
//
|
29 |
+
@mixin pretty-bullets($bullet-icon, $width: image-width($bullet-icon), $height: image-height($bullet-icon), $line-height: 18px, $padding: 14px) {
|
30 |
+
margin-left: 0;
|
31 |
+
li {
|
32 |
+
padding-left: $padding;
|
33 |
+
background: image-url($bullet-icon) no-repeat ($padding - $width) / 2 ($line-height - $height) / 2;
|
34 |
+
list-style-type: none;
|
35 |
+
}
|
36 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/lists/_horizontal-list.scss
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Horizontal list layout module.
|
2 |
+
//
|
3 |
+
// Easy mode using simple descendant li selectors:
|
4 |
+
//
|
5 |
+
// ul.nav
|
6 |
+
// +horizontal-list
|
7 |
+
//
|
8 |
+
// Advanced mode:
|
9 |
+
// If you need to target the list items using a different selector then use
|
10 |
+
// +horizontal-list-container on your ul/ol and +horizontal-list-item on your li.
|
11 |
+
// This may help when working on layouts involving nested lists. For example:
|
12 |
+
//
|
13 |
+
// ul.nav
|
14 |
+
// +horizontal-list-container
|
15 |
+
// > li
|
16 |
+
// +horizontal-list-item
|
17 |
+
|
18 |
+
@import "bullets";
|
19 |
+
@import "compass/utilities/general/clearfix";
|
20 |
+
@import "compass/utilities/general/reset";
|
21 |
+
@import "compass/utilities/general/float";
|
22 |
+
|
23 |
+
// Can be mixed into any selector that target a ul or ol that is meant
|
24 |
+
// to have a horizontal layout. Used to implement +horizontal-list.
|
25 |
+
@mixin horizontal-list-container {
|
26 |
+
@include reset-box-model;
|
27 |
+
@include clearfix;
|
28 |
+
}
|
29 |
+
|
30 |
+
// Can be mixed into any li selector that is meant to participate in a horizontal layout.
|
31 |
+
// Used to implement +horizontal-list.
|
32 |
+
//
|
33 |
+
// :last-child is not fully supported
|
34 |
+
// see http://www.quirksmode.org/css/contents.html#t29 for the support matrix
|
35 |
+
//
|
36 |
+
// IE8 ignores rules that are included on the same line as :last-child
|
37 |
+
// see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
|
38 |
+
//
|
39 |
+
// Setting `$padding` to `false` disables the padding between list elements
|
40 |
+
@mixin horizontal-list-item($padding: 4px, $direction: left) {
|
41 |
+
@include no-bullet;
|
42 |
+
white-space: nowrap;
|
43 |
+
@include float($direction);
|
44 |
+
@if $padding {
|
45 |
+
padding: {
|
46 |
+
left: $padding;
|
47 |
+
right: $padding;
|
48 |
+
}
|
49 |
+
&:first-child, &.first {
|
50 |
+
padding-#{$direction}: 0;
|
51 |
+
}
|
52 |
+
&:last-child {
|
53 |
+
padding-#{opposite-position($direction)}: 0;
|
54 |
+
}
|
55 |
+
&.last {
|
56 |
+
padding-#{opposite-position($direction)}: 0;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
// A list(ol,ul) that is layed out such that the elements are floated left and won't wrap.
|
62 |
+
// This is not an inline list.
|
63 |
+
//
|
64 |
+
// Setting `$padding` to `false` disables the padding between list elements
|
65 |
+
@mixin horizontal-list($padding: 4px, $direction: left) {
|
66 |
+
@include horizontal-list-container;
|
67 |
+
li {
|
68 |
+
@include horizontal-list-item($padding, $direction);
|
69 |
+
}
|
70 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/lists/_inline-block-list.scss
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Inline-Block list layout module.
|
2 |
+
//
|
3 |
+
// Easy mode using simple descendant li selectors:
|
4 |
+
//
|
5 |
+
// ul.nav {
|
6 |
+
// @import inline-block-list;
|
7 |
+
// }
|
8 |
+
//
|
9 |
+
// Advanced mode:
|
10 |
+
// If you need to target the list items using a different selector then use
|
11 |
+
// `@include inline-block-list-container` on your ul/ol and
|
12 |
+
// `@include inline-block-list-item` on your li. This may help when working
|
13 |
+
// on layouts involving nested lists. For example:
|
14 |
+
//
|
15 |
+
// ul.nav {
|
16 |
+
// @include inline-block-list-container;
|
17 |
+
// > li {
|
18 |
+
// @include inline-block-list-item;
|
19 |
+
// }
|
20 |
+
// }
|
21 |
+
|
22 |
+
@import "bullets";
|
23 |
+
@import "horizontal-list";
|
24 |
+
@import "compass/utilities/general/float";
|
25 |
+
@import "compass/css3/inline-block";
|
26 |
+
|
27 |
+
// Can be mixed into any selector that target a ul or ol that is meant
|
28 |
+
// to have an inline-block layout. Used to implement `inline-block-list`.
|
29 |
+
@mixin inline-block-list-container {
|
30 |
+
@include horizontal-list-container;
|
31 |
+
}
|
32 |
+
|
33 |
+
// Can be mixed into any li selector that is meant to participate in a horizontal layout.
|
34 |
+
// Used to implement `inline-block-list`.
|
35 |
+
@mixin inline-block-list-item($padding: false) {
|
36 |
+
@include no-bullet;
|
37 |
+
@include inline-block;
|
38 |
+
white-space: nowrap;
|
39 |
+
@if $padding {
|
40 |
+
padding: {
|
41 |
+
left: $padding;
|
42 |
+
right: $padding;
|
43 |
+
}
|
44 |
+
;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
// A list(ol,ul) that is layed out such that the elements are inline-block and won't wrap.
|
49 |
+
@mixin inline-block-list($padding: false) {
|
50 |
+
@include inline-block-list-container;
|
51 |
+
li {
|
52 |
+
@include inline-block-list-item($padding);
|
53 |
+
}
|
54 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/lists/_inline-list.scss
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// makes a list inline.
|
2 |
+
|
3 |
+
@mixin inline-list {
|
4 |
+
list-style-type: none;
|
5 |
+
&, & li {
|
6 |
+
margin: 0px;
|
7 |
+
padding: 0px;
|
8 |
+
display: inline;
|
9 |
+
}
|
10 |
+
}
|
11 |
+
|
12 |
+
// makes an inline list delimited with the passed string.
|
13 |
+
// Defaults to making a comma-separated list.
|
14 |
+
//
|
15 |
+
// Please make note of the browser support issues before using this mixin:
|
16 |
+
//
|
17 |
+
// use of `content` and `:after` is not fully supported in all browsers.
|
18 |
+
// See quirksmode for the [support matrix](http://www.quirksmode.org/css/contents.html#t15)
|
19 |
+
//
|
20 |
+
// `:last-child` is not fully supported.
|
21 |
+
// see quirksmode for the [support matrix](http://www.quirksmode.org/css/contents.html#t29).
|
22 |
+
//
|
23 |
+
// IE8 ignores rules that are included on the same line as :last-child
|
24 |
+
// see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
|
25 |
+
|
26 |
+
@mixin delimited-list($separator: ", ") {
|
27 |
+
@include inline-list;
|
28 |
+
li {
|
29 |
+
&:after {
|
30 |
+
content: $separator;
|
31 |
+
}
|
32 |
+
&:last-child {
|
33 |
+
&:after {
|
34 |
+
content: "";
|
35 |
+
}
|
36 |
+
}
|
37 |
+
&.last {
|
38 |
+
&:after {
|
39 |
+
content: "";
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
// See [delimited-list](#mixin-delimited-list)
|
46 |
+
// @deprecated
|
47 |
+
@mixin comma-delimited-list {
|
48 |
+
@warn "comma-delimited-list is deprecated. Please use delimited-list instead.";
|
49 |
+
@include delimited-list;
|
50 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/text/_ellipsis.scss
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "compass/css3/shared";
|
2 |
+
|
3 |
+
// To get full firefox support, you must install the ellipsis pattern:
|
4 |
+
//
|
5 |
+
// compass install compass/ellipsis
|
6 |
+
$use-mozilla-ellipsis-binding: false !default;
|
7 |
+
|
8 |
+
// This technique, by [Justin Maxwell](http://code404.com/), was originally
|
9 |
+
// published [here](http://mattsnider.com/css/css-string-truncation-with-ellipsis/).
|
10 |
+
// Firefox implementation by [Rikkert Koppes](http://www.rikkertkoppes.com/thoughts/2008/6/).
|
11 |
+
@mixin ellipsis($no-wrap: true) {
|
12 |
+
@if $no-wrap {
|
13 |
+
white-space: nowrap;
|
14 |
+
}
|
15 |
+
overflow: hidden;
|
16 |
+
@include experimental(text-overflow, ellipsis, not -moz, not -webkit, -o, -ms, not -khtml, official);
|
17 |
+
@if $experimental-support-for-mozilla and $use-mozilla-ellipsis-binding {
|
18 |
+
-moz-binding: stylesheet-url(unquote("xml/ellipsis.xml#ellipsis"));
|
19 |
+
}
|
20 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/text/_force-wrap.scss
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Prevent long urls and text from breaking layouts
|
2 |
+
// [originally from perishablepress.com](http://perishablepress.com/press/2010/06/01/wrapping-content/)
|
3 |
+
@mixin force-wrap {
|
4 |
+
white-space: pre;
|
5 |
+
// CSS 2.0
|
6 |
+
white-space: pre-wrap;
|
7 |
+
// CSS 2.1
|
8 |
+
white-space: pre-line;
|
9 |
+
// CSS 3.0
|
10 |
+
white-space: -pre-wrap;
|
11 |
+
// Opera 4-6
|
12 |
+
white-space: -o-pre-wrap;
|
13 |
+
// Opera 7
|
14 |
+
white-space: -moz-pre-wrap;
|
15 |
+
// Mozilla
|
16 |
+
white-space: -hp-pre-wrap;
|
17 |
+
// HP Printers
|
18 |
+
word-wrap: break-word;
|
19 |
+
// IE 5+
|
20 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/text/_nowrap.scss
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
// When remembering whether or not there's a hyphen in white-space is too hard
|
2 |
+
@mixin nowrap {
|
3 |
+
white-space: nowrap;
|
4 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/typography/text/_replacement.scss
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Indicates the direction you prefer to move your text
|
2 |
+
// when hiding it.
|
3 |
+
//
|
4 |
+
// `left` is more robust, especially in older browsers.
|
5 |
+
// `right` seems have better runtime performance.
|
6 |
+
$hide-text-direction: left !default;
|
7 |
+
|
8 |
+
// Hides html text and replaces it with an image.
|
9 |
+
// If you use this on an inline element, you will need to change the display to block or inline-block.
|
10 |
+
// Also, if the size of the image differs significantly from the font size, you'll need to set the width and/or height.
|
11 |
+
//
|
12 |
+
// Parameters:
|
13 |
+
//
|
14 |
+
// * `img` -- the relative path from the project image directory to the image, or a url literal.
|
15 |
+
// * `x` -- the x position of the background image.
|
16 |
+
// * `y` -- the y position of the background image.
|
17 |
+
@mixin replace-text($img, $x: 50%, $y: 50%) {
|
18 |
+
@include hide-text;
|
19 |
+
background: {
|
20 |
+
@if is-url($img) {
|
21 |
+
image: $img;
|
22 |
+
} @else {
|
23 |
+
image: image-url($img);
|
24 |
+
}
|
25 |
+
repeat: no-repeat;
|
26 |
+
position: $x $y;
|
27 |
+
}
|
28 |
+
|
29 |
+
;
|
30 |
+
}
|
31 |
+
|
32 |
+
// Like the `replace-text` mixin, but also sets the width
|
33 |
+
// and height of the element according the dimensions of the image.
|
34 |
+
//
|
35 |
+
// If you set `$inline` to true, then an inline image (data uri) will be used.
|
36 |
+
@mixin replace-text-with-dimensions($img, $x: 50%, $y: 50%, $inline: false) {
|
37 |
+
@include replace-text(if($inline, inline-image($img), $img), $x, $y);
|
38 |
+
width: image-width($img);
|
39 |
+
height: image-height($img);
|
40 |
+
}
|
41 |
+
|
42 |
+
// Hides text in an element so you can see the background.
|
43 |
+
//
|
44 |
+
// The direction indicates how the text should be moved out of view.
|
45 |
+
//
|
46 |
+
// See `$hide-text-direction` for more information and to set this globally
|
47 |
+
// for your application.
|
48 |
+
@mixin hide-text($direction: $hide-text-direction) {
|
49 |
+
@if $direction == left {
|
50 |
+
$approximate-em-value: 12px / 1em;
|
51 |
+
$wider-than-any-screen: -9999em;
|
52 |
+
text-indent: $wider-than-any-screen * $approximate-em-value;
|
53 |
+
overflow: hidden;
|
54 |
+
text-align: left;
|
55 |
+
} @else {
|
56 |
+
// slightly wider than the box prevents issues with inline-block elements
|
57 |
+
text-indent: 110%;
|
58 |
+
white-space: nowrap;
|
59 |
+
overflow: hidden;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
// Hides text in an element by squishing the text into oblivion.
|
64 |
+
// Use this if you need to hide text contained in an inline element
|
65 |
+
// but still have it read by a screen reader.
|
66 |
+
@mixin squish-text {
|
67 |
+
font: 0/0 serif;
|
68 |
+
text-shadow: none;
|
69 |
+
color: transparent;
|
70 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_color.scss
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
@import "color/color/_contrast";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_general.scss
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "general/reset";
|
2 |
+
@import "general/general/_clearfix";
|
3 |
+
@import "general/general/_float";
|
4 |
+
@import "general/general/_tag-cloud";
|
5 |
+
@import "general/general/_hacks";
|
6 |
+
@import "general/general/_min";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_print.scss
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Classes that are useful for controlling what gets printed.
|
2 |
+
// You must mix `+print-utilities` into your print stylesheet
|
3 |
+
// and `+print-utilities(screen)` into your screen stylesheet.
|
4 |
+
// Note: these aren't semantic.
|
5 |
+
@mixin print-utilities($media: print) {
|
6 |
+
@if $media == print {
|
7 |
+
.noprint, .no-print {
|
8 |
+
display: none;
|
9 |
+
}
|
10 |
+
#{elements-of-type(block)} {
|
11 |
+
&.print-only {
|
12 |
+
display: block;
|
13 |
+
}
|
14 |
+
}
|
15 |
+
#{elements-of-type(inline)} {
|
16 |
+
&.print-only {
|
17 |
+
display: inline;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
} @else {
|
21 |
+
.print-only {
|
22 |
+
display: none;
|
23 |
+
}
|
24 |
+
}
|
25 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_sprites.scss
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
@import "sprites/sprites/_base";
|
2 |
+
@import "sprites/sprites/_sprite-img";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/_tables.scss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
@import "tables/tables/_alternating-rows-and-columns";
|
2 |
+
@import "tables/tables/_borders";
|
3 |
+
@import "tables/tables/_scaffolding";
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/color/_contrast.scss
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
$contrasted-dark-default: #000 !default;
|
2 |
+
$contrasted-light-default: #fff !default;
|
3 |
+
$contrasted-lightness-threshold: 30% !default;
|
4 |
+
|
5 |
+
// Returns the `$light` color when the `$color` is dark
|
6 |
+
// and the `$dark` color when the `$color` is light.
|
7 |
+
// The `$threshold` is a percent between `0%` and `100%` and it determines
|
8 |
+
// when the lightness of `$color` changes from "dark" to "light".
|
9 |
+
@function contrast-color($color,
|
10 |
+
$dark: $contrasted-dark-default,
|
11 |
+
$light: $contrasted-light-default,
|
12 |
+
$threshold: $contrasted-lightness-threshold) {
|
13 |
+
@return if(lightness($color) < $threshold, $light, $dark)
|
14 |
+
}
|
15 |
+
|
16 |
+
// Sets the specified background color and calculates a dark or light contrasted text color.
|
17 |
+
// The arguments are passed through to the [contrast-color function](#function-contrast-color).
|
18 |
+
@mixin contrasted($background-color,
|
19 |
+
$dark: $contrasted-dark-default,
|
20 |
+
$light: $contrasted-light-default,
|
21 |
+
$threshold: $contrasted-lightness-threshold) {
|
22 |
+
background-color: $background-color;
|
23 |
+
color: contrast-color($background-color, $dark, $light, $threshold);
|
24 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_clearfix.scss
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// @doc off
|
2 |
+
// Extends the bottom of the element to enclose any floats it contains.
|
3 |
+
// @doc on
|
4 |
+
|
5 |
+
@import "hacks";
|
6 |
+
|
7 |
+
// This basic method is preferred for the usual case, when positioned
|
8 |
+
// content will not show outside the bounds of the container.
|
9 |
+
//
|
10 |
+
// Recommendations include using this in conjunction with a width.
|
11 |
+
// Credit: [quirksmode.org](http://www.quirksmode.org/blog/archives/2005/03/clearing_floats.html)
|
12 |
+
@mixin clearfix {
|
13 |
+
overflow: hidden;
|
14 |
+
@include has-layout;
|
15 |
+
}
|
16 |
+
|
17 |
+
// This older method from Position Is Everything called
|
18 |
+
// [Easy Clearing](http://www.positioniseverything.net/easyclearing.html)
|
19 |
+
// has the advantage of allowing positioned elements to hang
|
20 |
+
// outside the bounds of the container at the expense of more tricky CSS.
|
21 |
+
@mixin legacy-pie-clearfix {
|
22 |
+
&:after {
|
23 |
+
content: "\0020";
|
24 |
+
display: block;
|
25 |
+
height: 0;
|
26 |
+
clear: both;
|
27 |
+
overflow: hidden;
|
28 |
+
visibility: hidden;
|
29 |
+
}
|
30 |
+
@include has-layout;
|
31 |
+
}
|
32 |
+
|
33 |
+
// This is an updated version of the PIE clearfix method that reduces the amount of CSS output.
|
34 |
+
// If you need to support Firefox before 3.5 you need to use `legacy-pie-clearfix` instead.
|
35 |
+
//
|
36 |
+
// Adapted from: [A new micro clearfix hack](http://nicolasgallagher.com/micro-clearfix-hack/)
|
37 |
+
@mixin pie-clearfix {
|
38 |
+
&:after {
|
39 |
+
content: "";
|
40 |
+
display: table;
|
41 |
+
clear: both;
|
42 |
+
}
|
43 |
+
@include has-layout;
|
44 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_float.scss
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Implementation of float:left with fix for the
|
2 |
+
// [double-margin bug in IE5/6](http://www.positioniseverything.net/explorer/doubled-margin.html)
|
3 |
+
@mixin float-left {
|
4 |
+
@include float(left);
|
5 |
+
}
|
6 |
+
|
7 |
+
// Implementation of float:right with fix for the
|
8 |
+
// [double-margin bug in IE5/6](http://www.positioniseverything.net/explorer/doubled-margin.html)
|
9 |
+
@mixin float-right {
|
10 |
+
@include float(right);
|
11 |
+
}
|
12 |
+
|
13 |
+
// Direction independent float mixin that fixes the
|
14 |
+
// [double-margin bug in IE5/6](http://www.positioniseverything.net/explorer/doubled-margin.html)
|
15 |
+
@mixin float($side: left) {
|
16 |
+
display: inline;
|
17 |
+
float: unquote($side);
|
18 |
+
}
|
19 |
+
|
20 |
+
// Resets floated elements back to their default of `float: none` and defaults
|
21 |
+
// to `display: block` unless you pass `inline` as an argument
|
22 |
+
//
|
23 |
+
// Usage Example:
|
24 |
+
//
|
25 |
+
// body.homepage
|
26 |
+
// #footer li
|
27 |
+
// +float-left
|
28 |
+
// body.signup
|
29 |
+
// #footer li
|
30 |
+
// +reset-float
|
31 |
+
@mixin reset-float($display: block) {
|
32 |
+
float: none;
|
33 |
+
display: $display;
|
34 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_hacks.scss
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "compass/support";
|
2 |
+
|
3 |
+
// The `zoom` approach generates less CSS but does not validate.
|
4 |
+
// Set this to `block` to use the display-property to hack the
|
5 |
+
// element to gain layout.
|
6 |
+
$default-has-layout-approach: zoom !default;
|
7 |
+
|
8 |
+
// This mixin causes an element matching the selector
|
9 |
+
// to gain the "hasLayout" property in internet explorer.
|
10 |
+
// More information on [hasLayout](http://reference.sitepoint.com/css/haslayout).
|
11 |
+
@mixin has-layout($approach: $default-has-layout-approach) {
|
12 |
+
@if $legacy-support-for-ie {
|
13 |
+
@if $approach == zoom {
|
14 |
+
@include has-layout-zoom;
|
15 |
+
} @else if $approach == block {
|
16 |
+
@include has-layout-block;
|
17 |
+
} @else {
|
18 |
+
@warn "Unknown has-layout approach: #{$approach}";
|
19 |
+
@include has-layout-zoom;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
}
|
23 |
+
|
24 |
+
@mixin has-layout-zoom {
|
25 |
+
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
|
26 |
+
*zoom: 1;
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
@mixin has-layout-block {
|
31 |
+
@if $legacy-support-for-ie {
|
32 |
+
// This makes ie6 get layout
|
33 |
+
display: inline-block;
|
34 |
+
// and this puts it back to block
|
35 |
+
& {
|
36 |
+
display: block;
|
37 |
+
}
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
// A hack to supply IE6 (and below) with a different property value.
|
42 |
+
// [Read more](http://www.cssportal.com/css-hacks/#in_css-important).
|
43 |
+
@mixin bang-hack($property, $value, $ie6-value) {
|
44 |
+
@if $legacy-support-for-ie6 {
|
45 |
+
#{$property}: #{$value} !important;
|
46 |
+
#{$property}: #{$ie6-value};
|
47 |
+
}
|
48 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_min.scss
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "hacks";
|
2 |
+
|
3 |
+
//**
|
4 |
+
// Cross browser min-height mixin.
|
5 |
+
@mixin min-height($value) {
|
6 |
+
@include hacked-minimum(height, $value);
|
7 |
+
}
|
8 |
+
|
9 |
+
//**
|
10 |
+
// Cross browser min-width mixin.
|
11 |
+
@mixin min-width($value) {
|
12 |
+
@include hacked-minimum(width, $value);
|
13 |
+
}
|
14 |
+
|
15 |
+
// @private This mixin is not meant to be used directly.
|
16 |
+
@mixin hacked-minimum($property, $value) {
|
17 |
+
min-#{$property}: $value;
|
18 |
+
@include bang-hack($property, auto, $value);
|
19 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_tabs.scss
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/general/_tag-cloud.scss
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Emits styles for a tag cloud
|
2 |
+
@mixin tag-cloud($base-size: 1em) {
|
3 |
+
font-size: $base-size;
|
4 |
+
line-height: 1.2 * $base-size;
|
5 |
+
.xxs, .xs, .s, .l, .xl, .xxl {
|
6 |
+
line-height: 1.2 * $base-size;
|
7 |
+
}
|
8 |
+
.xxs {
|
9 |
+
font-size: $base-size / 2;
|
10 |
+
}
|
11 |
+
.xs {
|
12 |
+
font-size: 2 * $base-size / 3;
|
13 |
+
}
|
14 |
+
.s {
|
15 |
+
font-size: 3 * $base-size / 4;
|
16 |
+
}
|
17 |
+
.l {
|
18 |
+
font-size: 4 * $base-size / 3;
|
19 |
+
}
|
20 |
+
.xl {
|
21 |
+
font-size: 3 * $base-size / 2;
|
22 |
+
}
|
23 |
+
.xxl {
|
24 |
+
font-size: 2 * $base-size;
|
25 |
+
}
|
26 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/sprites/_base.scss
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Determines those states for which you want to enable magic sprite selectors
|
2 |
+
$sprite-selectors: hover, target, active !default;
|
3 |
+
|
4 |
+
// Set the width and height of an element to the original
|
5 |
+
// dimensions of an image before it was included in the sprite.
|
6 |
+
@mixin sprite-dimensions($map, $sprite) {
|
7 |
+
height: image-height(sprite-file($map, $sprite));
|
8 |
+
width: image-width(sprite-file($map, $sprite));
|
9 |
+
}
|
10 |
+
|
11 |
+
// Set the background position of the given sprite `$map` to display the
|
12 |
+
// sprite of the given `$sprite` name. You can move the image relative to its
|
13 |
+
// natural position by passing `$offset-x` and `$offset-y`.
|
14 |
+
@mixin sprite-background-position($map, $sprite, $offset-x: 0, $offset-y: 0) {
|
15 |
+
background-position: sprite-position($map, $sprite, $offset-x, $offset-y);
|
16 |
+
}
|
17 |
+
|
18 |
+
// Determines if you want to include magic selectors in your sprites
|
19 |
+
$disable-magic-sprite-selectors: false !default;
|
20 |
+
|
21 |
+
// Include the position and (optionally) dimensions of this `$sprite`
|
22 |
+
// in the given sprite `$map`. The sprite url should come from either a base
|
23 |
+
// class or you can specify the `sprite-url` explicitly like this:
|
24 |
+
//
|
25 |
+
// background: $map no-repeat;
|
26 |
+
@mixin sprite($map, $sprite, $dimensions: false, $offset-x: 0, $offset-y: 0) {
|
27 |
+
@include sprite-background-position($map, $sprite, $offset-x, $offset-y);
|
28 |
+
@if $dimensions {
|
29 |
+
@include sprite-dimensions($map, $sprite);
|
30 |
+
}
|
31 |
+
@if not $disable-magic-sprite-selectors {
|
32 |
+
@include sprite-selectors($map, $sprite, $sprite, $offset-x, $offset-y);
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
// Include the selectors for the `$sprite` given the `$map` and the
|
37 |
+
// `$full-sprite-name`
|
38 |
+
// @private
|
39 |
+
@mixin sprite-selectors($map, $sprite-name, $full-sprite-name, $offset-x: 0, $offset-y: 0) {
|
40 |
+
@each $selector in $sprite-selectors {
|
41 |
+
@if sprite_has_selector($map, $sprite-name, $selector) {
|
42 |
+
&:#{$selector}, &.#{$full-sprite-name}_#{$selector}, &.#{$full-sprite-name}-#{$selector} {
|
43 |
+
@include sprite-background-position($map, "#{$sprite-name}_#{$selector}", $offset-x, $offset-y);
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
// Generates a class for each space separated name in `$sprite-names`.
|
50 |
+
// The class will be of the form .<map-name>-<sprite-name>.
|
51 |
+
//
|
52 |
+
// If a base class is provided, then each class will extend it.
|
53 |
+
//
|
54 |
+
// If `$dimensions` is `true`, the sprite dimensions will specified.
|
55 |
+
@mixin sprites($map, $sprite-names, $base-class: false, $dimensions: false, $prefix: sprite-map-name($map), $offset-x: 0, $offset-y: 0) {
|
56 |
+
@each $sprite-name in $sprite-names {
|
57 |
+
@if sprite_does_not_have_parent($map, $sprite-name) {
|
58 |
+
$full-sprite-name: "#{$prefix}-#{$sprite-name}";
|
59 |
+
.#{$full-sprite-name} {
|
60 |
+
@if $base-class {
|
61 |
+
@extend #{$base-class};
|
62 |
+
}
|
63 |
+
@include sprite($map, $sprite-name, $dimensions, $offset-x, $offset-y);
|
64 |
+
}
|
65 |
+
}
|
66 |
+
}
|
67 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/sprites/_sprite-img.scss
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// @doc off
|
2 |
+
// Example 1:
|
3 |
+
//
|
4 |
+
// a.twitter
|
5 |
+
// +sprite-img("icons-32.png", 1)
|
6 |
+
// a.facebook
|
7 |
+
// +sprite-img("icons-32png", 2)
|
8 |
+
//
|
9 |
+
// Example 2:
|
10 |
+
//
|
11 |
+
// a
|
12 |
+
// +sprite-background("icons-32.png")
|
13 |
+
// a.twitter
|
14 |
+
// +sprite-column(1)
|
15 |
+
// a.facebook
|
16 |
+
// +sprite-row(2)
|
17 |
+
// @doc on
|
18 |
+
|
19 |
+
$sprite-default-size: 32px !default;
|
20 |
+
|
21 |
+
$sprite-default-margin: 0px !default;
|
22 |
+
|
23 |
+
$sprite-image-default-width: $sprite-default-size !default;
|
24 |
+
|
25 |
+
$sprite-image-default-height: $sprite-default-size !default;
|
26 |
+
|
27 |
+
// Sets all the rules for a sprite from a given sprite image to show just one of the sprites.
|
28 |
+
// To reduce duplication use a sprite-bg mixin for common properties and a sprite-select mixin for positioning.
|
29 |
+
@mixin sprite-img($img, $col, $row: 1, $width: $sprite-image-default-width, $height: $sprite-image-default-height, $margin: $sprite-default-margin) {
|
30 |
+
@include sprite-background($img, $width, $height);
|
31 |
+
@include sprite-position($col, $row, $width, $height, $margin);
|
32 |
+
}
|
33 |
+
|
34 |
+
// Sets rules common for all sprites, assumes you want a square, but allows a rectangular region.
|
35 |
+
@mixin sprite-background($img, $width: $sprite-default-size, $height: $width) {
|
36 |
+
@include sprite-background-rectangle($img, $width, $height);
|
37 |
+
}
|
38 |
+
|
39 |
+
// Sets rules common for all sprites, assumes a rectangular region.
|
40 |
+
@mixin sprite-background-rectangle($img, $width: $sprite-image-default-width, $height: $sprite-image-default-height) {
|
41 |
+
background: image-url($img) no-repeat;
|
42 |
+
width: $width;
|
43 |
+
height: $height;
|
44 |
+
overflow: hidden;
|
45 |
+
}
|
46 |
+
|
47 |
+
// Allows horizontal sprite positioning optimized for a single row of sprites.
|
48 |
+
@mixin sprite-column($col, $width: $sprite-image-default-width, $margin: $sprite-default-margin) {
|
49 |
+
@include sprite-position($col, 1, $width, 0px, $margin);
|
50 |
+
}
|
51 |
+
|
52 |
+
// Allows vertical sprite positioning optimized for a single column of sprites.
|
53 |
+
@mixin sprite-row($row, $height: $sprite-image-default-height, $margin: $sprite-default-margin) {
|
54 |
+
@include sprite-position(1, $row, 0px, $height, $margin);
|
55 |
+
}
|
56 |
+
|
57 |
+
// Allows vertical and horizontal sprite positioning from a grid of equal dimensioned sprites.
|
58 |
+
@mixin sprite-position($col, $row: 1, $width: $sprite-image-default-width, $height: $sprite-image-default-height, $margin: $sprite-default-margin) {
|
59 |
+
$x: ($col - 1) * -$width - ($col - 1) * $margin;
|
60 |
+
$y: ($row - 1) * -$height - ($row - 1) * $margin;
|
61 |
+
background-position: $x $y;
|
62 |
+
}
|
63 |
+
|
64 |
+
// Similar to 'sprite-replace-text-with-dimensions' but does not autmaticly set the demensions
|
65 |
+
@mixin sprite-replace-text
|
66 |
+
|
67 |
+
(
|
68 |
+
$map,
|
69 |
+
$sprite,
|
70 |
+
$dimensions: false, $offset-x: 0, $offset-y: 0)
|
71 |
+
{
|
72 |
+
@include hide-text;
|
73 |
+
@include sprite($map, $sprite, $dimensions, $offset-x, $offset-y);
|
74 |
+
background-image: $map;
|
75 |
+
background-repeat: no-repeat;
|
76 |
+
}
|
77 |
+
|
78 |
+
// Similar to 'replace-text-with-dimensions' but with sprites
|
79 |
+
// To use, create your sprite and then pass it in the `$map` param
|
80 |
+
// The name of the image in the sprite folder should be `$img-name`
|
81 |
+
@mixin sprite-replace-text-with-dimensions
|
82 |
+
|
83 |
+
(
|
84 |
+
$map,
|
85 |
+
$sprite,
|
86 |
+
$offset-x: 0, $offset-y: 0)
|
87 |
+
{
|
88 |
+
@include sprite-replace-text
|
89 |
+
(
|
90 |
+
$map
|
91 |
+
,
|
92 |
+
$sprite
|
93 |
+
,
|
94 |
+
true
|
95 |
+
,
|
96 |
+
$offset-x
|
97 |
+
,
|
98 |
+
$offset-y
|
99 |
+
)
|
100 |
+
;
|
101 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin alternating-rows-and-columns($even-row-color, $odd-row-color, $dark-intersection, $header-color: white, $footer-color: white) {
|
2 |
+
th {
|
3 |
+
background-color: $header-color;
|
4 |
+
&.even, &:nth-child(2n) {
|
5 |
+
background-color: $header-color - $dark-intersection;
|
6 |
+
}
|
7 |
+
}
|
8 |
+
tr {
|
9 |
+
&.odd, &:nth-child(2n+1) {
|
10 |
+
td {
|
11 |
+
background-color: $odd-row-color;
|
12 |
+
&.even, &:nth-child(2n) {
|
13 |
+
background-color: $odd-row-color - $dark-intersection;
|
14 |
+
}
|
15 |
+
}
|
16 |
+
}
|
17 |
+
}
|
18 |
+
tr.even {
|
19 |
+
td {
|
20 |
+
background-color: $even-row-color;
|
21 |
+
&.even, &:nth-child(2n) {
|
22 |
+
background-color: $even-row-color - $dark-intersection;
|
23 |
+
}
|
24 |
+
}
|
25 |
+
}
|
26 |
+
tfoot {
|
27 |
+
th, td {
|
28 |
+
background-color: $footer-color;
|
29 |
+
&.even, &:nth-child(2n) {
|
30 |
+
background-color: $footer-color - $dark-intersection;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/tables/_borders.scss
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin outer-table-borders($width: 2px, $color: black) {
|
2 |
+
border: $width solid $color;
|
3 |
+
thead {
|
4 |
+
th {
|
5 |
+
border-bottom: $width solid $color;
|
6 |
+
}
|
7 |
+
}
|
8 |
+
tfoot {
|
9 |
+
th, td {
|
10 |
+
border-top: $width solid $color;
|
11 |
+
}
|
12 |
+
}
|
13 |
+
th {
|
14 |
+
&:first-child {
|
15 |
+
border-right: $width solid $color;
|
16 |
+
}
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
+
@mixin inner-table-borders($width: 2px, $color: black) {
|
21 |
+
th, td {
|
22 |
+
border: {
|
23 |
+
right: $width solid $color;
|
24 |
+
bottom: $width solid $color;
|
25 |
+
left-width: 0px;
|
26 |
+
top-width: 0px;
|
27 |
+
}
|
28 |
+
;
|
29 |
+
&:last-child,
|
30 |
+
&.last {
|
31 |
+
border-right-width: 0px;
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
// IE8 ignores rules that are included on the same line as :last-child
|
36 |
+
// see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
|
37 |
+
|
38 |
+
tbody, tfoot {
|
39 |
+
tr:last-child {
|
40 |
+
th, td {
|
41 |
+
border-bottom-width: 0px;
|
42 |
+
}
|
43 |
+
}
|
44 |
+
tr.last {
|
45 |
+
th, td {
|
46 |
+
border-bottom-width: 0px;
|
47 |
+
}
|
48 |
+
}
|
49 |
+
}
|
50 |
+
}
|
lib/phpsass/Extensions/Compass/stylesheets/compass/utilities/tables/_scaffolding.scss
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin table-scaffolding {
|
2 |
+
th {
|
3 |
+
text-align: center;
|
4 |
+
font-weight: bold;
|
5 |
+
}
|
6 |
+
td,
|
7 |
+
th {
|
8 |
+
padding: 2px;
|
9 |
+
&.numeric {
|
10 |
+
text-align: right;
|
11 |
+
}
|
12 |
+
}
|
13 |
+
}
|
lib/phpsass/Extensions/ExtensionInterface.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
interface ExtensionInterface
|
3 |
+
{
|
4 |
+
public static function getFunctions($namespace);
|
5 |
+
|
6 |
+
public static function resolveExtensionPath($filename, $parser, $syntax = 'scss');
|
7 |
+
}
|
lib/phpsass/Extensions/Own/Own.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
require_once dirname(__FILE__) . '/../ExtensionInterface.php';
|
3 |
+
class Own implements ExtensionInterface
|
4 |
+
{
|
5 |
+
|
6 |
+
public static $filesFolder = 'css';
|
7 |
+
public static $filePaths = null;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* List with alias functions in Compass
|
11 |
+
* @var array
|
12 |
+
*/
|
13 |
+
public static $functions = array(
|
14 |
+
'demo-function',
|
15 |
+
);
|
16 |
+
|
17 |
+
public static function getFunctions($namespace)
|
18 |
+
{
|
19 |
+
|
20 |
+
$output = array();
|
21 |
+
foreach (self::$functions as $function) {
|
22 |
+
$originalFunction = $function;
|
23 |
+
$function[0] = strtoupper($function[0]);
|
24 |
+
$func = create_function('$c', 'return strtoupper($c[1]);');
|
25 |
+
$function = preg_replace_callback('/-([a-z])/', $func, $function);
|
26 |
+
$output[$originalFunction] = $namespace . strtolower(__CLASS__) . $function;
|
27 |
+
}
|
28 |
+
|
29 |
+
return $output;
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Returns an array with all files in $root path recursively and assign each array Key with clean alias
|
34 |
+
* @param $root
|
35 |
+
* @return array
|
36 |
+
*/
|
37 |
+
public static function getFilesArray($root)
|
38 |
+
{
|
39 |
+
|
40 |
+
$alias = array();
|
41 |
+
$directories = array();
|
42 |
+
$last_letter = $root[strlen($root) - 1];
|
43 |
+
$root = ($last_letter == '\\' || $last_letter == '/') ? $root : $root . DIRECTORY_SEPARATOR;
|
44 |
+
|
45 |
+
$directories[] = $root;
|
46 |
+
|
47 |
+
while (sizeof($directories)) {
|
48 |
+
$dir = array_pop($directories);
|
49 |
+
if ($handle = opendir($dir)) {
|
50 |
+
while (false !== ($file = readdir($handle))) {
|
51 |
+
if ($file == '.' || $file == '..') {
|
52 |
+
continue;
|
53 |
+
}
|
54 |
+
$file = $dir . $file;
|
55 |
+
if (is_dir($file)) {
|
56 |
+
$directory_path = $file . DIRECTORY_SEPARATOR;
|
57 |
+
array_push($directories, $directory_path);
|
58 |
+
} elseif (is_file($file)) {
|
59 |
+
$key = basename($file);
|
60 |
+
$alias[substr($key, 1, strpos($key, '.') - 1)] = $file;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
closedir($handle);
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
return $alias;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Implementation of hook_resolve_path_NAMESPACE().
|
72 |
+
*/
|
73 |
+
public static function resolveExtensionPath($callerImport, $parser, $syntax = 'scss')
|
74 |
+
{
|
75 |
+
$alias = str_replace('/_', '/', str_replace(array('.scss', '.sass'), '', $callerImport));
|
76 |
+
if (strrpos($alias, '/') !== false) {
|
77 |
+
$alias = substr($alias, strrpos($alias, '/') + 1);
|
78 |
+
}
|
79 |
+
if (self::$filePaths == null) {
|
80 |
+
self::$filePaths = self::getFilesArray(dirname(__FILE__) . '/' . self::$filesFolder . '/');
|
81 |
+
}
|
82 |
+
if (isset(self::$filePaths[$alias])) {
|
83 |
+
return self::$filePaths[$alias];
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
public static function ownDemoFunction(){
|
88 |
+
return new SassString("'This is my own Demo Function'");
|
89 |
+
}
|
90 |
+
}
|
lib/phpsass/Extensions/Own/css/test/test2/test.scss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
a{
|
2 |
+
color:blue;
|
3 |
+
}
|
lib/phpsass/Extensions/README.md
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
compass-phpsass
|
2 |
+
===============
|
3 |
+
|
4 |
+
Hi all,
|
5 |
+
this is a Compass Sass Framework http://compass-style.org for Phpsass based on the Compass extension integrated in Sassy for Drupal http://drupalcode.org/project/sassy.git/tree/HEAD:/extensions/compass
|
6 |
+
I only removed the specific code for Drupal and chaged it to Classes instead of *.module and *.inc
|
7 |
+
|
8 |
+
I hope that you enjoy.
|
9 |
+
|
10 |
+
Juan Manuel Vergés Solanas.
|
lib/phpsass/Extensions/Susy/Susy.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
require_once dirname(__FILE__) . '/../ExtensionInterface.php';
|
3 |
+
class Susy implements ExtensionInterface
|
4 |
+
{
|
5 |
+
public static $filesFolder = 'stylesheets';
|
6 |
+
public static $filePaths = null;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* List with alias functions in Susy
|
10 |
+
* @var array
|
11 |
+
*/
|
12 |
+
public static $functions = array();
|
13 |
+
|
14 |
+
public static function getFunctions($namespace)
|
15 |
+
{
|
16 |
+
|
17 |
+
return array();
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Returns an array with all files in $root path recursively and assign each array Key with clean alias
|
22 |
+
* @param $root
|
23 |
+
* @return array
|
24 |
+
*/
|
25 |
+
public static function getFilesArray($root)
|
26 |
+
{
|
27 |
+
|
28 |
+
$alias = array();
|
29 |
+
$directories = array();
|
30 |
+
$last_letter = $root[strlen($root) - 1];
|
31 |
+
$root = ($last_letter == '\\' || $last_letter == '/') ? $root : $root . DIRECTORY_SEPARATOR;
|
32 |
+
|
33 |
+
$directories[] = $root;
|
34 |
+
|
35 |
+
while (sizeof($directories)) {
|
36 |
+
$dir = array_pop($directories);
|
37 |
+
if ($handle = opendir($dir)) {
|
38 |
+
while (false !== ($file = readdir($handle))) {
|
39 |
+
if ($file == '.' || $file == '..') {
|
40 |
+
continue;
|
41 |
+
}
|
42 |
+
$file = $dir . $file;
|
43 |
+
if (is_dir($file)) {
|
44 |
+
$directory_path = $file . DIRECTORY_SEPARATOR;
|
45 |
+
array_push($directories, $directory_path);
|
46 |
+
} elseif (is_file($file)) {
|
47 |
+
$key = basename($file);
|
48 |
+
$alias[substr($key, 1, strpos($key, '.') - 1)] = $file;
|
49 |
+
}
|
50 |
+
}
|
51 |
+
closedir($handle);
|
52 |
+
}
|
53 |
+
}
|
54 |
+
return $alias;
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Implementation of hook_resolve_path_NAMESPACE().
|
59 |
+
*/
|
60 |
+
public static function resolveExtensionPath($callerImport, $parser, $syntax = 'scss')
|
61 |
+
{
|
62 |
+
$extension = '';
|
63 |
+
$alias = str_replace('/_', '/', str_replace(array('.scss', '.sass'), '', $callerImport));
|
64 |
+
if (strrpos($alias, '/') !== false) {
|
65 |
+
$extension = substr($alias, 0, strpos($alias, '/'));
|
66 |
+
$alias = substr($alias, strrpos($alias, '/') + 1);
|
67 |
+
}
|
68 |
+
if (self::$filePaths == null) {
|
69 |
+
self::$filePaths = self::getFilesArray(dirname(__FILE__) . '/' . self::$filesFolder . '/');
|
70 |
+
}
|
71 |
+
if (isset(self::$filePaths[$alias]) && $extension != 'compass') {
|
72 |
+
return self::$filePaths[$alias];
|
73 |
+
}
|
74 |
+
}
|
75 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/_susy.scss
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Partials
|
3 |
+
|
4 |
+
// temporary
|
5 |
+
@import "susy/support";
|
6 |
+
@import "susy/units";
|
7 |
+
|
8 |
+
// permanent
|
9 |
+
@import "susy/settings";
|
10 |
+
@import "susy/functions";
|
11 |
+
@import "susy/grid";
|
12 |
+
@import "susy/isolation";
|
13 |
+
@import "susy/padding";
|
14 |
+
@import "susy/margin";
|
15 |
+
@import "susy/media";
|
16 |
+
@import "susy/background";
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_background.scss
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Imports
|
3 |
+
|
4 |
+
@import "compass/layout/grid-background";
|
5 |
+
@import "compass/css3/background-origin";
|
6 |
+
@import "compass/css3/background-clip";
|
7 |
+
|
8 |
+
// ---------------------------------------------------------------------------
|
9 |
+
// Susy Grid Background
|
10 |
+
//
|
11 |
+
// A wrapper for the compass "column-grid-background" mixin
|
12 |
+
// Uses all your settings to create a grid background for a container element.
|
13 |
+
// Note: Sub-pixel rounding can lead to several pixels of variation between browsers.
|
14 |
+
@mixin susy-grid-background(){
|
15 |
+
@include column-grid-background($total-columns, column(), gutter(), 0);
|
16 |
+
@include background-origin(content-box);
|
17 |
+
@include background-clip(content-box);
|
18 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_functions.scss
ADDED
@@ -0,0 +1,376 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Imports
|
3 |
+
|
4 |
+
// We need access to some basic font settings for handling media-queries.
|
5 |
+
@import "compass/typography/vertical_rhythm";
|
6 |
+
|
7 |
+
// For now, we also need this...
|
8 |
+
$browser-default-font-size-px : 16px;
|
9 |
+
$browser-default-font-size-percent : 100%;
|
10 |
+
$browser-default-font-size-pt : 12pt;
|
11 |
+
|
12 |
+
$rem-with-px-fallback : true !default;
|
13 |
+
|
14 |
+
// ---------------------------------------------------------------------------
|
15 |
+
// Sass list Functions
|
16 |
+
|
17 |
+
// Return a list with specific items removed
|
18 |
+
//
|
19 |
+
// filter($list, $target)
|
20 |
+
// - $list : The list to filter.
|
21 |
+
// - $target : An item to be removed from the list.
|
22 |
+
@function filter($list, $target) {
|
23 |
+
$clean: compact();
|
24 |
+
@if index($list, $target) {
|
25 |
+
@each $item in $list {
|
26 |
+
$clean: if($item == $target, $clean, append($clean, $item));
|
27 |
+
}
|
28 |
+
} @else { $clean: $list; }
|
29 |
+
@return $clean;
|
30 |
+
}
|
31 |
+
|
32 |
+
// ---------------------------------------------------------------------------
|
33 |
+
// Don't use static output when it will break things
|
34 |
+
|
35 |
+
// Switch element-level output to fluid, when container-width is wrong for static
|
36 |
+
//
|
37 |
+
// fix-static-misalignment([$style, $width])
|
38 |
+
// - $style: $container-style.
|
39 |
+
// - $width: $container-width.
|
40 |
+
@function fix-static-misalignment(
|
41 |
+
$style: $container-style,
|
42 |
+
$width: $container-width
|
43 |
+
) {
|
44 |
+
@if $container-width and $container-width != container-outer-width($width: false) {
|
45 |
+
$style: fluid;
|
46 |
+
}
|
47 |
+
@return $style;
|
48 |
+
}
|
49 |
+
|
50 |
+
// ---------------------------------------------------------------------------
|
51 |
+
// Grid Functions
|
52 |
+
|
53 |
+
// Returns the full width of a grid based on your grid settings.
|
54 |
+
//
|
55 |
+
// $columns : The number of columns to get width for.
|
56 |
+
@function columns-width(
|
57 |
+
$columns : $total-columns
|
58 |
+
) {
|
59 |
+
@if round($columns) != $columns {
|
60 |
+
@warn "Susy works best with integer column-spans.
|
61 |
+
For partial-columns, you may need to finesse the math by hand using functions directly.";
|
62 |
+
}
|
63 |
+
@return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width);
|
64 |
+
}
|
65 |
+
|
66 |
+
// Return the grid width after adding or subtracting grid padding
|
67 |
+
//
|
68 |
+
// $width : the width of the grid without padding;
|
69 |
+
// $operation : ( add | subtract ) if padding should be added or subtracted;
|
70 |
+
@function handle-grid-padding(
|
71 |
+
$width,
|
72 |
+
$operation : subtract
|
73 |
+
) {
|
74 |
+
$pad: $grid-padding*2;
|
75 |
+
|
76 |
+
@if comparable($width, $grid-padding) {
|
77 |
+
$width: if($operation == subtract, $width - $pad, $width + $pad);
|
78 |
+
} @else {
|
79 |
+
@warn "$grid-padding must be set in units comparable to the container width.";
|
80 |
+
}
|
81 |
+
|
82 |
+
@return $width;
|
83 |
+
}
|
84 |
+
|
85 |
+
// Return the full outer width of a Container element.
|
86 |
+
//
|
87 |
+
// $columns : The number of columns in the Grid Layout.
|
88 |
+
@function container-outer-width(
|
89 |
+
$columns : $total-columns,
|
90 |
+
$width : $container-width
|
91 |
+
) {
|
92 |
+
$outerwidth: if($width, $width, columns-width($columns));
|
93 |
+
|
94 |
+
@if $width {
|
95 |
+
@if not $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, subtract); }
|
96 |
+
} @else {
|
97 |
+
@if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); }
|
98 |
+
}
|
99 |
+
|
100 |
+
@return $outerwidth;
|
101 |
+
}
|
102 |
+
|
103 |
+
// Return the percentage width of a single column in a given 'context'.
|
104 |
+
//
|
105 |
+
// $context : The grid context in columns, if nested.
|
106 |
+
// $style : The container style to use.
|
107 |
+
@function column(
|
108 |
+
$context : $total-columns,
|
109 |
+
$style : fix-static-misalignment()
|
110 |
+
) {
|
111 |
+
@return if($style == static, $column-width, relative-width($column-width, $context));
|
112 |
+
}
|
113 |
+
|
114 |
+
// Return the percentage width of multiple 'columns' in a given 'context'.
|
115 |
+
//
|
116 |
+
// $columns : The number of columns to get relative width for.
|
117 |
+
// $context : The grid context in columns, if nested.
|
118 |
+
// $style : The container style to use.
|
119 |
+
@function columns(
|
120 |
+
$columns,
|
121 |
+
$context : $total-columns,
|
122 |
+
$style : fix-static-misalignment()
|
123 |
+
) {
|
124 |
+
@return if($style == static, columns-width($columns), relative-width(columns-width($columns), $context));
|
125 |
+
}
|
126 |
+
|
127 |
+
// Return the percentage width of a single gutter in a given 'context'.
|
128 |
+
//
|
129 |
+
// $context : The grid context in columns, if nested.
|
130 |
+
// $style : The container style to use.
|
131 |
+
@function gutter(
|
132 |
+
$context : $total-columns,
|
133 |
+
$style : fix-static-misalignment()
|
134 |
+
) {
|
135 |
+
@return if($style == static, $gutter-width, relative-width($gutter-width, $context));
|
136 |
+
}
|
137 |
+
|
138 |
+
// Return the percentage width of a given value in a given 'context'.
|
139 |
+
//
|
140 |
+
// $width : Any given width value.
|
141 |
+
// $context : The grid context in columns, if nested.
|
142 |
+
@function relative-width(
|
143 |
+
$width,
|
144 |
+
$context : $total-columns
|
145 |
+
) {
|
146 |
+
@return percentage($width / columns-width($context));
|
147 |
+
}
|
148 |
+
|
149 |
+
// Return the total space occupied by multiple columns and associated gutters.
|
150 |
+
// Useful for adding padding or margins (prefix, suffix, push, pull, etc.)
|
151 |
+
//
|
152 |
+
// $columns : The number of columns to get relative space for.
|
153 |
+
// $context : The grid context in columns, if nested.
|
154 |
+
// $style : The container style to use.
|
155 |
+
@function space(
|
156 |
+
$columns,
|
157 |
+
$context : $total-columns,
|
158 |
+
$style : fix-static-misalignment()
|
159 |
+
) {
|
160 |
+
@return columns($columns, $context, $style) + if($columns >= 1, gutter($context, $style), 0);
|
161 |
+
}
|
162 |
+
|
163 |
+
// Accept a list including column-count and (optional) position.
|
164 |
+
// Return either the column count or the position alone.
|
165 |
+
//
|
166 |
+
// $columns : the list to split and interprate.
|
167 |
+
// $request : The value to return, either 'columns' or 'position'.
|
168 |
+
@function split-columns-value(
|
169 |
+
$columns,
|
170 |
+
$request : columns
|
171 |
+
) {
|
172 |
+
$pos : false;
|
173 |
+
$cols : false;
|
174 |
+
|
175 |
+
@each $var in $columns {
|
176 |
+
@if (type-of($var) == 'string') {
|
177 |
+
$pos: $var;
|
178 |
+
} @else {
|
179 |
+
@if (type-of($var) == 'number') and (unitless($var)) {
|
180 |
+
$cols: $var;
|
181 |
+
} @else {
|
182 |
+
@warn '"#{$var}" is not a valid part of "$columns: #{$columns}" in the columns() mixin.';
|
183 |
+
}
|
184 |
+
}
|
185 |
+
}
|
186 |
+
|
187 |
+
@if $request == 'columns' {
|
188 |
+
@return $cols;
|
189 |
+
} @else {
|
190 |
+
@if $request == 'position' {
|
191 |
+
@return $pos;
|
192 |
+
} @else {
|
193 |
+
@warn '"#{$request}"" is not a valid value for $request';
|
194 |
+
}
|
195 |
+
}
|
196 |
+
}
|
197 |
+
|
198 |
+
// Accept nth-selector variables, and format them as a valid CSS3 selector.
|
199 |
+
//
|
200 |
+
// $n : [first | only | last | <equation>]
|
201 |
+
// $selector : [child | last-child | of-type | last-of-type ]
|
202 |
+
@function format-nth(
|
203 |
+
$n : last,
|
204 |
+
$selector : child
|
205 |
+
) {
|
206 |
+
@if ($n == 'last') or ($n =='first') or ($n =='only') {
|
207 |
+
$selector: '#{$n}-#{$selector}';
|
208 |
+
} @else {
|
209 |
+
$selector: 'nth-#{$selector}(#{$n})';
|
210 |
+
}
|
211 |
+
@return $selector;
|
212 |
+
}
|
213 |
+
|
214 |
+
// ---------------------------------------------------------------------------
|
215 |
+
// Media Functions
|
216 |
+
|
217 |
+
// Return an em value adjusted to match the browser default font size.
|
218 |
+
// Note: This only works if actual sizes are set relative to browser defaults.
|
219 |
+
//
|
220 |
+
// $ems : The initial value to be converted.
|
221 |
+
// $font-size : The current font-size in.
|
222 |
+
@function base-ems(
|
223 |
+
$ems,
|
224 |
+
$font-size: $base-font-size
|
225 |
+
){
|
226 |
+
$font-size : if(unit($ems) == 'rem', $base-font-size, $font-size);
|
227 |
+
$unit : unit($font-size);
|
228 |
+
$mult : $ems / ($ems * 0 + 1);
|
229 |
+
|
230 |
+
@if $unit == 'px' {
|
231 |
+
@return $font-size / $browser-default-font-size-px * $mult * 1em;
|
232 |
+
}
|
233 |
+
@else if $unit == '%' {
|
234 |
+
@return $font-size / $browser-default-font-size-percent * $mult * 1em;
|
235 |
+
}
|
236 |
+
@else if $unit == 'em' {
|
237 |
+
@return $font-size / 1em * $mult * 1em;
|
238 |
+
}
|
239 |
+
@else if $unit == 'pt' {
|
240 |
+
@return $font-size / $browser-default-font-size-pt * $mult * 1em;
|
241 |
+
}
|
242 |
+
@else {
|
243 |
+
@warn 'Variable $base-font-size does not have a valid font unit. Valid units for fonts in CSS are px, pt, em, and %.';
|
244 |
+
}
|
245 |
+
}
|
246 |
+
|
247 |
+
// This name will be deprecated...
|
248 |
+
@function absolute-ems($ems, $font-size: $base-font-size){ @return base-ems($ems, $font-size); }
|
249 |
+
|
250 |
+
// Return a length, after any em-values have been sent through absolute-ems().
|
251 |
+
//
|
252 |
+
// $length : The length value to be checked and adjusted if necessary.
|
253 |
+
// $font-size : The current font-size in px.
|
254 |
+
@function fix-ems(
|
255 |
+
$length,
|
256 |
+
$font-size: $base-font-size
|
257 |
+
){
|
258 |
+
@if $length {
|
259 |
+
@if (unit($length) == 'em') or (unit($length) == 'rem') {
|
260 |
+
$length: absolute-ems($length,$font-size);
|
261 |
+
}
|
262 |
+
}
|
263 |
+
@return $length;
|
264 |
+
}
|
265 |
+
|
266 |
+
// Sort a list of arguments into "$min $layout $max $ie" order, and return the list.
|
267 |
+
//
|
268 |
+
// $media-layout : a list of values [$min $layout $max $ie] including...
|
269 |
+
// : - one unitless number (columns in a layout)
|
270 |
+
// : - two optional lengths (min and max-width media-query breakpoints).
|
271 |
+
// : - one optional boolean or string to trigger fallback support for IE.
|
272 |
+
// $font-size : [optional] The base font-size of your layout, if you are using ems.
|
273 |
+
// : - defaults to $base-font-size
|
274 |
+
@function medialayout(
|
275 |
+
$media-layout,
|
276 |
+
$font-size: $base-font-size
|
277 |
+
) {
|
278 |
+
$media : false;
|
279 |
+
$min : false;
|
280 |
+
$layout : false;
|
281 |
+
$max : false;
|
282 |
+
$ie : false;
|
283 |
+
$has-layout : false;
|
284 |
+
|
285 |
+
@each $val in $media-layout {
|
286 |
+
@if (type-of($val) == "number") {
|
287 |
+
@if unitless($val) {
|
288 |
+
$layout : $val;
|
289 |
+
$has-layout : true;
|
290 |
+
} @else {
|
291 |
+
@if ($has-layout) and (not $media) {
|
292 |
+
$max: $val;
|
293 |
+
} @else {
|
294 |
+
@if $media {
|
295 |
+
$media: join($media,$val);
|
296 |
+
} @else {
|
297 |
+
$media: $val;
|
298 |
+
}
|
299 |
+
}
|
300 |
+
}
|
301 |
+
} @else {
|
302 |
+
$ie: $val;
|
303 |
+
}
|
304 |
+
}
|
305 |
+
@if (length($media) > 0) {
|
306 |
+
@if (length($media) == 1) {
|
307 |
+
$min: nth($media,1);
|
308 |
+
} @else {
|
309 |
+
$min: nth($media,1);
|
310 |
+
$max: nth($media,2);
|
311 |
+
@if comparable($min, $max) {
|
312 |
+
@if ($min > $max) {
|
313 |
+
$max: nth($media,1);
|
314 |
+
$min: nth($media,2);
|
315 |
+
}
|
316 |
+
} @else {
|
317 |
+
@warn "Can't compare incompatible units.
|
318 |
+
Using #{$min} for min-width, and #{$max} for max-width";
|
319 |
+
}
|
320 |
+
@if (length($media) > 2) {
|
321 |
+
@warn "You can only send two lengths: a min-width and an (optional) max-width.
|
322 |
+
You sent #{length($media)}: #{$media}";
|
323 |
+
}
|
324 |
+
}
|
325 |
+
}
|
326 |
+
|
327 |
+
// media-queries must be set in ems relative to the browser default
|
328 |
+
// rather than the font-size set in CSS.
|
329 |
+
$min: fix-ems($min,$font-size);
|
330 |
+
$max: fix-ems($max,$font-size);
|
331 |
+
|
332 |
+
@return $min $layout $max $ie;
|
333 |
+
}
|
334 |
+
|
335 |
+
// Return the nearest layout (column-count) above a given breakpoint.
|
336 |
+
//
|
337 |
+
// $min : The min-width media-query breakpoint above which to establish a new layout.
|
338 |
+
@function get-layout (
|
339 |
+
$min
|
340 |
+
) {
|
341 |
+
$columns : 1;
|
342 |
+
$layout-width : container-outer-width($columns);
|
343 |
+
$return : false;
|
344 |
+
$min : fix-ems($min);
|
345 |
+
|
346 |
+
@if comparable($min, $layout-width) {
|
347 |
+
@while $min >= $layout-width {
|
348 |
+
$columns : $columns + 1;
|
349 |
+
$layout-width : container-outer-width($columns);
|
350 |
+
}
|
351 |
+
$return : $columns;
|
352 |
+
}
|
353 |
+
|
354 |
+
@return $return;
|
355 |
+
}
|
356 |
+
|
357 |
+
// Check to see if a given $media-layout list is simply the default.
|
358 |
+
//
|
359 |
+
// $media-layout : a list of values including -
|
360 |
+
// : One unitless number (columns in a layout)
|
361 |
+
// : Two optional lengths (min and max-width media-query breakpoints).
|
362 |
+
// : One optional boolean or string to trigger fallback support for IE.
|
363 |
+
@function is-default-layout(
|
364 |
+
$media-layout
|
365 |
+
) {
|
366 |
+
$media-layout : medialayout($media-layout);
|
367 |
+
$min : nth($media-layout,1);
|
368 |
+
$layout-cols : nth($media-layout,2);
|
369 |
+
$max : nth($media-layout,3);
|
370 |
+
|
371 |
+
@if $min or $max {
|
372 |
+
@return false;
|
373 |
+
} @else {
|
374 |
+
@return if($layout-cols == $total-columns,true,false);
|
375 |
+
}
|
376 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_grid.scss
ADDED
@@ -0,0 +1,286 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Imports
|
3 |
+
|
4 |
+
@import "compass/utilities/general/clearfix";
|
5 |
+
@import "compass/css3/box-sizing";
|
6 |
+
|
7 |
+
// ---------------------------------------------------------------------------
|
8 |
+
// Border-Box Sizing
|
9 |
+
|
10 |
+
// Apply the border-box sizing model to all elements
|
11 |
+
// and adjust the grid math appropriately.
|
12 |
+
@mixin border-box-sizing {
|
13 |
+
$border-box-sizing: true;
|
14 |
+
* { @include box-sizing(border-box); }
|
15 |
+
}
|
16 |
+
|
17 |
+
// ---------------------------------------------------------------------------
|
18 |
+
// Container
|
19 |
+
|
20 |
+
// Set the width of a container
|
21 |
+
//
|
22 |
+
// $columns : The number of columns in the Grid Layout.
|
23 |
+
@mixin set-container-width(
|
24 |
+
$columns : $total-columns,
|
25 |
+
$style : $container-style
|
26 |
+
){
|
27 |
+
$width: container-outer-width($columns);
|
28 |
+
|
29 |
+
@if $style == 'static' {
|
30 |
+
@include if-rem(width, $width);
|
31 |
+
} @else {
|
32 |
+
@if $style == 'fluid' {
|
33 |
+
@if unit($width) == '%' { @include if-rem(width, $width); }
|
34 |
+
} @else {
|
35 |
+
@include if-rem(max-width, $width);
|
36 |
+
@if $legacy-support-for-ie6 {
|
37 |
+
@if unit($width) == 'rem' {
|
38 |
+
_width: round(convert-length($width, px));
|
39 |
+
} @else {
|
40 |
+
_width: $width;
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
// Set the outer grid-containing element(s).
|
48 |
+
//
|
49 |
+
// $columns : The number of columns in the container.
|
50 |
+
@mixin apply-container(
|
51 |
+
$columns : $total-columns
|
52 |
+
){
|
53 |
+
@include pie-clearfix;
|
54 |
+
@include set-container-width($columns);
|
55 |
+
@include if-rem(padding-left, $grid-padding);
|
56 |
+
@include if-rem(padding-right, $grid-padding);
|
57 |
+
margin: { left: auto; right: auto; }
|
58 |
+
}
|
59 |
+
|
60 |
+
// Set one or more layouts on a grid-containing element at any number of media-query breakpoints.
|
61 |
+
//
|
62 |
+
// $media-layout-1 : [default:$total-columns] A list of values including -
|
63 |
+
// : One unitless number (representing columns in a layout)
|
64 |
+
// : Two optional lengths (representing min and max-width media-query breakpoints).
|
65 |
+
// $media-layout-2 ...-10 : [optional] Same as $media-layout-1
|
66 |
+
@mixin container(
|
67 |
+
$media-layout-1 : $total-columns,
|
68 |
+
$media-layout-2 : false,
|
69 |
+
$media-layout-3 : false,
|
70 |
+
$media-layout-4 : false,
|
71 |
+
$media-layout-5 : false,
|
72 |
+
$media-layout-6 : false,
|
73 |
+
$media-layout-7 : false,
|
74 |
+
$media-layout-8 : false,
|
75 |
+
$media-layout-9 : false,
|
76 |
+
$media-layout-10 : false
|
77 |
+
){
|
78 |
+
$media-layouts : compact($media-layout-2,$media-layout-3,$media-layout-4,$media-layout-5,$media-layout-6,$media-layout-7,$media-layout-8,$media-layout-9,$media-layout-10);
|
79 |
+
|
80 |
+
@if is-default-layout($media-layout-1) {
|
81 |
+
@include apply-container();
|
82 |
+
} @else {
|
83 |
+
@include at-breakpoint($media-layout-1) {
|
84 |
+
@include apply-container();
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
@each $ml in $media-layouts {
|
89 |
+
@if $ml {
|
90 |
+
@include at-breakpoint($ml) {
|
91 |
+
@include set-container-width;
|
92 |
+
}
|
93 |
+
}
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
// ---------------------------------------------------------------------------
|
98 |
+
// Columns
|
99 |
+
|
100 |
+
// Create a grid element spanning any number of 'columns' in a grid 'context'.
|
101 |
+
// $columns : The number of columns to span.
|
102 |
+
// $context : [optional] The context (columns spanned by parent).
|
103 |
+
// : Context is required on any nested elements.
|
104 |
+
// : Context MUST NOT be declared on a root element.
|
105 |
+
// $padding : [optional] Padding applied to the inside of individual grid columns.
|
106 |
+
// : Padding is only output if one or two values are specified (e.g. 1em or 10px 20px)
|
107 |
+
// : Padding values are applied only on the horizontal axis in from-to order
|
108 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
109 |
+
// $style : The container style to use.
|
110 |
+
@mixin span-columns(
|
111 |
+
$columns,
|
112 |
+
$context : $total-columns,
|
113 |
+
$padding : false,
|
114 |
+
$from : $from-direction,
|
115 |
+
$style : fix-static-misalignment()
|
116 |
+
) {
|
117 |
+
$from : unquote($from);
|
118 |
+
$to : opposite-position($from);
|
119 |
+
$pos : split-columns-value($columns,position);
|
120 |
+
$cols : split-columns-value($columns,columns);
|
121 |
+
$pad-from : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context));
|
122 |
+
$pad-to : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context));
|
123 |
+
|
124 |
+
@if $padding != false {
|
125 |
+
$pad-from : nth($padding, 1);
|
126 |
+
|
127 |
+
@if length($padding) > 1 {
|
128 |
+
$pad-to: nth($padding, 2);
|
129 |
+
} @else {
|
130 |
+
$pad-to: $pad-from;
|
131 |
+
}
|
132 |
+
|
133 |
+
$pad-from : if($style == static, $pad-from, relative-width($pad-from, $context));
|
134 |
+
$pad-to : if($style == static, $pad-to, relative-width($pad-to, $context));
|
135 |
+
|
136 |
+
padding-#{$from}: $pad-from;
|
137 |
+
padding-#{$to}: $pad-to;
|
138 |
+
}
|
139 |
+
|
140 |
+
width: columns($cols, $context, $style) - if($border-box-sizing, 0, $pad-to + $pad-from);
|
141 |
+
|
142 |
+
@if ($pos == 'omega') {
|
143 |
+
@include omega($from);
|
144 |
+
} @else {
|
145 |
+
float: $from;
|
146 |
+
margin-#{$to}: gutter($context, $style);
|
147 |
+
@if $legacy-support-for-ie6 { display: inline; }
|
148 |
+
}
|
149 |
+
}
|
150 |
+
|
151 |
+
// Apply to elements spanning the last column, to account for the page edge.
|
152 |
+
// Only needed as an override. Normally 'omega' can just be called by `columns`.
|
153 |
+
//
|
154 |
+
// $from : The start-direction for your document.
|
155 |
+
@mixin omega(
|
156 |
+
$from : $from-direction
|
157 |
+
) {
|
158 |
+
$from : unquote($from);
|
159 |
+
$to : opposite-position($from);
|
160 |
+
$hack : opposite-position($omega-float);
|
161 |
+
|
162 |
+
float: $omega-float;
|
163 |
+
margin-#{$to}: 0;
|
164 |
+
|
165 |
+
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
|
166 |
+
*margin-#{$hack}: - $gutter-width;
|
167 |
+
@if $legacy-support-for-ie6 { display: inline; }
|
168 |
+
}
|
169 |
+
}
|
170 |
+
|
171 |
+
// Shortcut to apply omega to a specific subset of elements.
|
172 |
+
//
|
173 |
+
// $n : [first | only | last | <equation>]
|
174 |
+
// $selector : [child | last-child | of-type | last-of-type ]
|
175 |
+
// $from : The start-direction for your document.
|
176 |
+
@mixin nth-omega(
|
177 |
+
$n : last,
|
178 |
+
$selector : child,
|
179 |
+
$from : $from-direction
|
180 |
+
) {
|
181 |
+
$from : unquote($from);
|
182 |
+
$ie: if($n == "first", true, false);
|
183 |
+
@include adjust-support-for($ie6: $ie, $ie7: $ie, $ie8: $ie) {
|
184 |
+
&:#{format-nth($n,$selector)} { @include omega($from); }
|
185 |
+
}
|
186 |
+
}
|
187 |
+
|
188 |
+
// ---------------------------------------------------------------------------
|
189 |
+
// Resets
|
190 |
+
|
191 |
+
// Reset a '+columns' grid element to default block behavior
|
192 |
+
//
|
193 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
194 |
+
@mixin reset-columns(
|
195 |
+
$from: $from-direction
|
196 |
+
) {
|
197 |
+
$from : unquote($from);
|
198 |
+
$to : opposite-position($from);
|
199 |
+
$hack : opposite-position($omega-float);
|
200 |
+
|
201 |
+
float: none;
|
202 |
+
width: auto;
|
203 |
+
margin-#{$to}: auto;
|
204 |
+
|
205 |
+
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
|
206 |
+
*margin-#{$hack}: auto;
|
207 |
+
@if $legacy-support-for-ie6 { display: block; }
|
208 |
+
}
|
209 |
+
}
|
210 |
+
|
211 |
+
// Apply to elements previously set as omega.
|
212 |
+
// This will return floats and margins back to non-omega settigns.
|
213 |
+
//
|
214 |
+
// $context : [optional] The context (columns spanned by parent).
|
215 |
+
// $from : The start-direction for your document.
|
216 |
+
// $style : The container style to use.
|
217 |
+
@mixin remove-omega(
|
218 |
+
$context : $total-columns,
|
219 |
+
$from : $from-direction,
|
220 |
+
$style : fix-static-misalignment()
|
221 |
+
) {
|
222 |
+
$from : unquote($from);
|
223 |
+
$to : opposite-position($from);
|
224 |
+
$hack : opposite-position($omega-float);
|
225 |
+
|
226 |
+
float: $from;
|
227 |
+
margin-#{$to}: gutter($context, $style);
|
228 |
+
|
229 |
+
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
|
230 |
+
*margin-#{$hack}: auto;
|
231 |
+
}
|
232 |
+
}
|
233 |
+
|
234 |
+
// Shortcut to apply remove-omega to a specific subset of elements.
|
235 |
+
//
|
236 |
+
// $n : [first | only | last | <equation>]
|
237 |
+
// $selector : [child | last-child | of-type | last-of-type ]
|
238 |
+
// $context : [optional] The context (columns spanned by parent).
|
239 |
+
// $from : The start-direction for your document.
|
240 |
+
// $style : The container style to use.
|
241 |
+
@mixin remove-nth-omega(
|
242 |
+
$n : last,
|
243 |
+
$selector : child,
|
244 |
+
$context : $total-columns,
|
245 |
+
$from : $from-direction,
|
246 |
+
$style : fix-static-misalignment()
|
247 |
+
) {
|
248 |
+
$from : unquote($from);
|
249 |
+
$ie: if($n == "first", true, false);
|
250 |
+
@include adjust-support-for($ie6: $ie, $ie7: $ie, $ie8: $ie) {
|
251 |
+
&:#{format-nth($n,$selector)} {
|
252 |
+
@include remove-omega($context, $from, $style);
|
253 |
+
}
|
254 |
+
}
|
255 |
+
}
|
256 |
+
|
257 |
+
// ---------------------------------------------------------------------------
|
258 |
+
// Change Settings
|
259 |
+
|
260 |
+
@mixin with-grid-settings(
|
261 |
+
$columns: $total-columns,
|
262 |
+
$width: $column-width,
|
263 |
+
$gutter: $gutter-width,
|
264 |
+
$padding: $grid-padding
|
265 |
+
) {
|
266 |
+
// keep the defaults around
|
267 |
+
$default-columns: $total-columns;
|
268 |
+
$default-width: $column-width;
|
269 |
+
$default-gutter: $gutter-width;
|
270 |
+
$default-padding: $grid-padding;
|
271 |
+
|
272 |
+
// use the new settings
|
273 |
+
$total-columns: $columns;
|
274 |
+
$column-width: $width;
|
275 |
+
$gutter-width: $gutter;
|
276 |
+
$grid-padding: $padding;
|
277 |
+
|
278 |
+
// apply to contents
|
279 |
+
@content;
|
280 |
+
|
281 |
+
// re-instate the defaults
|
282 |
+
$total-columns: $default-columns;
|
283 |
+
$column-width: $default-width;
|
284 |
+
$gutter-width: $default-gutter;
|
285 |
+
$grid-padding: $default-padding;
|
286 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_isolation.scss
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Isolation
|
3 |
+
|
4 |
+
// Isolate the position of a grid element (use in addition to span-columns)
|
5 |
+
//
|
6 |
+
// $location : The grid column to isolate in, relative to the container;
|
7 |
+
// $context : [optional] The context (columns spanned by parent).
|
8 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
9 |
+
@mixin isolate(
|
10 |
+
$location,
|
11 |
+
$context: $total-columns,
|
12 |
+
$from: $from-direction,
|
13 |
+
$style: fix-static-misalignment()
|
14 |
+
) {
|
15 |
+
$to: opposite-position($from);
|
16 |
+
margin-#{$to}: -100%;
|
17 |
+
margin-#{$from}: space($location - 1, $context, $style);
|
18 |
+
}
|
19 |
+
|
20 |
+
// Isolate a group of elements in a grid, using nth-child selectors
|
21 |
+
//
|
22 |
+
// $columns : The column-width of each item on the grid;
|
23 |
+
// $context : [optional] The context (columns spanned by parent).
|
24 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
25 |
+
@mixin isolate-grid(
|
26 |
+
$columns,
|
27 |
+
$context: $total-columns,
|
28 |
+
$from: $from-direction,
|
29 |
+
$style: fix-static-misalignment()
|
30 |
+
) {
|
31 |
+
$to: opposite-position($from);
|
32 |
+
$location: 1;
|
33 |
+
$line: floor($context / $columns);
|
34 |
+
|
35 |
+
@include span-columns($columns, $context, $from: $from, $style: $style);
|
36 |
+
margin-#{$to}: -100%;
|
37 |
+
|
38 |
+
@for $item from 1 through $line {
|
39 |
+
$nth: '#{$line}n + #{$item}';
|
40 |
+
&:nth-child(#{$nth}) {
|
41 |
+
margin-#{$from}: space($location - 1, $context, $style);
|
42 |
+
@if $location == 1 { clear: $from; }
|
43 |
+
|
44 |
+
$location: $location + $columns;
|
45 |
+
@if $location > $context { $location: 1; }
|
46 |
+
}
|
47 |
+
}
|
48 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_margin.scss
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Margin Mixins
|
3 |
+
|
4 |
+
// Apply 'columns' margin before an element to push it along the grid.
|
5 |
+
//
|
6 |
+
// $columns : The number of columns to span.
|
7 |
+
// $context : [optional] The context (columns spanned by parent).
|
8 |
+
// : Context is required on any nested elements.
|
9 |
+
// : Context MUST NOT be declared on a root element.
|
10 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
11 |
+
// $style : The container style to use.
|
12 |
+
@mixin pre(
|
13 |
+
$columns,
|
14 |
+
$context : $total-columns,
|
15 |
+
$from : $from-direction,
|
16 |
+
$style : fix-static-misalignment()
|
17 |
+
) {
|
18 |
+
$from : unquote($from);
|
19 |
+
margin-#{$from}: space($columns, $context, $style);
|
20 |
+
}
|
21 |
+
|
22 |
+
// 'push' is a synonymn for 'pre'
|
23 |
+
@mixin push(
|
24 |
+
$columns,
|
25 |
+
$context : $total-columns,
|
26 |
+
$from : $from-direction,
|
27 |
+
$style : fix-static-misalignment()
|
28 |
+
) {
|
29 |
+
$from : unquote($from);
|
30 |
+
@include pre($columns, $context, $from, $style);
|
31 |
+
}
|
32 |
+
|
33 |
+
// Apply negative 'columns' margin before an element to pull it along the grid.
|
34 |
+
//
|
35 |
+
// $columns : The number of columns to span.
|
36 |
+
// $context : [optional] The context (columns spanned by parent).
|
37 |
+
// : Context is required on any nested elements.
|
38 |
+
// : Context MUST NOT be declared on a root element.
|
39 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
40 |
+
// $style : The container style to use.
|
41 |
+
@mixin pull(
|
42 |
+
$columns,
|
43 |
+
$context : $total-columns,
|
44 |
+
$from : $from-direction,
|
45 |
+
$style : fix-static-misalignment()
|
46 |
+
) {
|
47 |
+
$from : unquote($from);
|
48 |
+
margin-#{$from}: 0 - space($columns, $context, $style);
|
49 |
+
}
|
50 |
+
|
51 |
+
// Apply 'columns' margin after an element to contain it in a grid.
|
52 |
+
//
|
53 |
+
// $columns : The number of columns to span.
|
54 |
+
// $context : [optional] The context (columns spanned by parent).
|
55 |
+
// : Context is required on any nested elements.
|
56 |
+
// : Context MUST NOT be declared on a root element.
|
57 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
58 |
+
// $style : The container style to use.
|
59 |
+
@mixin post(
|
60 |
+
$columns,
|
61 |
+
$context : $total-columns,
|
62 |
+
$from : $from-direction,
|
63 |
+
$style : fix-static-misalignment()
|
64 |
+
) {
|
65 |
+
$from : unquote($from);
|
66 |
+
$to : opposite-position($from);
|
67 |
+
margin-#{$to}: space($columns, $context, $style);
|
68 |
+
}
|
69 |
+
|
70 |
+
// Apply 'columns' before and/or after an element to contain it on a grid.
|
71 |
+
//
|
72 |
+
// $pre : The number of columns to add as margin before.
|
73 |
+
// $post : The number of columns to add as margin after.
|
74 |
+
// $context : [optional] The context (columns spanned by parent).
|
75 |
+
// : Context is required on any nested elements.
|
76 |
+
// : Context MUST NOT be declared on a root element.
|
77 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
78 |
+
// $style : The container style to use.
|
79 |
+
@mixin squish(
|
80 |
+
$pre : false,
|
81 |
+
$post : false,
|
82 |
+
$context : $total-columns,
|
83 |
+
$from : $from-direction,
|
84 |
+
$style : fix-static-misalignment()
|
85 |
+
) {
|
86 |
+
$from : unquote($from);
|
87 |
+
@if $pre {
|
88 |
+
@include pre($pre, $context, $from, $style)
|
89 |
+
}
|
90 |
+
@if $post {
|
91 |
+
@include post($post, $context, $from, $style)
|
92 |
+
}
|
93 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_media.scss
ADDED
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Media Mixins
|
3 |
+
|
4 |
+
// Create a new layout context for (@content) descendants.
|
5 |
+
//
|
6 |
+
// $layout-cols : a (unitless) number of columns to use for this layout.
|
7 |
+
@mixin layout(
|
8 |
+
$layout-cols
|
9 |
+
) {
|
10 |
+
// store default $total-columns setting for later, then change it.
|
11 |
+
$default-layout : $total-columns;
|
12 |
+
$total-columns : $layout-cols;
|
13 |
+
|
14 |
+
// apply children in this new layout context.
|
15 |
+
@content;
|
16 |
+
|
17 |
+
// return to default $total-columns setting.
|
18 |
+
$total-columns : $default-layout;
|
19 |
+
}
|
20 |
+
|
21 |
+
// Nest a block of code inside a new media-query and layout context.
|
22 |
+
//
|
23 |
+
// $media-layout : a list of values [$min $layout $max $ie] including...
|
24 |
+
// : - one unitless number (columns in a layout)
|
25 |
+
// : - two optional lengths (min and max-width media-query breakpoints).
|
26 |
+
// : - one optional boolean or string to trigger fallback support for IE.
|
27 |
+
// $font-size : [optional] The base font-size of your layout, if you are using ems.
|
28 |
+
// : - defaults to $base-font-size
|
29 |
+
@mixin at-breakpoint(
|
30 |
+
$media-layout,
|
31 |
+
$font-size: $base-font-size
|
32 |
+
) {
|
33 |
+
$media-layout : medialayout($media-layout,$font-size);
|
34 |
+
$min : nth($media-layout,1);
|
35 |
+
$layout : nth($media-layout,2);
|
36 |
+
$max : nth($media-layout,3);
|
37 |
+
$ie : nth($media-layout,4);
|
38 |
+
|
39 |
+
@if (not $breakpoint-media-output) and (not $breakpoint-ie-output) and (not $breakpoint-raw-output) {
|
40 |
+
@warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work.";
|
41 |
+
}
|
42 |
+
|
43 |
+
// We need to have either a min-width breakpoint or a layout in order to proceed.
|
44 |
+
@if $min or $layout or $max {
|
45 |
+
|
46 |
+
// If we don't have a layout, we create one based on the min-width.
|
47 |
+
@if not $layout {
|
48 |
+
$layout: get-layout($min);
|
49 |
+
}
|
50 |
+
|
51 |
+
// If we still don't have a layout, we have a problem.
|
52 |
+
@if $layout {
|
53 |
+
// Set our new layout context.
|
54 |
+
@include layout($layout) {
|
55 |
+
@if $breakpoint-media-output {
|
56 |
+
// Capture current state of ie support and set new
|
57 |
+
$atbreak-legacy-ie-matrix: capture-legacy-ie-matrix();
|
58 |
+
@include set-legacy-ie-support;
|
59 |
+
|
60 |
+
@if $min and $max {
|
61 |
+
// Both $min and $max
|
62 |
+
@media (min-width: $min) and (max-width: $max) {
|
63 |
+
@content;
|
64 |
+
}
|
65 |
+
} @else {
|
66 |
+
@if (not $min) and (not $max) {
|
67 |
+
// Neither $min nor $max:
|
68 |
+
// We can create a breakpoint based on the number of columns in the layout.
|
69 |
+
$min: fix-ems(container-outer-width($width: false));
|
70 |
+
}
|
71 |
+
@if $min {
|
72 |
+
// Min only:
|
73 |
+
@media (min-width: $min) {
|
74 |
+
@content;
|
75 |
+
}
|
76 |
+
} @else {
|
77 |
+
// Max only:
|
78 |
+
@media (max-width: $max) {
|
79 |
+
@content;
|
80 |
+
}
|
81 |
+
}
|
82 |
+
}
|
83 |
+
// Return legacy-ie support to original
|
84 |
+
@include set-legacy-ie-support($atbreak-legacy-ie-matrix...);
|
85 |
+
}
|
86 |
+
// Set an IE fallback
|
87 |
+
@if $ie and $breakpoint-ie-output {
|
88 |
+
@if (type-of($ie) == 'bool') {
|
89 |
+
$ie: 'lt-ie9';
|
90 |
+
}
|
91 |
+
.#{$ie} & {
|
92 |
+
$atbreak-experimental-matrix: capture-experimental-matrix();
|
93 |
+
@include set-experimental-support($ms: true);
|
94 |
+
@content;
|
95 |
+
@include set-experimental-support($atbreak-experimental-matrix...);
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
@if $breakpoint-raw-output {
|
100 |
+
@content;
|
101 |
+
}
|
102 |
+
}
|
103 |
+
} @else {
|
104 |
+
@warn "Something went horribly wrong here. Try adjusting your variables.";
|
105 |
+
}
|
106 |
+
|
107 |
+
} @else {
|
108 |
+
@warn "You need to provide either a valid layout (number of columns)
|
109 |
+
or a valid media-query min-width breakpoint (length).";
|
110 |
+
}
|
111 |
+
|
112 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_padding.scss
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Padding Mixins
|
3 |
+
|
4 |
+
// add empty colums as padding before an element.
|
5 |
+
// $columns : The number of columns to prefix.
|
6 |
+
// $context : [optional] The context (columns spanned by parent).
|
7 |
+
// : Context is required on any nested elements.
|
8 |
+
// : Context MUST NOT be declared on a root element.
|
9 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
10 |
+
// $style : The container style to use.
|
11 |
+
@mixin prefix(
|
12 |
+
$columns,
|
13 |
+
$context : $total-columns,
|
14 |
+
$from : $from-direction,
|
15 |
+
$style : fix-static-misalignment()
|
16 |
+
) {
|
17 |
+
$from : unquote($from);
|
18 |
+
padding-#{$from}: space($columns, $context, $style);
|
19 |
+
}
|
20 |
+
|
21 |
+
// add empty colums as padding after an element.
|
22 |
+
// $columns : The number of columns to suffix.
|
23 |
+
// $context : [optional] The context (columns spanned by parent).
|
24 |
+
// : Context is required on any nested elements.
|
25 |
+
// : Context MUST NOT be declared on a root element.
|
26 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
27 |
+
// $style : The container style to use.
|
28 |
+
@mixin suffix(
|
29 |
+
$columns,
|
30 |
+
$context : $total-columns,
|
31 |
+
$from : $from-direction,
|
32 |
+
$style : fix-static-misalignment()
|
33 |
+
) {
|
34 |
+
$from : unquote($from);
|
35 |
+
$to : opposite-position($from);
|
36 |
+
padding-#{$to}: space($columns, $context, $style);
|
37 |
+
}
|
38 |
+
|
39 |
+
// add empty colums as padding before and after an element.
|
40 |
+
// $columns : The number of columns to pad.
|
41 |
+
// $context : [optional] The context (columns spanned by parent).
|
42 |
+
// : Context is required on any nested elements.
|
43 |
+
// : Context MUST NOT be declared on a root element.
|
44 |
+
// $from : The start direction of your layout (e.g. 'left' for ltr languages)
|
45 |
+
// $style : The container style to use.
|
46 |
+
@mixin pad(
|
47 |
+
$prefix : false,
|
48 |
+
$suffix : false,
|
49 |
+
$context : $total-columns,
|
50 |
+
$from : $from-direction,
|
51 |
+
$style : fix-static-misalignment()
|
52 |
+
) {
|
53 |
+
$from : unquote($from);
|
54 |
+
@if $prefix {
|
55 |
+
@include prefix($prefix, $context, $from, $style);
|
56 |
+
}
|
57 |
+
@if $suffix {
|
58 |
+
@include suffix($suffix, $context, $from, $style);
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
// Bleed into colums with margin/padding on any side of an element.
|
63 |
+
// $width : The side of the bleed.
|
64 |
+
// : Any unit-length will be used directly.
|
65 |
+
// : Any unitless number will be used as a column-count.
|
66 |
+
// : Use "2 of 6" format to represent 2 cals in a 6-col nested context.
|
67 |
+
// $sides : One or more sides to bleed [ top | right | bottom | left | all ].
|
68 |
+
// $style : The container style to use.
|
69 |
+
@mixin bleed(
|
70 |
+
$width: $grid-padding,
|
71 |
+
$sides: left right,
|
72 |
+
$style: fix-static-misalignment()
|
73 |
+
) {
|
74 |
+
@if $border-box-sizing { @include box-sizing(content-box) }
|
75 |
+
|
76 |
+
@if type-of($width) == 'list' {
|
77 |
+
$width: filter($width, of);
|
78 |
+
$width: space(nth($width,1), nth($width,2), $style);
|
79 |
+
} @else if unitless($width) {
|
80 |
+
$width: space($width, $style: $style);
|
81 |
+
}
|
82 |
+
|
83 |
+
@if $sides == 'all' {
|
84 |
+
margin: - $width;
|
85 |
+
padding: $width;
|
86 |
+
} @else {
|
87 |
+
@each $side in $sides {
|
88 |
+
margin-#{$side}: - $width;
|
89 |
+
padding-#{$side}: $width;
|
90 |
+
}
|
91 |
+
}
|
92 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_settings.scss
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// ---------------------------------------------------------------------------
|
2 |
+
// Susy Settings
|
3 |
+
|
4 |
+
// The total number of columns in the grid
|
5 |
+
$total-columns : 12 !default;
|
6 |
+
|
7 |
+
// The width of columns and gutters.
|
8 |
+
// These must all be set with the comparable units.
|
9 |
+
$column-width : 4em !default;
|
10 |
+
$gutter-width : 1em !default;
|
11 |
+
|
12 |
+
// Padding on the left and right of a Grid Container.
|
13 |
+
$grid-padding : $gutter-width !default;
|
14 |
+
|
15 |
+
// ---------------------------------------------------------------------------
|
16 |
+
// Advanced Settings
|
17 |
+
|
18 |
+
// From Direction:
|
19 |
+
// Controls for right-to-left or bi-directional sites.
|
20 |
+
$from-direction : left !default;
|
21 |
+
|
22 |
+
// Omega Float Direction:
|
23 |
+
// The direction that +omega elements are floated by deafult.
|
24 |
+
$omega-float : opposite-position($from-direction) !default;
|
25 |
+
|
26 |
+
// Container Width:
|
27 |
+
// Override the total width of your grid, using any length (50em, 75%, etc.)
|
28 |
+
$container-width : false !default;
|
29 |
+
|
30 |
+
// Container Style:
|
31 |
+
// 'magic' - Static (fixed or elastic) when there's enough space,
|
32 |
+
// fluid when there isn't. This is the SUSY MAGIC SAUCE(TM).
|
33 |
+
// 'static' - Forces the grid container to remain static at all times.
|
34 |
+
// 'fluid' - Forces the grid to remain fluid at all times.
|
35 |
+
// (this will overrule any static $container-width settings)
|
36 |
+
$container-style : magic !default;
|
37 |
+
|
38 |
+
// Border-Box Sizing
|
39 |
+
// Adjust the grid math appropriately for box-sizing: border-box;
|
40 |
+
// Warning: This does not actually apply the new box model!
|
41 |
+
// In most cases you can ignore this setting,
|
42 |
+
// and simply apply the border-box-sizing mixin.
|
43 |
+
$border-box-sizing : false !default;
|
44 |
+
|
45 |
+
// ---------------------------------------------------------------------------
|
46 |
+
// IE Settings
|
47 |
+
|
48 |
+
// When you are using a seperate IE stylesheet,
|
49 |
+
// you can use these settings to control the output of at-breakpoint.
|
50 |
+
// By default, at-breakpoint will output media-queries as well as
|
51 |
+
// any defined ie-fallback classes.
|
52 |
+
$breakpoint-media-output : true !default;
|
53 |
+
$breakpoint-ie-output : true !default;
|
54 |
+
|
55 |
+
// Danger Zone! Only set as 'true' in IE-specific style sheets.
|
56 |
+
$breakpoint-raw-output : false !default;
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_support.scss
ADDED
@@ -0,0 +1,198 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// @@@ These helpers only live here until they land in Compass.
|
2 |
+
|
3 |
+
// ---------------------------------------------------------------------------
|
4 |
+
// Imports
|
5 |
+
|
6 |
+
@import "compass/support";
|
7 |
+
|
8 |
+
// ---------------------------------------------------------------------------
|
9 |
+
// Helpers
|
10 |
+
|
11 |
+
// A debug tool for checking browser support
|
12 |
+
@mixin debug-support-matrix($experimental: true, $ie: true) {
|
13 |
+
@debug #{'$moz-'}$experimental-support-for-mozilla
|
14 |
+
#{'$webkit-'}$experimental-support-for-webkit
|
15 |
+
#{'$microsoft-'}$experimental-support-for-microsoft
|
16 |
+
#{'$opera-'}$experimental-support-for-opera
|
17 |
+
#{'$khtml-'}$experimental-support-for-khtml;
|
18 |
+
@debug #{'$ie6-'}$legacy-support-for-ie6
|
19 |
+
#{'$ie7-'}$legacy-support-for-ie7
|
20 |
+
#{'$ie8-'}$legacy-support-for-ie8;
|
21 |
+
}
|
22 |
+
|
23 |
+
// Capture the current exerimental support settings
|
24 |
+
@function capture-experimental-matrix() {
|
25 |
+
@return $experimental-support-for-mozilla
|
26 |
+
$experimental-support-for-webkit
|
27 |
+
$experimental-support-for-microsoft
|
28 |
+
$experimental-support-for-opera
|
29 |
+
$experimental-support-for-khtml;
|
30 |
+
}
|
31 |
+
|
32 |
+
// Capture the current legacy-ie support settings
|
33 |
+
@function capture-legacy-ie-matrix() {
|
34 |
+
@return $legacy-support-for-ie6
|
35 |
+
$legacy-support-for-ie7
|
36 |
+
$legacy-support-for-ie8;
|
37 |
+
}
|
38 |
+
|
39 |
+
// Capture and store support
|
40 |
+
$experimental-matrix: capture-experimental-matrix();
|
41 |
+
$legacy-ie-matrix: capture-legacy-ie-matrix();
|
42 |
+
|
43 |
+
@mixin capture-experimental-matrix {
|
44 |
+
$experimental-matrix: capture-experimental-matrix();
|
45 |
+
}
|
46 |
+
|
47 |
+
@mixin capture-legacy-ie-matrix {
|
48 |
+
$legacy-ie-matrix: capture-legacy-ie-matrix();
|
49 |
+
}
|
50 |
+
|
51 |
+
@mixin capture-support-matrix {
|
52 |
+
@include capture-experimental-matrix;
|
53 |
+
@include capture-legacy-ie-matrix;
|
54 |
+
}
|
55 |
+
|
56 |
+
// Change the experimental-support settings in specific contexts.
|
57 |
+
@mixin set-experimental-support(
|
58 |
+
$moz : false,
|
59 |
+
$webkit : false,
|
60 |
+
$ms : false,
|
61 |
+
$o : false,
|
62 |
+
$khtml : false
|
63 |
+
) {
|
64 |
+
$experimental-support-for-mozilla : $moz;
|
65 |
+
$experimental-support-for-webkit : $webkit;
|
66 |
+
$experimental-support-for-microsoft : $ms;
|
67 |
+
$experimental-support-for-opera : $o;
|
68 |
+
$experimental-support-for-khtml : $khtml;
|
69 |
+
}
|
70 |
+
|
71 |
+
@mixin capture-and-set-experimental(
|
72 |
+
$moz : false,
|
73 |
+
$webkit : false,
|
74 |
+
$ms : false,
|
75 |
+
$o : false,
|
76 |
+
$khtml : false
|
77 |
+
) {
|
78 |
+
@include capture-experimental-matrix;
|
79 |
+
@include set-experimental-support($moz, $webkit, $ms, $o, $khtml);
|
80 |
+
}
|
81 |
+
|
82 |
+
@mixin capture-and-adjust-experimental(
|
83 |
+
$moz : $experimental-support-for-mozilla,
|
84 |
+
$webkit : $experimental-support-for-webkit,
|
85 |
+
$ms : $experimental-support-for-microsoft,
|
86 |
+
$o : $experimental-support-for-opera,
|
87 |
+
$khtml : $experimental-support-for-khtml
|
88 |
+
) {
|
89 |
+
@include capture-experimental-matrix;
|
90 |
+
@include set-experimental-support($moz, $webkit, $ms, $o, $khtml);
|
91 |
+
}
|
92 |
+
|
93 |
+
// Change the legacy-support-for-ie* settings in specific contexts.
|
94 |
+
@mixin set-legacy-ie-support(
|
95 |
+
$ie6: false,
|
96 |
+
$ie7: false,
|
97 |
+
$ie8: false
|
98 |
+
) {
|
99 |
+
$legacy-support-for-ie6: $ie6;
|
100 |
+
$legacy-support-for-ie7: $ie7;
|
101 |
+
$legacy-support-for-ie8: $ie8;
|
102 |
+
}
|
103 |
+
|
104 |
+
@mixin capture-and-set-legacy-ie(
|
105 |
+
$ie6: false,
|
106 |
+
$ie7: false,
|
107 |
+
$ie8: false
|
108 |
+
) {
|
109 |
+
@include capture-legacy-ie-matrix;
|
110 |
+
@include set-legacy-ie-support($ie6, $ie7, $ie8);
|
111 |
+
}
|
112 |
+
|
113 |
+
@mixin capture-and-adjust-legacy-ie(
|
114 |
+
$ie6: $legacy-support-for-ie6,
|
115 |
+
$ie7: $legacy-support-for-ie7,
|
116 |
+
$ie8: $legacy-support-for-ie8
|
117 |
+
) {
|
118 |
+
@include capture-and-set-legacy-ie($ie6, $ie7, $ie8);
|
119 |
+
}
|
120 |
+
|
121 |
+
// Capture current browser support matrix, and set a new matrix of support.
|
122 |
+
@mixin capture-and-set-support(
|
123 |
+
$moz : false,
|
124 |
+
$webkit : false,
|
125 |
+
$ms : false,
|
126 |
+
$o : false,
|
127 |
+
$khtml : false,
|
128 |
+
$ie6 : false,
|
129 |
+
$ie7 : false,
|
130 |
+
$ie8 : false
|
131 |
+
) {
|
132 |
+
// Capture the current state
|
133 |
+
@include capture-support-matrix;
|
134 |
+
|
135 |
+
// Change support settings
|
136 |
+
@include set-experimental-support($moz, $webkit, $ms, $o, $khtml);
|
137 |
+
@include set-legacy-ie-support($ie6, $ie7, $ie8);
|
138 |
+
}
|
139 |
+
|
140 |
+
// Capture current browser support matrix, and set a new matrix of support.
|
141 |
+
@mixin capture-and-adjust-support(
|
142 |
+
$moz : $experimental-support-for-mozilla,
|
143 |
+
$webkit : $experimental-support-for-webkit,
|
144 |
+
$ms : $experimental-support-for-microsoft,
|
145 |
+
$o : $experimental-support-for-opera,
|
146 |
+
$khtml : $experimental-support-for-khtml,
|
147 |
+
$ie6 : $legacy-support-for-ie6,
|
148 |
+
$ie7 : $legacy-support-for-ie7,
|
149 |
+
$ie8 : $legacy-support-for-ie8
|
150 |
+
) {
|
151 |
+
@include capture-and-set-support($moz, $webkit, $ms, $o, $khtml, $ie6, $ie7, $ie8);
|
152 |
+
}
|
153 |
+
|
154 |
+
|
155 |
+
// This mixin allows you to change the experimental support settings for
|
156 |
+
// child (@content) styles.
|
157 |
+
@mixin with-only-support-for(
|
158 |
+
$moz : false,
|
159 |
+
$webkit : false,
|
160 |
+
$ms : false,
|
161 |
+
$o : false,
|
162 |
+
$khtml : false,
|
163 |
+
$ie6 : false,
|
164 |
+
$ie7 : false,
|
165 |
+
$ie8 : false
|
166 |
+
) {
|
167 |
+
// Capture current state
|
168 |
+
$wo-experimental-matrix : capture-experimental-matrix();
|
169 |
+
$wo-legacy-ie-matrix : capture-legacy-ie-matrix();
|
170 |
+
|
171 |
+
// Set new states
|
172 |
+
@include set-experimental-support($moz, $webkit, $ms, $o, $khtml);
|
173 |
+
@include set-legacy-ie-support($ie6, $ie7, $ie8);
|
174 |
+
|
175 |
+
// Apply styles
|
176 |
+
@content;
|
177 |
+
|
178 |
+
// Return to original support settings
|
179 |
+
@include set-experimental-support($wo-experimental-matrix...);
|
180 |
+
@include set-legacy-ie-support($wo-legacy-ie-matrix...);
|
181 |
+
}
|
182 |
+
|
183 |
+
// This mixin is a shortcut for making slight adjustments to browser support
|
184 |
+
// for child (@content) styles
|
185 |
+
@mixin adjust-support-for(
|
186 |
+
$moz : $experimental-support-for-mozilla,
|
187 |
+
$webkit : $experimental-support-for-webkit,
|
188 |
+
$ms : $experimental-support-for-microsoft,
|
189 |
+
$o : $experimental-support-for-opera,
|
190 |
+
$khtml : $experimental-support-for-khtml,
|
191 |
+
$ie6 : $legacy-support-for-ie6,
|
192 |
+
$ie7 : $legacy-support-for-ie7,
|
193 |
+
$ie8 : $legacy-support-for-ie8
|
194 |
+
) {
|
195 |
+
@include with-only-support-for($moz, $webkit, $ms, $o, $khtml, $ie6, $ie7, $ie8) {
|
196 |
+
@content;
|
197 |
+
}
|
198 |
+
}
|
lib/phpsass/Extensions/Susy/stylesheets/susy/_units.scss
ADDED
@@ -0,0 +1,159 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// @private Default font-size for all browsers
|
2 |
+
$browser-default-font-size: 16px;
|
3 |
+
|
4 |
+
// Base font size in pixels, if not already defined.
|
5 |
+
// Should be the same as the font-size of the html element.
|
6 |
+
$base-font-size: 16px !default;
|
7 |
+
|
8 |
+
// Whether to output fallback values in px when outputting rems.
|
9 |
+
$rem-with-px-fallback: true !default;
|
10 |
+
|
11 |
+
// Convert any CSS <length> or <percentage> value to any another.
|
12 |
+
//
|
13 |
+
// @param $length
|
14 |
+
// A css <length> or <percentage> value
|
15 |
+
//
|
16 |
+
// @param $to-unit
|
17 |
+
// String matching a css unit keyword, e.g. 'em', '%', etc.
|
18 |
+
//
|
19 |
+
// @param $from-context
|
20 |
+
// When converting from relative units, the absolute length (in px) to
|
21 |
+
// which $length refers (e.g. for $lengths in em units, would normally be the
|
22 |
+
// font-size of the current element).
|
23 |
+
//
|
24 |
+
// @param $to-context
|
25 |
+
// For converting to relative units, the absolute length in px to which the
|
26 |
+
// output value will refer. Defaults to the same as $from-context, since it is
|
27 |
+
// rarely needed.
|
28 |
+
@function convert-length(
|
29 |
+
$length,
|
30 |
+
$to-unit,
|
31 |
+
$from-context: $base-font-size,
|
32 |
+
$to-context: $from-context
|
33 |
+
) {
|
34 |
+
|
35 |
+
$from-unit: unit($length);
|
36 |
+
|
37 |
+
// Optimize for cases where `from` and `to` units are accidentally the same.
|
38 |
+
@if $from-unit == $to-unit { @return $length; }
|
39 |
+
|
40 |
+
// Context values must be in px so we can determine a conversion ratio for
|
41 |
+
// relative units.
|
42 |
+
@if unit($from-context) != 'px' { @warn "Paremeter $from-context must resolve to a value in pixel units."; }
|
43 |
+
@if unit($to-context) != 'px' { @warn "Parameter $to-context must resolve to a value in pixel units."; }
|
44 |
+
|
45 |
+
// Convert input length to pixels
|
46 |
+
$px-length: $length;
|
47 |
+
|
48 |
+
@if $from-unit != 'px' {
|
49 |
+
// Convert relative units using the from-context parameter.
|
50 |
+
@if $from-unit == 'em' { $px-length: $length * $from-context / 1em }
|
51 |
+
@else if $from-unit == 'rem' { $px-length: $length * $base-font-size / 1rem }
|
52 |
+
@else if $from-unit == '%' { $px-length: $length * $from-context / 100% }
|
53 |
+
@else if $from-unit == 'ex' { $px-length: $length * $from-context / 2ex }
|
54 |
+
// Convert absolute units using Sass' conversion table.
|
55 |
+
@else if $from-unit == 'in' or
|
56 |
+
$from-unit == 'mm' or
|
57 |
+
$from-unit == 'cm' or
|
58 |
+
$from-unit == 'pt' or
|
59 |
+
$from-unit == 'pc' { $px-length: 0px + $length }
|
60 |
+
// Certain units can't be converted.
|
61 |
+
@else if $from-unit == 'ch' or
|
62 |
+
$from-unit == 'vw' or
|
63 |
+
$from-unit == 'vh' or
|
64 |
+
$from-unit == 'vmin' {
|
65 |
+
@warn "#{$from-unit} units can't be reliably converted; Returning original value.";
|
66 |
+
@return $length;
|
67 |
+
}
|
68 |
+
@else {
|
69 |
+
@warn "#{$from-unit} is an unknown length unit. Returning original value.";
|
70 |
+
@return $length;
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
// Convert length in pixels to the output unit
|
75 |
+
$output-length: $px-length;
|
76 |
+
@if $to-unit != 'px' {
|
77 |
+
// Relative units
|
78 |
+
@if $to-unit == 'em' { $output-length: $px-length * 1em / $to-context }
|
79 |
+
@else if $to-unit == 'rem' { $output-length: $px-length * 1rem / $base-font-size }
|
80 |
+
@else if $to-unit == '%' { $output-length: $px-length * 100% / $to-context }
|
81 |
+
@else if $to-unit == 'ex' { $output-length: $px-length * 2ex / $to-context }
|
82 |
+
// Absolute units
|
83 |
+
@else if $to-unit == 'in' { $output-length: 0in + $px-length }
|
84 |
+
@else if $to-unit == 'mm' { $output-length: 0mm + $px-length }
|
85 |
+
@else if $to-unit == 'cm' { $output-length: 0cm + $px-length }
|
86 |
+
@else if $to-unit == 'pt' { $output-length: 0pt + $px-length }
|
87 |
+
@else if $to-unit == 'pc' { $output-length: 0pc + $px-length }
|
88 |
+
// Non-convertible units
|
89 |
+
@else if $to-unit == 'ch' or
|
90 |
+
$to-unit == 'vw' or
|
91 |
+
$to-unit == 'vh' or
|
92 |
+
$to-unit == 'vmin' {
|
93 |
+
@warn "#{$to-unit} units can't be reliably converted; Returning original value.";
|
94 |
+
@return $length;
|
95 |
+
}
|
96 |
+
@else {
|
97 |
+
@warn "#{$to-unit} is an unknown length unit. Returning original value.";
|
98 |
+
@return $length;
|
99 |
+
}
|
100 |
+
}
|
101 |
+
|
102 |
+
@return $output-length;
|
103 |
+
}
|
104 |
+
|
105 |
+
|
106 |
+
// Output a given style rule containing rem values along with an (optional)
|
107 |
+
// fallback rule for older browsers (with rem values converted to px).
|
108 |
+
//
|
109 |
+
// @param $property
|
110 |
+
// The css property name.
|
111 |
+
//
|
112 |
+
// @param $values
|
113 |
+
// The value (or space-separated list of values) for the property.
|
114 |
+
//
|
115 |
+
// @param $use-px-fallback
|
116 |
+
// [ true | false ]
|
117 |
+
//
|
118 |
+
@mixin rem($property, $values, $use-px-fallback: $rem-with-px-fallback) {
|
119 |
+
// Create a couple of empty lists as output buffers.
|
120 |
+
$px-values: ();
|
121 |
+
$rem-values: ();
|
122 |
+
|
123 |
+
// Loop through the $values list
|
124 |
+
@each $value in $values {
|
125 |
+
// For each property value, if it's in rem or px, derive both rem and
|
126 |
+
// px values for it and add those to the end of the appropriate buffer.
|
127 |
+
// Ensure all pixel values are rounded to the nearest pixel.
|
128 |
+
@if type-of($value) == number and not unitless($value) and (unit($value) == px or unit($value) == rem) {
|
129 |
+
@if unit($value) == px {
|
130 |
+
$px-values: join($px-values, round($value));
|
131 |
+
$rem-values: join($rem-values, convert-length($value, rem));
|
132 |
+
}
|
133 |
+
@else {
|
134 |
+
$px-values: join($px-values, round(convert-length($value, px)));
|
135 |
+
$rem-values: join($rem-values, $value);
|
136 |
+
}
|
137 |
+
}
|
138 |
+
@else {
|
139 |
+
$px-values: join($px-values, $value);
|
140 |
+
$rem-values: join($rem-values, $value);
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
// Use pixel fallback for browsers that don't understand rem units.
|
145 |
+
@if $use-px-fallback {
|
146 |
+
#{$property}: $px-values;
|
147 |
+
}
|
148 |
+
|
149 |
+
// Use rem values for everyone else (overrides pixel values).
|
150 |
+
#{$property}: $rem-values;
|
151 |
+
}
|
152 |
+
|
153 |
+
@mixin if-rem($property, $values, $use-px-fallback: $rem-with-px-fallback) {
|
154 |
+
$has-rem: false;
|
155 |
+
@each $value in $values { $has-rem: if(unit($value) == 'rem', true, $has-rem); }
|
156 |
+
@if $has-rem { @include rem($property, $values, $use-px-fallback); }
|
157 |
+
@else { #{$property}: $values; }
|
158 |
+
}
|
159 |
+
|
lib/phpsass/Extensions/example.php
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
function loadCallback($file, $parser)
|
3 |
+
{
|
4 |
+
$paths = array();
|
5 |
+
foreach ($parser->extensions as $extensionName) {
|
6 |
+
$namespace = ucwords(preg_replace('/[^0-9a-z]+/', '_', strtolower($extensionName)));
|
7 |
+
$extensionPath = './' . $namespace . '/' . $namespace . '.php';
|
8 |
+
if (file_exists($extensionPath)) {
|
9 |
+
require_once($extensionPath);
|
10 |
+
$hook = $namespace . '::resolveExtensionPath';
|
11 |
+
$returnPath = call_user_func($hook, $file, $parser);
|
12 |
+
if (!empty($returnPath)) {
|
13 |
+
$paths[] = $returnPath;
|
14 |
+
}
|
15 |
+
|
16 |
+
}
|
17 |
+
}
|
18 |
+
return $paths;
|
19 |
+
}
|
20 |
+
|
21 |
+
|
22 |
+
function getFunctions($extensions)
|
23 |
+
{
|
24 |
+
$output = array();
|
25 |
+
if (!empty($extensions)) {
|
26 |
+
foreach ($extensions as $extension) {
|
27 |
+
$name = explode('/', $extension, 2);
|
28 |
+
$namespace = ucwords(preg_replace('/[^0-9a-z]+/', '_', strtolower(array_shift($name))));
|
29 |
+
$extensionPath = './' . $namespace . '/' . $namespace . '.php';
|
30 |
+
if (file_exists(
|
31 |
+
$extensionPath
|
32 |
+
)
|
33 |
+
) {
|
34 |
+
require_once($extensionPath);
|
35 |
+
$namespace = $namespace . '::';
|
36 |
+
$function = 'getFunctions';
|
37 |
+
$output = array_merge($output, call_user_func($namespace . $function, $namespace));
|
38 |
+
}
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
return $output;
|
43 |
+
}
|
44 |
+
|
45 |
+
|
46 |
+
$file = 'example.scss';
|
47 |
+
$path = '../';
|
48 |
+
$library = $path . '/SassParser.php';
|
49 |
+
|
50 |
+
if ($path && file_exists($library)) {
|
51 |
+
|
52 |
+
|
53 |
+
try {
|
54 |
+
require_once ($library);
|
55 |
+
|
56 |
+
$options = array(
|
57 |
+
'style' => 'expanded',
|
58 |
+
'cache' => false,
|
59 |
+
'syntax' => 'scss',
|
60 |
+
'debug' => false,
|
61 |
+
'debug_info' => false,
|
62 |
+
'load_path_functions' => array('loadCallback'),
|
63 |
+
'load_paths' => array(dirname($file)),
|
64 |
+
'functions' => getFunctions(array('Compass','Own')),
|
65 |
+
'extensions' => array('Compass','Own')
|
66 |
+
);
|
67 |
+
// Execute the compiler.
|
68 |
+
$parser = new SassParser($options);
|
69 |
+
print $parser->toCss($file);
|
70 |
+
} catch (Exception $e) {
|
71 |
+
print "body::before {
|
72 |
+
display: block;
|
73 |
+
padding: 5px;
|
74 |
+
white-space: pre;
|
75 |
+
font-family: monospace;
|
76 |
+
font-size: 8pt;
|
77 |
+
line-height: 17px;
|
78 |
+
overflow: hidden;
|
79 |
+
content: '" . $e->getMessage() . "';
|
80 |
+
}";
|
81 |
+
}
|
82 |
+
} else {
|
83 |
+
echo 'Path or library are wrong';
|
84 |
+
}
|
85 |
+
|
86 |
+
|
lib/phpsass/Extensions/example.scss
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "test";
|
2 |
+
@import "compass/compass";
|
3 |
+
|
4 |
+
|
5 |
+
body {
|
6 |
+
content: demo-function();
|
7 |
+
@include border-radius();
|
8 |
+
}
|
lib/phpsass/Extensions/theme.scss
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
$blue:#fff;
|
lib/phpsass/README.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1 |
-
#
|
2 |
-
We are evaluating wether to switch to using namespaces for better PSR compliance. To help with this, can you tweet or email me (richthegeek@gmail.com) with which version of PHP you are using.
|
3 |
-
|
4 |
|
5 |
-
#
|
|
|
6 |
|
7 |
## Try online
|
8 |
You can compile and compare SCSS against the ruby compiler at <http://phpsass.com/try>
|
1 |
+
#PHPSass [![build status](https://travis-ci.org/richthegeek/phpsass.png)](https://travis-ci.org/richthegeek/phpsass) [![GiTip donations gladly recieved](https://www.gittip.com/assets/8.0.15/logo.png)](https://www.gittip.com/richthegeek/)
|
|
|
|
|
2 |
|
3 |
+
#IMPORTANT NOTICE
|
4 |
+
We will soon be implementing PSR standards, and so compatibility requirements will move to PHP 5.3. A separate branch will be made for older versions, although it may not be updated.
|
5 |
|
6 |
## Try online
|
7 |
You can compile and compare SCSS against the ruby compiler at <http://phpsass.com/try>
|
lib/phpsass/SassFile.php
CHANGED
@@ -141,7 +141,7 @@ class SassFile {
|
|
141 |
$files = array_slice(scandir($dir), 2);
|
142 |
|
143 |
foreach ($files as $file) {
|
144 |
-
if (is_dir($dir . DIRECTORY_SEPARATOR . $file)) {
|
145 |
$path = self::find_file($filename, $dir . DIRECTORY_SEPARATOR . $file);
|
146 |
if ($path !== false) {
|
147 |
return $path;
|
141 |
$files = array_slice(scandir($dir), 2);
|
142 |
|
143 |
foreach ($files as $file) {
|
144 |
+
if (substr($file, 0, 1) != '.' && is_dir($dir . DIRECTORY_SEPARATOR . $file)) {
|
145 |
$path = self::find_file($filename, $dir . DIRECTORY_SEPARATOR . $file);
|
146 |
if ($path !== false) {
|
147 |
return $path;
|
lib/phpsass/SassParser.php
CHANGED
@@ -400,9 +400,23 @@ class SassParser {
|
|
400 |
}
|
401 |
|
402 |
if (is_array($source)) {
|
403 |
-
$return =
|
404 |
-
foreach ($source as $
|
405 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
}
|
407 |
return $return;
|
408 |
}
|
400 |
}
|
401 |
|
402 |
if (is_array($source)) {
|
403 |
+
$return = null;
|
404 |
+
foreach ($source as $key => $value) {
|
405 |
+
if(is_numeric($key)){
|
406 |
+
$code = $value;
|
407 |
+
$type = true;
|
408 |
+
} else {
|
409 |
+
$code = $key;
|
410 |
+
$type = $value;
|
411 |
+
}
|
412 |
+
if($return===null){
|
413 |
+
$return = $this->parse($code, $type);
|
414 |
+
} else {
|
415 |
+
$newNode = $this->parse($code, $type);
|
416 |
+
foreach($newNode->children as $children){
|
417 |
+
array_push($return->children, $children);
|
418 |
+
}
|
419 |
+
}
|
420 |
}
|
421 |
return $return;
|
422 |
}
|
lib/phpsass/VERSION
CHANGED
@@ -1,3 +1,5 @@
|
|
|
|
|
|
1 |
Version 201211282000 - Version bump to reflect multiple pull requests being merged over time.
|
2 |
Version 201209040040 - Fixed a bunch of issues
|
3 |
Version 201209031740 - Almost up to 3.2.1; Directive interp, splats, new functions, some fixes
|
1 |
+
Version 201306071300 - Version bump to reflect multiple merged pull requests
|
2 |
+
Version 201304222300 - Version bump to reflect multiple merged pull requests
|
3 |
Version 201211282000 - Version bump to reflect multiple pull requests being merged over time.
|
4 |
Version 201209040040 - Fixed a bunch of issues
|
5 |
Version 201209031740 - Almost up to 3.2.1; Directive interp, splats, new functions, some fixes
|
lib/phpsass/script/SassScriptFunction.php
CHANGED
@@ -20,8 +20,8 @@ class SassScriptFunction {
|
|
20 |
/**@#+
|
21 |
* Regexes for matching and extracting functions and arguments
|
22 |
*/
|
23 |
-
const MATCH = '/^(((-\w)|(\w))[-\w]*)\(/';
|
24 |
-
const MATCH_FUNC = '/^((?:(?:-\w)|(?:\w))[-\w]*)\((.*)\)/';
|
25 |
const SPLIT_ARGS = '/\s*((?:[\'"].*?["\'])|(?:.+?(?:\(.*\).*?)?))\s*(?:,|$)/';
|
26 |
const NAME = 1;
|
27 |
const ARGS = 2;
|
@@ -254,13 +254,29 @@ class SassScriptFunction {
|
|
254 |
}
|
255 |
|
256 |
// print_r(array($required, $provided, $_required));
|
|
|
257 |
|
258 |
foreach ($required as $name=>$default) {
|
|
|
|
|
|
|
|
|
|
|
259 |
if (count($provided)) {
|
260 |
$arg = array_shift($provided);
|
261 |
}
|
262 |
elseif ($default !== NULL) {
|
263 |
$arg = $default;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
}
|
265 |
else {
|
266 |
throw new SassMixinNodeException("Function::$name: Required variable ($name) not given.\nFunction defined: " . $source->token->filename . '::' . $source->token->line . "\nFunction used", $source);
|
20 |
/**@#+
|
21 |
* Regexes for matching and extracting functions and arguments
|
22 |
*/
|
23 |
+
const MATCH = '/^(((-\w)|(\w))[-\w:.]*)\(/';
|
24 |
+
const MATCH_FUNC = '/^((?:(?:-\w)|(?:\w))[-\w:.]*)\((.*)\)/';
|
25 |
const SPLIT_ARGS = '/\s*((?:[\'"].*?["\'])|(?:.+?(?:\(.*\).*?)?))\s*(?:,|$)/';
|
26 |
const NAME = 1;
|
27 |
const ARGS = 2;
|
254 |
}
|
255 |
|
256 |
// print_r(array($required, $provided, $_required));
|
257 |
+
$provided_copy = $provided;
|
258 |
|
259 |
foreach ($required as $name=>$default) {
|
260 |
+
if ($default === null && strpos($name, '=') !== FALSE) {
|
261 |
+
list($name, $default) = explode('=', $name);
|
262 |
+
$name = trim($name);
|
263 |
+
$default = trim($default);
|
264 |
+
}
|
265 |
if (count($provided)) {
|
266 |
$arg = array_shift($provided);
|
267 |
}
|
268 |
elseif ($default !== NULL) {
|
269 |
$arg = $default;
|
270 |
+
|
271 |
+
// for mixins with default values that refer to other arguments
|
272 |
+
// (e.g. border-radius($topright: 0, $bottomright: $topright, $bottomleft: $topright, $topleft: $topright)
|
273 |
+
if (is_string($default) && $default[0]=='$') {
|
274 |
+
$referred = trim(trim($default, '$'));
|
275 |
+
$pos = array_search($referred, array_keys($required));
|
276 |
+
if ($pos!==false && array_key_exists($pos, $provided_copy)) {
|
277 |
+
$arg = $provided_copy[$pos];
|
278 |
+
}
|
279 |
+
}
|
280 |
}
|
281 |
else {
|
282 |
throw new SassMixinNodeException("Function::$name: Required variable ($name) not given.\nFunction defined: " . $source->token->filename . '::' . $source->token->line . "\nFunction used", $source);
|
lib/phpsass/script/SassScriptLexer.php
CHANGED
@@ -92,6 +92,10 @@ class SassScriptLexer {
|
|
92 |
$tokens[] = $stringed;
|
93 |
}
|
94 |
}
|
|
|
|
|
|
|
|
|
95 |
elseif (($match = SassScriptOperation::isa($string)) !== false) {
|
96 |
$tokens[] = new SassScriptOperation($match);
|
97 |
}
|
92 |
$tokens[] = $stringed;
|
93 |
}
|
94 |
}
|
95 |
+
elseif ($string == '()') {
|
96 |
+
$match = $string;
|
97 |
+
$tokens[] = new SassList($match);
|
98 |
+
}
|
99 |
elseif (($match = SassScriptOperation::isa($string)) !== false) {
|
100 |
$tokens[] = new SassScriptOperation($match);
|
101 |
}
|
lib/phpsass/script/SassScriptOperation.php
CHANGED
@@ -52,7 +52,7 @@ class SassScriptOperation {
|
|
52 |
* @var array operators with meaning in uquoted strings;
|
53 |
* selectors, property names and values
|
54 |
*/
|
55 |
-
public static $inStrOperators = array(',', '#{');
|
56 |
|
57 |
/**
|
58 |
* @var array default operator token.
|
52 |
* @var array operators with meaning in uquoted strings;
|
53 |
* selectors, property names and values
|
54 |
*/
|
55 |
+
public static $inStrOperators = array(',', '#{', ')', '(');
|
56 |
|
57 |
/**
|
58 |
* @var array default operator token.
|
lib/phpsass/script/literals/SassBoolean.php
CHANGED
@@ -55,6 +55,17 @@ class SassBoolean extends SassLiteral {
|
|
55 |
return $this->getValue() ? 'true' : 'false';
|
56 |
}
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
/**
|
59 |
* Returns a value indicating if a token of this type can be matched at
|
60 |
* the start of the subject string.
|
55 |
return $this->getValue() ? 'true' : 'false';
|
56 |
}
|
57 |
|
58 |
+
public function length() {
|
59 |
+
return 1;
|
60 |
+
}
|
61 |
+
|
62 |
+
public function nth($i) {
|
63 |
+
if ($i == 1 && isset($this->value)) {
|
64 |
+
return new SassBoolean($this->value);
|
65 |
+
}
|
66 |
+
return new SassBoolean(false);
|
67 |
+
}
|
68 |
+
|
69 |
/**
|
70 |
* Returns a value indicating if a token of this type can be matched at
|
71 |
* the start of the subject string.
|
lib/phpsass/script/literals/SassColour.php
CHANGED
@@ -915,4 +915,13 @@ class SassColour extends SassLiteral {
|
|
915 |
return (preg_match(self::$regex, strtolower($subject), $matches) ?
|
916 |
$matches[0] : false);
|
917 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
918 |
}
|
915 |
return (preg_match(self::$regex, strtolower($subject), $matches) ?
|
916 |
$matches[0] : false);
|
917 |
}
|
918 |
+
|
919 |
+
public function nth($i) {
|
920 |
+
if ($i == 1) return clone $this;
|
921 |
+
return new SassBoolean(false);
|
922 |
+
}
|
923 |
+
|
924 |
+
public function length() {
|
925 |
+
return 1;
|
926 |
+
}
|
927 |
}
|
lib/phpsass/script/literals/SassList.php
CHANGED
@@ -30,6 +30,10 @@ class SassList extends SassLiteral {
|
|
30 |
$this->value = $value;
|
31 |
$this->separator = ($separator == 'auto' ? ', ' : $separator);
|
32 |
}
|
|
|
|
|
|
|
|
|
33 |
else if (list($list, $separator) = $this->_parse_list($value, $separator, true, SassScriptParser::$context)) {
|
34 |
$this->value = $list;
|
35 |
$this->separator = ($separator == ',' ? ', ' : ' ');
|
@@ -130,6 +134,11 @@ class SassList extends SassLiteral {
|
|
130 |
}
|
131 |
|
132 |
public static function _parse_list($list, $separator = 'auto', $lex = true, $context = null) {
|
|
|
|
|
|
|
|
|
|
|
133 |
if ($separator == 'auto') {
|
134 |
$separator = ',';
|
135 |
$list = $list = self::_build_list($list, ',');
|
30 |
$this->value = $value;
|
31 |
$this->separator = ($separator == 'auto' ? ', ' : $separator);
|
32 |
}
|
33 |
+
else if ($value == '()'){
|
34 |
+
$this->value = array();
|
35 |
+
$this->separator = ($separator == 'auto' ? ', ' : $separator);
|
36 |
+
}
|
37 |
else if (list($list, $separator) = $this->_parse_list($value, $separator, true, SassScriptParser::$context)) {
|
38 |
$this->value = $list;
|
39 |
$this->separator = ($separator == ',' ? ', ' : ' ');
|
134 |
}
|
135 |
|
136 |
public static function _parse_list($list, $separator = 'auto', $lex = true, $context = null) {
|
137 |
+
if ($lex) {
|
138 |
+
$context = new SassContext($context);
|
139 |
+
$list = SassScriptParser::$instance->evaluate($list, $context);
|
140 |
+
$list = $list->toString();
|
141 |
+
}
|
142 |
if ($separator == 'auto') {
|
143 |
$separator = ',';
|
144 |
$list = $list = self::_build_list($list, ',');
|
lib/phpsass/script/literals/SassNumber.php
CHANGED
@@ -535,4 +535,25 @@ class SassNumber extends SassLiteral {
|
|
535 |
public static function isa($subject) {
|
536 |
return (preg_match(self::MATCH, $subject, $matches) ? $matches[0] : false);
|
537 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
}
|
535 |
public static function isa($subject) {
|
536 |
return (preg_match(self::MATCH, $subject, $matches) ? $matches[0] : false);
|
537 |
}
|
538 |
+
|
539 |
+
/**
|
540 |
+
* Returns the number of values of SassNumber
|
541 |
+
* @return int
|
542 |
+
*/
|
543 |
+
public function length() {
|
544 |
+
return count($this->value);
|
545 |
+
}
|
546 |
+
|
547 |
+
/**
|
548 |
+
* Returns the nth value of the SassNumber
|
549 |
+
* @param int - the nth position of value
|
550 |
+
* @return SassBoolean|SassNumber
|
551 |
+
*/
|
552 |
+
public function nth($i) {
|
553 |
+
if ($i == 1 && isset($this->value)) {
|
554 |
+
return new SassNumber($this->value);
|
555 |
+
}
|
556 |
+
return new SassBoolean(false);
|
557 |
+
}
|
558 |
+
|
559 |
}
|
lib/phpsass/test.php
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
<html>
|
2 |
<head>
|
3 |
<title>PHamlP Test Suite</title>
|
@@ -6,10 +7,6 @@
|
|
6 |
<body>
|
7 |
<?php
|
8 |
|
9 |
-
/**
|
10 |
-
* This file is horrible and not Drupal at all. Forgive me, I did not have time to write concise code.
|
11 |
-
*/
|
12 |
-
|
13 |
/* Testing for Sassy.
|
14 |
* Looks in tests* and compiles any .sass/.scss files
|
15 |
* and compares to them to their twin .css files by
|
1 |
+
<!-- Just load this in a browser and the tests will run! -->
|
2 |
<html>
|
3 |
<head>
|
4 |
<title>PHamlP Test Suite</title>
|
7 |
<body>
|
8 |
<?php
|
9 |
|
|
|
|
|
|
|
|
|
10 |
/* Testing for Sassy.
|
11 |
* Looks in tests* and compiles any .sass/.scss files
|
12 |
* and compares to them to their twin .css files by
|
lib/phpsass/tests/alt.css
CHANGED
@@ -1,16 +1,15 @@
|
|
1 |
h1 {
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
h1 a:hover,
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
sp: 3; }
|
1 |
h1 {
|
2 |
+
float: left;
|
3 |
+
width: 274px;
|
4 |
+
height: 75px;
|
5 |
+
margin: 0;
|
6 |
+
background-repeat: no-repeat;
|
7 |
+
background-image: none; }
|
8 |
+
h1 a:hover, h1 a:visited {
|
9 |
+
color: green; }
|
10 |
+
h1 b:hover {
|
11 |
+
color: red;
|
12 |
+
background-color: green; }
|
13 |
+
h1 const {
|
14 |
+
nosp: 6/2;
|
15 |
+
sp: 3; }
|
|
lib/phpsass/tests/colour-nth.css
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
#colour-nth {
|
2 |
+
background: yellow; }
|
lib/phpsass/tests/colour-nth.scss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
#colour-nth {
|
2 |
+
background: nth(#ff0, 1);
|
3 |
+
}
|
lib/phpsass/tests/extend_included.css
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
.error {
|
2 |
+
border: 1px #f00;
|
3 |
+
background-color: #fdd; }
|
lib/phpsass/tests/functions.css
CHANGED
@@ -1,9 +1,69 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
Syntax error: Positional arguments must come before keyword arguments.
|
3 |
+
on line 14 of functions.scss
|
4 |
+
|
5 |
+
9: #{test()} {
|
6 |
+
10: content: x() if(x() == 'one two', true, false);
|
7 |
+
11: content: x('foo', 'bar') if(x('foo', 'bar') == 'foo bar', true, false);
|
8 |
+
12: content: x('foo') if(x('foo') == 'foo two', true, false);
|
9 |
+
13: content: x($two: 'foo') if(x($two: 'foo') == 'one foo', true, false);
|
10 |
+
14: content: x($two: 'foo', bar) if(x($two: 'foo', bar) == bar foo, true, false);
|
11 |
+
15: adjust-color: adjust-color(#00F, $blue: -15);
|
12 |
+
16: }
|
13 |
+
|
14 |
+
Backtrace:
|
15 |
+
functions.scss:14
|
16 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:395:in `arglist'
|
17 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:370:in `fn_arglist'
|
18 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:332:in `funcall'
|
19 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:320:in `ident'
|
20 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:228:in `unary_not'
|
21 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:228:in `unary_div'
|
22 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:228:in `unary_minus'
|
23 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:228:in `unary_plus'
|
24 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:209:in `times_div_or_mod'
|
25 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:209:in `plus_or_minus'
|
26 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:209:in `relational'
|
27 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:209:in `eq_or_neq'
|
28 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:209:in `and_expr'
|
29 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:209:in `or_expr'
|
30 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:299:in `space'
|
31 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:284:in `interpolation'
|
32 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:247:in `expr'
|
33 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:470:in `assert_expr'
|
34 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/script/parser.rb:49:in `parse'
|
35 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:1008:in `sass_script'
|
36 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:868:in `value!'
|
37 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:845:in `declaration'
|
38 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:568:in `block in declaration_or_ruleset'
|
39 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:1108:in `call'
|
40 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:1108:in `rethrow'
|
41 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:578:in `declaration_or_ruleset'
|
42 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:540:in `block_child'
|
43 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:532:in `block_contents'
|
44 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:521:in `block'
|
45 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:515:in `ruleset'
|
46 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:539:in `block_child'
|
47 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:532:in `block_contents'
|
48 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:70:in `stylesheet'
|
49 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/scss/parser.rb:27:in `parse'
|
50 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/engine.rb:342:in `_to_tree'
|
51 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/engine.rb:315:in `_render'
|
52 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/engine.rb:262:in `render'
|
53 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/plugin/compiler.rb:341:in `update_stylesheet'
|
54 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/plugin/compiler.rb:203:in `block in update_stylesheets'
|
55 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/plugin/compiler.rb:201:in `each'
|
56 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/plugin/compiler.rb:201:in `update_stylesheets'
|
57 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/plugin.rb:81:in `update_stylesheets'
|
58 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/exec.rb:424:in `watch_or_update'
|
59 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/exec.rb:307:in `process_result'
|
60 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/exec.rb:41:in `parse'
|
61 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/lib/sass/exec.rb:21:in `parse!'
|
62 |
+
/var/lib/gems/1.9.1/gems/sass-3.2.3/bin/scss:8:in `<top (required)>'
|
63 |
+
/usr/local/bin/scss:23:in `load'
|
64 |
+
/usr/local/bin/scss:23:in `<main>'
|
65 |
+
*/
|
66 |
+
body:before {
|
67 |
+
white-space: pre;
|
68 |
+
font-family: monospace;
|
69 |
+
content: "Syntax error: Positional arguments must come before keyword arguments.\A on line 14 of functions.scss\A \A 9: #{test()} {\A 10: content: x() if(x() == 'one two', true, false);\A 11: content: x('foo', 'bar') if(x('foo', 'bar') == 'foo bar', true, false);\A 12: content: x('foo') if(x('foo') == 'foo two', true, false);\A 13: content: x($two: 'foo') if(x($two: 'foo') == 'one foo', true, false);\A 14: content: x($two: 'foo', bar) if(x($two: 'foo', bar) == bar foo, true, false);\A 15: adjust-color: adjust-color(#00F, $blue: -15);\A 16: }"; }
|
lib/phpsass/tests/if_parentheses.css
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
body {
|
2 |
+
width: 100px; }
|
lib/phpsass/tests/if_parentheses.scss
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
$value: 10px;
|
2 |
+
body {
|
3 |
+
@if (unit($value) == px or unit($value) == rem) {
|
4 |
+
width: 100px;
|
5 |
+
}
|
6 |
+
}
|
lib/phpsass/tests/list_empty.css
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
#list {
|
2 |
+
width: 10px; }
|
lib/phpsass/tests/list_empty.scss
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#list {
|
2 |
+
$test-list: ();
|
3 |
+
$test-list: join($test-list, 10px);
|
4 |
+
width: nth($test-list, 1)
|
5 |
+
}
|
lib/phpsass/tests/list_variable.css
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
body{
|
2 |
+
width:10px; }
|
lib/phpsass/tests/list_variable.scss
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@function test($columns) {
|
2 |
+
@each $var in $columns {
|
3 |
+
@return $var;
|
4 |
+
}
|
5 |
+
}
|
6 |
+
|
7 |
+
body {
|
8 |
+
width: test(10px 20px 30px);
|
9 |
+
}
|
lib/phpsass/tests/media_in_for.css
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@media only screen and (min-width: 500px) {
|
2 |
+
#gallery {
|
3 |
+
width: 520px; } }
|
4 |
+
@media only screen and (min-width: 1000px) {
|
5 |
+
#gallery {
|
6 |
+
width: 1020px; } }
|
lib/phpsass/tests/media_in_for.scss
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
$fiver: 500px;
|
2 |
+
#gallery {
|
3 |
+
@for $i from 1 through 2 {
|
4 |
+
$screenWidth: $fiver * $i;
|
5 |
+
$galleryWidth: ($fiver * $i) + 20px;
|
6 |
+
@media only screen and (min-width: $screenWidth) {
|
7 |
+
width: $galleryWidth;
|
8 |
+
}
|
9 |
+
}
|
10 |
+
}
|
lib/phpsass/tests/media_in_mixin.css
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
@media (min-width: 768px) {
|
2 |
+
body {
|
3 |
+
width: 50px; } }
|
lib/phpsass/tests/media_in_mixin.scss
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin mediaContent() {
|
2 |
+
@media (min-width: 768px) {
|
3 |
+
@content;
|
4 |
+
}
|
5 |
+
}
|
6 |
+
|
7 |
+
@include mediaContent() {
|
8 |
+
body { width: 50px; }
|
9 |
+
}
|
lib/phpsass/tests/media_in_mixin_in_mixin.css
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
@media (min-width: 768px) {
|
2 |
+
body {
|
3 |
+
height: 50px;
|
4 |
+
width: 50px; } }
|
lib/phpsass/tests/media_in_mixin_in_mixin.scss
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin getMediaDimensions() {
|
2 |
+
@content;
|
3 |
+
}
|
4 |
+
|
5 |
+
@mixin getDimensions() {
|
6 |
+
@include getMediaDimensions() {
|
7 |
+
@media (min-width: 768px) {
|
8 |
+
body {
|
9 |
+
height: 50px;
|
10 |
+
@content;
|
11 |
+
}
|
12 |
+
}
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
@include getDimensions() {
|
17 |
+
width: 50px;
|
18 |
+
}
|
lib/phpsass/tests/mixin-content.css
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
#logo {
|
2 |
background-image: url("/images/logo.png"); }
|
3 |
* html #logo {
|
|
|
4 |
background-image: url("/images/logo.gif"); }
|
1 |
#logo {
|
2 |
background-image: url("/images/logo.png"); }
|
3 |
* html #logo {
|
4 |
+
width: 500px;
|
5 |
background-image: url("/images/logo.gif"); }
|
lib/phpsass/tests/mixin-content.sass
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
=ie6
|
2 |
* html &
|
3 |
@content
|
@@ -5,4 +6,5 @@
|
|
5 |
#logo
|
6 |
background-image: url("/images/logo.png")
|
7 |
+ie6
|
|
|
8 |
background-image: url("/images/logo.gif")
|
1 |
+
$fiver: 500px
|
2 |
=ie6
|
3 |
* html &
|
4 |
@content
|
6 |
#logo
|
7 |
background-image: url("/images/logo.png")
|
8 |
+ie6
|
9 |
+
width: $fiver
|
10 |
background-image: url("/images/logo.gif")
|
lib/phpsass/tests/mixin-content.scss
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
@mixin ie6 {
|
2 |
* html & {
|
3 |
@content
|
@@ -7,6 +8,7 @@
|
|
7 |
#logo {
|
8 |
background-image: url("/images/logo.png");
|
9 |
@include ie6 {
|
|
|
10 |
background-image: url("/images/logo.gif");
|
11 |
}
|
12 |
}
|
1 |
+
$fiver: 500px;
|
2 |
@mixin ie6 {
|
3 |
* html & {
|
4 |
@content
|
8 |
#logo {
|
9 |
background-image: url("/images/logo.png");
|
10 |
@include ie6 {
|
11 |
+
width: $fiver;
|
12 |
background-image: url("/images/logo.gif");
|
13 |
}
|
14 |
}
|
lib/phpsass/tests/mixin-list-params.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.box {
|
2 |
+
background: url('sprite.png') 0 -276px no-repeat, -moz-linear-gradient(320deg, #e2d0ec, #f8f4fb), #ede2f3;
|
3 |
+
background: url('sprite.png') 0 -276px no-repeat, -webkit-gradient(320deg, #e2d0ec, #f8f4fb), #ede2f3;
|
4 |
+
background: url('sprite.png') 0 -276px no-repeat, -webkit-linear-gradient(320deg, #e2d0ec, #f8f4fb), #ede2f3;
|
5 |
+
background: url('sprite.png') 0 -276px no-repeat, -o-linear-gradient(320deg, #e2d0ec, #f8f4fb), #ede2f3;
|
6 |
+
background: url('sprite.png') 0 -276px no-repeat, -ms-linear-gradient(320deg, #e2d0ec, #f8f4fb), #ede2f3;
|
7 |
+
background: url('sprite.png') 0 -276px no-repeat, linear-gradient(-230deg, #e2d0ec, #f8f4fb), #ede2f3; }
|
lib/phpsass/tests/mixin-list-params.scss
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin multi-backgrounds($image, $gradient, $color) {
|
2 |
+
$angle: nth($gradient, 1);
|
3 |
+
$colorStart: nth($gradient, 2);
|
4 |
+
$colorStop: nth($gradient, 3);
|
5 |
+
$newAngle: (90-$angle) % 360;
|
6 |
+
|
7 |
+
background: #{$image}, -moz-linear-gradient(#{$gradient}), #{$color};
|
8 |
+
background: #{$image}, -webkit-gradient(#{$gradient}), #{$color};
|
9 |
+
background: #{$image}, -webkit-linear-gradient(#{$gradient}), #{$color};
|
10 |
+
background: #{$image}, -o-linear-gradient(#{$gradient}), #{$color};
|
11 |
+
background: #{$image}, -ms-linear-gradient(#{$gradient}), #{$color};
|
12 |
+
background: #{$image}, linear-gradient(#{$newAngle}, #{$colorStart}, #{$colorStop}), #{$color};
|
13 |
+
}
|
14 |
+
|
15 |
+
.box {
|
16 |
+
@include multi-backgrounds(url('sprite.png') 0 -276px no-repeat, (320deg, #e2d0ec, lighten(#e2d0ec, 10%)), lighten(#e2d0ec, 5%));
|
17 |
+
}
|
lib/phpsass/tests/mixin-params.css
CHANGED
@@ -13,3 +13,11 @@ two {
|
|
13 |
both {
|
14 |
one: 'one';
|
15 |
two: 'two'; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
both {
|
14 |
one: 'one';
|
15 |
two: 'two'; }
|
16 |
+
|
17 |
+
whitespace {
|
18 |
+
one: 'one';
|
19 |
+
two: 'two'; }
|
20 |
+
|
21 |
+
parens {
|
22 |
+
one: 'one';
|
23 |
+
two: white; }
|
lib/phpsass/tests/mixin-params.scss
CHANGED
@@ -18,3 +18,11 @@ two {
|
|
18 |
both {
|
19 |
@include test('one', 'two');
|
20 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
both {
|
19 |
@include test('one', 'two');
|
20 |
}
|
21 |
+
|
22 |
+
whitespace {
|
23 |
+
@include test ('one', 'two');
|
24 |
+
}
|
25 |
+
|
26 |
+
parens {
|
27 |
+
@include test('one', rgb(255, 255, 255) );
|
28 |
+
}
|
lib/phpsass/tests/mixin-rgba-param.css
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
.box {
|
2 |
+
box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.8); }
|
lib/phpsass/tests/mixin-rgba-param.scss
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin some-mixin($value) {
|
2 |
+
box-shadow: $value;
|
3 |
+
}
|
4 |
+
|
5 |
+
.box {
|
6 |
+
@include some-mixin(5px 5px 20px rgba(0, 0, 0, .8));
|
7 |
+
}
|
lib/phpsass/tests/mixin_in_mixin.css
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
body {
|
2 |
+
width: 50px; }
|
lib/phpsass/tests/mixin_in_mixin.scss
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin mixin1() {
|
2 |
+
@content;
|
3 |
+
}
|
4 |
+
|
5 |
+
@mixin mixin2() {
|
6 |
+
@include mixin1() {
|
7 |
+
@content;
|
8 |
+
}
|
9 |
+
}
|
10 |
+
|
11 |
+
body {
|
12 |
+
@include mixin2() {
|
13 |
+
width: 50px;
|
14 |
+
}
|
15 |
+
}
|
lib/phpsass/tests/mixin_setvar.css
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
body {
|
2 |
+
foo: 4; }
|
lib/phpsass/tests/mixin_setvar.scss
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@mixin layout2($otherFoo) {
|
2 |
+
$foo : $otherFoo;
|
3 |
+
@content;
|
4 |
+
}
|
5 |
+
$foo : 2;
|
6 |
+
body {
|
7 |
+
@include layout2(4) {
|
8 |
+
foo: $foo;
|
9 |
+
}
|
10 |
+
}
|
lib/phpsass/tests/phpSassTest.php
CHANGED
@@ -237,6 +237,10 @@ class PHPSass_TestCase extends PHPUnit_Framework_TestCase {
|
|
237 |
$this->runSassTest('mixins.sass');
|
238 |
}
|
239 |
|
|
|
|
|
|
|
|
|
240 |
public function testMultiline() {
|
241 |
$this->runSassTest('multiline.sass');
|
242 |
}
|
@@ -301,6 +305,30 @@ class PHPSass_TestCase extends PHPUnit_Framework_TestCase {
|
|
301 |
$this->runSassTest('units.sass');
|
302 |
}
|
303 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
public function testWarnImported() {
|
305 |
$this->markTestIncomplete('This test has not been implemented yet.');
|
306 |
//$this->runSassTest('warn_imported.sass');
|
@@ -309,4 +337,12 @@ class PHPSass_TestCase extends PHPUnit_Framework_TestCase {
|
|
309 |
public function testWarn() {
|
310 |
$this->runSassTest('warn.sass');
|
311 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
}
|
237 |
$this->runSassTest('mixins.sass');
|
238 |
}
|
239 |
|
240 |
+
public function testMixinInMixin() {
|
241 |
+
$this->runSassTest('mixin_in_mixin.scss');
|
242 |
+
}
|
243 |
+
|
244 |
public function testMultiline() {
|
245 |
$this->runSassTest('multiline.sass');
|
246 |
}
|
305 |
$this->runSassTest('units.sass');
|
306 |
}
|
307 |
|
308 |
+
public function testListVariable() {
|
309 |
+
$this->runSassTest('list_variable.scss');
|
310 |
+
}
|
311 |
+
|
312 |
+
public function testMediaInFor() {
|
313 |
+
$this->runSassTest('media_in_for.scss');
|
314 |
+
}
|
315 |
+
|
316 |
+
public function testMediaInMixin() {
|
317 |
+
$this->runSassTest('media_in_mixin.scss');
|
318 |
+
}
|
319 |
+
|
320 |
+
public function testMediaInTwoMixins() {
|
321 |
+
$this->runSassTest('media_in_mixin_in_mixin.scss');
|
322 |
+
}
|
323 |
+
|
324 |
+
public function testIfParentheses() {
|
325 |
+
$this->runSassTest('if_parentheses.scss');
|
326 |
+
}
|
327 |
+
|
328 |
+
public function testListEmpty() {
|
329 |
+
$this->runSassTest('list_empty.scss');
|
330 |
+
}
|
331 |
+
|
332 |
public function testWarnImported() {
|
333 |
$this->markTestIncomplete('This test has not been implemented yet.');
|
334 |
//$this->runSassTest('warn_imported.sass');
|
337 |
public function testWarn() {
|
338 |
$this->runSassTest('warn.sass');
|
339 |
}
|
340 |
+
|
341 |
+
public function testColour() {
|
342 |
+
$this->runSassTest('colour-nth.scss');
|
343 |
+
}
|
344 |
+
|
345 |
+
public function testMixinSetvar() {
|
346 |
+
$this->runSassTest('mixin_setvar.scss');
|
347 |
+
}
|
348 |
}
|
lib/phpsass/tree/SassContentNode.php
CHANGED
@@ -48,7 +48,15 @@ class SassContentNode extends SassNode {
|
|
48 |
public function parse($pcontext) {
|
49 |
$return = $this;
|
50 |
$context = new SassContext($pcontext);
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
|
54 |
/**
|
48 |
public function parse($pcontext) {
|
49 |
$return = $this;
|
50 |
$context = new SassContext($pcontext);
|
51 |
+
|
52 |
+
$children = array();
|
53 |
+
foreach ($context->getContent() as $child) {
|
54 |
+
$child->parent = $this->parent;
|
55 |
+
$ctx = new SassContext($pcontext->parent);
|
56 |
+
$ctx->variables = $pcontext->variables;
|
57 |
+
$children = array_merge($children, $child->parse($ctx));
|
58 |
+
}
|
59 |
+
return $children;
|
60 |
}
|
61 |
|
62 |
/**
|
lib/phpsass/tree/SassMediaNode.php
CHANGED
@@ -61,12 +61,23 @@ class SassMediaNode extends SassNode {
|
|
61 |
* @return array An empty array
|
62 |
*/
|
63 |
public function parse($context) {
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
-
$node = new SassRuleNode($
|
67 |
-
$node->root = $
|
68 |
|
69 |
-
$rule = clone $
|
70 |
$rule->root = $node->root;
|
71 |
$rule->children = $this->children;
|
72 |
|
61 |
* @return array An empty array
|
62 |
*/
|
63 |
public function parse($context) {
|
64 |
+
// If we are in a loop, function or mixin then the parent isn't what should
|
65 |
+
// go inside the media node. Walk up the parent tree to find the rule node
|
66 |
+
// to put inside the media node or the root node if the media node should be
|
67 |
+
// at the root.
|
68 |
+
$parent = $this->parent;
|
69 |
+
while (!($parent instanceOf SassRuleNode) && !($parent instanceOf SassRootNode)) {
|
70 |
+
$parent = $parent->parent;
|
71 |
+
}
|
72 |
+
|
73 |
+
// Make a copy of the token before parsing in case we are in a loop and it contains variables
|
74 |
+
$token = clone $this->token;
|
75 |
+
$token->source = SassDirectiveNode::interpolate_nonstrict($token->source, $context);
|
76 |
|
77 |
+
$node = new SassRuleNode($token, $context);
|
78 |
+
$node->root = $parent->root;
|
79 |
|
80 |
+
$rule = clone $parent;
|
81 |
$rule->root = $node->root;
|
82 |
$rule->children = $this->children;
|
83 |
|
lib/phpsass/tree/SassNode.php
CHANGED
@@ -346,4 +346,14 @@ class SassNode {
|
|
346 |
public static function isa($token) {
|
347 |
throw new SassNodeException('Child classes must override this method');
|
348 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
}
|
346 |
public static function isa($token) {
|
347 |
throw new SassNodeException('Child classes must override this method');
|
348 |
}
|
349 |
+
|
350 |
+
public function printDebugTree($i = 0)
|
351 |
+
{
|
352 |
+
echo str_repeat(' ', $i*2).get_class($this)." ".$this->getSource()."\n";
|
353 |
+
$p = $this->getParent();
|
354 |
+
if ($p) echo str_repeat(' ', $i*2)." parent: ".get_class($p)."\n";
|
355 |
+
foreach ($this->getChildren() as $c) {
|
356 |
+
$c->printDebugTree($i+1);
|
357 |
+
}
|
358 |
+
}
|
359 |
}
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Sass</name>
|
4 |
-
<version>1.1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
|
7 |
<channel>community</channel>
|
@@ -12,11 +12,11 @@
|
|
12 |
You just need to create you sass file and add it to your layout like default css file.
|
13 |

|
14 |
This extension will then convert it to css file using phpSass or sass in command line if available</description>
|
15 |
-
<notes>
|
16 |
<authors><author><name>Laurent Clouet</name><user>laurent35240</user><email>laurent35240@gmail.com</email></author></authors>
|
17 |
-
<date>2013-
|
18 |
-
<time>
|
19 |
-
<contents><target name="magecommunity"><dir name="Laurent"><dir name="Sass"><dir name="Helper"><file name="Data.php" hash="9c43132dba73d4b3f37ccfb91f0d5dbe"/></dir><dir name="Model"><dir name="Config"><file name="Style.php" hash="413571124dcf58d950200499a144420d"/></dir><dir name="Design"><file name="Package.php" hash="3c83af4c43fd94359541b7242852ca06"/></dir></dir><dir name="etc"><file name="config.xml" hash="6c8cce3c3c18c8dfe8b7a896375728e5"/><file name="system.xml" hash="a2db1af0d9bae017b46805a80aedb442"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Laurent_Sass.xml" hash="4ad004de851457681610553228973c30"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Laurent_Sass.csv" hash="d9e8c184cbe72e810c7da9154581e1e4"/></dir><dir name="fr_FR"><file name="Laurent_Sass.csv" hash="676b2c597fe0b829fb2c48c1428c295f"/></dir></target><target name="magelib"><dir name="phpsass"><file name="README.md" hash="1448ba255f7f18d69f044b90dbb03481"/><file name="SassException.php" hash="ae7482e7d574a36156671b4575d8c0b9"/><file name="SassFile.php" hash="930a4e6148fbb54df3ffe14c8d971b2a"/><file name="SassParser.php" hash="2820c4ddc7fbfe94aa4630642afd08a7"/><file name="VERSION" hash="e3574197344e94aa46d58c97fe5d7fc8"/><file name="compile-apache.php" hash="7a95ffbe3baf88cd27260645e51d326d"/><file name="composer.json" hash="fb5dad84d70d71d3ad3ea36e06238c21"/><dir name="renderers"><file name="SassCompactRenderer.php" hash="d06cc6830ab426eacb6758b6b7e60db8"/><file name="SassCompressedRenderer.php" hash="ebbb33ce5f0c205fe96f80d452cdc75e"/><file name="SassExpandedRenderer.php" hash="f7d4dfa1a46748a50f212ab1b4c39cf9"/><file name="SassNestedRenderer.php" hash="ae57a3b8da86ae7c8560f71fc7cf69c4"/><file name="SassRenderer.php" hash="2f9059ce82c1d73f3a386ba005457bde"/></dir><dir name="script"><file name="SassScriptFunction.php" hash="d3a694d2329862c89bc26d454e84b711"/><file name="SassScriptFunctions.php" hash="99b290ce879e50b9414de4dd6187c1b0"/><file name="SassScriptLexer.php" hash="1bc50096c5b44ce9b847da4311ba9b51"/><file name="SassScriptOperation.php" hash="22fcd4a2995da8e265ec81d8dde22b90"/><file name="SassScriptParser.php" hash="3d99f5d850767c11be70189ff33bb4e2"/><file name="SassScriptParserExceptions.php" hash="7adc8cdc2f8a343213de10fa9c89a9fb"/><file name="SassScriptVariable.php" hash="49a4b8e3d3d5d358e3361684d6717439"/><dir name="literals"><file name="SassBoolean.php" hash="9848178e8a10415670fab8a7b3bf65bd"/><file name="SassColour.php" hash="e26779ced2b6ce74de884ea0d6d14ecf"/><file name="SassList.php" hash="78340c3a7326306bd703fec94b3aa5d3"/><file name="SassLiteral.php" hash="d4403c33ca7bac07035832e009df5df8"/><file name="SassLiteralExceptions.php" hash="37841fc5e291f83b053b46dff8fabb1d"/><file name="SassNumber.php" hash="912ca47e7c4348c19309ac7f32c8ade1"/><file name="SassString.php" hash="4403e9ba0973e3fd04acf2eba5657496"/></dir></dir><file name="test.css" hash="1655ffa4e91349bbe84d9e9f87b5ae39"/><file name="test.php" hash="eab045b07750bcfbbdc6f899b31d507d"/><dir name="tests"><file name="_imported_charset_ibm866.sass" hash="92b1d97a137e4219bb7796d7751aa847"/><file name="_imported_charset_utf8.sass" hash="51489125c07d0e8f2b055295d40d2549"/><file name="_imported_content.sass" hash="aafd4b9ba2de82e4f977e04934f204d7"/><file name="_partial.sass" hash="529fb954d7e0f6b42c484c869e60fbcf"/><file name="alt.css" hash="d48efc67765cb14b1c532b36b036a064"/><file name="alt.sass" hash="66be58fb872cd96be90fb95425a0aadf"/><file name="alt.scss" hash="ec1074aaba9b4a1ef3933d091c547c63"/><file name="basic.css" hash="22c341ec6e41dba84606032a40ea21c3"/><file name="basic.sass" hash="450faf5ca8e4bacefd01a74509ae135c"/><file name="bork1.sass" hash="0608533ebc4c4a16ddff507f818a709e"/><file name="bork2.sass" hash="036c6e0bcebc36908f9093d1b536ceb1"/><file name="bork3.sass" hash="ad06e4551ead8422ac443ae0cad7994b"/><file name="bork4.sass" hash="0bd4b0aed58208f5abf4418eb9672ef9"/><file name="bork5.sass" hash="e467427a1e928d1d72ef8db10482e262"/><file name="comments.css" hash="0ca95a61ccc49717e465173fb0c2e6c6"/><file name="comments.sass" hash="41bb5d2d2e14e3dd16c8b0296608a00e"/><file name="compact.css" hash="96105d0147b6881651b723eabe303f65"/><file name="compact.sass" hash="d51cfe7db78fe0d81793c7e24cb32e46"/><file name="complex.css" hash="3ffea6ccf80b24cc136bb102b3b41a67"/><file name="complex.sass" hash="b1426382fb915456b5efc0877ae7072d"/><file name="compressed.css" hash="1975f89cc758e39302d317578fdfdedb"/><file name="compressed.sass" hash="d51cfe7db78fe0d81793c7e24cb32e46"/><file name="content.css" hash="0c0892c48d74761fee54e09ccba6e662"/><file name="content.scss" hash="e624a12355435c147c0772f9fd1fe065"/><file name="css3.css" hash="8b2a0df29de7f2158baa3e97e76d91f2"/><file name="css3.scss" hash="819f570dae1e0c8c77007a03a2642158"/><file name="default.css" hash="8296f416c47ae4b66fa6bdf3259b1015"/><file name="default.sass" hash="90e19da7fd8144eeab4d93e5d3adb3bd"/><file name="default_imported.sass" hash="dbea23754dce7bc6c0f7ff69863c05c5"/><file name="each.css" hash="3f84fdb19433d6c2fb0e63c60c06d072"/><file name="each.scss" hash="9661d8222338cfdd6ba8ff771f1c881c"/><file name="expanded.css" hash="88ee2a16c4d88965bcbcf573a2d7c0fa"/><file name="expanded.sass" hash="66dbccbf13e56c23c9b12401ef4edb2d"/><file name="extend.css" hash="c4e9ba7d8748202d2c1351d5b69e3353"/><file name="extend.sass" hash="f34bd79d09364600631ea4889232ad64"/><file name="extend_included.scss" hash="be61d8166e45b16c08e49087985ed1fb"/><file name="extend_placeholders.css" hash="369b772056769bece364221f3c069a8e"/><file name="extend_placeholders.scss" hash="4af5f1ee5888e7cd6cf6c6de45dbfc17"/><file name="filters.css" hash="f37ab5406ea00310513ce2e114cf6f07"/><file name="filters.scss" hash="ea989dd11a1d2a147b72d748b3a9c8c9"/><file name="functions.css" hash="0a039fdec50d756df0ca5430fdc25a0a"/><file name="functions.scss" hash="c9669b01b11b3abe4d82f701180ac2b0"/><file name="holmes.css" hash="07772c914ace61121cba53beb6ad8ca6"/><file name="holmes.sass" hash="e2199b90032b5f14a4dfc5233a915223"/><file name="hsl-functions.css" hash="b90a44e5919a286a8a62040f211b3580"/><file name="hsl-functions.scss" hash="fa055c7d603b5436613ecac898351cae"/><file name="if.css" hash="82391ad41348b41fc209cca5412ed740"/><file name="if.sass" hash="c3a27a421eb7e3d463918e189195b573"/><file name="import.css" hash="3c8abb5481ee0c0002916b49681af2a5"/><file name="import.sass" hash="4d43389aa785393a47d57734724dad2f"/><file name="import_content.css" hash="4b78a566882b2768336f603d54f73fa4"/><file name="import_content.sass" hash="2db9b7a5b9a581e9f44256b6c8dbedd1"/><file name="importee.sass" hash="606678a5d48f7653f6d8e2e327109310"/><file name="interpolation.css" hash="ef048c83424f05a9c0882007ba0f4958"/><file name="interpolation.scss" hash="ce66433664f7f37277a8d4726a39556c"/><file name="introspection.css" hash="0d9f0e64e263388ec0e87eadef41193e"/><file name="introspection.scss" hash="9d57f03789f7a947ce62d6ab0320f886"/><file name="line_numbers.css" hash="802e2285df194c362503f849647a1380"/><file name="line_numbers.sass" hash="4770a812ab401d2bd35b352408623a17"/><file name="list.css" hash="4dd913d85cf2a28cb12d8af0f622ce03"/><file name="list.scss" hash="24f96a097c84d0da64cb3e753e2439ee"/><file name="media.css" hash="409f2c0c468598dc19067376a796828f"/><file name="media.scss" hash="1fadbcd19113ff5855d1137be0693799"/><file name="misc-functions.css" hash="7da15f26cab9b6df784ce1e37e9a30f1"/><file name="misc-functions.scss" hash="b133df9bb8cf346a3e6d3b3612c1de64"/><file name="misc.css" hash="a05a0a6b49ddbfdd803e92c5abe97594"/><file name="misc.scss" hash="36b58121127544b6a8179ae8a0c90a35"/><file name="mixin-content.css" hash="e78896e8791b036b3ad422c01dfab80a"/><file name="mixin-content.sass" hash="d6d50676938cfcc4233af025391e84c4"/><file name="mixin-content.scss" hash="6cbc7c1eaa8978aba39f8bac785cac5e"/><file name="mixin-ja1.css" hash="c551c8ffd0723e1c9e5795708d5dbda5"/><file name="mixin-ja1.sass" hash="90d3f2653ccbccbc00a9009bd31f8071"/><file name="mixin-params.css" hash="d93b61ece294cd6ade82ab84508c3f78"/><file name="mixin-params.scss" hash="c6e703eda1488825f02b46e7c31aa529"/><file name="mixin_bork.sass" hash="259fd0cca5a94583c0d406646b3217eb"/><file name="mixins.css" hash="76ea6005844a4339745b1afe66274c74"/><file name="mixins.sass" hash="55fb1a104a59d6e5411987447af96b55"/><file name="multiline.css" hash="4a3d9bfe75a3b98c52ed95f3d785b079"/><file name="multiline.sass" hash="2f4ff6cfefa20eece2830170e29ea25e"/><file name="nested-media.css" hash="4fc2c8503b918fe9add9fcb230215fe2"/><file name="nested-media.scss" hash="2ee9901f1413f1f0839cfdc9b2ea00af"/><file name="nested.css" hash="26bd112a486652342cbfd55060552576"/><file name="nested.sass" hash="0bdc5d64efc02766544553f968bb82fd"/><file name="nested_bork1.sass" hash="56fa9072b6cc553909bfbd18f571a11d"/><file name="nested_bork2.sass" hash="999ae47bdbc6190972f0f52958870130"/><file name="nested_bork3.sass" hash="ccb998041d90cfe54a39f01afc4c4cc0"/><file name="nested_bork4.sass" hash="eed6453ea8564978c35d60f26a9bbb25"/><file name="nested_bork5.sass" hash="d6de98aee6d80aaecc1aa97311136003"/><file name="nested_import.css" hash="de8bc2a3cd89496c22ff564e65c2b046"/><file name="nested_import.sass" hash="b4493203dae52b5757ca91e17dd42e42"/><file name="nested_media.css" hash="d910a2026928133ce7235e8e1143a425"/><file name="nested_media.scss" hash="6e2dceddb572a0caa6f3959e00d332f4"/><file name="nested_mixin_bork.sass" hash="d9f57da9545e6c9a54d89bebe2f750b9"/><file name="nested_pseudo.css" hash="435b969153bc5030ceb8c251d241d358"/><file name="nested_pseudo.scss" hash="145d425a42541236d8952ea9f5e68ae7"/><file name="number.css" hash="000ca28603c30a49647d53bc5aabed94"/><file name="number.scss" hash="c585efaf419263809a1c91b76d8a0799"/><file name="opacity.css" hash="f54a7fbecddad66df7a6dae52bea4c21"/><file name="opacity.scss" hash="3a20a779e1becfcfaba90758d907c05e"/><file name="other-color.css" hash="45d9e1061d0e71b1c55362c2974b7bdf"/><file name="other-color.scss" hash="e2b8b86016461cbcdae6365ee14b0a5d"/><file name="parent_ref.css" hash="cbecced10861e9c060fa05187f94ee5f"/><file name="parent_ref.sass" hash="b5a3fe6fd3384b0853211e3515427796"/><file name="phpSassTest.php" hash="50a02a22610ec53faf16a899a53287ec"/><file name="phpunit.xml.dist" hash="3f11a2a97eb3d9b8bb48f60915daefda"/><file name="proprietary-selector.css" hash="6da7ab22184ed10ec679065835fc0f5f"/><file name="proprietary-selector.scss" hash="a7fa95fad2ae9aa0b93d8b49101eaf5f"/><file name="rgb-functions.css" hash="24177c2bc7b35526bf06334ea4174e27"/><file name="rgb-functions.scss" hash="7ad824885f782f15738ef67bbf00ae2a"/><file name="scss_import.css" hash="9eeec339e1ce59cbf3f2d29efab1382b"/><file name="scss_import.scss" hash="7ae409e52a06ad89582fe89063cf6bdd"/><file name="scss_importee.css" hash="7cad5194c7f7bb18e50f1ca093597033"/><file name="scss_importee.scss" hash="20c55fb516c7b137eadc6462f74cfa94"/><file name="splats.css" hash="3d11bc1d58858e4967ed498a3d75d008"/><file name="splats.scss" hash="4fab47d7391ff72a2e8d6de13c5e1b80"/><file name="string.css" hash="9f1482fe5b4964e96d24c00765c2503d"/><file name="string.scss" hash="f89f2aad48738bb1fa33a67f733e2e90"/><dir name="subdir"><dir name="nested_subdir"><file name="_nested_partial.sass" hash="24985866e9414ee4ef69621b738833ee"/><file name="nested_subdir.css" hash="759df6872a88c4174a39c32fe7d95a04"/><file name="nested_subdir.sass" hash="9e5e623f6765e28d5bec3bb2d3944eac"/></dir><file name="subdir.css" hash="ddd9dd41c2b72164a7ba634e359c2872"/><file name="subdir.sass" hash="acde24bd965d15ae3f19bf74b1f1c2a8"/></dir><file name="units.css" hash="ebc7390d227439bf2694a3ce29c54a6d"/><file name="units.sass" hash="040de247b027e6368c7edbc57d6e331f"/><file name="warn.css" hash="31c098880201803dc33c8785ecf3de26"/><file name="warn.sass" hash="47c7543a6a374523514669e108249f41"/><file name="warn_imported.sass" hash="2b7455acd686bf2511fce0b710874b01"/></dir><dir name="tree"><file name="SassCommentNode.php" hash="642f1a815d0e7dfc1106a518e8d87b31"/><file name="SassContentNode.php" hash="789f74473f6af06d065ee95ae1d07a22"/><file name="SassContext.php" hash="20760243da06e897f9c21d7ba1672fd4"/><file name="SassDebugNode.php" hash="9acd25b3581aa8d18313f3ac3d9e6e9a"/><file name="SassDirectiveNode.php" hash="039a39f8662e2131b2c0018a80337fde"/><file name="SassEachNode.php" hash="63aa2d6a2ade5a9a966f45edc70fabec"/><file name="SassElseNode.php" hash="6a6426a9d34047ac81eed7add893a179"/><file name="SassExtendNode.php" hash="02252a9b29559a959348fb87bb586d0e"/><file name="SassForNode.php" hash="0322a55c38b6f7fa0d4382f7e3972f4d"/><file name="SassFunctionDefinitionNode.php" hash="97b6440a715ce30922f1d3fafb7cfc3a"/><file name="SassIfNode.php" hash="af42d33a38ed91a5f5181b2458a2fa60"/><file name="SassImportNode.php" hash="a0b2c5b200cff2262e66327458054878"/><file name="SassMediaNode.php" hash="48fb1aacbdcb0817ab5c8ee84ac5dcdf"/><file name="SassMixinDefinitionNode.php" hash="40763d3f0db2bcccd24e26262b2cc244"/><file name="SassMixinNode.php" hash="058bf4b74bcd7e99be00ff7890081881"/><file name="SassNode.php" hash="cc0144e874a2495fd791807e90398419"/><file name="SassNodeExceptions.php" hash="c8acde883ff1f08c56aaea36d3878c69"/><file name="SassPropertyNode.php" hash="388d56d83ab2e05909e8d04d849d786c"/><file name="SassReturnNode.php" hash="c951be13c91fad525b69fc09764e45ee"/><file name="SassRootNode.php" hash="423c2c19d8ad01638b42bf81b19a88fc"/><file name="SassRuleNode.php" hash="0828b0d29742e5e62f006a18961caa48"/><file name="SassVariableNode.php" hash="e4ab9cc2baab946a5b3cfc561baaf5cf"/><file name="SassWarnNode.php" hash="ba0da120f75efd07c57d040adf96a95d"/><file name="SassWhileNode.php" hash="b2c1328c15a28b4e37fed4d998d60dc9"/></dir><file name=".travis.yml" hash="d0ac6ce1cf8465183941fa3ac326a54e"/></dir></target></contents>
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
22 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Sass</name>
|
4 |
+
<version>1.1.3</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
|
7 |
<channel>community</channel>
|
12 |
You just need to create you sass file and add it to your layout like default css file.
|
13 |

|
14 |
This extension will then convert it to css file using phpSass or sass in command line if available</description>
|
15 |
+
<notes>phpsass library updated.</notes>
|
16 |
<authors><author><name>Laurent Clouet</name><user>laurent35240</user><email>laurent35240@gmail.com</email></author></authors>
|
17 |
+
<date>2013-06-08</date>
|
18 |
+
<time>16:32:41</time>
|
19 |
+
<contents><target name="magecommunity"><dir name="Laurent"><dir name="Sass"><dir name="Helper"><file name="Data.php" hash="9c43132dba73d4b3f37ccfb91f0d5dbe"/></dir><dir name="Model"><dir name="Config"><file name="Style.php" hash="413571124dcf58d950200499a144420d"/></dir><dir name="Design"><file name="Package.php" hash="3c83af4c43fd94359541b7242852ca06"/></dir></dir><dir name="etc"><file name="config.xml" hash="1e99b16cb4ca540ae8cd207825f9a269"/><file name="system.xml" hash="a2db1af0d9bae017b46805a80aedb442"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Laurent_Sass.xml" hash="4ad004de851457681610553228973c30"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Laurent_Sass.csv" hash="d9e8c184cbe72e810c7da9154581e1e4"/></dir><dir name="fr_FR"><file name="Laurent_Sass.csv" hash="676b2c597fe0b829fb2c48c1428c295f"/></dir></target><target name="magelib"><dir name="phpsass"><dir name="Extensions"><dir name="Compass"><file name="Compass.php" hash="3bc8aaa37ae61b7bce0dc5fc0f16112e"/><dir name="stylesheets"><file name="_compass.scss" hash="bc769e7b7e94a717f9f4439978543900"/><file name="_lemonade.scss" hash="92e7ec85f14f46cf399a64115707dfe1"/><dir name="compass"><file name="_css3.scss" hash="7688063612bb668fffd22c32b95a2f5c"/><file name="_layout.scss" hash="d7445d578d56b5f0d6482d5df0b28a7b"/><file name="_reset-legacy.scss" hash="322b2e4617c8bf9e6c1ad02bef42ac18"/><file name="_reset.scss" hash="b3d1130413650cdc98b24777bf15afff"/><file name="_support.scss" hash="200db7d3bd7cd633b35c73c7d724a275"/><file name="_typography.scss" hash="73c901f7f8afd26c65dbadedffb87c1a"/><file name="_utilities.scss" hash="adb9de208e608e5bdd25189b4d4790a6"/><dir name="css3"><file name="_appearance.scss" hash="b624212e8f27e260b89e7aa84e598432"/><file name="_background-clip.scss" hash="9eab5a21f351b22e565278af805382b3"/><file name="_background-origin.scss" hash="57e96581316421882118c0d155a4a74f"/><file name="_background-size.scss" hash="674b66cc99bf60400b44f130d0c9d00d"/><file name="_border-radius.scss" hash="02749463ff3b0d0e68e42c76e6c18b66"/><file name="_box-shadow.scss" hash="13cb3d1733c1f7a60c542c44e639af55"/><file name="_box-sizing.scss" hash="5bc8b4f482fb878518d28a18dd453df9"/><file name="_box.scss" hash="ca45bf6d49507d042e5928cf1058909c"/><file name="_columns.scss" hash="b809552667f5876e115881ece27cbc8e"/><file name="_filter.scss" hash="ddc12210cb1d9cdcaad890e9d02601de"/><file name="_font-face.scss" hash="dfc84cb70f83cdbcde9dd3e51789363b"/><file name="_hyphenation.scss" hash="d3cf84dec3da60b4259fe2a9276421b5"/><file name="_images.scss" hash="c4d2fc1c4a1c78a68952de2694939fd2"/><file name="_inline-block.scss" hash="0ddfde10e192213f01dfa122d15bf473"/><file name="_opacity.scss" hash="36a24354a3b62b9b9c82690d1c008963"/><file name="_pie.scss" hash="8ec8261b6cdfef171774d6ad294dbcb7"/><file name="_regions.scss" hash="84db6e13237909b8c05e60c5735f43cc"/><file name="_shared.scss" hash="2a19ef6064fadd0c7bc1213878172ca2"/><file name="_text-shadow.scss" hash="b8dda78c05f393266e002b85885737af"/><file name="_transform-legacy.scss" hash="8d7c4ab98d1a165271ba64e859454c9f"/><file name="_transform.scss" hash="63d14c83ad4ebe0a25fe62b2e9b3a840"/><file name="_transition.scss" hash="ae7b441207aede5e831fd58d13d09103"/><file name="_user-interface.scss" hash="4293d8e1b99b864b6f1a1e341d281fbb"/></dir><dir name="layout"><file name="_grid-background.scss" hash="ebbb0813eeb27f1b102396275cd35e2b"/><file name="_sticky-footer.scss" hash="c10c67d6ebe9ca67709c982bbfed7178"/><file name="_stretching.scss" hash="3f59f9138e25943e4a7def3aa22704e5"/></dir><dir name="reset"><file name="_utilities-legacy.scss" hash="b3a4fd8ac50ace1aa1e607d4d926be45"/><file name="_utilities.scss" hash="c84668ad95fd7c53b77bd015452dd416"/></dir><dir name="typography"><file name="_links.scss" hash="862a5096f3a03597aab1be4e9dc76c64"/><file name="_lists.scss" hash="0e8662119de52a98ac3e601e086bbf53"/><file name="_text.scss" hash="4d3e129baa58fb176ded67c97bbf5b0a"/><file name="_vertical_rhythm.scss" hash="80869e4543f6f4e7ec93e52419d9a6e9"/><dir name="links"><file name="_hover-link.scss" hash="329c8ea4f1460cadf695e8d830c33a80"/><file name="_link-colors.scss" hash="9a4a09d3f9121c10f403a1fa333725dc"/><file name="_unstyled-link.scss" hash="3439d86d2f28c345864a7337c99db069"/></dir><dir name="lists"><file name="_bullets.scss" hash="9d733d179b5dcc005ef07535c16abe2a"/><file name="_horizontal-list.scss" hash="14a893eaa879be04e2ed636ab524b8f7"/><file name="_inline-block-list.scss" hash="f96c6c754473084d0af9d07b6d85cf44"/><file name="_inline-list.scss" hash="898ffa6ae6c13c5df2730172d618dece"/></dir><dir name="text"><file name="_ellipsis.scss" hash="a4765ddc9555f114ff59ae1a582f3caa"/><file name="_force-wrap.scss" hash="def5a5579399a9d35d845d3133338e3c"/><file name="_nowrap.scss" hash="e2cf48586ed5a33ab90a09e346020afc"/><file name="_replacement.scss" hash="e20cb6a854d0a9adb9bd7a879cb257a3"/></dir></dir><dir name="utilities"><file name="_color.scss" hash="4f6252c899a6f25c57ec1b4e9052e55b"/><file name="_general.scss" hash="7a90acc34a01d65ccc38f6dd6225229a"/><file name="_print.scss" hash="eb1d910e8aea90d23b76adf27323abe8"/><file name="_sprites.scss" hash="5f57e9b3f79df0ed70b7321aa55a1a2d"/><file name="_tables.scss" hash="836327d928e513dc737897356d7ba15b"/><dir name="color"><file name="_contrast.scss" hash="735478c5e04e31030afca1e36bf8e398"/></dir><dir name="general"><file name="_clearfix.scss" hash="58fd0d07999140b25bddb4e5c1d49a17"/><file name="_float.scss" hash="5c273f43ca3a3d409c08151ac4f86786"/><file name="_hacks.scss" hash="98ede0f56175f5fb08b3ecd982c27309"/><file name="_min.scss" hash="26a0f6fdad1f7ff71f40ff92eda4f56c"/><file name="_tabs.scss" hash="68b329da9893e34099c7d8ad5cb9c940"/><file name="_tag-cloud.scss" hash="ae7c8c97b4b3142eac7d3c279a5a729c"/></dir><dir name="sprites"><file name="_base.scss" hash="cc4f45b711e8d7fc11aaecd5a54f3744"/><file name="_sprite-img.scss" hash="2deeab732747a9da12f965e133fd795f"/></dir><dir name="tables"><file name="_alternating-rows-and-columns.scss" hash="aa6884db2666742519eb7a4c399767b3"/><file name="_borders.scss" hash="2ac334630de78ae00941857bcbf098d5"/><file name="_scaffolding.scss" hash="4144e427ff1f2a6a9ffdfd3bd641e477"/></dir></dir></dir></dir></dir><file name="ExtensionInterface.php" hash="f02f77afac08968fca0ca8f7cd750456"/><dir name="Own"><file name="Own.php" hash="b8e662147759f28279b575ec753c4eb5"/><dir name="css"><dir name="test"><dir name="test2"><file name="test.scss" hash="b406241e81f4cbd2509a3a7daa50ba6e"/></dir></dir></dir></dir><file name="README.md" hash="0adcca717d8c0113986c95cfa6fa341f"/><dir name="Susy"><file name="Susy.php" hash="5e3068256f5b17c32ac5cc544137ac80"/><dir name="stylesheets"><file name="_susy.scss" hash="e60bb0cc5234c86628f4e0345bd2d48a"/><dir name="susy"><file name="_background.scss" hash="e7125e6d00deae7955c61ef9ce5b7557"/><file name="_functions.scss" hash="33d52f0bb6a333da77ac8c4482a1d862"/><file name="_grid.scss" hash="687c942dcaba8b87dac49db2d734e594"/><file name="_isolation.scss" hash="8e097d991625106869a96101bdc2bde4"/><file name="_margin.scss" hash="cb03e121a2800a47d569b456f247a0e4"/><file name="_media.scss" hash="89c7da945f0159b5e97ce705e8d06ae6"/><file name="_padding.scss" hash="b775d9b8f5465ae985da128e31818342"/><file name="_settings.scss" hash="e9942cc79f66826c45c525705aca4c5b"/><file name="_support.scss" hash="7c51df6bd18e85e6954b46e37b47db48"/><file name="_units.scss" hash="fea6309f28d01dc5cbf3fa8503f6bfae"/></dir></dir></dir><file name="example.php" hash="1b0d47697d1a85bbfb92cff187a51c4d"/><file name="example.scss" hash="1c36b8695ac3d22afa9caa72a5e0a96f"/><file name="theme.scss" hash="7210d729d56c93a23b91d4d280570e17"/></dir><file name="README.md" hash="f680aedff15c35475551bf0e0652be57"/><file name="SassException.php" hash="ae7482e7d574a36156671b4575d8c0b9"/><file name="SassFile.php" hash="61671ca2d00c771a031372243b9ad7b1"/><file name="SassParser.php" hash="de29cac49e715943a4b6a9590a4600ef"/><file name="VERSION" hash="989e91af7fc25340430a23b0cafe3f1d"/><file name="compile-apache.php" hash="7a95ffbe3baf88cd27260645e51d326d"/><file name="composer.json" hash="fb5dad84d70d71d3ad3ea36e06238c21"/><dir name="renderers"><file name="SassCompactRenderer.php" hash="d06cc6830ab426eacb6758b6b7e60db8"/><file name="SassCompressedRenderer.php" hash="ebbb33ce5f0c205fe96f80d452cdc75e"/><file name="SassExpandedRenderer.php" hash="f7d4dfa1a46748a50f212ab1b4c39cf9"/><file name="SassNestedRenderer.php" hash="ae57a3b8da86ae7c8560f71fc7cf69c4"/><file name="SassRenderer.php" hash="2f9059ce82c1d73f3a386ba005457bde"/></dir><dir name="script"><file name="SassScriptFunction.php" hash="8097a8a37e561a1f119f623dfdf73610"/><file name="SassScriptFunctions.php" hash="99b290ce879e50b9414de4dd6187c1b0"/><file name="SassScriptLexer.php" hash="8e5a0180f4b24e5008223816a5855fd2"/><file name="SassScriptOperation.php" hash="0ed86bf58330c6d407d7fe73a3d72ee8"/><file name="SassScriptParser.php" hash="3d99f5d850767c11be70189ff33bb4e2"/><file name="SassScriptParserExceptions.php" hash="7adc8cdc2f8a343213de10fa9c89a9fb"/><file name="SassScriptVariable.php" hash="49a4b8e3d3d5d358e3361684d6717439"/><dir name="literals"><file name="SassBoolean.php" hash="b456eafe96ef49e55e4256787539a37a"/><file name="SassColour.php" hash="b8ff0c00e202a25c411b653de7df8db4"/><file name="SassList.php" hash="19f4efc813eb12b557f306d3a427ec74"/><file name="SassLiteral.php" hash="d4403c33ca7bac07035832e009df5df8"/><file name="SassLiteralExceptions.php" hash="37841fc5e291f83b053b46dff8fabb1d"/><file name="SassNumber.php" hash="c3881b5a953b2207b15dc446867f6fba"/><file name="SassString.php" hash="4403e9ba0973e3fd04acf2eba5657496"/></dir></dir><file name="test.css" hash="1655ffa4e91349bbe84d9e9f87b5ae39"/><file name="test.php" hash="811210b59e0b2b0e243a53c7328f9d26"/><dir name="tests"><file name="_imported_charset_ibm866.sass" hash="92b1d97a137e4219bb7796d7751aa847"/><file name="_imported_charset_utf8.sass" hash="51489125c07d0e8f2b055295d40d2549"/><file name="_imported_content.sass" hash="aafd4b9ba2de82e4f977e04934f204d7"/><file name="_partial.sass" hash="529fb954d7e0f6b42c484c869e60fbcf"/><file name="alt.css" hash="d33475aa3b976be630eb419996866ee6"/><file name="alt.sass" hash="66be58fb872cd96be90fb95425a0aadf"/><file name="alt.scss" hash="ec1074aaba9b4a1ef3933d091c547c63"/><file name="basic.css" hash="22c341ec6e41dba84606032a40ea21c3"/><file name="basic.sass" hash="450faf5ca8e4bacefd01a74509ae135c"/><file name="bork1.sass" hash="0608533ebc4c4a16ddff507f818a709e"/><file name="bork2.sass" hash="036c6e0bcebc36908f9093d1b536ceb1"/><file name="bork3.sass" hash="ad06e4551ead8422ac443ae0cad7994b"/><file name="bork4.sass" hash="0bd4b0aed58208f5abf4418eb9672ef9"/><file name="bork5.sass" hash="e467427a1e928d1d72ef8db10482e262"/><file name="colour-nth.css" hash="8e457058415890dd4aac86f75a6e39e4"/><file name="colour-nth.scss" hash="3de860789a01fa9b5cf2d9a74a85dba7"/><file name="comments.css" hash="0ca95a61ccc49717e465173fb0c2e6c6"/><file name="comments.sass" hash="41bb5d2d2e14e3dd16c8b0296608a00e"/><file name="compact.css" hash="96105d0147b6881651b723eabe303f65"/><file name="compact.sass" hash="d51cfe7db78fe0d81793c7e24cb32e46"/><file name="complex.css" hash="3ffea6ccf80b24cc136bb102b3b41a67"/><file name="complex.sass" hash="b1426382fb915456b5efc0877ae7072d"/><file name="compressed.css" hash="1975f89cc758e39302d317578fdfdedb"/><file name="compressed.sass" hash="d51cfe7db78fe0d81793c7e24cb32e46"/><file name="content.css" hash="0c0892c48d74761fee54e09ccba6e662"/><file name="content.scss" hash="e624a12355435c147c0772f9fd1fe065"/><file name="css3.css" hash="8b2a0df29de7f2158baa3e97e76d91f2"/><file name="css3.scss" hash="819f570dae1e0c8c77007a03a2642158"/><file name="default.css" hash="8296f416c47ae4b66fa6bdf3259b1015"/><file name="default.sass" hash="90e19da7fd8144eeab4d93e5d3adb3bd"/><file name="default_imported.sass" hash="dbea23754dce7bc6c0f7ff69863c05c5"/><file name="each.css" hash="3f84fdb19433d6c2fb0e63c60c06d072"/><file name="each.scss" hash="9661d8222338cfdd6ba8ff771f1c881c"/><file name="expanded.css" hash="88ee2a16c4d88965bcbcf573a2d7c0fa"/><file name="expanded.sass" hash="66dbccbf13e56c23c9b12401ef4edb2d"/><file name="extend.css" hash="c4e9ba7d8748202d2c1351d5b69e3353"/><file name="extend.sass" hash="f34bd79d09364600631ea4889232ad64"/><file name="extend_included.css" hash="3c3e70c49794a7ff76aeb9a3402cf7bc"/><file name="extend_included.scss" hash="be61d8166e45b16c08e49087985ed1fb"/><file name="extend_placeholders.css" hash="369b772056769bece364221f3c069a8e"/><file name="extend_placeholders.scss" hash="4af5f1ee5888e7cd6cf6c6de45dbfc17"/><file name="filters.css" hash="f37ab5406ea00310513ce2e114cf6f07"/><file name="filters.scss" hash="ea989dd11a1d2a147b72d748b3a9c8c9"/><file name="functions.css" hash="a9da72a84bba8729e82dac08190a79d2"/><file name="functions.scss" hash="c9669b01b11b3abe4d82f701180ac2b0"/><file name="holmes.css" hash="07772c914ace61121cba53beb6ad8ca6"/><file name="holmes.sass" hash="e2199b90032b5f14a4dfc5233a915223"/><file name="hsl-functions.css" hash="b90a44e5919a286a8a62040f211b3580"/><file name="hsl-functions.scss" hash="fa055c7d603b5436613ecac898351cae"/><file name="if.css" hash="82391ad41348b41fc209cca5412ed740"/><file name="if.sass" hash="c3a27a421eb7e3d463918e189195b573"/><file name="if_parentheses.css" hash="7f5bc7f906a7cd678c9598c2e5650833"/><file name="if_parentheses.scss" hash="5140ac11b185061d3c5f7dc238e8ee86"/><file name="import.css" hash="3c8abb5481ee0c0002916b49681af2a5"/><file name="import.sass" hash="4d43389aa785393a47d57734724dad2f"/><file name="import_content.css" hash="4b78a566882b2768336f603d54f73fa4"/><file name="import_content.sass" hash="2db9b7a5b9a581e9f44256b6c8dbedd1"/><file name="importee.sass" hash="606678a5d48f7653f6d8e2e327109310"/><file name="interpolation.css" hash="ef048c83424f05a9c0882007ba0f4958"/><file name="interpolation.scss" hash="ce66433664f7f37277a8d4726a39556c"/><file name="introspection.css" hash="0d9f0e64e263388ec0e87eadef41193e"/><file name="introspection.scss" hash="9d57f03789f7a947ce62d6ab0320f886"/><file name="line_numbers.css" hash="802e2285df194c362503f849647a1380"/><file name="line_numbers.sass" hash="4770a812ab401d2bd35b352408623a17"/><file name="list.css" hash="4dd913d85cf2a28cb12d8af0f622ce03"/><file name="list.scss" hash="24f96a097c84d0da64cb3e753e2439ee"/><file name="list_empty.css" hash="c2fae66e0a28506f1733ac469a1c95ec"/><file name="list_empty.scss" hash="25d245b57859102ba6b36c12e89f3e7e"/><file name="list_variable.css" hash="d10df2dc91b4221bbfe4c3464bd34d5b"/><file name="list_variable.scss" hash="17a541748f730b9da21275a75852cf4e"/><file name="media.css" hash="409f2c0c468598dc19067376a796828f"/><file name="media.scss" hash="1fadbcd19113ff5855d1137be0693799"/><file name="media_in_for.css" hash="fd8292f715cc999ba7b64f8224c40a8a"/><file name="media_in_for.scss" hash="ad7702a6b95e121da52b93d69d782683"/><file name="media_in_mixin.css" hash="8c2bd3f961ab4336c55a5249f78e6bf4"/><file name="media_in_mixin.scss" hash="084e6f0edd3da537020a43d7ce8dbac4"/><file name="media_in_mixin_in_mixin.css" hash="8adc138ca27531ac5693c7e2274fdf9f"/><file name="media_in_mixin_in_mixin.scss" hash="049301e720820f076ceec6cc08037ede"/><file name="misc-functions.css" hash="7da15f26cab9b6df784ce1e37e9a30f1"/><file name="misc-functions.scss" hash="b133df9bb8cf346a3e6d3b3612c1de64"/><file name="misc.css" hash="a05a0a6b49ddbfdd803e92c5abe97594"/><file name="misc.scss" hash="36b58121127544b6a8179ae8a0c90a35"/><file name="mixin-content.css" hash="1b2490ce75d60d2b0c495a5db87a9f49"/><file name="mixin-content.sass" hash="41fa6bbd93b8d0b4ea8826fdd5585381"/><file name="mixin-content.scss" hash="f3252f583aac7dd5bbb7017fbd5654df"/><file name="mixin-ja1.css" hash="c551c8ffd0723e1c9e5795708d5dbda5"/><file name="mixin-ja1.sass" hash="90d3f2653ccbccbc00a9009bd31f8071"/><file name="mixin-list-params.css" hash="47064a4d242dfec9debba53326e529f3"/><file name="mixin-list-params.scss" hash="34478559346aec44c56c867a6b898af3"/><file name="mixin-params.css" hash="1a1f609e66c1dbe24383fe6855e95526"/><file name="mixin-params.scss" hash="a874ab4cacc02475acc827c956275cfe"/><file name="mixin-rgba-param.css" hash="bc5dc6caac3c74b37b82b1ed3cc2e553"/><file name="mixin-rgba-param.scss" hash="961219de858ecf7c17f2f7df24cf68cb"/><file name="mixin_bork.sass" hash="259fd0cca5a94583c0d406646b3217eb"/><file name="mixin_in_mixin.css" hash="46690de92ec525f39d5568bc2e46ee54"/><file name="mixin_in_mixin.scss" hash="0a6bef40d3215b63bb9f972896784a89"/><file name="mixin_setvar.css" hash="757520a01eca279c109d494d7fb4cd02"/><file name="mixin_setvar.scss" hash="12cd65c514056b3c0df1e4e92640a808"/><file name="mixins.css" hash="76ea6005844a4339745b1afe66274c74"/><file name="mixins.sass" hash="55fb1a104a59d6e5411987447af96b55"/><file name="multiline.css" hash="4a3d9bfe75a3b98c52ed95f3d785b079"/><file name="multiline.sass" hash="2f4ff6cfefa20eece2830170e29ea25e"/><file name="nested-media.css" hash="4fc2c8503b918fe9add9fcb230215fe2"/><file name="nested-media.scss" hash="2ee9901f1413f1f0839cfdc9b2ea00af"/><file name="nested.css" hash="26bd112a486652342cbfd55060552576"/><file name="nested.sass" hash="0bdc5d64efc02766544553f968bb82fd"/><file name="nested_bork1.sass" hash="56fa9072b6cc553909bfbd18f571a11d"/><file name="nested_bork2.sass" hash="999ae47bdbc6190972f0f52958870130"/><file name="nested_bork3.sass" hash="ccb998041d90cfe54a39f01afc4c4cc0"/><file name="nested_bork4.sass" hash="eed6453ea8564978c35d60f26a9bbb25"/><file name="nested_bork5.sass" hash="d6de98aee6d80aaecc1aa97311136003"/><file name="nested_import.css" hash="de8bc2a3cd89496c22ff564e65c2b046"/><file name="nested_import.sass" hash="b4493203dae52b5757ca91e17dd42e42"/><file name="nested_media.css" hash="d910a2026928133ce7235e8e1143a425"/><file name="nested_media.scss" hash="6e2dceddb572a0caa6f3959e00d332f4"/><file name="nested_mixin_bork.sass" hash="d9f57da9545e6c9a54d89bebe2f750b9"/><file name="nested_pseudo.css" hash="435b969153bc5030ceb8c251d241d358"/><file name="nested_pseudo.scss" hash="145d425a42541236d8952ea9f5e68ae7"/><file name="number.css" hash="000ca28603c30a49647d53bc5aabed94"/><file name="number.scss" hash="c585efaf419263809a1c91b76d8a0799"/><file name="opacity.css" hash="f54a7fbecddad66df7a6dae52bea4c21"/><file name="opacity.scss" hash="3a20a779e1becfcfaba90758d907c05e"/><file name="other-color.css" hash="45d9e1061d0e71b1c55362c2974b7bdf"/><file name="other-color.scss" hash="e2b8b86016461cbcdae6365ee14b0a5d"/><file name="parent_ref.css" hash="cbecced10861e9c060fa05187f94ee5f"/><file name="parent_ref.sass" hash="b5a3fe6fd3384b0853211e3515427796"/><file name="phpSassTest.php" hash="ce7206b374b0d65762851a6e3423658d"/><file name="phpunit.xml.dist" hash="3f11a2a97eb3d9b8bb48f60915daefda"/><file name="proprietary-selector.css" hash="6da7ab22184ed10ec679065835fc0f5f"/><file name="proprietary-selector.scss" hash="a7fa95fad2ae9aa0b93d8b49101eaf5f"/><file name="rgb-functions.css" hash="24177c2bc7b35526bf06334ea4174e27"/><file name="rgb-functions.scss" hash="7ad824885f782f15738ef67bbf00ae2a"/><file name="scss_import.css" hash="9eeec339e1ce59cbf3f2d29efab1382b"/><file name="scss_import.scss" hash="7ae409e52a06ad89582fe89063cf6bdd"/><file name="scss_importee.css" hash="7cad5194c7f7bb18e50f1ca093597033"/><file name="scss_importee.scss" hash="20c55fb516c7b137eadc6462f74cfa94"/><file name="splats.css" hash="3d11bc1d58858e4967ed498a3d75d008"/><file name="splats.scss" hash="4fab47d7391ff72a2e8d6de13c5e1b80"/><file name="string.css" hash="9f1482fe5b4964e96d24c00765c2503d"/><file name="string.scss" hash="f89f2aad48738bb1fa33a67f733e2e90"/><dir name="subdir"><dir name="nested_subdir"><file name="_nested_partial.sass" hash="24985866e9414ee4ef69621b738833ee"/><file name="nested_subdir.css" hash="759df6872a88c4174a39c32fe7d95a04"/><file name="nested_subdir.sass" hash="9e5e623f6765e28d5bec3bb2d3944eac"/></dir><file name="subdir.css" hash="ddd9dd41c2b72164a7ba634e359c2872"/><file name="subdir.sass" hash="acde24bd965d15ae3f19bf74b1f1c2a8"/></dir><file name="units.css" hash="ebc7390d227439bf2694a3ce29c54a6d"/><file name="units.sass" hash="040de247b027e6368c7edbc57d6e331f"/><file name="warn.css" hash="31c098880201803dc33c8785ecf3de26"/><file name="warn.sass" hash="47c7543a6a374523514669e108249f41"/><file name="warn_imported.sass" hash="2b7455acd686bf2511fce0b710874b01"/></dir><dir name="tree"><file name="SassCommentNode.php" hash="642f1a815d0e7dfc1106a518e8d87b31"/><file name="SassContentNode.php" hash="9e89188216cfe645bc0550e40027051b"/><file name="SassContext.php" hash="20760243da06e897f9c21d7ba1672fd4"/><file name="SassDebugNode.php" hash="9acd25b3581aa8d18313f3ac3d9e6e9a"/><file name="SassDirectiveNode.php" hash="039a39f8662e2131b2c0018a80337fde"/><file name="SassEachNode.php" hash="63aa2d6a2ade5a9a966f45edc70fabec"/><file name="SassElseNode.php" hash="6a6426a9d34047ac81eed7add893a179"/><file name="SassExtendNode.php" hash="02252a9b29559a959348fb87bb586d0e"/><file name="SassForNode.php" hash="0322a55c38b6f7fa0d4382f7e3972f4d"/><file name="SassFunctionDefinitionNode.php" hash="97b6440a715ce30922f1d3fafb7cfc3a"/><file name="SassIfNode.php" hash="af42d33a38ed91a5f5181b2458a2fa60"/><file name="SassImportNode.php" hash="a0b2c5b200cff2262e66327458054878"/><file name="SassMediaNode.php" hash="824aedfdb70bb658cbdb19e7e8fec1e1"/><file name="SassMixinDefinitionNode.php" hash="40763d3f0db2bcccd24e26262b2cc244"/><file name="SassMixinNode.php" hash="058bf4b74bcd7e99be00ff7890081881"/><file name="SassNode.php" hash="89f8a631e0381b736770c5b0da126f41"/><file name="SassNodeExceptions.php" hash="c8acde883ff1f08c56aaea36d3878c69"/><file name="SassPropertyNode.php" hash="388d56d83ab2e05909e8d04d849d786c"/><file name="SassReturnNode.php" hash="c951be13c91fad525b69fc09764e45ee"/><file name="SassRootNode.php" hash="423c2c19d8ad01638b42bf81b19a88fc"/><file name="SassRuleNode.php" hash="0828b0d29742e5e62f006a18961caa48"/><file name="SassVariableNode.php" hash="e4ab9cc2baab946a5b3cfc561baaf5cf"/><file name="SassWarnNode.php" hash="ba0da120f75efd07c57d040adf96a95d"/><file name="SassWhileNode.php" hash="b2c1328c15a28b4e37fed4d998d60dc9"/></dir><file name=".travis.yml" hash="d0ac6ce1cf8465183941fa3ac326a54e"/></dir></target></contents>
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
22 |
</package>
|