.waves-transform(@string) {
    -webkit-transform: @string;
    -moz-transform: @string;
    -ms-transform: @string;
    -o-transform: @string;
    transform: @string;
}

.waves-effect {
    position: relative;
    cursor: pointer;
    display: inline-block;
    overflow: hidden;
    .user-select(none);

    .waves-ripple {
        position: absolute;
        border-radius: 50%;
        width: 100px;
        height: 100px;
        margin-top:-50px;
        margin-left:-50px;
        opacity: 0;
        background: rgba(0,0,0,0.1);
        .transition(all);
        .transition-duration(500ms);
        .transition-timing-function(ease-out);
        -webkit-transition-property: -webkit-transform, opacity;
        -moz-transition-property: -moz-transform, opacity;
        -o-transition-property: -o-transform, opacity;
        transition-property: transform, opacity;
        .waves-transform(scale(0) translate(0,0));
        pointer-events: none;
    }

    &.waves-light .waves-ripple {
        background: rgba(255,255,255,0.35);
    }

    &.waves-classic .waves-ripple {
        background: rgba(0,0,0,0.2);
    }

    &.waves-classic.waves-light .waves-ripple {
        background: rgba(255,255,255,0.4);
    }
}

.waves-notransition {
    .transition(none);
}

.waves-button,
.waves-circle {
    .waves-transform(translateZ(0));
    -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
}

.waves-input-wrapper {
    border-radius: 0.2em;
    vertical-align: bottom;

    &.waves-button {
        padding: 0;
    }

    .waves-button-input {
        position: relative;
        top: 0;
        left: 0;
        z-index: 1;
    }
}

.waves-float {
    -webkit-mask-image: none;
    .transition(all);
    .transition-duration(250ms);
}

.waves-block {
    display: block;
}
