.framework-mixins(){

    .ivx-page-element-overlay-open{display:inherit;}
    .ivx-page-element-overlay-close{display:none;}
    .show{
        -webkit-animation:showState .1s;
        -moz-animation:showState .1s;
        -o-animation:showState .1s;
        animation:showState .1s;
        opacity:1;
    }
    .hide{
        -webkit-animation:hideState .1s;
        -moz-animation:hideState .1s;
        -o-animation:hideState .1s;
        animation:hideState .1s;
        opacity:0;
    }
    @-webkit-keyframes hideState{
        0%{opacity:1;}
        100%{opacity:0;display:none;visibility:hidden;}
    }
    @-moz-keyframes hideState{
        0%{opacity:1;}
        100%{opacity:0;display:none;visibility:hidden;}
    }
    @-o-keyframes hideState{
        0%{opacity:1;}
        100%{opacity:0;display:none;visibility:hidden;}
    }
    @keyframes hideState{
        0%{opacity:1;}
        100%{opacity:0;display:none;visibility:hidden;}
    }
    @-webkit-keyframes showState{
        0%{opacity:0;}
        100%{opacity:1}
    }
    @-moz-keyframes showState{
        0%{opacity:0;}
        100%{opacity:1;}
    }
    @-o-keyframes showState{
        0%{opacity:0;}
        100%{opacity:1;}
    }
    @keyframes showState{
        0%{opacity:0;}
        100%{opacity:1;}
    }

    .setStatementFromList(@fontSystem, @blockStatement, @list){
        .ivx-font-@{fontSystem}{
            @{blockStatement}{
                .setPropertyFromList(@list);
            }
        }
    }

    .setPropertyFromList(@list, @index : 1) when (@index <= length(@list)) and (length(@list) >= 2){
        @propertyObj:  extract(@list, @index);
        .getPropertyNameAndValue(@propertyObj, @list);
        .setProperty(@propertyName, @propertyValue);
        .setPropertyFromList(@list, (@index + 1));
    }

    .getPropertyNameAndValue(@propertyObj, @list) when (length(@propertyObj) <= 1){
        @propertyName:  extract(@list, 1);
        @propertyValue: extract(@list, 2);
    }

    .getPropertyNameAndValue(@propertyObj, @list) when (length(@propertyObj) > 1){
        @propertyName:  extract(@propertyObj, 1);
        @propertyValue: extract(@propertyObj, 2);
    }

    .setProperty(@propertyName, @propertyValue){
        @{propertyName} : @propertyValue;
    }

}
