jekyll-theme-bootstrap 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }