mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-10-30 22:54:07 +00:00 
			
		
		
		
	Add Stylus syntax test file
This commit is contained in:
		
				
					committed by
					
						 David Peter
						David Peter
					
				
			
			
				
	
			
			
			
						parent
						
							6e5a2a5c51
						
					
				
				
					commit
					768189859a
				
			
							
								
								
									
										90
									
								
								tests/syntax-tests/source/Stylus/gradients.styl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								tests/syntax-tests/source/Stylus/gradients.styl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| @import 'config' | ||||
|  | ||||
| /* | ||||
|  * Implicit color stop position. | ||||
|  */ | ||||
|  | ||||
| pos-in-stops(i, stops) | ||||
|   len = length(stops) | ||||
|   if len - 1 == i | ||||
|     100% | ||||
|   else if i | ||||
|     unit(i / len * 100, '%') | ||||
|   else | ||||
|     0 | ||||
|  | ||||
| /* | ||||
|  * Normalize color stops: | ||||
|  * | ||||
|  *   - (color pos) -> (pos color) | ||||
|  *   - (color) -> (implied-pos color) | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| normalize-stops(stops) | ||||
|   stops = clone(stops) | ||||
|   for stop, i in stops | ||||
|     if length(stop) == 1 | ||||
|       color = stop[0] | ||||
|       stop[0] = pos-in-stops(i, stops) | ||||
|       stop[1] = color | ||||
|     else if typeof(stop[1]) == 'unit' | ||||
|       pos = stop[1] | ||||
|       stop[1] = stop[0] | ||||
|       stop[0] = pos | ||||
|   stops | ||||
|  | ||||
| /* | ||||
|  * Join color stops with the given translation function. | ||||
|  */ | ||||
|  | ||||
| join-stops(stops, translate) | ||||
|   str = '' | ||||
|   len = length(stops) | ||||
|   for stop, i in stops | ||||
|     str += ', ' if i | ||||
|     pos = stop[0] | ||||
|     color = stop[1] | ||||
|     str += translate(color, pos) | ||||
|   unquote(str) | ||||
|  | ||||
| /* | ||||
|  * Standard color stop. | ||||
|  */ | ||||
|  | ||||
| std-stop(color, pos) | ||||
|   '%s %s' % (color pos) | ||||
|  | ||||
| /* | ||||
|  * Create a linear gradient with the given start position | ||||
|  * and variable number of color stops. | ||||
|  * | ||||
|  * Examples: | ||||
|  * | ||||
|  *    background: linear-gradient(top, red, green, blue) | ||||
|  *    background: linear-gradient(bottom, red, green 50%, blue) | ||||
|  *    background: linear-gradient(bottom, red, 50% green, blue) | ||||
|  *    background: linear-gradient(bottom, red, 50% green, 90% white, blue) | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| linear-gradient(start, stops...) | ||||
|   error('color stops required') unless length(stops) | ||||
|  | ||||
|   unquote('linear-gradient(' + join(', ',arguments) + ')') | ||||
|  | ||||
| /* | ||||
|  * Create a linear gradient image with the given start position | ||||
|  * and variable number of color stops. | ||||
|  */ | ||||
|  | ||||
| linear-gradient-image(start, stops...) | ||||
|   error('node-canvas is required for linear-gradient-image()') unless has-canvas | ||||
|   stops = stops[0] if length(stops) == 1 | ||||
|   error('gradient image size required') unless start[0] is a 'unit' | ||||
|   size = start[0] | ||||
|   start = start[1] or 'top' | ||||
|   grad = create-gradient-image(size, start) | ||||
|   stops = normalize-stops(stops) | ||||
|   add-color-stop(grad, stop[0], stop[1]) for stop in stops | ||||
|   'url(%s)' % gradient-data-uri(grad) | ||||
		Reference in New Issue
	
	Block a user