You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							63 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							63 lines
						
					
					
						
							2.3 KiB
						
					
					
				// @flow
 | 
						|
import type { TimingFunction } from '../types/timingFunction'
 | 
						|
 | 
						|
/* eslint-disable key-spacing */
 | 
						|
const functionsMap = {
 | 
						|
  easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',
 | 
						|
  easeInCirc: 'cubic-bezier(0.600,  0.040, 0.980, 0.335)',
 | 
						|
  easeInCubic: 'cubic-bezier(0.550,  0.055, 0.675, 0.190)',
 | 
						|
  easeInExpo: 'cubic-bezier(0.950,  0.050, 0.795, 0.035)',
 | 
						|
  easeInQuad: 'cubic-bezier(0.550,  0.085, 0.680, 0.530)',
 | 
						|
  easeInQuart: 'cubic-bezier(0.895,  0.030, 0.685, 0.220)',
 | 
						|
  easeInQuint: 'cubic-bezier(0.755,  0.050, 0.855, 0.060)',
 | 
						|
  easeInSine: 'cubic-bezier(0.470,  0.000, 0.745, 0.715)',
 | 
						|
 | 
						|
  easeOutBack: 'cubic-bezier(0.175,  0.885, 0.320, 1.275)',
 | 
						|
  easeOutCubic: 'cubic-bezier(0.215,  0.610, 0.355, 1.000)',
 | 
						|
  easeOutCirc: 'cubic-bezier(0.075,  0.820, 0.165, 1.000)',
 | 
						|
  easeOutExpo: 'cubic-bezier(0.190,  1.000, 0.220, 1.000)',
 | 
						|
  easeOutQuad: 'cubic-bezier(0.250,  0.460, 0.450, 0.940)',
 | 
						|
  easeOutQuart: 'cubic-bezier(0.165,  0.840, 0.440, 1.000)',
 | 
						|
  easeOutQuint: 'cubic-bezier(0.230,  1.000, 0.320, 1.000)',
 | 
						|
  easeOutSine: 'cubic-bezier(0.390,  0.575, 0.565, 1.000)',
 | 
						|
 | 
						|
  easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',
 | 
						|
  easeInOutCirc: 'cubic-bezier(0.785,  0.135, 0.150, 0.860)',
 | 
						|
  easeInOutCubic: 'cubic-bezier(0.645,  0.045, 0.355, 1.000)',
 | 
						|
  easeInOutExpo: 'cubic-bezier(1.000,  0.000, 0.000, 1.000)',
 | 
						|
  easeInOutQuad: 'cubic-bezier(0.455,  0.030, 0.515, 0.955)',
 | 
						|
  easeInOutQuart: 'cubic-bezier(0.770,  0.000, 0.175, 1.000)',
 | 
						|
  easeInOutQuint: 'cubic-bezier(0.860,  0.000, 0.070, 1.000)',
 | 
						|
  easeInOutSine: 'cubic-bezier(0.445,  0.050, 0.550, 0.950)',
 | 
						|
}
 | 
						|
/* eslint-enable key-spacing */
 | 
						|
 | 
						|
function getTimingFunction(functionName: string): string {
 | 
						|
  return functionsMap[functionName]
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).
 | 
						|
 *
 | 
						|
 * @example
 | 
						|
 * // Styles as object usage
 | 
						|
 * const styles = {
 | 
						|
 *   'transitionTimingFunction': timingFunctions('easeInQuad')
 | 
						|
 * }
 | 
						|
 *
 | 
						|
 * // styled-components usage
 | 
						|
 *  const div = styled.div`
 | 
						|
 *   transitionTimingFunction: ${timingFunctions('easeInQuad')};
 | 
						|
 * `
 | 
						|
 *
 | 
						|
 * // CSS as JS Output
 | 
						|
 *
 | 
						|
 * 'div': {
 | 
						|
 *   'transitionTimingFunction': 'cubic-bezier(0.550,  0.085, 0.680, 0.530)',
 | 
						|
 * }
 | 
						|
 */
 | 
						|
 | 
						|
export default function timingFunctions(timingFunction: TimingFunction): string {
 | 
						|
  return getTimingFunction(timingFunction)
 | 
						|
}
 |