Merge "Add qtip job to pod zte-virtual6"
[releng.git] / utils / test / reporting / 3rd_party / sass / libs / _skel.scss
1 // skel.scss v3.0.1 | (c) skel.io | MIT licensed */\r
2 \r
3 // Vars.\r
4 \r
5         /// Breakpoints.\r
6         /// @var {list}\r
7         $breakpoints: () !global;\r
8 \r
9         /// Vendor prefixes.\r
10         /// @var {list}\r
11         $vendor-prefixes: (\r
12                 '-moz-',\r
13                 '-webkit-',\r
14                 '-ms-',\r
15                 ''\r
16         );\r
17 \r
18         /// Properties that should be vendorized.\r
19         /// @var {list}\r
20         $vendor-properties: (\r
21                 'align-content',\r
22                 'align-items',\r
23                 'align-self',\r
24                 'animation',\r
25                 'animation-delay',\r
26                 'animation-direction',\r
27                 'animation-duration',\r
28                 'animation-fill-mode',\r
29                 'animation-iteration-count',\r
30                 'animation-name',\r
31                 'animation-play-state',\r
32                 'animation-timing-function',\r
33                 'appearance',\r
34                 'backface-visibility',\r
35                 'box-sizing',\r
36                 'filter',\r
37                 'flex',\r
38                 'flex-basis',\r
39                 'flex-direction',\r
40                 'flex-flow',\r
41                 'flex-grow',\r
42                 'flex-shrink',\r
43                 'flex-wrap',\r
44                 'justify-content',\r
45                 'order',\r
46                 'perspective',\r
47                 'pointer-events',\r
48                 'transform',\r
49                 'transform-origin',\r
50                 'transform-style',\r
51                 'transition',\r
52                 'transition-delay',\r
53                 'transition-duration',\r
54                 'transition-property',\r
55                 'transition-timing-function',\r
56                 'user-select'\r
57         );\r
58 \r
59         /// Values that should be vendorized.\r
60         /// @var {list}\r
61         $vendor-values: (\r
62                 'filter',\r
63                 'flex',\r
64                 'linear-gradient',\r
65                 'radial-gradient',\r
66                 'transform'\r
67         );\r
68 \r
69 // Functions.\r
70 \r
71         /// Removes a specific item from a list.\r
72         /// @author Hugo Giraudel\r
73         /// @param {list} $list List.\r
74         /// @param {integer} $index Index.\r
75         /// @return {list} Updated list.\r
76         @function remove-nth($list, $index) {\r
77 \r
78                 $result: null;\r
79 \r
80                 @if type-of($index) != number {\r
81                         @warn "$index: #{quote($index)} is not a number for `remove-nth`.";\r
82                 }\r
83                 @else if $index == 0 {\r
84                         @warn "List index 0 must be a non-zero integer for `remove-nth`.";\r
85                 }\r
86                 @else if abs($index) > length($list) {\r
87                         @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";\r
88                 }\r
89                 @else {\r
90 \r
91                         $result: ();\r
92                         $index: if($index < 0, length($list) + $index + 1, $index);\r
93 \r
94                         @for $i from 1 through length($list) {\r
95 \r
96                                 @if $i != $index {\r
97                                         $result: append($result, nth($list, $i));\r
98                                 }\r
99 \r
100                         }\r
101 \r
102                 }\r
103 \r
104                 @return $result;\r
105 \r
106         }\r
107 \r
108         /// Replaces a substring within another string.\r
109         /// @author Hugo Giraudel\r
110         /// @param {string} $string String.\r
111         /// @param {string} $search Substring.\r
112         /// @param {string} $replace Replacement.\r
113         /// @return {string} Updated string.\r
114         @function str-replace($string, $search, $replace: '') {\r
115 \r
116                 $index: str-index($string, $search);\r
117 \r
118                 @if $index {\r
119                         @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\r
120                 }\r
121 \r
122                 @return $string;\r
123 \r
124         }\r
125 \r
126         /// Replaces a substring within each string in a list.\r
127         /// @param {list} $strings List of strings.\r
128         /// @param {string} $search Substring.\r
129         /// @param {string} $replace Replacement.\r
130         /// @return {list} Updated list of strings.\r
131         @function str-replace-all($strings, $search, $replace: '') {\r
132 \r
133                 @each $string in $strings {\r
134                         $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));\r
135                 }\r
136 \r
137                 @return $strings;\r
138 \r
139         }\r
140 \r
141         /// Gets a value from a map.\r
142         /// @author Hugo Giraudel\r
143         /// @param {map} $map Map.\r
144         /// @param {string} $keys Key(s).\r
145         /// @return {string} Value.\r
146         @function val($map, $keys...) {\r
147 \r
148                 @if nth($keys, 1) == null {\r
149                         $keys: remove-nth($keys, 1);\r
150                 }\r
151 \r
152                 @each $key in $keys {\r
153                         $map: map-get($map, $key);\r
154                 }\r
155 \r
156                 @return $map;\r
157 \r
158         }\r
159 \r
160 // Mixins.\r
161 \r
162         /// Sets the global box model.\r
163         /// @param {string} $model Model (default is content).\r
164         @mixin boxModel($model: 'content') {\r
165 \r
166                 $x: $model + '-box';\r
167 \r
168                 *, *:before, *:after {\r
169                         -moz-box-sizing: #{$x};\r
170                         -webkit-box-sizing: #{$x};\r
171                         box-sizing: #{$x};\r
172                 }\r
173 \r
174         }\r
175 \r
176         /// Wraps @content in a @media block using a given breakpoint.\r
177         /// @param {string} $breakpoint Breakpoint.\r
178         /// @param {map} $queries Additional queries.\r
179         @mixin breakpoint($breakpoint: null, $queries: null) {\r
180 \r
181                 $query: 'screen';\r
182 \r
183                 // Breakpoint.\r
184                         @if $breakpoint and map-has-key($breakpoints, $breakpoint) {\r
185                                 $query: $query + ' and ' + map-get($breakpoints, $breakpoint);\r
186                         }\r
187 \r
188                 // Queries.\r
189                         @if $queries {\r
190                                 @each $k, $v in $queries {\r
191                                         $query: $query + ' and (' + $k + ':' + $v + ')';\r
192                                 }\r
193                         }\r
194 \r
195         @media #{$query} {\r
196             @content;\r
197         }\r
198 \r
199         }\r
200 \r
201         /// Wraps @content in a @media block targeting a specific orientation.\r
202         /// @param {string} $orientation Orientation.\r
203         @mixin orientation($orientation) {\r
204                 @media screen and (orientation: #{$orientation}) {\r
205                         @content;\r
206                 }\r
207         }\r
208 \r
209         /// Utility mixin for containers.\r
210         /// @param {mixed} $width Width.\r
211         @mixin containers($width) {\r
212 \r
213                 // Locked?\r
214                         $lock: false;\r
215 \r
216                         @if length($width) == 2 {\r
217                                 $width: nth($width, 1);\r
218                                 $lock: true;\r
219                         }\r
220 \r
221                 // Modifiers.\r
222                         .container.\31 25\25            { width: 100%; max-width: $width * 1.25; min-width: $width; }\r
223                         .container.\37 5\25                     { width: $width * 0.75; }\r
224                         .container.\35 0\25                     { width: $width * 0.5; }\r
225                         .container.\32 5\25                     { width: $width * 0.25; }\r
226 \r
227                 // Main class.\r
228                         .container {\r
229                                 @if $lock {\r
230                                         width: $width !important;\r
231                                 }\r
232                                 @else {\r
233                                         width: $width;\r
234                                 }\r
235                         }\r
236 \r
237         }\r
238 \r
239         /// Utility mixin for grid.\r
240         /// @param {list} $gutters Column and row gutters (default is 40px).\r
241         /// @param {string} $breakpointName Optional breakpoint name.\r
242         @mixin grid($gutters: 40px, $breakpointName: null) {\r
243 \r
244                 // Gutters.\r
245                         @include grid-gutters($gutters);\r
246                         @include grid-gutters($gutters, \32 00\25, 2);\r
247                         @include grid-gutters($gutters, \31 50\25, 1.5);\r
248                         @include grid-gutters($gutters, \35 0\25, 0.5);\r
249                         @include grid-gutters($gutters, \32 5\25, 0.25);\r
250 \r
251                 // Cells.\r
252                         $x: '';\r
253 \r
254                         @if $breakpointName {\r
255                                 $x: '\\28' + $breakpointName + '\\29';\r
256                         }\r
257 \r
258                         .\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; }\r
259                         .\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; }\r
260                         .\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; }\r
261                         .\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; }\r
262                         .\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; }\r
263                         .\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; }\r
264                         .\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; }\r
265                         .\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; }\r
266                         .\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; }\r
267                         .\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; }\r
268                         .\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; }\r
269                         .\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; }\r
270 \r
271                         .\31 2u\24#{$x} + *,\r
272                         .\31 1u\24#{$x} + *,\r
273                         .\31 0u\24#{$x} + *,\r
274                         .\39 u\24#{$x} + *,\r
275                         .\38 u\24#{$x} + *,\r
276                         .\37 u\24#{$x} + *,\r
277                         .\36 u\24#{$x} + *,\r
278                         .\35 u\24#{$x} + *,\r
279                         .\34 u\24#{$x} + *,\r
280                         .\33 u\24#{$x} + *,\r
281                         .\32 u\24#{$x} + *,\r
282                         .\31 u\24#{$x} + * {\r
283                                 clear: left;\r
284                         }\r
285 \r
286                         .\-11u#{$x} { margin-left: 91.6666666667% }\r
287                         .\-10u#{$x} { margin-left: 83.3333333333% }\r
288                         .\-9u#{$x} { margin-left: 75% }\r
289                         .\-8u#{$x} { margin-left: 66.6666666667% }\r
290                         .\-7u#{$x} { margin-left: 58.3333333333% }\r
291                         .\-6u#{$x} { margin-left: 50% }\r
292                         .\-5u#{$x} { margin-left: 41.6666666667% }\r
293                         .\-4u#{$x} { margin-left: 33.3333333333% }\r
294                         .\-3u#{$x} { margin-left: 25% }\r
295                         .\-2u#{$x} { margin-left: 16.6666666667% }\r
296                         .\-1u#{$x} { margin-left: 8.3333333333% }\r
297 \r
298         }\r
299 \r
300         /// Utility mixin for grid.\r
301         /// @param {list} $gutters Gutters.\r
302         /// @param {string} $class Optional class name.\r
303         /// @param {integer} $multiplier Multiplier (default is 1).\r
304         @mixin grid-gutters($gutters, $class: null, $multiplier: 1) {\r
305 \r
306                 // Expand gutters if it's not a list.\r
307                         @if length($gutters) == 1 {\r
308                                 $gutters: ($gutters, 0);\r
309                         }\r
310 \r
311                 // Get column and row gutter values.\r
312                         $c: nth($gutters, 1);\r
313                         $r: nth($gutters, 2);\r
314 \r
315                 // Get class (if provided).\r
316                         $x: '';\r
317 \r
318                         @if $class {\r
319                                 $x: '.' + $class;\r
320                         }\r
321 \r
322                 // Default.\r
323                         .row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); }\r
324                         .row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }\r
325 \r
326                 // Uniform.\r
327                         .row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); }\r
328                         .row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }\r
329 \r
330         }\r
331 \r
332         /// Wraps @content in vendorized keyframe blocks.\r
333         /// @param {string} $name Name.\r
334         @mixin keyframes($name) {\r
335 \r
336                 @-moz-keyframes #{$name} { @content; }\r
337                 @-webkit-keyframes #{$name} { @content; }\r
338                 @-ms-keyframes #{$name} { @content; }\r
339                 @keyframes #{$name} { @content; }\r
340 \r
341         }\r
342 \r
343         ///\r
344         /// Sets breakpoints.\r
345         /// @param {map} $x Breakpoints.\r
346         ///\r
347         @mixin skel-breakpoints($x: ()) {\r
348                 $breakpoints: $x !global;\r
349         }\r
350 \r
351         ///\r
352         /// Initializes layout module.\r
353         /// @param {map} config Config.\r
354         ///\r
355         @mixin skel-layout($config: ()) {\r
356 \r
357                 // Config.\r
358                         $configPerBreakpoint: ();\r
359 \r
360                         $z: map-get($config, 'breakpoints');\r
361 \r
362                         @if $z {\r
363                                 $configPerBreakpoint: $z;\r
364                         }\r
365 \r
366                 // Reset.\r
367                         $x: map-get($config, 'reset');\r
368 \r
369                         @if $x {\r
370 \r
371                                 /* Reset */\r
372 \r
373                                 @include reset($x);\r
374 \r
375                         }\r
376 \r
377                 // Box model.\r
378                         $x: map-get($config, 'boxModel');\r
379 \r
380                         @if $x {\r
381 \r
382                                 /* Box Model */\r
383 \r
384                                 @include boxModel($x);\r
385 \r
386                         }\r
387 \r
388                 // Containers.\r
389                         $containers: map-get($config, 'containers');\r
390 \r
391                         @if $containers {\r
392 \r
393                                 /* Containers */\r
394 \r
395                                 .container {\r
396                                         margin-left: auto;\r
397                                         margin-right: auto;\r
398                                 }\r
399 \r
400                                 // Use default is $containers is just "true".\r
401                                         @if $containers == true {\r
402                                                 $containers: 960px;\r
403                                         }\r
404 \r
405                                 // Apply base.\r
406                                         @include containers($containers);\r
407 \r
408                                 // Apply per-breakpoint.\r
409                                         @each $name in map-keys($breakpoints) {\r
410 \r
411                                                 // Get/use breakpoint setting if it exists.\r
412                                                         $x: map-get($configPerBreakpoint, $name);\r
413 \r
414                                                         // Per-breakpoint config exists?\r
415                                                                 @if $x {\r
416                                                                         $y: map-get($x, 'containers');\r
417 \r
418                                                                         // Setting exists? Use it.\r
419                                                                                 @if $y {\r
420                                                                                         $containers: $y;\r
421                                                                                 }\r
422 \r
423                                                                 }\r
424 \r
425                                                 // Create @media block.\r
426                                                         @media screen and #{map-get($breakpoints, $name)} {\r
427                                                                 @include containers($containers);\r
428                                                         }\r
429 \r
430                                         }\r
431 \r
432                         }\r
433 \r
434                 // Grid.\r
435                         $grid: map-get($config, 'grid');\r
436 \r
437                         @if $grid {\r
438 \r
439                                 /* Grid */\r
440 \r
441                                 // Use defaults if $grid is just "true".\r
442                                         @if $grid == true {\r
443                                                 $grid: ();\r
444                                         }\r
445 \r
446                                 // Sub-setting: Gutters.\r
447                                         $grid-gutters: 40px;\r
448                                         $x: map-get($grid, 'gutters');\r
449 \r
450                                         @if $x {\r
451                                                 $grid-gutters: $x;\r
452                                         }\r
453 \r
454                                 // Rows.\r
455                                         .row {\r
456                                                 border-bottom: solid 1px transparent;\r
457                                                 -moz-box-sizing: border-box;\r
458                                                 -webkit-box-sizing: border-box;\r
459                                                 box-sizing: border-box;\r
460                                         }\r
461 \r
462                                         .row > * {\r
463                                                 float: left;\r
464                                                 -moz-box-sizing: border-box;\r
465                                                 -webkit-box-sizing: border-box;\r
466                                                 box-sizing: border-box;\r
467                                         }\r
468 \r
469                                         .row:after, .row:before {\r
470                                                 content: '';\r
471                                                 display: block;\r
472                                                 clear: both;\r
473                                                 height: 0;\r
474                                         }\r
475 \r
476                                         .row.uniform > * > :first-child {\r
477                                                 margin-top: 0;\r
478                                         }\r
479 \r
480                                         .row.uniform > * > :last-child {\r
481                                                 margin-bottom: 0;\r
482                                         }\r
483 \r
484                                 // Gutters (0%).\r
485                                         @include grid-gutters($grid-gutters, \30 \25, 0);\r
486 \r
487                                 // Apply base.\r
488                                         @include grid($grid-gutters);\r
489 \r
490                                 // Apply per-breakpoint.\r
491                                         @each $name in map-keys($breakpoints) {\r
492 \r
493                                                 // Get/use breakpoint setting if it exists.\r
494                                                         $x: map-get($configPerBreakpoint, $name);\r
495 \r
496                                                         // Per-breakpoint config exists?\r
497                                                                 @if $x {\r
498                                                                         $y: map-get($x, 'grid');\r
499 \r
500                                                                         // Setting exists?\r
501                                                                                 @if $y {\r
502 \r
503                                                                                         // Sub-setting: Gutters.\r
504                                                                                                 $x: map-get($y, 'gutters');\r
505 \r
506                                                                                                 @if $x {\r
507                                                                                                         $grid-gutters: $x;\r
508                                                                                                 }\r
509 \r
510                                                                                 }\r
511 \r
512                                                                 }\r
513 \r
514                                                 // Create @media block.\r
515                                                         @media screen and #{map-get($breakpoints, $name)} {\r
516                                                                 @include grid($grid-gutters, $name);\r
517                                                         }\r
518 \r
519                                         }\r
520 \r
521                         }\r
522 \r
523         }\r
524 \r
525         /// Resets browser styles.\r
526         /// @param {string} $mode Mode (default is 'normalize').\r
527         @mixin reset($mode: 'normalize') {\r
528 \r
529                 @if $mode == 'normalize' {\r
530 \r
531                         // normalize.css v3.0.2 | MIT License | git.io/normalize\r
532                                 html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}\r
533 \r
534                 }\r
535                 @else if $mode == 'full' {\r
536 \r
537                         // meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain)\r
538                                 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}body{-webkit-text-size-adjust:none}\r
539 \r
540                 }\r
541 \r
542         }\r
543 \r
544         /// Vendorizes a declaration's property and/or value(s).\r
545         /// @param {string} $property Property.\r
546         /// @param {mixed} $value String/list of value(s).\r
547         @mixin vendor($property, $value) {\r
548 \r
549                 // Determine if property should expand.\r
550                         $expandProperty: index($vendor-properties, $property);\r
551 \r
552                 // Determine if value should expand (and if so, add '-prefix-' placeholder).\r
553                         $expandValue: false;\r
554 \r
555                         @each $x in $value {\r
556                                 @each $y in $vendor-values {\r
557                                         @if $y == str-slice($x, 1, str-length($y)) {\r
558 \r
559                                                 $value: set-nth($value, index($value, $x), '-prefix-' + $x);\r
560                                                 $expandValue: true;\r
561 \r
562                                         }\r
563                                 }\r
564                         }\r
565 \r
566                 // Expand property?\r
567                         @if $expandProperty {\r
568                             @each $vendor in $vendor-prefixes {\r
569                                 #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};\r
570                             }\r
571                         }\r
572 \r
573                 // Expand just the value?\r
574                         @elseif $expandValue {\r
575                             @each $vendor in $vendor-prefixes {\r
576                                 #{$property}: #{str-replace-all($value, '-prefix-', $vendor)};\r
577                             }\r
578                         }\r
579 \r
580                 // Neither? Treat them as a normal declaration.\r
581                         @else {\r
582                         #{$property}: #{$value};\r
583                         }\r
584 \r
585         }