jekyll-theme-bootstrap 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -20
  3. data/_layouts/default.html +4 -3
  4. data/_sass/_bootstrap-compass.scss +9 -0
  5. data/_sass/_bootstrap-mincer.scss +19 -0
  6. data/_sass/_bootstrap-sprockets.scss +9 -0
  7. data/_sass/_bootstrap.scss +56 -0
  8. data/_sass/bootstrap/_alerts.scss +73 -0
  9. data/_sass/bootstrap/_badges.scss +68 -0
  10. data/_sass/bootstrap/_breadcrumbs.scss +28 -0
  11. data/_sass/bootstrap/_button-groups.scss +244 -0
  12. data/_sass/bootstrap/_buttons.scss +168 -0
  13. data/_sass/bootstrap/_carousel.scss +270 -0
  14. data/_sass/bootstrap/_close.scss +36 -0
  15. data/_sass/bootstrap/_code.scss +69 -0
  16. data/_sass/bootstrap/_component-animations.scss +37 -0
  17. data/_sass/bootstrap/_dropdowns.scss +216 -0
  18. data/_sass/bootstrap/_forms.scss +617 -0
  19. data/_sass/bootstrap/_glyphicons.scss +307 -0
  20. data/_sass/bootstrap/_grid.scss +84 -0
  21. data/_sass/bootstrap/_input-groups.scss +171 -0
  22. data/_sass/bootstrap/_jumbotron.scss +54 -0
  23. data/_sass/bootstrap/_labels.scss +66 -0
  24. data/_sass/bootstrap/_list-group.scss +130 -0
  25. data/_sass/bootstrap/_media.scss +66 -0
  26. data/_sass/bootstrap/_mixins.scss +40 -0
  27. data/_sass/bootstrap/_modals.scss +150 -0
  28. data/_sass/bootstrap/_navbar.scss +662 -0
  29. data/_sass/bootstrap/_navs.scss +242 -0
  30. data/_sass/bootstrap/_normalize.scss +424 -0
  31. data/_sass/bootstrap/_pager.scss +54 -0
  32. data/_sass/bootstrap/_pagination.scss +89 -0
  33. data/_sass/bootstrap/_panels.scss +271 -0
  34. data/_sass/bootstrap/_popovers.scss +131 -0
  35. data/_sass/bootstrap/_print.scss +101 -0
  36. data/_sass/bootstrap/_progress-bars.scss +87 -0
  37. data/_sass/bootstrap/_responsive-embed.scss +35 -0
  38. data/_sass/bootstrap/_responsive-utilities.scss +179 -0
  39. data/_sass/bootstrap/_scaffolding.scss +161 -0
  40. data/_sass/bootstrap/_tables.scss +234 -0
  41. data/_sass/bootstrap/_theme.scss +291 -0
  42. data/_sass/bootstrap/_thumbnails.scss +38 -0
  43. data/_sass/bootstrap/_tooltip.scss +101 -0
  44. data/_sass/bootstrap/_type.scss +298 -0
  45. data/_sass/bootstrap/_utilities.scss +55 -0
  46. data/_sass/bootstrap/_variables.scss +874 -0
  47. data/_sass/bootstrap/_wells.scss +29 -0
  48. data/_sass/bootstrap/mixins/_alerts.scss +14 -0
  49. data/_sass/bootstrap/mixins/_background-variant.scss +12 -0
  50. data/_sass/bootstrap/mixins/_border-radius.scss +18 -0
  51. data/_sass/bootstrap/mixins/_buttons.scss +65 -0
  52. data/_sass/bootstrap/mixins/_center-block.scss +7 -0
  53. data/_sass/bootstrap/mixins/_clearfix.scss +22 -0
  54. data/_sass/bootstrap/mixins/_forms.scss +88 -0
  55. data/_sass/bootstrap/mixins/_gradients.scss +58 -0
  56. data/_sass/bootstrap/mixins/_grid-framework.scss +81 -0
  57. data/_sass/bootstrap/mixins/_grid.scss +122 -0
  58. data/_sass/bootstrap/mixins/_hide-text.scss +21 -0
  59. data/_sass/bootstrap/mixins/_image.scss +33 -0
  60. data/_sass/bootstrap/mixins/_labels.scss +12 -0
  61. data/_sass/bootstrap/mixins/_list-group.scss +32 -0
  62. data/_sass/bootstrap/mixins/_nav-divider.scss +10 -0
  63. data/_sass/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  64. data/_sass/bootstrap/mixins/_opacity.scss +8 -0
  65. data/_sass/bootstrap/mixins/_pagination.scss +24 -0
  66. data/_sass/bootstrap/mixins/_panels.scss +24 -0
  67. data/_sass/bootstrap/mixins/_progress-bar.scss +10 -0
  68. data/_sass/bootstrap/mixins/_reset-filter.scss +8 -0
  69. data/_sass/bootstrap/mixins/_reset-text.scss +18 -0
  70. data/_sass/bootstrap/mixins/_resize.scss +6 -0
  71. data/_sass/bootstrap/mixins/_responsive-visibility.scss +21 -0
  72. data/_sass/bootstrap/mixins/_size.scss +10 -0
  73. data/_sass/bootstrap/mixins/_tab-focus.scss +9 -0
  74. data/_sass/bootstrap/mixins/_table-row.scss +28 -0
  75. data/_sass/bootstrap/mixins/_text-emphasis.scss +12 -0
  76. data/_sass/bootstrap/mixins/_text-overflow.scss +8 -0
  77. data/_sass/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  78. data/assets/css/bootstrap.scss +6 -0
  79. data/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  80. data/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
  81. data/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  82. data/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  83. data/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  84. data/assets/images/.keep +0 -0
  85. metadata +97 -4
  86. data/assets/css/bootstrap.min.css +0 -6
  87. data/assets/css/bootstrap.min.css.map +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c8ca0bb990983a41e0cb3ca908a2705049f70eb
4
- data.tar.gz: 328e58e1888e09074172c92a41eb43c6abf9af3e
3
+ metadata.gz: c846ffffe0f7b980f5ff20a32987a1749ce91377
4
+ data.tar.gz: 5d39e4233f5f14221d86d4f1b1cb5253ec04dcd6
5
5
  SHA512:
6
- metadata.gz: d5a988537c7813a13e07a4d15e752b5ad8a6af1ef0ec1248d678f40a6da0d88902a09af7e92fe18ac1b92896a2ea716ffde31ef7baf96e3d3b923a1b7aca0c0b
7
- data.tar.gz: d2abe94eb33f71493b68e4b7f4e224c21daf8ea13ff2b054836e3eaf236ea9fbe808c951a8a67ddc1db43c15e740b0eebcd7603716748cc9d01eecc344017462
6
+ metadata.gz: aad6d37d1a64fa237a69a95f96389cb93d8bf7ee32e2ef15487c70a2ad1923f3cf9164343d50b2d588e01a9165303fc2316f2f43868900c9572eef850ab8eeac
7
+ data.tar.gz: 4aed494de733a030d3de0461b820688ce4228eb93478b94e21c00f20391e2b501b07e8de18eab976a6ee4dc908c9aca93691313be8e3baa31f8fa39d07580bb4
data/README.md CHANGED
@@ -1,40 +1,41 @@
1
- # Jekyll::Theme::Bootstrap
1
+ # Jekyll Bootstrap Theme
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/jekyll/theme/bootstrap`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ [![Build Status](https://travis-ci.org/matrixfox/jekyll-theme-bootstrap.svg?branch=master)](https://travis-ci.org/matrixfox/jekyll-theme-bootstrap) [![Gem Version](https://badge.fury.io/rb/jekyll-theme-bootstrap.svg)](https://badge.fury.io/rb/jekyll-theme-bootstrap)
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ Jekyll Bootstrap Theme is the best of both worlds. Combing the power of Jekyll with Bootstrap. You may use the default template, or make your own.
6
6
 
7
- ## Installation
8
-
9
- Add this line to your application's Gemfile:
10
-
11
- ```ruby
12
- gem 'jekyll-theme-bootstrap'
13
- ```
7
+ ## Usage
14
8
 
15
- And then execute:
9
+ To start using the Bootstrap Jekyll Theme:
16
10
 
17
- $ bundle
11
+ 1. Add the following to your site's `_config.yml`:
18
12
 
19
- Or install it yourself as:
13
+ ```yml
14
+ theme: jekyll-theme-bootstrap
15
+ ```
20
16
 
21
- $ gem install jekyll-theme-bootstrap
17
+ 2. Optionally, add the following to your site's `Gemfile`:
22
18
 
23
- ## Usage
24
-
25
- TODO: Write usage instructions here
19
+ ```ruby
20
+ gem "github-pages", group: :jekyll_plugins
21
+ ```
26
22
 
27
23
  ## Development
28
24
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
25
+ If you'd like to preview the theme locally (for example, in the process of proposing a change):
26
+
27
+ 1. Clone down the theme's repository (`git clone https://github.com/matrixfox/jekyll-theme-bootstrap`)
28
+ 2. `cd` into the theme's directory
29
+ 3. Run `script/bootstrap` to install the necessary dependencies
30
+ 4. Run `bundle exec jekyll serve` to start the preview server
31
+ 5. Visit [`localhost:4000`](http://localhost:4000) in your browser to preview the theme
30
32
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
33
+ The theme contains a minimal test suite, to ensure a site with the theme would build successfully. To run the tests, simply run `script/cibuild`. You'll need to run `script/bootstrap` one before the test script will work.
32
34
 
33
35
  ## Contributing
34
36
 
35
37
  Bug reports and pull requests are welcome on GitHub at https://github.com/matrixfox/jekyll-theme-bootstrap. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
36
38
 
37
-
38
39
  ## License
39
40
 
40
41
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -2,14 +2,15 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <meta content="IE=edge" http-equiv="X-UA-Compatible">
6
- <meta content="width=device-width, initial-scale=1.0" name="viewport">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
7
  <title>{{ site.title }}</title>
8
8
  <!-- Bootstrap Latest compiled and minified CSS -->
9
- <link rel="stylesheet" href="/assets/css/bootstrap.min.css" type="text/css">
9
+ <link rel="stylesheet" href="/assets/css/bootstrap.css" type="text/css">
10
10
  <!-- Jekyll Theme Bootstrap Stylesheet -->
11
11
  <link rel="stylesheet" href="/assets/css/style.css" type="text/css">
12
12
  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
13
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
13
14
  <!--[if lt IE 9]>
14
15
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
15
16
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
@@ -0,0 +1,9 @@
1
+ @function twbs-font-path($path) {
2
+ @return font-url($path, true);
3
+ }
4
+
5
+ @function twbs-image-path($path) {
6
+ @return image-url($path, true);
7
+ }
8
+
9
+ $bootstrap-sass-asset-helper: true;
@@ -0,0 +1,19 @@
1
+ // Mincer asset helper functions
2
+ //
3
+ // This must be imported into a .css.ejs.scss file.
4
+ // Then, <% %>-interpolations will be parsed as strings by Sass, and evaluated by EJS after Sass compilation.
5
+
6
+
7
+ @function twbs-font-path($path) {
8
+ // do something like following
9
+ // from "path/to/font.ext#suffix" to "<%- asset_path(path/to/font.ext)) + #suffix %>"
10
+ // from "path/to/font.ext?#suffix" to "<%- asset_path(path/to/font.ext)) + ?#suffix %>"
11
+ // or from "path/to/font.ext" just "<%- asset_path(path/to/font.ext)) %>"
12
+ @return "<%- asset_path("#{$path}".replace(/[#?].*$/, '')) + "#{$path}".replace(/(^[^#?]*)([#?]?.*$)/, '$2') %>";
13
+ }
14
+
15
+ @function twbs-image-path($file) {
16
+ @return "<%- asset_path("#{$file}") %>";
17
+ }
18
+
19
+ $bootstrap-sass-asset-helper: true;
@@ -0,0 +1,9 @@
1
+ @function twbs-font-path($path) {
2
+ @return font-path($path);
3
+ }
4
+
5
+ @function twbs-image-path($path) {
6
+ @return image-path($path);
7
+ }
8
+
9
+ $bootstrap-sass-asset-helper: false;
@@ -0,0 +1,56 @@
1
+ /*!
2
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
3
+ * Copyright 2011-2016 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+
7
+ // Core variables and mixins
8
+ @import "bootstrap/variables";
9
+ @import "bootstrap/mixins";
10
+
11
+ // Reset and dependencies
12
+ @import "bootstrap/normalize";
13
+ @import "bootstrap/print";
14
+ @import "bootstrap/glyphicons";
15
+
16
+ // Core CSS
17
+ @import "bootstrap/scaffolding";
18
+ @import "bootstrap/type";
19
+ @import "bootstrap/code";
20
+ @import "bootstrap/grid";
21
+ @import "bootstrap/tables";
22
+ @import "bootstrap/forms";
23
+ @import "bootstrap/buttons";
24
+
25
+ // Components
26
+ @import "bootstrap/component-animations";
27
+ @import "bootstrap/dropdowns";
28
+ @import "bootstrap/button-groups";
29
+ @import "bootstrap/input-groups";
30
+ @import "bootstrap/navs";
31
+ @import "bootstrap/navbar";
32
+ @import "bootstrap/breadcrumbs";
33
+ @import "bootstrap/pagination";
34
+ @import "bootstrap/pager";
35
+ @import "bootstrap/labels";
36
+ @import "bootstrap/badges";
37
+ @import "bootstrap/jumbotron";
38
+ @import "bootstrap/thumbnails";
39
+ @import "bootstrap/alerts";
40
+ @import "bootstrap/progress-bars";
41
+ @import "bootstrap/media";
42
+ @import "bootstrap/list-group";
43
+ @import "bootstrap/panels";
44
+ @import "bootstrap/responsive-embed";
45
+ @import "bootstrap/wells";
46
+ @import "bootstrap/close";
47
+
48
+ // Components w/ JavaScript
49
+ @import "bootstrap/modals";
50
+ @import "bootstrap/tooltip";
51
+ @import "bootstrap/popovers";
52
+ @import "bootstrap/carousel";
53
+
54
+ // Utility classes
55
+ @import "bootstrap/utilities";
56
+ @import "bootstrap/responsive-utilities";
@@ -0,0 +1,73 @@
1
+ //
2
+ // Alerts
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Base styles
7
+ // -------------------------
8
+
9
+ .alert {
10
+ padding: $alert-padding;
11
+ margin-bottom: $line-height-computed;
12
+ border: 1px solid transparent;
13
+ border-radius: $alert-border-radius;
14
+
15
+ // Headings for larger alerts
16
+ h4 {
17
+ margin-top: 0;
18
+ // Specified for the h4 to prevent conflicts of changing $headings-color
19
+ color: inherit;
20
+ }
21
+
22
+ // Provide class for links that match alerts
23
+ .alert-link {
24
+ font-weight: $alert-link-font-weight;
25
+ }
26
+
27
+ // Improve alignment and spacing of inner content
28
+ > p,
29
+ > ul {
30
+ margin-bottom: 0;
31
+ }
32
+
33
+ > p + p {
34
+ margin-top: 5px;
35
+ }
36
+ }
37
+
38
+ // Dismissible alerts
39
+ //
40
+ // Expand the right padding and account for the close button's positioning.
41
+
42
+ .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
43
+ .alert-dismissible {
44
+ padding-right: ($alert-padding + 20);
45
+
46
+ // Adjust close link position
47
+ .close {
48
+ position: relative;
49
+ top: -2px;
50
+ right: -21px;
51
+ color: inherit;
52
+ }
53
+ }
54
+
55
+ // Alternate styles
56
+ //
57
+ // Generate contextual modifier classes for colorizing the alert.
58
+
59
+ .alert-success {
60
+ @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
61
+ }
62
+
63
+ .alert-info {
64
+ @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
65
+ }
66
+
67
+ .alert-warning {
68
+ @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
69
+ }
70
+
71
+ .alert-danger {
72
+ @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
73
+ }
@@ -0,0 +1,68 @@
1
+ //
2
+ // Badges
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Base class
7
+ .badge {
8
+ display: inline-block;
9
+ min-width: 10px;
10
+ padding: 3px 7px;
11
+ font-size: $font-size-small;
12
+ font-weight: $badge-font-weight;
13
+ color: $badge-color;
14
+ line-height: $badge-line-height;
15
+ vertical-align: middle;
16
+ white-space: nowrap;
17
+ text-align: center;
18
+ background-color: $badge-bg;
19
+ border-radius: $badge-border-radius;
20
+
21
+ // Empty badges collapse automatically (not available in IE8)
22
+ &:empty {
23
+ display: none;
24
+ }
25
+
26
+ // Quick fix for badges in buttons
27
+ .btn & {
28
+ position: relative;
29
+ top: -1px;
30
+ }
31
+
32
+ .btn-xs &,
33
+ .btn-group-xs > .btn & {
34
+ top: 0;
35
+ padding: 1px 5px;
36
+ }
37
+
38
+ // [converter] extracted a& to a.badge
39
+
40
+ // Account for badges in navs
41
+ .list-group-item.active > &,
42
+ .nav-pills > .active > a > & {
43
+ color: $badge-active-color;
44
+ background-color: $badge-active-bg;
45
+ }
46
+
47
+ .list-group-item > & {
48
+ float: right;
49
+ }
50
+
51
+ .list-group-item > & + & {
52
+ margin-right: 5px;
53
+ }
54
+
55
+ .nav-pills > li > a > & {
56
+ margin-left: 3px;
57
+ }
58
+ }
59
+
60
+ // Hover state, but only for links
61
+ a.badge {
62
+ &:hover,
63
+ &:focus {
64
+ color: $badge-link-hover-color;
65
+ text-decoration: none;
66
+ cursor: pointer;
67
+ }
68
+ }
@@ -0,0 +1,28 @@
1
+ //
2
+ // Breadcrumbs
3
+ // --------------------------------------------------
4
+
5
+
6
+ .breadcrumb {
7
+ padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
8
+ margin-bottom: $line-height-computed;
9
+ list-style: none;
10
+ background-color: $breadcrumb-bg;
11
+ border-radius: $border-radius-base;
12
+
13
+ > li {
14
+ display: inline-block;
15
+
16
+ + li:before {
17
+ // [converter] Workaround for https://github.com/sass/libsass/issues/1115
18
+ $nbsp: "\00a0";
19
+ content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space
20
+ padding: 0 5px;
21
+ color: $breadcrumb-color;
22
+ }
23
+ }
24
+
25
+ > .active {
26
+ color: $breadcrumb-active-color;
27
+ }
28
+ }
@@ -0,0 +1,244 @@
1
+ //
2
+ // Button groups
3
+ // --------------------------------------------------
4
+
5
+ // Make the div behave like a button
6
+ .btn-group,
7
+ .btn-group-vertical {
8
+ position: relative;
9
+ display: inline-block;
10
+ vertical-align: middle; // match .btn alignment given font-size hack above
11
+ > .btn {
12
+ position: relative;
13
+ float: left;
14
+ // Bring the "active" button to the front
15
+ &:hover,
16
+ &:focus,
17
+ &:active,
18
+ &.active {
19
+ z-index: 2;
20
+ }
21
+ }
22
+ }
23
+
24
+ // Prevent double borders when buttons are next to each other
25
+ .btn-group {
26
+ .btn + .btn,
27
+ .btn + .btn-group,
28
+ .btn-group + .btn,
29
+ .btn-group + .btn-group {
30
+ margin-left: -1px;
31
+ }
32
+ }
33
+
34
+ // Optional: Group multiple button groups together for a toolbar
35
+ .btn-toolbar {
36
+ margin-left: -5px; // Offset the first child's margin
37
+ @include clearfix;
38
+
39
+ .btn,
40
+ .btn-group,
41
+ .input-group {
42
+ float: left;
43
+ }
44
+ > .btn,
45
+ > .btn-group,
46
+ > .input-group {
47
+ margin-left: 5px;
48
+ }
49
+ }
50
+
51
+ .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
52
+ border-radius: 0;
53
+ }
54
+
55
+ // 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
56
+ .btn-group > .btn:first-child {
57
+ margin-left: 0;
58
+ &:not(:last-child):not(.dropdown-toggle) {
59
+ @include border-right-radius(0);
60
+ }
61
+ }
62
+ // Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it
63
+ .btn-group > .btn:last-child:not(:first-child),
64
+ .btn-group > .dropdown-toggle:not(:first-child) {
65
+ @include border-left-radius(0);
66
+ }
67
+
68
+ // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
69
+ .btn-group > .btn-group {
70
+ float: left;
71
+ }
72
+ .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
73
+ border-radius: 0;
74
+ }
75
+ .btn-group > .btn-group:first-child:not(:last-child) {
76
+ > .btn:last-child,
77
+ > .dropdown-toggle {
78
+ @include border-right-radius(0);
79
+ }
80
+ }
81
+ .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
82
+ @include border-left-radius(0);
83
+ }
84
+
85
+ // On active and open, don't show outline
86
+ .btn-group .dropdown-toggle:active,
87
+ .btn-group.open .dropdown-toggle {
88
+ outline: 0;
89
+ }
90
+
91
+
92
+ // Sizing
93
+ //
94
+ // Remix the default button sizing classes into new ones for easier manipulation.
95
+
96
+ .btn-group-xs > .btn { @extend .btn-xs; }
97
+ .btn-group-sm > .btn { @extend .btn-sm; }
98
+ .btn-group-lg > .btn { @extend .btn-lg; }
99
+
100
+
101
+ // Split button dropdowns
102
+ // ----------------------
103
+
104
+ // Give the line between buttons some depth
105
+ .btn-group > .btn + .dropdown-toggle {
106
+ padding-left: 8px;
107
+ padding-right: 8px;
108
+ }
109
+ .btn-group > .btn-lg + .dropdown-toggle {
110
+ padding-left: 12px;
111
+ padding-right: 12px;
112
+ }
113
+
114
+ // The clickable button for toggling the menu
115
+ // Remove the gradient and set the same inset shadow as the :active state
116
+ .btn-group.open .dropdown-toggle {
117
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
118
+
119
+ // Show no shadow for `.btn-link` since it has no other button styles.
120
+ &.btn-link {
121
+ @include box-shadow(none);
122
+ }
123
+ }
124
+
125
+
126
+ // Reposition the caret
127
+ .btn .caret {
128
+ margin-left: 0;
129
+ }
130
+ // Carets in other button sizes
131
+ .btn-lg .caret {
132
+ border-width: $caret-width-large $caret-width-large 0;
133
+ border-bottom-width: 0;
134
+ }
135
+ // Upside down carets for .dropup
136
+ .dropup .btn-lg .caret {
137
+ border-width: 0 $caret-width-large $caret-width-large;
138
+ }
139
+
140
+
141
+ // Vertical button groups
142
+ // ----------------------
143
+
144
+ .btn-group-vertical {
145
+ > .btn,
146
+ > .btn-group,
147
+ > .btn-group > .btn {
148
+ display: block;
149
+ float: none;
150
+ width: 100%;
151
+ max-width: 100%;
152
+ }
153
+
154
+ // Clear floats so dropdown menus can be properly placed
155
+ > .btn-group {
156
+ @include clearfix;
157
+ > .btn {
158
+ float: none;
159
+ }
160
+ }
161
+
162
+ > .btn + .btn,
163
+ > .btn + .btn-group,
164
+ > .btn-group + .btn,
165
+ > .btn-group + .btn-group {
166
+ margin-top: -1px;
167
+ margin-left: 0;
168
+ }
169
+ }
170
+
171
+ .btn-group-vertical > .btn {
172
+ &:not(:first-child):not(:last-child) {
173
+ border-radius: 0;
174
+ }
175
+ &:first-child:not(:last-child) {
176
+ @include border-top-radius($btn-border-radius-base);
177
+ @include border-bottom-radius(0);
178
+ }
179
+ &:last-child:not(:first-child) {
180
+ @include border-top-radius(0);
181
+ @include border-bottom-radius($btn-border-radius-base);
182
+ }
183
+ }
184
+ .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
185
+ border-radius: 0;
186
+ }
187
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) {
188
+ > .btn:last-child,
189
+ > .dropdown-toggle {
190
+ @include border-bottom-radius(0);
191
+ }
192
+ }
193
+ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
194
+ @include border-top-radius(0);
195
+ }
196
+
197
+
198
+ // Justified button groups
199
+ // ----------------------
200
+
201
+ .btn-group-justified {
202
+ display: table;
203
+ width: 100%;
204
+ table-layout: fixed;
205
+ border-collapse: separate;
206
+ > .btn,
207
+ > .btn-group {
208
+ float: none;
209
+ display: table-cell;
210
+ width: 1%;
211
+ }
212
+ > .btn-group .btn {
213
+ width: 100%;
214
+ }
215
+
216
+ > .btn-group .dropdown-menu {
217
+ left: auto;
218
+ }
219
+ }
220
+
221
+
222
+ // Checkbox and radio options
223
+ //
224
+ // In order to support the browser's form validation feedback, powered by the
225
+ // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
226
+ // `display: none;` or `visibility: hidden;` as that also hides the popover.
227
+ // Simply visually hiding the inputs via `opacity` would leave them clickable in
228
+ // certain cases which is prevented by using `clip` and `pointer-events`.
229
+ // This way, we ensure a DOM element is visible to position the popover from.
230
+ //
231
+ // See https://github.com/twbs/bootstrap/pull/12794 and
232
+ // https://github.com/twbs/bootstrap/pull/14559 for more information.
233
+
234
+ [data-toggle="buttons"] {
235
+ > .btn,
236
+ > .btn-group > .btn {
237
+ input[type="radio"],
238
+ input[type="checkbox"] {
239
+ position: absolute;
240
+ clip: rect(0,0,0,0);
241
+ pointer-events: none;
242
+ }
243
+ }
244
+ }