.u-margin {
    directions = top right bottom left vertical horizontal;
    sizes = sm lg;

    for dir in directions {
        for siz in sizes {
            &--{siz} {
                margin: lookup('$vertical--element-' + siz) !important;
            }
        }
        &--{dir} {
            for siz in sizes {

                &-{siz} {
                    $value = lookup('$vertical--element-' + siz);

                    if dir == vertical {
                        margin-top: $value !important;
                        margin-bottom: @margin-top;
                    }
                    
                    if dir == horizontal {
                        margin-left: $value !important;
                        margin-right: @margin-left;
                    }

                    else {
                        margin-{dir}: $value !important;
                    }
                }
            }

            &-remove {
                margin: 0 !important;
            }
        }

        &-remove {
            margin: 0 !important;
        }
    }
}