Javascript
<pre class="lang:default decode:true">jQuery(function ($) {
    
    // Target Gravity Form Inputs
    var inputs = '.ginput_container input, .ginput_container textarea';
    emFieldFocus(inputs);

    // Failed Submission
    $(document).on('gform_post_render', function(){

        $(inputs).each(function() {
            if( $(this).val() ) {
                $(this).parents('.ginput_container').siblings('.gfield_label').addClass('filling');
            }
        });
      
        emFieldFocus(inputs);
    });
    
});


// Field Focus Add/Remove Filling Class
function emFieldFocus(inputs) {

    jQuery(inputs).on( 'focus', function() {
        jQuery(this).parents('.ginput_container').siblings('.gfield_label').addClass('filling');
    });

    jQuery(inputs).on( 'focusout', function() {
        if( !jQuery(this).val() ) {
            jQuery(this).parents('.ginput_container').siblings('.gfield_label').removeClass('filling');
        }
    });

}</pre>
Functions
<pre class="lang:default decode:true ">add_filter( 'gform_field_css_class', 'ic_field_wrap_classes', 10, 3 );
function ic_field_wrap_classes( $classes, $field, $form ) {
 	$type = $field-&gt;type;
        
    $classes .= ' gfield_type_' . $type;

    return $classes;
}</pre>
SASS
<pre class="lang:default decode:true ">.gfield {
	margin-bottom: bl();
	position: relative;
	
	ul {
		list-style-type: none;
		margin-bottom: 0;
	}
}

.gfield_label {
	position: absolute;
	left: 10px;
	top: -20px;
	display: block;
	font-size: 12px;
	opacity: 0.7;
	font-weight: 300;
}

.gfield_type_text,
.gfield_type_email,
.gfield_type_textarea {
	.gfield_label {
		left: 26px;
		top: -14px;
		line-height: 1;
		margin-bottom: 0;
		transform: scale(1.36364) translateY(180%);
		transform-origin: 0 0;
		transition: .25s;
		cursor: text;
		&amp;.filling {
			left: 18px;
			top: -17px;
			transform: scale(.99);
			color: $primary;
		}
	}
}
</pre>
&nbsp;