jumbo-jekyll-theme 5.6.9.4 → 5.7.0

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 (317) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +202 -21
  3. data/README.md +10 -10
  4. data/_config.yml +146 -213
  5. data/_data/footer.yml +31 -33
  6. data/_data/nav.yml +73 -17
  7. data/_data/picture.yml +136 -0
  8. data/_data/settings.yml +97 -103
  9. data/_data/tags.yml +11 -11
  10. data/_data/universal_nav.yml +22 -0
  11. data/_includes/blog/authors_posts.html +37 -0
  12. data/_includes/blog/blog_filler_element.html +21 -0
  13. data/_includes/blog/display_blog_posts.html +126 -0
  14. data/_includes/{disqus-comments.html → blog/disqus_comments.html} +0 -0
  15. data/_includes/{latest-posts.html → blog/latest_posts.html} +0 -0
  16. data/_includes/blog/pagination.html +37 -0
  17. data/_includes/{post-series.html → blog/post_series.html} +0 -0
  18. data/_includes/blog/post_sidebar.html +81 -0
  19. data/_includes/{post-tags.html → blog/post_tags.html} +0 -0
  20. data/_includes/{read_time.html → blog/read_time.html} +0 -0
  21. data/_includes/components/breadcrumb.html +40 -0
  22. data/_includes/{carousel-header.html → components/carousel_header.html} +0 -0
  23. data/_includes/components/cookie_manager.html +80 -0
  24. data/_includes/components/css.html +8 -0
  25. data/_includes/{github-edit.html → components/github_edit.html} +0 -0
  26. data/_includes/components/head.html +60 -0
  27. data/_includes/components/http2.html +57 -0
  28. data/_includes/components/javascript.html +10 -0
  29. data/_includes/components/jumbotron.html +80 -0
  30. data/_includes/{linaro-404.html → components/linaro_404.html} +16 -19
  31. data/_includes/{schema.html → components/schema.html} +43 -43
  32. data/_includes/{sidebar.html → components/sidebar.html} +0 -0
  33. data/_includes/examples/custom_include.html +10 -0
  34. data/_includes/{custom_include_row.html → examples/custom_include_row.html} +562 -562
  35. data/_includes/flow/blocks.html +44 -0
  36. data/_includes/{core → flow}/button.html +5 -5
  37. data/_includes/flow/buttons.html +5 -0
  38. data/_includes/{core → flow}/call-to-action-banner.html +0 -0
  39. data/_includes/flow/container_row.html +11 -0
  40. data/_includes/flow/feature_block.html +41 -0
  41. data/_includes/flow/flow_inner.html +25 -0
  42. data/_includes/{core → flow}/full_width_row.html +5 -5
  43. data/_includes/{core → flow}/members-section.html +24 -32
  44. data/_includes/{core → flow}/slider.html +25 -33
  45. data/_includes/flow/slider_row.html +3 -0
  46. data/_includes/flow/tabbed_content.html +21 -0
  47. data/_includes/flow/text.html +3 -0
  48. data/_includes/flow/title.html +3 -0
  49. data/_includes/footer/footer.html +73 -0
  50. data/_includes/image.html +5 -6
  51. data/_includes/js_bundles/app.html +5 -0
  52. data/_includes/js_bundles/vendor.html +13 -0
  53. data/_includes/nav/brand.html +3 -0
  54. data/_includes/nav/nav.html +133 -0
  55. data/_includes/nav/universal_nav.html +36 -0
  56. data/_includes/{social-media-icons.html → social_media_icons.html} +0 -0
  57. data/_includes/youtube.html +74 -6
  58. data/_layouts/author.html +62 -6
  59. data/_layouts/base.html +6 -8
  60. data/_layouts/default.html +3 -3
  61. data/_layouts/error.html +25 -25
  62. data/_layouts/flow.html +33 -36
  63. data/_layouts/post-index.html +17 -16
  64. data/_layouts/post.html +55 -39
  65. data/_sass/app/blog.scss +0 -22
  66. data/_sass/app/overrides.scss +121 -66
  67. data/_sass/app/search.scss +51 -51
  68. data/_sass/blog.scss +1 -1
  69. data/_sass/bootstrap/_alert.scss +51 -0
  70. data/_sass/bootstrap/_badge.scss +47 -0
  71. data/_sass/bootstrap/_breadcrumb.scss +41 -0
  72. data/_sass/bootstrap/_button-group.scss +172 -0
  73. data/_sass/bootstrap/_buttons.scss +75 -100
  74. data/_sass/bootstrap/_card.scss +301 -0
  75. data/_sass/bootstrap/_carousel.scss +161 -195
  76. data/_sass/bootstrap/_close.scss +15 -16
  77. data/_sass/bootstrap/_code.scss +15 -36
  78. data/_sass/bootstrap/_custom-forms.scss +433 -0
  79. data/_sass/bootstrap/_dropdown.scss +166 -0
  80. data/_sass/bootstrap/_forms.scss +213 -497
  81. data/_sass/bootstrap/_functions.scss +86 -0
  82. data/_sass/bootstrap/_grid.scss +29 -61
  83. data/_sass/bootstrap/_images.scss +42 -0
  84. data/_sass/bootstrap/_input-group.scss +173 -0
  85. data/_sass/bootstrap/_jumbotron.scss +9 -47
  86. data/_sass/bootstrap/_list-group.scss +64 -79
  87. data/_sass/bootstrap/_media.scss +3 -61
  88. data/_sass/bootstrap/_mixins.scss +19 -18
  89. data/_sass/bootstrap/_modal.scss +180 -0
  90. data/_sass/bootstrap/_nav.scss +118 -0
  91. data/_sass/bootstrap/_navbar.scss +192 -555
  92. data/_sass/bootstrap/_pagination.scss +59 -70
  93. data/_sass/bootstrap/_popover.scss +183 -0
  94. data/_sass/bootstrap/_print.scss +89 -49
  95. data/_sass/bootstrap/_progress.scss +34 -0
  96. data/_sass/bootstrap/_reboot.scss +483 -0
  97. data/_sass/bootstrap/_root.scss +19 -0
  98. data/_sass/bootstrap/_tables.scss +119 -166
  99. data/_sass/bootstrap/_tooltip.scss +93 -79
  100. data/_sass/bootstrap/_transitions.scss +22 -0
  101. data/_sass/bootstrap/_type.scss +66 -239
  102. data/_sass/bootstrap/_utilities.scss +15 -55
  103. data/_sass/bootstrap/_variables.scss +952 -932
  104. data/_sass/bootstrap/bootstrap-grid.scss +32 -0
  105. data/_sass/bootstrap/bootstrap-reboot.scss +12 -0
  106. data/_sass/bootstrap/bootstrap.scss +42 -0
  107. data/_sass/bootstrap/mixins/_alert.scss +13 -0
  108. data/_sass/bootstrap/mixins/_background-variant.scss +14 -5
  109. data/_sass/bootstrap/mixins/_badge.scss +12 -0
  110. data/_sass/bootstrap/mixins/_border-radius.scss +25 -8
  111. data/_sass/bootstrap/mixins/_box-shadow.scss +5 -0
  112. data/_sass/bootstrap/mixins/_breakpoints.scss +123 -0
  113. data/_sass/bootstrap/mixins/_buttons.scss +84 -40
  114. data/_sass/bootstrap/mixins/_caret.scss +66 -0
  115. data/_sass/bootstrap/mixins/_clearfix.scss +3 -18
  116. data/_sass/bootstrap/mixins/_float.scss +11 -0
  117. data/_sass/bootstrap/mixins/_forms.scss +125 -66
  118. data/_sass/bootstrap/mixins/_gradients.scss +17 -30
  119. data/_sass/bootstrap/mixins/_grid-framework.scss +52 -66
  120. data/_sass/bootstrap/mixins/_grid.scss +37 -107
  121. data/_sass/bootstrap/mixins/_hover.scss +37 -0
  122. data/_sass/bootstrap/mixins/_image.scss +18 -15
  123. data/_sass/bootstrap/mixins/_list-group.scss +10 -21
  124. data/_sass/bootstrap/mixins/_lists.scss +7 -0
  125. data/_sass/bootstrap/mixins/_nav-divider.scss +4 -4
  126. data/_sass/bootstrap/mixins/_pagination.scss +10 -12
  127. data/_sass/bootstrap/mixins/_reset-text.scss +7 -8
  128. data/_sass/bootstrap/mixins/_resize.scss +1 -1
  129. data/_sass/bootstrap/mixins/_screen-reader.scss +33 -0
  130. data/_sass/bootstrap/mixins/_size.scss +1 -5
  131. data/_sass/bootstrap/mixins/_table-row.scss +16 -14
  132. data/_sass/bootstrap/mixins/_text-emphasis.scss +7 -5
  133. data/_sass/bootstrap/mixins/_text-hide.scss +13 -0
  134. data/_sass/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
  135. data/_sass/bootstrap/mixins/_transition.scss +13 -0
  136. data/_sass/bootstrap/mixins/_visibility.scss +7 -0
  137. data/_sass/bootstrap/utilities/_align.scss +8 -0
  138. data/_sass/bootstrap/utilities/_background.scss +19 -0
  139. data/_sass/bootstrap/utilities/_borders.scss +59 -0
  140. data/_sass/bootstrap/utilities/_clearfix.scss +3 -0
  141. data/_sass/bootstrap/utilities/_display.scss +38 -0
  142. data/_sass/bootstrap/{_responsive-embed.scss → utilities/_embed.scss} +26 -9
  143. data/_sass/bootstrap/utilities/_flex.scss +51 -0
  144. data/_sass/bootstrap/utilities/_float.scss +9 -0
  145. data/_sass/bootstrap/utilities/_position.scss +37 -0
  146. data/_sass/bootstrap/utilities/_screenreaders.scss +11 -0
  147. data/_sass/bootstrap/utilities/_shadows.scss +6 -0
  148. data/_sass/bootstrap/utilities/_sizing.scss +12 -0
  149. data/_sass/bootstrap/utilities/_spacing.scss +51 -0
  150. data/_sass/bootstrap/utilities/_text.scss +58 -0
  151. data/_sass/bootstrap/utilities/_visibility.scss +11 -0
  152. data/_sass/core.scss +15 -20
  153. data/_sass/core/blog.scss +126 -426
  154. data/_sass/core/breadcrumb.scss +16 -96
  155. data/_sass/core/carousel-header.scss +91 -91
  156. data/_sass/core/carousel.scss +7 -8
  157. data/_sass/core/cookies.scss +194 -0
  158. data/_sass/core/error.scss +190 -190
  159. data/_sass/core/flow.scss +71 -186
  160. data/_sass/core/fontello.scss +156 -0
  161. data/_sass/core/footer.scss +69 -142
  162. data/_sass/core/jumbotron.scss +90 -279
  163. data/_sass/core/navbar.scss +233 -0
  164. data/_sass/core/normalize.scss +357 -357
  165. data/_sass/core/theme.scss +40 -918
  166. data/assets/css/main-blog.scss +15 -14
  167. data/assets/css/main-error.scss +14 -13
  168. data/assets/css/main-search.scss +4 -3
  169. data/assets/css/main.scss +12 -11
  170. data/assets/fonts/fontello/fontello.eot +0 -0
  171. data/assets/fonts/fontello/fontello.svg +82 -0
  172. data/assets/fonts/fontello/fontello.ttf +0 -0
  173. data/assets/fonts/fontello/fontello.woff +0 -0
  174. data/assets/fonts/fontello/fontello.woff2 +0 -0
  175. data/assets/fonts/{lato-regular → lato}/LICENSE.txt +0 -0
  176. data/assets/fonts/{lato-regular → lato}/Lato-regular.eot +0 -0
  177. data/assets/fonts/{lato-regular → lato}/Lato-regular.svg +0 -0
  178. data/assets/fonts/{lato-regular → lato}/Lato-regular.ttf +0 -0
  179. data/assets/fonts/{lato-regular → lato}/Lato-regular.woff +0 -0
  180. data/assets/fonts/{lato-regular → lato}/Lato-regular.woff2 +0 -0
  181. data/assets/images/clipboard.svg +3 -0
  182. data/assets/js/app/main.js +298 -261
  183. data/assets/js/app/scroll-to-anchors.js +10 -9
  184. data/assets/js/app/sticky-tab-bar.js +67 -69
  185. data/assets/js/bootstrap.js.map +1 -0
  186. data/assets/js/popper.min.js.map +1 -0
  187. data/assets/js/vendor/_popper.js +5 -0
  188. data/assets/js/vendor/bootstrap.js +5 -2376
  189. data/assets/js/vendor/fess-ss.min.js +24 -24
  190. data/assets/js/vendor/jquery.cookie.js +120 -0
  191. data/assets/js/vendor/jquery.ihavecookies.js +263 -0
  192. data/assets/js/vendor/jquery.slim.js +8842 -0
  193. data/robots.txt +9 -9
  194. metadata +157 -377
  195. data/_data/example-carousel-data-source.yml +0 -36
  196. data/_data/members-section-example.yml +0 -0
  197. data/_data/universal-nav.yml +0 -7
  198. data/_includes/authors-posts.html +0 -18
  199. data/_includes/blog-filler-element.html +0 -24
  200. data/_includes/breadcrumb.html +0 -97
  201. data/_includes/core/blocks.html +0 -30
  202. data/_includes/core/buttons.html +0 -5
  203. data/_includes/core/container_row.html +0 -7
  204. data/_includes/core/feature_block.html +0 -43
  205. data/_includes/core/slider_row.html +0 -3
  206. data/_includes/core/text.html +0 -3
  207. data/_includes/core/title.html +0 -3
  208. data/_includes/core/youtube_video_embed.html +0 -11
  209. data/_includes/css.html +0 -9
  210. data/_includes/custom_include.html +0 -13
  211. data/_includes/display-blog-posts.html +0 -154
  212. data/_includes/flow_inner.html +0 -19
  213. data/_includes/footer.html +0 -68
  214. data/_includes/google-analytics.html +0 -16
  215. data/_includes/head.html +0 -19
  216. data/_includes/http2.html +0 -102
  217. data/_includes/javascript.html +0 -10
  218. data/_includes/jumbotron.html +0 -115
  219. data/_includes/linaro-svg.html +0 -1
  220. data/_includes/nav.html +0 -153
  221. data/_includes/pagination.html +0 -39
  222. data/_includes/post-sidebar.html +0 -182
  223. data/_includes/responsive-image.html +0 -6
  224. data/_includes/thumb-image.html +0 -31
  225. data/_includes/thumb.html +0 -2
  226. data/_includes/thumbnail_image.html +0 -10
  227. data/_includes/universal-nav.html +0 -30
  228. data/_layouts/jumbotron-container.html +0 -19
  229. data/_layouts/jumbotron.html +0 -12
  230. data/_layouts/redirect.html +0 -11
  231. data/_sass/_bootstrap-compass.scss +0 -9
  232. data/_sass/_bootstrap-mincer.scss +0 -19
  233. data/_sass/_bootstrap-sprockets.scss +0 -9
  234. data/_sass/_bootstrap.scss +0 -56
  235. data/_sass/app-package.scss +0 -11
  236. data/_sass/app/contact.scss +0 -3
  237. data/_sass/app/custom.scss +0 -1
  238. data/_sass/bootstrap/_alerts.scss +0 -73
  239. data/_sass/bootstrap/_badges.scss +0 -68
  240. data/_sass/bootstrap/_breadcrumbs.scss +0 -28
  241. data/_sass/bootstrap/_button-groups.scss +0 -244
  242. data/_sass/bootstrap/_component-animations.scss +0 -37
  243. data/_sass/bootstrap/_dropdowns.scss +0 -216
  244. data/_sass/bootstrap/_glyphicons.scss +0 -307
  245. data/_sass/bootstrap/_input-groups.scss +0 -171
  246. data/_sass/bootstrap/_labels.scss +0 -66
  247. data/_sass/bootstrap/_modals.scss +0 -150
  248. data/_sass/bootstrap/_navs.scss +0 -242
  249. data/_sass/bootstrap/_normalize.scss +0 -424
  250. data/_sass/bootstrap/_pager.scss +0 -54
  251. data/_sass/bootstrap/_panels.scss +0 -271
  252. data/_sass/bootstrap/_popovers.scss +0 -131
  253. data/_sass/bootstrap/_progress-bars.scss +0 -87
  254. data/_sass/bootstrap/_responsive-utilities.scss +0 -179
  255. data/_sass/bootstrap/_scaffolding.scss +0 -161
  256. data/_sass/bootstrap/_theme.scss +0 -291
  257. data/_sass/bootstrap/_thumbnails.scss +0 -38
  258. data/_sass/bootstrap/_wells.scss +0 -29
  259. data/_sass/bootstrap/mixins/_alerts.scss +0 -14
  260. data/_sass/bootstrap/mixins/_center-block.scss +0 -7
  261. data/_sass/bootstrap/mixins/_hide-text.scss +0 -21
  262. data/_sass/bootstrap/mixins/_labels.scss +0 -12
  263. data/_sass/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  264. data/_sass/bootstrap/mixins/_opacity.scss +0 -8
  265. data/_sass/bootstrap/mixins/_panels.scss +0 -24
  266. data/_sass/bootstrap/mixins/_progress-bar.scss +0 -10
  267. data/_sass/bootstrap/mixins/_reset-filter.scss +0 -8
  268. data/_sass/bootstrap/mixins/_responsive-visibility.scss +0 -21
  269. data/_sass/bootstrap/mixins/_tab-focus.scss +0 -9
  270. data/_sass/bootstrap/mixins/_vendor-prefixes.scss +0 -222
  271. data/_sass/core/animations.scss +0 -125
  272. data/_sass/core/cookieconsent.scss +0 -39
  273. data/_sass/core/critical.scss +0 -0
  274. data/_sass/core/custom.scss +0 -3
  275. data/_sass/core/fa.scss +0 -2336
  276. data/_sass/core/flipclock.scss +0 -434
  277. data/_sass/core/fly.scss +0 -10
  278. data/_sass/core/font-awesome.min.scss +0 -4
  279. data/_sass/core/fonts.scss +0 -3
  280. data/_sass/core/forms.scss +0 -3
  281. data/_sass/core/homepage.scss +0 -19
  282. data/_sass/core/lightbox.scss +0 -212
  283. data/_sass/core/nav.scss +0 -1015
  284. data/_sass/core/social-media-icons.scss +0 -67
  285. data/_sass/core/tables.scss +0 -175
  286. data/_sass/core/triangle-divider.scss +0 -27
  287. data/_sass/core/universal-nav.scss +0 -167
  288. data/_sass/core/youtube-lazy.scss +0 -51
  289. data/_sass/core/youtube.scss +0 -65
  290. data/_sass/home.scss +0 -2
  291. data/assets/fonts/fontawesome-webfont.eot +0 -0
  292. data/assets/fonts/fontawesome-webfont.svg +0 -2671
  293. data/assets/fonts/fontawesome-webfont.ttf +0 -0
  294. data/assets/fonts/fontawesome-webfont.woff +0 -0
  295. data/assets/fonts/fontawesome-webfont.woff2 +0 -0
  296. data/assets/fonts/fontello.eot +0 -0
  297. data/assets/fonts/fontello.svg +0 -44
  298. data/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  299. data/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  300. data/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  301. data/assets/images/Linaro-Logo_light.png +0 -0
  302. data/assets/images/content/background-image1.jpg +0 -0
  303. data/assets/images/content/background-image2.png +0 -0
  304. data/assets/images/content/background-image3.jpg +0 -0
  305. data/assets/images/content/js-logo.png +0 -0
  306. data/assets/js/app/blog-comments.js +0 -50
  307. data/assets/js/app/facebook.js +0 -8
  308. data/assets/js/app/fly.js +0 -45
  309. data/assets/js/app/search.js +0 -29
  310. data/assets/js/app/youtube-lazy.js +0 -25
  311. data/assets/js/pacakge-search.js +0 -9
  312. data/assets/js/package-blog.js +0 -12
  313. data/assets/js/package-extended.js +0 -14
  314. data/assets/js/package-home.js +0 -14
  315. data/assets/js/package-main.js +0 -13
  316. data/assets/js/package-search.js +0 -8
  317. data/assets/js/vendor/cookieconsent.js +0 -1495
@@ -0,0 +1,172 @@
1
+ // stylelint-disable selector-no-qualifying-type
2
+
3
+ // Make the div behave like a button
4
+ .btn-group,
5
+ .btn-group-vertical {
6
+ position: relative;
7
+ display: inline-flex;
8
+ vertical-align: middle; // match .btn alignment given font-size hack above
9
+
10
+ > .btn {
11
+ position: relative;
12
+ flex: 0 1 auto;
13
+
14
+ // Bring the hover, focused, and "active" buttons to the front to overlay
15
+ // the borders properly
16
+ @include hover {
17
+ z-index: 1;
18
+ }
19
+ &:focus,
20
+ &:active,
21
+ &.active {
22
+ z-index: 1;
23
+ }
24
+ }
25
+
26
+ // Prevent double borders when buttons are next to each other
27
+ .btn + .btn,
28
+ .btn + .btn-group,
29
+ .btn-group + .btn,
30
+ .btn-group + .btn-group {
31
+ margin-left: -$btn-border-width;
32
+ }
33
+ }
34
+
35
+ // Optional: Group multiple button groups together for a toolbar
36
+ .btn-toolbar {
37
+ display: flex;
38
+ flex-wrap: wrap;
39
+ justify-content: flex-start;
40
+
41
+ .input-group {
42
+ width: auto;
43
+ }
44
+ }
45
+
46
+ .btn-group {
47
+ > .btn:first-child {
48
+ margin-left: 0;
49
+ }
50
+
51
+ // Reset rounded corners
52
+ > .btn:not(:last-child):not(.dropdown-toggle),
53
+ > .btn-group:not(:last-child) > .btn {
54
+ @include border-right-radius(0);
55
+ }
56
+
57
+ > .btn:not(:first-child),
58
+ > .btn-group:not(:first-child) > .btn {
59
+ @include border-left-radius(0);
60
+ }
61
+ }
62
+
63
+ // Sizing
64
+ //
65
+ // Remix the default button sizing classes into new ones for easier manipulation.
66
+
67
+ .btn-group-sm > .btn { @extend .btn-sm; }
68
+ .btn-group-lg > .btn { @extend .btn-lg; }
69
+
70
+
71
+ //
72
+ // Split button dropdowns
73
+ //
74
+
75
+ .dropdown-toggle-split {
76
+ padding-right: $btn-padding-x * .75;
77
+ padding-left: $btn-padding-x * .75;
78
+
79
+ &::after,
80
+ .dropup &::after,
81
+ .dropright &::after {
82
+ margin-left: 0;
83
+ }
84
+
85
+ .dropleft &::before {
86
+ margin-right: 0;
87
+ }
88
+ }
89
+
90
+ .btn-sm + .dropdown-toggle-split {
91
+ padding-right: $btn-padding-x-sm * .75;
92
+ padding-left: $btn-padding-x-sm * .75;
93
+ }
94
+
95
+ .btn-lg + .dropdown-toggle-split {
96
+ padding-right: $btn-padding-x-lg * .75;
97
+ padding-left: $btn-padding-x-lg * .75;
98
+ }
99
+
100
+
101
+ // The clickable button for toggling the menu
102
+ // Set the same inset shadow as the :active state
103
+ .btn-group.show .dropdown-toggle {
104
+ @include box-shadow($btn-active-box-shadow);
105
+
106
+ // Show no shadow for `.btn-link` since it has no other button styles.
107
+ &.btn-link {
108
+ @include box-shadow(none);
109
+ }
110
+ }
111
+
112
+
113
+ //
114
+ // Vertical button groups
115
+ //
116
+
117
+ .btn-group-vertical {
118
+ flex-direction: column;
119
+ align-items: flex-start;
120
+ justify-content: center;
121
+
122
+ .btn,
123
+ .btn-group {
124
+ width: 100%;
125
+ }
126
+
127
+ > .btn + .btn,
128
+ > .btn + .btn-group,
129
+ > .btn-group + .btn,
130
+ > .btn-group + .btn-group {
131
+ margin-top: -$btn-border-width;
132
+ margin-left: 0;
133
+ }
134
+
135
+ // Reset rounded corners
136
+ > .btn:not(:last-child):not(.dropdown-toggle),
137
+ > .btn-group:not(:last-child) > .btn {
138
+ @include border-bottom-radius(0);
139
+ }
140
+
141
+ > .btn:not(:first-child),
142
+ > .btn-group:not(:first-child) > .btn {
143
+ @include border-top-radius(0);
144
+ }
145
+ }
146
+
147
+
148
+ // Checkbox and radio options
149
+ //
150
+ // In order to support the browser's form validation feedback, powered by the
151
+ // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
152
+ // `display: none;` or `visibility: hidden;` as that also hides the popover.
153
+ // Simply visually hiding the inputs via `opacity` would leave them clickable in
154
+ // certain cases which is prevented by using `clip` and `pointer-events`.
155
+ // This way, we ensure a DOM element is visible to position the popover from.
156
+ //
157
+ // See https://github.com/twbs/bootstrap/pull/12794 and
158
+ // https://github.com/twbs/bootstrap/pull/14559 for more information.
159
+
160
+ .btn-group-toggle {
161
+ > .btn,
162
+ > .btn-group > .btn {
163
+ margin-bottom: 0; // Override default `<label>` value
164
+
165
+ input[type="radio"],
166
+ input[type="checkbox"] {
167
+ position: absolute;
168
+ clip: rect(0, 0, 0, 0);
169
+ pointer-events: none;
170
+ }
171
+ }
172
+ }
@@ -1,161 +1,136 @@
1
- //
2
- // Buttons
3
- // --------------------------------------------------
4
-
1
+ // stylelint-disable selector-no-qualifying-type
5
2
 
3
+ //
6
4
  // Base styles
7
- // --------------------------------------------------
5
+ //
8
6
 
9
7
  .btn {
10
8
  display: inline-block;
11
- margin-bottom: 0; // For input.btn
12
9
  font-weight: $btn-font-weight;
13
10
  text-align: center;
14
- vertical-align: middle;
15
- touch-action: manipulation;
16
- cursor: pointer;
17
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
18
- border: 1px solid transparent;
19
11
  white-space: nowrap;
20
- @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);
21
- @include user-select(none);
22
-
23
- &,
24
- &:active,
25
- &.active {
26
- &:focus,
27
- &.focus {
28
- @include tab-focus;
29
- }
30
- }
12
+ vertical-align: middle;
13
+ user-select: none;
14
+ border: $btn-border-width solid transparent;
15
+ @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius);
16
+ @include transition($btn-transition);
31
17
 
32
- &:hover,
33
- &:focus,
34
- &.focus {
35
- color: $btn-default-color;
18
+ // Share hover and focus styles
19
+ @include hover-focus {
36
20
  text-decoration: none;
37
21
  }
38
22
 
39
- &:active,
40
- &.active {
23
+ &:focus,
24
+ &.focus {
41
25
  outline: 0;
42
- background-image: none;
43
- @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
26
+ box-shadow: $btn-focus-box-shadow;
44
27
  }
45
28
 
29
+ // Disabled comes first so active can properly restyle
46
30
  &.disabled,
47
- &[disabled],
48
- fieldset[disabled] & {
49
- cursor: $cursor-disabled;
50
- @include opacity(.65);
31
+ &:disabled {
32
+ opacity: $btn-disabled-opacity;
51
33
  @include box-shadow(none);
52
34
  }
53
35
 
54
- // [converter] extracted a& to a.btn
55
- }
36
+ // Opinionated: add "hand" cursor to non-disabled .btn elements
37
+ &:not(:disabled):not(.disabled) {
38
+ cursor: pointer;
39
+ }
56
40
 
57
- a.btn {
58
- &.disabled,
59
- fieldset[disabled] & {
60
- pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
41
+ &:not(:disabled):not(.disabled):active,
42
+ &:not(:disabled):not(.disabled).active {
43
+ @include box-shadow($btn-active-box-shadow);
44
+
45
+ &:focus {
46
+ @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
47
+ }
61
48
  }
62
49
  }
63
50
 
51
+ // Future-proof disabling of clicks on `<a>` elements
52
+ a.btn.disabled,
53
+ fieldset:disabled a.btn {
54
+ pointer-events: none;
55
+ }
56
+
64
57
 
58
+ //
65
59
  // Alternate buttons
66
- // --------------------------------------------------
60
+ //
67
61
 
68
- .btn-default {
69
- @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
70
- }
71
- .btn-primary {
72
- @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
73
- }
74
- // Success appears as green
75
- .btn-success {
76
- @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
77
- }
78
- // Info appears as blue-green
79
- .btn-info {
80
- @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
81
- }
82
- // Warning appears as orange
83
- .btn-warning {
84
- @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
62
+ @each $color, $value in $theme-colors {
63
+ .btn-#{$color} {
64
+ @include button-variant($value, $value);
65
+ }
85
66
  }
86
- // Danger and error appear as red
87
- .btn-danger {
88
- @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
67
+
68
+ @each $color, $value in $theme-colors {
69
+ .btn-outline-#{$color} {
70
+ @include button-outline-variant($value);
71
+ }
89
72
  }
90
73
 
91
74
 
75
+ //
92
76
  // Link buttons
93
- // -------------------------
77
+ //
94
78
 
95
79
  // Make a button look and behave like a link
96
80
  .btn-link {
81
+ font-weight: $font-weight-normal;
97
82
  color: $link-color;
98
- font-weight: normal;
99
- border-radius: 0;
100
-
101
- &,
102
- &:active,
103
- &.active,
104
- &[disabled],
105
- fieldset[disabled] & {
83
+ background-color: transparent;
84
+
85
+ @include hover {
86
+ color: $link-hover-color;
87
+ text-decoration: $link-hover-decoration;
106
88
  background-color: transparent;
107
- @include box-shadow(none);
108
- }
109
- &,
110
- &:hover,
111
- &:focus,
112
- &:active {
113
89
  border-color: transparent;
114
90
  }
115
- &:hover,
116
- &:focus {
117
- color: $link-hover-color;
91
+
92
+ &:focus,
93
+ &.focus {
118
94
  text-decoration: $link-hover-decoration;
119
- background-color: transparent;
95
+ border-color: transparent;
96
+ box-shadow: none;
120
97
  }
121
- &[disabled],
122
- fieldset[disabled] & {
123
- &:hover,
124
- &:focus {
125
- color: $btn-link-disabled-color;
126
- text-decoration: none;
127
- }
98
+
99
+ &:disabled,
100
+ &.disabled {
101
+ color: $btn-link-disabled-color;
102
+ pointer-events: none;
128
103
  }
104
+
105
+ // No need for an active state here
129
106
  }
130
107
 
131
108
 
109
+ //
132
110
  // Button Sizes
133
- // --------------------------------------------------
111
+ //
134
112
 
135
113
  .btn-lg {
136
- // line-height: ensure even-numbered height of button next to large input
137
- @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);
114
+ @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
138
115
  }
116
+
139
117
  .btn-sm {
140
- // line-height: ensure proper height of button next to small input
141
- @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);
142
- }
143
- .btn-xs {
144
- @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);
118
+ @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);
145
119
  }
146
120
 
147
121
 
122
+ //
148
123
  // Block button
149
- // --------------------------------------------------
124
+ //
150
125
 
151
126
  .btn-block {
152
127
  display: block;
153
128
  width: 100%;
154
- }
155
129
 
156
- // Vertically space out multiple block buttons
157
- .btn-block + .btn-block {
158
- margin-top: 5px;
130
+ // Vertically space out multiple block buttons
131
+ + .btn-block {
132
+ margin-top: $btn-block-spacing-y;
133
+ }
159
134
  }
160
135
 
161
136
  // Specificity overrides
@@ -0,0 +1,301 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .card {
6
+ position: relative;
7
+ display: flex;
8
+ flex-direction: column;
9
+ min-width: 0;
10
+ word-wrap: break-word;
11
+ background-color: $card-bg;
12
+ background-clip: border-box;
13
+ border: $card-border-width solid $card-border-color;
14
+ @include border-radius($card-border-radius);
15
+
16
+ > hr {
17
+ margin-right: 0;
18
+ margin-left: 0;
19
+ }
20
+
21
+ > .list-group:first-child {
22
+ .list-group-item:first-child {
23
+ @include border-top-radius($card-border-radius);
24
+ }
25
+ }
26
+
27
+ > .list-group:last-child {
28
+ .list-group-item:last-child {
29
+ @include border-bottom-radius($card-border-radius);
30
+ }
31
+ }
32
+ }
33
+
34
+ .card-body {
35
+ // Enable `flex-grow: 1` for decks and groups so that card blocks take up
36
+ // as much space as possible, ensuring footers are aligned to the bottom.
37
+ flex: 1 1 auto;
38
+ padding: $card-spacer-x;
39
+ }
40
+
41
+ .card-title {
42
+ margin-bottom: $card-spacer-y;
43
+ }
44
+
45
+ .card-subtitle {
46
+ margin-top: -($card-spacer-y / 2);
47
+ margin-bottom: 0;
48
+ }
49
+
50
+ .card-text:last-child {
51
+ margin-bottom: 0;
52
+ }
53
+
54
+ .card-link {
55
+ @include hover {
56
+ text-decoration: none;
57
+ }
58
+
59
+ + .card-link {
60
+ margin-left: $card-spacer-x;
61
+ }
62
+ }
63
+
64
+ //
65
+ // Optional textual caps
66
+ //
67
+
68
+ .card-header {
69
+ padding: $card-spacer-y $card-spacer-x;
70
+ margin-bottom: 0; // Removes the default margin-bottom of <hN>
71
+ background-color: $card-cap-bg;
72
+ border-bottom: $card-border-width solid $card-border-color;
73
+
74
+ &:first-child {
75
+ @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
76
+ }
77
+
78
+ + .list-group {
79
+ .list-group-item:first-child {
80
+ border-top: 0;
81
+ }
82
+ }
83
+ }
84
+
85
+ .card-footer {
86
+ padding: $card-spacer-y $card-spacer-x;
87
+ background-color: $card-cap-bg;
88
+ border-top: $card-border-width solid $card-border-color;
89
+
90
+ &:last-child {
91
+ @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);
92
+ }
93
+ }
94
+
95
+
96
+ //
97
+ // Header navs
98
+ //
99
+
100
+ .card-header-tabs {
101
+ margin-right: -($card-spacer-x / 2);
102
+ margin-bottom: -$card-spacer-y;
103
+ margin-left: -($card-spacer-x / 2);
104
+ border-bottom: 0;
105
+ }
106
+
107
+ .card-header-pills {
108
+ margin-right: -($card-spacer-x / 2);
109
+ margin-left: -($card-spacer-x / 2);
110
+ }
111
+
112
+ // Card image
113
+ .card-img-overlay {
114
+ position: absolute;
115
+ top: 0;
116
+ right: 0;
117
+ bottom: 0;
118
+ left: 0;
119
+ padding: $card-img-overlay-padding;
120
+ }
121
+
122
+ .card-img {
123
+ width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
124
+ @include border-radius($card-inner-border-radius);
125
+ }
126
+
127
+ // Card image caps
128
+ .card-img-top {
129
+ width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
130
+ @include border-top-radius($card-inner-border-radius);
131
+ }
132
+
133
+ .card-img-bottom {
134
+ width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
135
+ @include border-bottom-radius($card-inner-border-radius);
136
+ }
137
+
138
+
139
+ // Card deck
140
+
141
+ .card-deck {
142
+ display: flex;
143
+ flex-direction: column;
144
+
145
+ .card {
146
+ margin-bottom: $card-deck-margin;
147
+ }
148
+
149
+ @include media-breakpoint-up(sm) {
150
+ flex-flow: row wrap;
151
+ margin-right: -$card-deck-margin;
152
+ margin-left: -$card-deck-margin;
153
+
154
+ .card {
155
+ display: flex;
156
+ // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
157
+ flex: 1 0 0%;
158
+ flex-direction: column;
159
+ margin-right: $card-deck-margin;
160
+ margin-bottom: 0; // Override the default
161
+ margin-left: $card-deck-margin;
162
+ }
163
+ }
164
+ }
165
+
166
+
167
+ //
168
+ // Card groups
169
+ //
170
+
171
+ .card-group {
172
+ display: flex;
173
+ flex-direction: column;
174
+
175
+ // The child selector allows nested `.card` within `.card-group`
176
+ // to display properly.
177
+ > .card {
178
+ margin-bottom: $card-group-margin;
179
+ }
180
+
181
+ @include media-breakpoint-up(sm) {
182
+ flex-flow: row wrap;
183
+ // The child selector allows nested `.card` within `.card-group`
184
+ // to display properly.
185
+ > .card {
186
+ // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
187
+ flex: 1 0 0%;
188
+ margin-bottom: 0;
189
+
190
+ + .card {
191
+ margin-left: 0;
192
+ border-left: 0;
193
+ }
194
+
195
+ // Handle rounded corners
196
+ @if $enable-rounded {
197
+ &:first-child {
198
+ @include border-right-radius(0);
199
+
200
+ .card-img-top,
201
+ .card-header {
202
+ border-top-right-radius: 0;
203
+ }
204
+ .card-img-bottom,
205
+ .card-footer {
206
+ border-bottom-right-radius: 0;
207
+ }
208
+ }
209
+
210
+ &:last-child {
211
+ @include border-left-radius(0);
212
+
213
+ .card-img-top,
214
+ .card-header {
215
+ border-top-left-radius: 0;
216
+ }
217
+ .card-img-bottom,
218
+ .card-footer {
219
+ border-bottom-left-radius: 0;
220
+ }
221
+ }
222
+
223
+ &:only-child {
224
+ @include border-radius($card-border-radius);
225
+
226
+ .card-img-top,
227
+ .card-header {
228
+ @include border-top-radius($card-border-radius);
229
+ }
230
+ .card-img-bottom,
231
+ .card-footer {
232
+ @include border-bottom-radius($card-border-radius);
233
+ }
234
+ }
235
+
236
+ &:not(:first-child):not(:last-child):not(:only-child) {
237
+ @include border-radius(0);
238
+
239
+ .card-img-top,
240
+ .card-img-bottom,
241
+ .card-header,
242
+ .card-footer {
243
+ @include border-radius(0);
244
+ }
245
+ }
246
+ }
247
+ }
248
+ }
249
+ }
250
+
251
+
252
+ //
253
+ // Columns
254
+ //
255
+
256
+ .card-columns {
257
+ .card {
258
+ margin-bottom: $card-columns-margin;
259
+ }
260
+
261
+ @include media-breakpoint-up(sm) {
262
+ column-count: $card-columns-count;
263
+ column-gap: $card-columns-gap;
264
+ orphans: 1;
265
+ widows: 1;
266
+
267
+ .card {
268
+ display: inline-block; // Don't let them vertically span multiple columns
269
+ width: 100%; // Don't let their width change
270
+ }
271
+ }
272
+ }
273
+
274
+
275
+ //
276
+ // Accordion
277
+ //
278
+
279
+ .accordion {
280
+ .card:not(:first-of-type):not(:last-of-type) {
281
+ border-bottom: 0;
282
+ border-radius: 0;
283
+ }
284
+
285
+ .card:not(:first-of-type) {
286
+ .card-header:first-child {
287
+ border-radius: 0;
288
+ }
289
+ }
290
+
291
+ .card:first-of-type {
292
+ border-bottom: 0;
293
+ border-bottom-right-radius: 0;
294
+ border-bottom-left-radius: 0;
295
+ }
296
+
297
+ .card:last-of-type {
298
+ border-top-left-radius: 0;
299
+ border-top-right-radius: 0;
300
+ }
301
+ }