/** buttons */ .btn { display: inline-block; color: #FFF !important; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25) !important; background-image:none !important; border: 5px solid #FFF; border-radius: 0; box-shadow: none !important; .transition(~"all ease .15s"); cursor: pointer; vertical-align: middle; margin: 0; position: relative; } .btn-lg { border-width: 5px; line-height: 1.35; padding: 7px 16px; } .btn-sm { border-width: 4px; font-size: @font-size-btn-sm; padding: 4px 9px; line-height: 1.39; } .btn-xs { border-width: 3px; } .btn-minier { padding: 0 4px; line-height: 18px; border-width: 2px; font-size: @font-size-btn-minier; } button.btn:active { top: 1px; //left: 1px; //using both left & top, will cause chrome not to catch click events at seldom times } .enable_default_buttons() when(@enable-default-buttons = true) { //button color .btn-color(@color1, @color2) { & , &:focus { background-color:@color1 !important; border-color:@color1; } &:hover , &:active, .open &.dropdown-toggle { background-color:@color2 !important; border-color:@color1; } &.no-border:hover , &.no-border:active { border-color:@color2; } &.no-hover:hover , &.no-hover:active { background-color:@color1 !important; } &.active { background-color: mix(@color1,@color2) !important; border-color: darken(mix(@color1,@color2),7%); } &.no-border.active { background-color: darken(mix(@color1,@color2),3%) !important; border-color: darken(mix(@color1,@color2),3%); } &.disabled, &[disabled], fieldset[disabled] & { &, &:hover, &:focus, &:active, &.active { background-color:@color1 !important; border-color:@color1; } } } .btn-color(@color-name) { @color1-name : ~`"btn-@{color-name}"`; @color2-name : ~`"btn-@{color-name}-hover"`; .btn-color(@@color1-name, @@color2-name); } .btn , .btn-default { .btn-color(~"default"); } .btn-primary { .btn-color(~"primary"); } .btn-info { .btn-color(~"info"); } .btn-info2 { .btn-color(~"info2"); } .btn-success { .btn-color(~"success"); } .btn-warning { .btn-color(~"warning"); } .btn-danger { .btn-color(~"danger"); } .btn-inverse { .btn-color(~"inverse"); } .btn-pink { .btn-color(~"pink"); } .btn-purple { .btn-color(~"purple"); } .btn-grey { .btn-color(~"grey"); } .btn-yellow { .btn-color(~"yellow"); color:@btn-yellow-color !important; text-shadow:0 -1px 0 rgba(255, 255, 255, 0.4) !important; } .btn-light { .btn-color(~"light"); color:@btn-light-color !important; text-shadow:0 -1px 0 rgba(250, 250, 250, 0.25) !important; &.btn-xs:after { left: -2px; right: -2px; top: -2px; bottom: -2px; } &.btn-sm:after { left: -4px; right: -4px; top: -4px; bottom: -4px; } .btn-lg:after { left: -6px; right: -6px; top: -6px; bottom: -6px; } } } .enable_default_buttons(); .enable_white_buttons() when(@enable-white-buttons = true) { .btn.btn-white { //border-width: 1px; text-shadow: none !important; background-color: #FFF !important; &.no-hover:hover , &.no-hover:active { background-color: #FFF !important; } &:focus , &.active { box-shadow: inset 1px 1px 2px 0 rgba(0,0,0,0.1) !important; &.btn-bold { box-shadow: inset 1px 1px 3px 0 rgba(0,0,0,0.15) !important; } } &.active:after { display: none; } } .btn-white(@txt-color, @border-color, @bg-hover-color) { border-color: @border-color; color: @txt-color !important; &:hover, &:focus , &.active, &:active, .open &.dropdown-toggle { background-color: @bg-hover-color !important; border-color: @border-color; } &:hover { color: saturate(darken(@txt-color , 5%) , 5%) !important; } &.no-border:hover , &.no-border:active { border-color: @border-color; } &.disabled, &[disabled], fieldset[disabled] & { &, &:hover, &:focus, &:active, &.active { //background-color: #FFF !important; border-color: @border-color; } } } .btn.btn-white { .btn-white(#444, #CCC , #EBEBEB); } .btn-white.btn-default { .btn-white(darken(@btn-default-hover, 4%), @btn-default , lighten(@btn-default, 23%)); } .btn-white.btn-primary { .btn-white(desaturate(@btn-primary , 30%), desaturate(lighten(@btn-primary , 15%), 15%) , desaturate(lighten(@btn-primary , 42%), 6%)); } .btn-white.btn-success { .btn-white(desaturate(darken(@btn-success , 4%) , 8%), desaturate(lighten(@btn-success , 10%), 2%) , desaturate(lighten(@btn-success , 33%), 1%)); } .btn-white.btn-danger { .btn-white(desaturate(lighten(@btn-danger, 5%) , 30%), desaturate(lighten(@btn-danger , 18%), 18%) , desaturate(lighten(@btn-danger , 42%), 7%)); } .btn-white.btn-warning { .btn-white(desaturate(darken(@btn-warning , 6%), 36%), desaturate(lighten(@btn-warning , 3%), 30%) , desaturate(lighten(@btn-warning , 30%), 10%)); } .btn-white.btn-info { .btn-white(desaturate(darken(@btn-info, 6%) , 25%), desaturate(lighten(@btn-info , 5%), 15%) , desaturate(lighten(@btn-info , 30%), 6%)); } .btn-white.btn-inverse { .btn-white(@btn-inverse, lighten(@btn-inverse , 25%) , lighten(@btn-inverse , 56%)); } .btn-white.btn-pink { .btn-white(desaturate(@btn-pink , 35%), desaturate(lighten(@btn-pink , 15%), 25%) , desaturate(lighten(@btn-pink , 40%), 5%)); } .btn-white.btn-purple { .btn-white(darken(desaturate(@btn-purple , 10%) , 10%), desaturate(lighten(@btn-purple , 10%), 15%) , desaturate(lighten(@btn-purple , 31%), 5%)); } .btn-white.btn-yellow { .btn-white(darken(desaturate(@btn-yellow , 20%) , 30%), desaturate(darken(@btn-yellow, 5%), 25%) , desaturate(lighten(@btn-yellow , 18%), 10%)); } .btn-white.btn-grey { .btn-white(darken(@btn-grey , 8%), lighten(@btn-grey , 15%) , lighten(@btn-grey , 30%)); } } .enable_white_buttons(); .btn.disabled, .btn[disabled] { &.active, &:focus, &:active { outline:none; } &:active { top:0; left:0; } } //active buttons .btn.active { color:@btn-active-color; &:after { display: inline-block; content: ""; position: absolute; border-bottom: 1px solid @btn-active-color; left: -4px; right: -4px; bottom: -4px; } &.btn-sm:after { left: -3px; right: -3px; bottom: -3px; //border-bottom-width:1px; } &.btn-lg:after { left: -5px; right: -5px; bottom: -5px; //border-bottom-width:1px; } &.btn-xs:after , &.btn-minier:after { left: -1px; right: -1px; bottom: -2px; //border-bottom-width:1px; } &.btn-minier:after { bottom: -1px; } &.btn-yellow:after { border-bottom-color: @btn-yellow-active-border; } &.btn-light { color: #515151; &:after { border-bottom-color: #B5B5B5; } } } //icons inside buttons .btn { > .@{icon} { margin-right: 4px; //min-width: 12px; //display: inline; &.icon-on-right { margin-right: 0; margin-left: 4px; } } > .icon-only.@{icon} { margin: 0 !important;//to override .rtl text-align: center; padding: 0; //min-width: 24px; //vertical-align: middle; } } .btn-large > .@{icon} { margin-right: 6px; &.icon-on-right { margin-right: 0; margin-left: 6px; } } .btn-sm > .@{icon} { margin-right: 3px; &.icon-on-right { margin-right: 0; margin-left: 3px; } } .btn-xs > .@{icon} , &.btn-minier > .@{icon} { margin-right: 2px; &.icon-on-right { margin-right: 0; margin-left: 2px; } } .btn.btn-link { border: none !important; background: transparent none !important; color: @btn-link-color !important; text-shadow: none !important; padding: 4px 12px !important; line-height: 20px !important; &:hover { background: none !important; text-shadow: none !important; } &.active { background: none !important; text-decoration: underline; color: lighten(@btn-link-color , 6%) !important; &:after { display: none; } } &.disabled , &[disabled]{ background: transparent none !important; .opacity(0.65); text-decoration: none !important; } } .btn.btn-no-border { border-width: 0 !important; } //button groups .btn-group { &:first-child { margin-left: 0; } > .btn { & , + .btn { margin: 0 1px 0 0; } &:first-child { margin: 0 1px 0 0; } &:first-child , &:last-child { border-radius: 0; } //caret inside buttons > .caret { margin-top: 15px; margin-left: 1px; border-width: 5px; border-top-color: #FFF; } &.btn-sm > .caret { margin-top: 10px; border-width: 4px; } &.btn-large > .caret { margin-top: 18px; border-width: 6px; } &.btn-xs > .caret { margin-top: 9px; border-width: 4px; } &.btn-minier > .caret { margin-top: 7px; border-width: 3px; } //dropdown toggle + .btn.dropdown-toggle { padding-right: 3px; padding-left: 3px; } + .btn-large.dropdown-toggle { padding-right: 4px; padding-left: 4px; } } .dropdown-toggle { border-radius: 0; } .btn-group-active-state(@left, @right, @bottom, @width) {/* the border under an active button in button groups */ &.active:after { left: unit(@left, px); right:unit(@right, px); bottom:unit(@bottom, px); border-bottom-width: unit(@width, px); } } > .btn , + .btn{ margin: 0 1px 0 0; border-width: 3px;// !important; .btn-group-active-state(-2, -2, -2, 1); } > .btn-large , + .btn-large{ border-width: 4px;// !important; .btn-group-active-state(-3, -3, -3, 1); } > .btn-sm , + .btn-sm{ border-width: 2px;// !important; .btn-group-active-state(-1, -1, -1, 1); } > .btn-xs , + .btn-xs{ border-width: 1px;// !important; .btn-group-active-state(0, 0, 0, 1); } > .btn-minier , + .btn-minier{ border-width: 1px;// !important; .btn-group-active-state(0, 0, 0, 1); } } .btn-group > .btn { border-radius: 0 !important; } .btn-group > .btn.btn-round { border-radius: 4px !important; } .btn-group-vertical > .btn , .btn-group-vertical > .btn + .btn { margin: 1px 0 0 !important;//to override .RTL's } .btn-group-vertical > .btn:first-child { margin-top: 0 !important;//to override .RTL's } .btn-group.btn-overlap > .btn { margin-right: -1px; } .btn-group.btn-corner > .btn { &:first-child { border-bottom-left-radius: 8px !important; border-top-left-radius: 8px !important; } &:last-child { border-bottom-right-radius: 8px !important; border-top-right-radius: 8px !important; } &.btn-sm:first-child { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important; } &.btn-sm:last-child { border-bottom-right-radius: 6px !important; border-top-right-radius: 6px !important; } &.btn-xs:first-child { border-bottom-left-radius: 4px !important; border-top-left-radius: 4px !important; } &.btn-xs:last-child { border-bottom-right-radius: 4px !important; border-top-right-radius: 4px !important; } } .btn.btn-white { border-width: 1px; } .btn.btn-bold { border-bottom-width: 2px; } .btn.btn-round { border-bottom-width: 2px; border-radius: 4px !important; } //application buttons .enable_application_buttons() when(@enable-application-buttons = true) { .btn.btn-app { display: inline-block; width: 100px; font-size: @font-size-btn-app; font-weight: normal; color: #FFF; text-align: center; text-shadow: 0 -1px -1px rgba(0,0,0,0.2) !important; border: none; border-radius: 12px; padding: 12px 0 8px; margin: 2px; line-height: 1.7; position: relative; } //button color .btn-app-color(@color1, @color2, @percent) { & , &.no-hover:hover , &.disabled:hover { background: average(@color1, @color2) !important; #gradient > .vertical(@color1 , @color2) !important; } &:hover { background: average(darken(@color1,@percent), darken(@color2,@percent)) !important; #gradient > .vertical(darken(@color1,@percent) , darken(@color2,@percent)) !important; } } .btn-app-color(@color-name, @percent:10%) { @color1-name : ~`"btn-app-@{color-name}-1"`; @color2-name : ~`"btn-app-@{color-name}-2"`; .btn-app-color(@@color1-name, @@color2-name , @percent); } .btn-app, .btn-app.btn-default { .btn-app-color(~"default" , 8%); } .btn-app.btn-primary { .btn-app-color(~"primary"); } .btn-app.btn-info { .btn-app-color(~"info"); } .btn-app.btn-success { .btn-app-color(~"success"); } .btn-app.btn-danger { .btn-app-color(~"danger"); } .btn-app.btn-warning { .btn-app-color(~"warning"); } .btn-app.btn-purple { .btn-app-color(~"purple"); } .btn-app.btn-pink { .btn-app-color(~"pink"); } .btn-app.btn-inverse { .btn-app-color(~"inverse"); } .btn-app.btn-grey { .btn-app-color(~"grey" , 5%); } .btn.btn-app.btn-light { .btn-app-color(~"light" , 5%); color: @btn-app-light-color !important; text-shadow: 0 1px 1px #EEE !important; } .btn.btn-app.btn-yellow { .btn-app-color(~"yellow" , 5%); color:@btn-app-yellow-color !important; text-shadow:0 -1px 0 rgba(255, 255, 255, 0.4) !important; } .btn.btn-app { &.btn-sm { width: 80px; font-size: @font-size-btn-app-sm; border-radius: 10px; line-height: 1.5; } &.btn-xs { width: 64px; font-size: @font-size-btn-app-xs; border-radius: 8px; padding-bottom: 7px; padding-top: 8px; line-height: 1.45; } > .@{icon} { display: block; font-size: @font-size-btn-app-icon; margin: 0 0 4px; line-height: 36px; min-width: 0; padding: 0; } &.btn-sm > .@{icon} { display: block; font-size: @font-size-btn-app-sm-icon; line-height: 30px; margin: 0 0 3px; } &.btn-xs > .@{icon} { display: block; font-size: @font-size-btn-app-xs-icon; line-height: 24px; margin: 0; } &.no-radius { border-radius: 0; } &.radius-4 { border-radius: 4px; } //badge & label inside buttons > .badge , > .label { position: absolute !important; top: -2px; right: -2px; padding: 1px 3px; text-align: center; font-size: @font-size-label-inside-btn-app - 1; color: #FFF; &.badge-left , &.label-left{ right: auto; left: -2px; } } > .label { padding:1px 6px 3px; font-size: @font-size-label-inside-btn-app; } &.radius-4 , &.no-radius { > .badge { border-radius:3px; &.no-radius {// > .badge.no-radius border-radius:0; } } } /* active state */ &.active { color:@btn-app-active; &:after { display:none; } &.btn-yellow { color:@btn-app-yellow-color; border-color:@btn-app-yellow-border; } &.btn-light { color:@btn-app-light-active; } } } .btn.btn-app { &.btn-light, &.btn-yellow { .box-shadow(~"0 0 0 1px rgba(0, 0, 0, 0.08) inset") !important; } } } .enable_application_buttons();