@md-ui-motion-transition-map: 'transition', 'property', 'duration', 'function', 'delay';
transition: @md-ui-motion-transition-property, @value {

	& when ( @md-ui-motion-transition-property =  extract( @md-ui-motion-transition-map, 1 ) ) {
		transition: @value;
	}

	& when ( @md-ui-motion-transition-property =  extract( @md-ui-motion-transition-map, 2 ) ) {
		transition-property: @value;
	}

	& when ( @md-ui-motion-transition-property =  extract( @md-ui-motion-transition-map, 4 ) ) {
		transition-timing-function: @value;
	}

	& when ( @md-ui-motion-transition-property =  extract( @md-ui-motion-transition-map, 5 ) ) {
			transition-delay: @value;
	}
}

@md-ui-motion-curve-map: 'standard', 'decelerate', 'accelerate', 'sharp';
.md-ui-motion-curve( @md-ui-motion-curve-type ) {

	& when( @md-ui-motion-curve-type = extract( @md-ui-motion-curve-map, 1 ) ) {
		transition: 'transition', 1s cubic-bezier( 0.4, 0.0, 0.2, 1.0 ) 0;
	}

	& when( @md-ui-motion-curve-type = extract( @md-ui-motion-curve-map, 2 ) ) {
		transition: 'transition', 1s cubic-bezier( 0.0, 0.0, 0.2, 1.0 ) 0;
	}

	& when( @md-ui-motion-curve-type = extract( @md-ui-motion-curve-map, 3) ) {
		transition: 'transition', 1s cubic-bezier( 0.4, 0.0, 1.0, 1.0 ) 0;
	}

	& when( @md-ui-motion-curve-type = extract( @md-ui-motion-curve-map, 4) ) {
		transition: 'transition', 1s cubic-bezier( 0.4, 0.0, 0.6, 1.0 ) 0;
	}
}
