app/frameworks/twitter/bootstrap/button-groups.less in bootstrap_farsi-3.2.0.1 vs app/frameworks/twitter/bootstrap/button-groups.less in bootstrap_farsi-3.3.6

- old
+ new

@@ -16,14 +16,10 @@ &:focus, &:active, &.active { z-index: 2; } - &:focus { - // Remove focus outline when dropdown JS adds it after closing the menu - outline: 0; - } } } // Prevent double borders when buttons are next to each other .btn-group { @@ -38,10 +34,11 @@ // Optional: Group multiple button groups together for a toolbar .btn-toolbar { .margin-left(-5px); // Offset the first child's margin &:extend(.clearfix all); + .btn, .btn-group, .input-group { .float(left); } > .btn, @@ -73,17 +70,17 @@ .float(left); } .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } -.btn-group > .btn-group:first-child { +.btn-group > .btn-group:first-child:not(:last-child) { > .btn:last-child, > .dropdown-toggle { .border-right-radius(0); } } -.btn-group > .btn-group:last-child > .btn:first-child { +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { .border-left-radius(0); } // On active and open, don't show outline .btn-group .dropdown-toggle:active, @@ -174,16 +171,16 @@ .btn-group-vertical > .btn { &:not(:first-child):not(:last-child) { border-radius: 0; } &:first-child:not(:last-child) { - .border-top-right-radius(@border-radius-base); + .border-top-radius(@btn-border-radius-base); .border-bottom-radius(0); } &:last-child:not(:first-child) { - .border-bottom-left-radius(@border-radius-base); .border-top-radius(0); + .border-bottom-radius(@btn-border-radius-base); } } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } @@ -196,11 +193,10 @@ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { .border-top-radius(0); } - // Justified button groups // ---------------------- .btn-group-justified { display: table; @@ -224,17 +220,25 @@ // Checkbox and radio options // // In order to support the browser's form validation feedback, powered by the -// `required` attribute, we have to "hide" the inputs via `opacity`. We cannot -// use `display: none;` or `visibility: hidden;` as that also hides the popover. +// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use +// `display: none;` or `visibility: hidden;` as that also hides the popover. +// Simply visually hiding the inputs via `opacity` would leave them clickable in +// certain cases which is prevented by using `clip` and `pointer-events`. // This way, we ensure a DOM element is visible to position the popover from. // -// See https://github.com/twbs/bootstrap/pull/12794 for more. +// See https://github.com/twbs/bootstrap/pull/12794 and +// https://github.com/twbs/bootstrap/pull/14559 for more information. -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - position: absolute; - z-index: -1; - .opacity(0); +[data-toggle="buttons"] { + > .btn, + > .btn-group > .btn { + input[type="radio"], + input[type="checkbox"] { + position: absolute; + clip: rect(0,0,0,0); + pointer-events: none; + } + } }