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

    direction-properties(value, direction) {
        if direction == vertical {
            padding-top: value !important;
            padding-bottom: @padding-top;
        }
        
        else if direction == horizontal {
            padding-left: value !important;
            padding-right: @padding-left;
        }

        else {
            padding-{direction}: value !important;
        }
    }

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

    for dir in directions {
        &--{dir} {
            for siz in sizes {
                &-{siz} {
                    $value = lookup('$vertical--element-' + siz);

                    direction-properties($value, dir)
                }
            }

            &-remove {
                direction-properties(0, dir)
            }
        }
    }
    
    &--remove {
        padding: 0 !important;
    }
}