git repos / blockattack-game

blame: source/misc/embedded_libs/fmt-8.1.1/doc/bootstrap/button-groups.less

normal view · raw

f8deb5b9 Poul Sander 2022-01-15 13:55 1
//
f8deb5b9 Poul Sander 2022-01-15 13:55 2
// Button groups
f8deb5b9 Poul Sander 2022-01-15 13:55 3
// --------------------------------------------------
f8deb5b9 Poul Sander 2022-01-15 13:55 4
f8deb5b9 Poul Sander 2022-01-15 13:55 5
// Make the div behave like a button
f8deb5b9 Poul Sander 2022-01-15 13:55 6
.btn-group,
f8deb5b9 Poul Sander 2022-01-15 13:55 7
.btn-group-vertical {
f8deb5b9 Poul Sander 2022-01-15 13:55 8
  position: relative;
f8deb5b9 Poul Sander 2022-01-15 13:55 9
  display: inline-block;
f8deb5b9 Poul Sander 2022-01-15 13:55 10
  vertical-align: middle; // match .btn alignment given font-size hack above
f8deb5b9 Poul Sander 2022-01-15 13:55 11
  > .btn {
f8deb5b9 Poul Sander 2022-01-15 13:55 12
    position: relative;
f8deb5b9 Poul Sander 2022-01-15 13:55 13
    float: left;
f8deb5b9 Poul Sander 2022-01-15 13:55 14
    // Bring the "active" button to the front
f8deb5b9 Poul Sander 2022-01-15 13:55 15
    &:hover,
f8deb5b9 Poul Sander 2022-01-15 13:55 16
    &:focus,
f8deb5b9 Poul Sander 2022-01-15 13:55 17
    &:active,
f8deb5b9 Poul Sander 2022-01-15 13:55 18
    &.active {
f8deb5b9 Poul Sander 2022-01-15 13:55 19
      z-index: 2;
f8deb5b9 Poul Sander 2022-01-15 13:55 20
    }
f8deb5b9 Poul Sander 2022-01-15 13:55 21
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 22
}
f8deb5b9 Poul Sander 2022-01-15 13:55 23
f8deb5b9 Poul Sander 2022-01-15 13:55 24
// Prevent double borders when buttons are next to each other
f8deb5b9 Poul Sander 2022-01-15 13:55 25
.btn-group {
f8deb5b9 Poul Sander 2022-01-15 13:55 26
  .btn + .btn,
f8deb5b9 Poul Sander 2022-01-15 13:55 27
  .btn + .btn-group,
f8deb5b9 Poul Sander 2022-01-15 13:55 28
  .btn-group + .btn,
f8deb5b9 Poul Sander 2022-01-15 13:55 29
  .btn-group + .btn-group {
f8deb5b9 Poul Sander 2022-01-15 13:55 30
    margin-left: -1px;
f8deb5b9 Poul Sander 2022-01-15 13:55 31
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 32
}
f8deb5b9 Poul Sander 2022-01-15 13:55 33
f8deb5b9 Poul Sander 2022-01-15 13:55 34
// Optional: Group multiple button groups together for a toolbar
f8deb5b9 Poul Sander 2022-01-15 13:55 35
.btn-toolbar {
f8deb5b9 Poul Sander 2022-01-15 13:55 36
  margin-left: -5px; // Offset the first child's margin
f8deb5b9 Poul Sander 2022-01-15 13:55 37
  &:extend(.clearfix all);
f8deb5b9 Poul Sander 2022-01-15 13:55 38
f8deb5b9 Poul Sander 2022-01-15 13:55 39
  .btn-group,
f8deb5b9 Poul Sander 2022-01-15 13:55 40
  .input-group {
f8deb5b9 Poul Sander 2022-01-15 13:55 41
    float: left;
f8deb5b9 Poul Sander 2022-01-15 13:55 42
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 43
  > .btn,
f8deb5b9 Poul Sander 2022-01-15 13:55 44
  > .btn-group,
f8deb5b9 Poul Sander 2022-01-15 13:55 45
  > .input-group {
f8deb5b9 Poul Sander 2022-01-15 13:55 46
    margin-left: 5px;
f8deb5b9 Poul Sander 2022-01-15 13:55 47
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 48
}
f8deb5b9 Poul Sander 2022-01-15 13:55 49
f8deb5b9 Poul Sander 2022-01-15 13:55 50
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
f8deb5b9 Poul Sander 2022-01-15 13:55 51
  border-radius: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 52
}
f8deb5b9 Poul Sander 2022-01-15 13:55 53
f8deb5b9 Poul Sander 2022-01-15 13:55 54
// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
f8deb5b9 Poul Sander 2022-01-15 13:55 55
.btn-group > .btn:first-child {
f8deb5b9 Poul Sander 2022-01-15 13:55 56
  margin-left: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 57
  &:not(:last-child):not(.dropdown-toggle) {
f8deb5b9 Poul Sander 2022-01-15 13:55 58
    .border-right-radius(0);
f8deb5b9 Poul Sander 2022-01-15 13:55 59
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 60
}
f8deb5b9 Poul Sander 2022-01-15 13:55 61
// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
f8deb5b9 Poul Sander 2022-01-15 13:55 62
.btn-group > .btn:last-child:not(:first-child),
f8deb5b9 Poul Sander 2022-01-15 13:55 63
.btn-group > .dropdown-toggle:not(:first-child) {
f8deb5b9 Poul Sander 2022-01-15 13:55 64
  .border-left-radius(0);
f8deb5b9 Poul Sander 2022-01-15 13:55 65
}
f8deb5b9 Poul Sander 2022-01-15 13:55 66
f8deb5b9 Poul Sander 2022-01-15 13:55 67
// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
f8deb5b9 Poul Sander 2022-01-15 13:55 68
.btn-group > .btn-group {
f8deb5b9 Poul Sander 2022-01-15 13:55 69
  float: left;
f8deb5b9 Poul Sander 2022-01-15 13:55 70
}
f8deb5b9 Poul Sander 2022-01-15 13:55 71
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
f8deb5b9 Poul Sander 2022-01-15 13:55 72
  border-radius: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 73
}
f8deb5b9 Poul Sander 2022-01-15 13:55 74
.btn-group > .btn-group:first-child:not(:last-child) {
f8deb5b9 Poul Sander 2022-01-15 13:55 75
  > .btn:last-child,
f8deb5b9 Poul Sander 2022-01-15 13:55 76
  > .dropdown-toggle {
f8deb5b9 Poul Sander 2022-01-15 13:55 77
    .border-right-radius(0);
f8deb5b9 Poul Sander 2022-01-15 13:55 78
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 79
}
f8deb5b9 Poul Sander 2022-01-15 13:55 80
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
f8deb5b9 Poul Sander 2022-01-15 13:55 81
  .border-left-radius(0);
f8deb5b9 Poul Sander 2022-01-15 13:55 82
}
f8deb5b9 Poul Sander 2022-01-15 13:55 83
f8deb5b9 Poul Sander 2022-01-15 13:55 84
// On active and open, don't show outline
f8deb5b9 Poul Sander 2022-01-15 13:55 85
.btn-group .dropdown-toggle:active,
f8deb5b9 Poul Sander 2022-01-15 13:55 86
.btn-group.open .dropdown-toggle {
f8deb5b9 Poul Sander 2022-01-15 13:55 87
  outline: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 88
}
f8deb5b9 Poul Sander 2022-01-15 13:55 89
f8deb5b9 Poul Sander 2022-01-15 13:55 90
f8deb5b9 Poul Sander 2022-01-15 13:55 91
// Sizing
f8deb5b9 Poul Sander 2022-01-15 13:55 92
//
f8deb5b9 Poul Sander 2022-01-15 13:55 93
// Remix the default button sizing classes into new ones for easier manipulation.
f8deb5b9 Poul Sander 2022-01-15 13:55 94
f8deb5b9 Poul Sander 2022-01-15 13:55 95
.btn-group-xs > .btn { &:extend(.btn-xs); }
f8deb5b9 Poul Sander 2022-01-15 13:55 96
.btn-group-sm > .btn { &:extend(.btn-sm); }
f8deb5b9 Poul Sander 2022-01-15 13:55 97
.btn-group-lg > .btn { &:extend(.btn-lg); }
f8deb5b9 Poul Sander 2022-01-15 13:55 98
f8deb5b9 Poul Sander 2022-01-15 13:55 99
f8deb5b9 Poul Sander 2022-01-15 13:55 100
// Split button dropdowns
f8deb5b9 Poul Sander 2022-01-15 13:55 101
// ----------------------
f8deb5b9 Poul Sander 2022-01-15 13:55 102
f8deb5b9 Poul Sander 2022-01-15 13:55 103
// Give the line between buttons some depth
f8deb5b9 Poul Sander 2022-01-15 13:55 104
.btn-group > .btn + .dropdown-toggle {
f8deb5b9 Poul Sander 2022-01-15 13:55 105
  padding-left: 8px;
f8deb5b9 Poul Sander 2022-01-15 13:55 106
  padding-right: 8px;
f8deb5b9 Poul Sander 2022-01-15 13:55 107
}
f8deb5b9 Poul Sander 2022-01-15 13:55 108
.btn-group > .btn-lg + .dropdown-toggle {
f8deb5b9 Poul Sander 2022-01-15 13:55 109
  padding-left: 12px;
f8deb5b9 Poul Sander 2022-01-15 13:55 110
  padding-right: 12px;
f8deb5b9 Poul Sander 2022-01-15 13:55 111
}
f8deb5b9 Poul Sander 2022-01-15 13:55 112
f8deb5b9 Poul Sander 2022-01-15 13:55 113
// The clickable button for toggling the menu
f8deb5b9 Poul Sander 2022-01-15 13:55 114
// Remove the gradient and set the same inset shadow as the :active state
f8deb5b9 Poul Sander 2022-01-15 13:55 115
.btn-group.open .dropdown-toggle {
f8deb5b9 Poul Sander 2022-01-15 13:55 116
  .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
f8deb5b9 Poul Sander 2022-01-15 13:55 117
f8deb5b9 Poul Sander 2022-01-15 13:55 118
  // Show no shadow for `.btn-link` since it has no other button styles.
f8deb5b9 Poul Sander 2022-01-15 13:55 119
  &.btn-link {
f8deb5b9 Poul Sander 2022-01-15 13:55 120
    .box-shadow(none);
f8deb5b9 Poul Sander 2022-01-15 13:55 121
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 122
}
f8deb5b9 Poul Sander 2022-01-15 13:55 123
f8deb5b9 Poul Sander 2022-01-15 13:55 124
f8deb5b9 Poul Sander 2022-01-15 13:55 125
// Reposition the caret
f8deb5b9 Poul Sander 2022-01-15 13:55 126
.btn .caret {
f8deb5b9 Poul Sander 2022-01-15 13:55 127
  margin-left: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 128
}
f8deb5b9 Poul Sander 2022-01-15 13:55 129
// Carets in other button sizes
f8deb5b9 Poul Sander 2022-01-15 13:55 130
.btn-lg .caret {
f8deb5b9 Poul Sander 2022-01-15 13:55 131
  border-width: @caret-width-large @caret-width-large 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 132
  border-bottom-width: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 133
}
f8deb5b9 Poul Sander 2022-01-15 13:55 134
// Upside down carets for .dropup
f8deb5b9 Poul Sander 2022-01-15 13:55 135
.dropup .btn-lg .caret {
f8deb5b9 Poul Sander 2022-01-15 13:55 136
  border-width: 0 @caret-width-large @caret-width-large;
f8deb5b9 Poul Sander 2022-01-15 13:55 137
}
f8deb5b9 Poul Sander 2022-01-15 13:55 138
f8deb5b9 Poul Sander 2022-01-15 13:55 139
f8deb5b9 Poul Sander 2022-01-15 13:55 140
// Vertical button groups
f8deb5b9 Poul Sander 2022-01-15 13:55 141
// ----------------------
f8deb5b9 Poul Sander 2022-01-15 13:55 142
f8deb5b9 Poul Sander 2022-01-15 13:55 143
.btn-group-vertical {
f8deb5b9 Poul Sander 2022-01-15 13:55 144
  > .btn,
f8deb5b9 Poul Sander 2022-01-15 13:55 145
  > .btn-group,
f8deb5b9 Poul Sander 2022-01-15 13:55 146
  > .btn-group > .btn {
f8deb5b9 Poul Sander 2022-01-15 13:55 147
    display: block;
f8deb5b9 Poul Sander 2022-01-15 13:55 148
    float: none;
f8deb5b9 Poul Sander 2022-01-15 13:55 149
    width: 100%;
f8deb5b9 Poul Sander 2022-01-15 13:55 150
    max-width: 100%;
f8deb5b9 Poul Sander 2022-01-15 13:55 151
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 152
f8deb5b9 Poul Sander 2022-01-15 13:55 153
  // Clear floats so dropdown menus can be properly placed
f8deb5b9 Poul Sander 2022-01-15 13:55 154
  > .btn-group {
f8deb5b9 Poul Sander 2022-01-15 13:55 155
    &:extend(.clearfix all);
f8deb5b9 Poul Sander 2022-01-15 13:55 156
    > .btn {
f8deb5b9 Poul Sander 2022-01-15 13:55 157
      float: none;
f8deb5b9 Poul Sander 2022-01-15 13:55 158
    }
f8deb5b9 Poul Sander 2022-01-15 13:55 159
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 160
f8deb5b9 Poul Sander 2022-01-15 13:55 161
  > .btn + .btn,
f8deb5b9 Poul Sander 2022-01-15 13:55 162
  > .btn + .btn-group,
f8deb5b9 Poul Sander 2022-01-15 13:55 163
  > .btn-group + .btn,
f8deb5b9 Poul Sander 2022-01-15 13:55 164
  > .btn-group + .btn-group {
f8deb5b9 Poul Sander 2022-01-15 13:55 165
    margin-top: -1px;
f8deb5b9 Poul Sander 2022-01-15 13:55 166
    margin-left: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 167
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 168
}
f8deb5b9 Poul Sander 2022-01-15 13:55 169
f8deb5b9 Poul Sander 2022-01-15 13:55 170
.btn-group-vertical > .btn {
f8deb5b9 Poul Sander 2022-01-15 13:55 171
  &:not(:first-child):not(:last-child) {
f8deb5b9 Poul Sander 2022-01-15 13:55 172
    border-radius: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 173
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 174
  &:first-child:not(:last-child) {
f8deb5b9 Poul Sander 2022-01-15 13:55 175
    border-top-right-radius: @border-radius-base;
f8deb5b9 Poul Sander 2022-01-15 13:55 176
    .border-bottom-radius(0);
f8deb5b9 Poul Sander 2022-01-15 13:55 177
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 178
  &:last-child:not(:first-child) {
f8deb5b9 Poul Sander 2022-01-15 13:55 179
    border-bottom-left-radius: @border-radius-base;
f8deb5b9 Poul Sander 2022-01-15 13:55 180
    .border-top-radius(0);
f8deb5b9 Poul Sander 2022-01-15 13:55 181
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 182
}
f8deb5b9 Poul Sander 2022-01-15 13:55 183
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
f8deb5b9 Poul Sander 2022-01-15 13:55 184
  border-radius: 0;
f8deb5b9 Poul Sander 2022-01-15 13:55 185
}
f8deb5b9 Poul Sander 2022-01-15 13:55 186
.btn-group-vertical > .btn-group:first-child:not(:last-child) {
f8deb5b9 Poul Sander 2022-01-15 13:55 187
  > .btn:last-child,
f8deb5b9 Poul Sander 2022-01-15 13:55 188
  > .dropdown-toggle {
f8deb5b9 Poul Sander 2022-01-15 13:55 189
    .border-bottom-radius(0);
f8deb5b9 Poul Sander 2022-01-15 13:55 190
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 191
}
f8deb5b9 Poul Sander 2022-01-15 13:55 192
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
f8deb5b9 Poul Sander 2022-01-15 13:55 193
  .border-top-radius(0);
f8deb5b9 Poul Sander 2022-01-15 13:55 194
}
f8deb5b9 Poul Sander 2022-01-15 13:55 195
f8deb5b9 Poul Sander 2022-01-15 13:55 196
f8deb5b9 Poul Sander 2022-01-15 13:55 197
// Justified button groups
f8deb5b9 Poul Sander 2022-01-15 13:55 198
// ----------------------
f8deb5b9 Poul Sander 2022-01-15 13:55 199
f8deb5b9 Poul Sander 2022-01-15 13:55 200
.btn-group-justified {
f8deb5b9 Poul Sander 2022-01-15 13:55 201
  display: table;
f8deb5b9 Poul Sander 2022-01-15 13:55 202
  width: 100%;
f8deb5b9 Poul Sander 2022-01-15 13:55 203
  table-layout: fixed;
f8deb5b9 Poul Sander 2022-01-15 13:55 204
  border-collapse: separate;
f8deb5b9 Poul Sander 2022-01-15 13:55 205
  > .btn,
f8deb5b9 Poul Sander 2022-01-15 13:55 206
  > .btn-group {
f8deb5b9 Poul Sander 2022-01-15 13:55 207
    float: none;
f8deb5b9 Poul Sander 2022-01-15 13:55 208
    display: table-cell;
f8deb5b9 Poul Sander 2022-01-15 13:55 209
    width: 1%;
f8deb5b9 Poul Sander 2022-01-15 13:55 210
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 211
  > .btn-group .btn {
f8deb5b9 Poul Sander 2022-01-15 13:55 212
    width: 100%;
f8deb5b9 Poul Sander 2022-01-15 13:55 213
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 214
f8deb5b9 Poul Sander 2022-01-15 13:55 215
  > .btn-group .dropdown-menu {
f8deb5b9 Poul Sander 2022-01-15 13:55 216
    left: auto;
f8deb5b9 Poul Sander 2022-01-15 13:55 217
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 218
}
f8deb5b9 Poul Sander 2022-01-15 13:55 219
f8deb5b9 Poul Sander 2022-01-15 13:55 220
f8deb5b9 Poul Sander 2022-01-15 13:55 221
// Checkbox and radio options
f8deb5b9 Poul Sander 2022-01-15 13:55 222
//
f8deb5b9 Poul Sander 2022-01-15 13:55 223
// In order to support the browser's form validation feedback, powered by the
f8deb5b9 Poul Sander 2022-01-15 13:55 224
// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
f8deb5b9 Poul Sander 2022-01-15 13:55 225
// `display: none;` or `visibility: hidden;` as that also hides the popover.
f8deb5b9 Poul Sander 2022-01-15 13:55 226
// Simply visually hiding the inputs via `opacity` would leave them clickable in
f8deb5b9 Poul Sander 2022-01-15 13:55 227
// certain cases which is prevented by using `clip` and `pointer-events`.
f8deb5b9 Poul Sander 2022-01-15 13:55 228
// This way, we ensure a DOM element is visible to position the popover from.
f8deb5b9 Poul Sander 2022-01-15 13:55 229
//
f8deb5b9 Poul Sander 2022-01-15 13:55 230
// See https://github.com/twbs/bootstrap/pull/12794 and
f8deb5b9 Poul Sander 2022-01-15 13:55 231
// https://github.com/twbs/bootstrap/pull/14559 for more information.
f8deb5b9 Poul Sander 2022-01-15 13:55 232
f8deb5b9 Poul Sander 2022-01-15 13:55 233
[data-toggle="buttons"] {
f8deb5b9 Poul Sander 2022-01-15 13:55 234
  > .btn,
f8deb5b9 Poul Sander 2022-01-15 13:55 235
  > .btn-group > .btn {
f8deb5b9 Poul Sander 2022-01-15 13:55 236
    input[type="radio"],
f8deb5b9 Poul Sander 2022-01-15 13:55 237
    input[type="checkbox"] {
f8deb5b9 Poul Sander 2022-01-15 13:55 238
      position: absolute;
f8deb5b9 Poul Sander 2022-01-15 13:55 239
      clip: rect(0,0,0,0);
f8deb5b9 Poul Sander 2022-01-15 13:55 240
      pointer-events: none;
f8deb5b9 Poul Sander 2022-01-15 13:55 241
    }
f8deb5b9 Poul Sander 2022-01-15 13:55 242
  }
f8deb5b9 Poul Sander 2022-01-15 13:55 243
}
1970-01-01 00:00 244