//
// Component: Button
//
// ========================================================================


// Variables
// ========================================================================

@button-default-hover-translate-vertical:       0;
@button-primary-hover-translate-vertical:       0;
@button-secondary-hover-translate-vertical:     0;


// Component
// ========================================================================

.hook-button() when not (@button-default-hover-translate-vertical = 0),
                  not (@button-primary-hover-translate-vertical = 0),
                  not (@button-secondary-hover-translate-vertical = 0) {
    transition-property: color, background-color, background-position, background-size, border-color, box-shadow, transform;
}

.hook-button-hover() {}

.hook-button-active() {}


// Style modifiers
// ========================================================================

.hook-button-default() {}

.hook-button-default-hover() when not (@button-default-hover-translate-vertical = 0) {
    transform: translateY(@button-default-hover-translate-vertical);
}

.hook-button-default-active() when not (@button-default-hover-translate-vertical = 0) {
    transform: translateY(0);
}

//
// Primary
//

.hook-button-primary() {}

.hook-button-primary-hover() when not (@button-primary-hover-translate-vertical = 0) {
    transform: translateY(@button-primary-hover-translate-vertical);
}

.hook-button-primary-active() when not (@button-primary-hover-translate-vertical = 0) {
    transform: translateY(0);
}

//
// Secondary
//

.hook-button-secondary() {}

.hook-button-secondary-hover() when not (@button-secondary-hover-translate-vertical = 0) {
    transform: translateY(@button-secondary-hover-translate-vertical);
}

.hook-button-secondary-active() when not (@button-secondary-hover-translate-vertical = 0) {
    transform: translateY(0);
}

//
// Danger
//

.hook-button-danger() {}

.hook-button-danger-hover() {}

.hook-button-danger-active() {}


// Disabled
// ========================================================================

.hook-button-disabled() {}


// Size modifiers
// ========================================================================

.hook-button-small() {}

.hook-button-large() {}


// Text modifier
// ========================================================================

.hook-button-text() {}

.hook-button-text-hover() {}

.hook-button-text-disabled() {}


// Link modifier
// ========================================================================

.hook-button-link() {}


// Miscellaneous
// ========================================================================

.hook-button-misc() {}


// Inverse
// ========================================================================

.hook-inverse-button-default() {}
.hook-inverse-button-default-hover() {}
.hook-inverse-button-default-active() {}

.hook-inverse-button-primary() {}
.hook-inverse-button-primary-hover() {}
.hook-inverse-button-primary-active() {}

.hook-inverse-button-secondary() {}
.hook-inverse-button-secondary-hover() {}
.hook-inverse-button-secondary-active() {}

.hook-inverse-button-text() {}
.hook-inverse-button-text-hover() {}
.hook-inverse-button-text-disabled() {}

.hook-inverse-button-link() {}
