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,66 @@
1
+ @mixin caret-down {
2
+ border-top: $caret-width solid;
3
+ border-right: $caret-width solid transparent;
4
+ border-bottom: 0;
5
+ border-left: $caret-width solid transparent;
6
+ }
7
+
8
+ @mixin caret-up {
9
+ border-top: 0;
10
+ border-right: $caret-width solid transparent;
11
+ border-bottom: $caret-width solid;
12
+ border-left: $caret-width solid transparent;
13
+ }
14
+
15
+ @mixin caret-right {
16
+ border-top: $caret-width solid transparent;
17
+ border-right: 0;
18
+ border-bottom: $caret-width solid transparent;
19
+ border-left: $caret-width solid;
20
+ }
21
+
22
+ @mixin caret-left {
23
+ border-top: $caret-width solid transparent;
24
+ border-right: $caret-width solid;
25
+ border-bottom: $caret-width solid transparent;
26
+ }
27
+
28
+ @mixin caret($direction: down) {
29
+ @if $enable-caret {
30
+ &::after {
31
+ display: inline-block;
32
+ width: 0;
33
+ height: 0;
34
+ margin-left: $caret-width * .85;
35
+ vertical-align: $caret-width * .85;
36
+ content: "";
37
+ @if $direction == down {
38
+ @include caret-down;
39
+ } @else if $direction == up {
40
+ @include caret-up;
41
+ } @else if $direction == right {
42
+ @include caret-right;
43
+ }
44
+ }
45
+
46
+ @if $direction == left {
47
+ &::after {
48
+ display: none;
49
+ }
50
+
51
+ &::before {
52
+ display: inline-block;
53
+ width: 0;
54
+ height: 0;
55
+ margin-right: $caret-width * .85;
56
+ vertical-align: $caret-width * .85;
57
+ content: "";
58
+ @include caret-left;
59
+ }
60
+ }
61
+
62
+ &:empty::after {
63
+ margin-left: 0;
64
+ }
65
+ }
66
+ }
@@ -1,22 +1,7 @@
1
- // Clearfix
2
- //
3
- // For modern browsers
4
- // 1. The space content is one way to avoid an Opera bug when the
5
- // contenteditable attribute is included anywhere else in the document.
6
- // Otherwise it causes space to appear at the top and bottom of elements
7
- // that are clearfixed.
8
- // 2. The use of `table` rather than `block` is only necessary if using
9
- // `:before` to contain the top-margins of child elements.
10
- //
11
- // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12
-
13
1
  @mixin clearfix() {
14
- &:before,
15
- &:after {
16
- content: " "; // 1
17
- display: table; // 2
18
- }
19
- &:after {
2
+ &::after {
3
+ display: block;
20
4
  clear: both;
5
+ content: "";
21
6
  }
22
7
  }
@@ -0,0 +1,11 @@
1
+ // stylelint-disable declaration-no-important
2
+
3
+ @mixin float-left {
4
+ float: left !important;
5
+ }
6
+ @mixin float-right {
7
+ float: right !important;
8
+ }
9
+ @mixin float-none {
10
+ float: none !important;
11
+ }
@@ -1,49 +1,7 @@
1
- // Form validation states
2
- //
3
- // Used in forms.less to generate the form validation CSS for warnings, errors,
4
- // and successes.
5
-
6
- @mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
7
- // Color the label and help text
8
- .help-block,
9
- .control-label,
10
- .radio,
11
- .checkbox,
12
- .radio-inline,
13
- .checkbox-inline,
14
- &.radio label,
15
- &.checkbox label,
16
- &.radio-inline label,
17
- &.checkbox-inline label {
18
- color: $text-color;
19
- }
20
- // Set the border and box shadow on specific inputs to match
21
- .form-control {
22
- border-color: $border-color;
23
- @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
24
- &:focus {
25
- border-color: darken($border-color, 10%);
26
- $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
27
- @include box-shadow($shadow);
28
- }
29
- }
30
- // Set validation states also for addons
31
- .input-group-addon {
32
- color: $text-color;
33
- border-color: $border-color;
34
- background-color: $background-color;
35
- }
36
- // Optional feedback icon
37
- .form-control-feedback {
38
- color: $text-color;
39
- }
40
- }
41
-
42
-
43
1
  // Form control focus state
44
2
  //
45
3
  // Generate a customized focus state and for any input with the specified color,
46
- // which defaults to the `$input-border-focus` variable.
4
+ // which defaults to the `$input-focus-border-color` variable.
47
5
  //
48
6
  // We highly encourage you to not customize the default value, but instead use
49
7
  // this to tweak colors on an as-needed basis. This aesthetic change is based on
@@ -52,37 +10,138 @@
52
10
  //
53
11
  // Example usage: change the default blue border and shadow to white for better
54
12
  // contrast against a dark gray background.
55
- @mixin form-control-focus($color: $input-border-focus) {
56
- $color-rgba: rgba(red($color), green($color), blue($color), .6);
13
+ @mixin form-control-focus() {
57
14
  &:focus {
58
- border-color: $color;
15
+ color: $input-focus-color;
16
+ background-color: $input-focus-bg;
17
+ border-color: $input-focus-border-color;
59
18
  outline: 0;
60
- @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
19
+ // Avoid using mixin so we can pass custom focus shadow properly
20
+ @if $enable-shadows {
21
+ box-shadow: $input-box-shadow, $input-focus-box-shadow;
22
+ } @else {
23
+ box-shadow: $input-focus-box-shadow;
24
+ }
61
25
  }
62
26
  }
63
27
 
64
- // Form control sizing
65
- //
66
- // Relative text size, padding, and border-radii changes for form controls. For
67
- // horizontal sizing, wrap controls in the predefined grid classes. `<select>`
68
- // element gets special love because it's special, and that's a fact!
69
- // [converter] $parent hack
70
- @mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
71
- #{$parent} {
72
- height: $input-height;
73
- padding: $padding-vertical $padding-horizontal;
74
- font-size: $font-size;
75
- line-height: $line-height;
76
- border-radius: $border-radius;
28
+
29
+ @mixin form-validation-state($state, $color) {
30
+ .#{$state}-feedback {
31
+ display: none;
32
+ width: 100%;
33
+ margin-top: $form-feedback-margin-top;
34
+ font-size: $form-feedback-font-size;
35
+ color: $color;
77
36
  }
78
37
 
79
- select#{$parent} {
80
- height: $input-height;
81
- line-height: $input-height;
38
+ .#{$state}-tooltip {
39
+ position: absolute;
40
+ top: 100%;
41
+ z-index: 5;
42
+ display: none;
43
+ max-width: 100%; // Contain to parent when possible
44
+ padding: $tooltip-padding-y $tooltip-padding-x;
45
+ margin-top: .1rem;
46
+ font-size: $tooltip-font-size;
47
+ line-height: $line-height-base;
48
+ color: color-yiq($color);
49
+ background-color: rgba($color, $tooltip-opacity);
50
+ @include border-radius($tooltip-border-radius);
82
51
  }
83
52
 
84
- textarea#{$parent},
85
- select[multiple]#{$parent} {
86
- height: auto;
53
+ .form-control,
54
+ .custom-select {
55
+ .was-validated &:#{$state},
56
+ &.is-#{$state} {
57
+ border-color: $color;
58
+
59
+ &:focus {
60
+ border-color: $color;
61
+ box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
62
+ }
63
+
64
+ ~ .#{$state}-feedback,
65
+ ~ .#{$state}-tooltip {
66
+ display: block;
67
+ }
68
+ }
69
+ }
70
+
71
+ .form-control-file {
72
+ .was-validated &:#{$state},
73
+ &.is-#{$state} {
74
+ ~ .#{$state}-feedback,
75
+ ~ .#{$state}-tooltip {
76
+ display: block;
77
+ }
78
+ }
79
+ }
80
+
81
+ .form-check-input {
82
+ .was-validated &:#{$state},
83
+ &.is-#{$state} {
84
+ ~ .form-check-label {
85
+ color: $color;
86
+ }
87
+
88
+ ~ .#{$state}-feedback,
89
+ ~ .#{$state}-tooltip {
90
+ display: block;
91
+ }
92
+ }
93
+ }
94
+
95
+ .custom-control-input {
96
+ .was-validated &:#{$state},
97
+ &.is-#{$state} {
98
+ ~ .custom-control-label {
99
+ color: $color;
100
+
101
+ &::before {
102
+ background-color: lighten($color, 25%);
103
+ }
104
+ }
105
+
106
+ ~ .#{$state}-feedback,
107
+ ~ .#{$state}-tooltip {
108
+ display: block;
109
+ }
110
+
111
+ &:checked {
112
+ ~ .custom-control-label::before {
113
+ @include gradient-bg(lighten($color, 10%));
114
+ }
115
+ }
116
+
117
+ &:focus {
118
+ ~ .custom-control-label::before {
119
+ box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);
120
+ }
121
+ }
122
+ }
123
+ }
124
+
125
+ // custom file
126
+ .custom-file-input {
127
+ .was-validated &:#{$state},
128
+ &.is-#{$state} {
129
+ ~ .custom-file-label {
130
+ border-color: $color;
131
+
132
+ &::after { border-color: inherit; }
133
+ }
134
+
135
+ ~ .#{$state}-feedback,
136
+ ~ .#{$state}-tooltip {
137
+ display: block;
138
+ }
139
+
140
+ &:focus {
141
+ ~ .custom-file-label {
142
+ box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
143
+ }
144
+ }
145
+ }
87
146
  }
88
147
  }
@@ -1,58 +1,45 @@
1
1
  // Gradients
2
2
 
3
-
3
+ @mixin gradient-bg($color) {
4
+ @if $enable-gradients {
5
+ background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
6
+ } @else {
7
+ background-color: $color;
8
+ }
9
+ }
4
10
 
5
11
  // Horizontal gradient, from left to right
6
12
  //
7
13
  // Creates two color stops, start and end, by specifying a color and position for each color stop.
8
- // Color stops are not available in IE9 and below.
9
- @mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
10
- background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
11
- background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
12
- background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
14
+ @mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
15
+ background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
13
16
  background-repeat: repeat-x;
14
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
15
17
  }
16
18
 
17
19
  // Vertical gradient, from top to bottom
18
20
  //
19
21
  // Creates two color stops, start and end, by specifying a color and position for each color stop.
20
- // Color stops are not available in IE9 and below.
21
- @mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
22
- background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
23
- background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Opera 12
24
- background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
22
+ @mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
23
+ background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
25
24
  background-repeat: repeat-x;
26
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
27
25
  }
28
26
 
29
- @mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
27
+ @mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
28
+ background-image: linear-gradient($deg, $start-color, $end-color);
30
29
  background-repeat: repeat-x;
31
- background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
32
- background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
33
- background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
34
30
  }
35
- @mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
36
- background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
37
- background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
31
+ @mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
38
32
  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
39
33
  background-repeat: no-repeat;
40
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
41
34
  }
42
- @mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
43
- background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
44
- background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
35
+ @mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
45
36
  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
46
37
  background-repeat: no-repeat;
47
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
48
38
  }
49
- @mixin gradient-radial($inner-color: #555, $outer-color: #333) {
50
- background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
39
+ @mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
51
40
  background-image: radial-gradient(circle, $inner-color, $outer-color);
52
41
  background-repeat: no-repeat;
53
42
  }
54
- @mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
55
- background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
56
- background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
43
+ @mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
57
44
  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
58
45
  }
@@ -3,79 +3,65 @@
3
3
  // Used only by Bootstrap to generate the correct number of grid classes given
4
4
  // any value of `$grid-columns`.
5
5
 
6
- // [converter] This is defined recursively in LESS, but Sass supports real loops
7
- @mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
8
- @for $i from (1 + 1) through $grid-columns {
9
- $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
10
- }
11
- #{$list} {
6
+ @mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
7
+ // Common properties for all breakpoints
8
+ %grid-column {
12
9
  position: relative;
13
- // Prevent columns from collapsing when empty
14
- min-height: 1px;
15
- // Inner gutter via padding
16
- padding-left: ceil(($grid-gutter-width / 2));
17
- padding-right: floor(($grid-gutter-width / 2));
10
+ width: 100%;
11
+ min-height: 1px; // Prevent columns from collapsing when empty
12
+ padding-right: ($gutter / 2);
13
+ padding-left: ($gutter / 2);
18
14
  }
19
- }
20
-
21
-
22
- // [converter] This is defined recursively in LESS, but Sass supports real loops
23
- @mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
24
- @for $i from (1 + 1) through $grid-columns {
25
- $list: "#{$list}, .col-#{$class}-#{$i}";
26
- }
27
- #{$list} {
28
- float: left;
29
- }
30
- }
31
15
 
16
+ @each $breakpoint in map-keys($breakpoints) {
17
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
32
18
 
33
- @mixin calc-grid-column($index, $class, $type) {
34
- @if ($type == width) and ($index > 0) {
35
- .col-#{$class}-#{$index} {
36
- width: percentage(($index / $grid-columns));
19
+ // Allow columns to stretch full width below their breakpoints
20
+ @for $i from 1 through $columns {
21
+ .col#{$infix}-#{$i} {
22
+ @extend %grid-column;
23
+ }
37
24
  }
38
- }
39
- @if ($type == push) and ($index > 0) {
40
- .col-#{$class}-push-#{$index} {
41
- left: percentage(($index / $grid-columns));
42
- }
43
- }
44
- @if ($type == push) and ($index == 0) {
45
- .col-#{$class}-push-0 {
46
- left: auto;
25
+ .col#{$infix},
26
+ .col#{$infix}-auto {
27
+ @extend %grid-column;
47
28
  }
48
- }
49
- @if ($type == pull) and ($index > 0) {
50
- .col-#{$class}-pull-#{$index} {
51
- right: percentage(($index / $grid-columns));
52
- }
53
- }
54
- @if ($type == pull) and ($index == 0) {
55
- .col-#{$class}-pull-0 {
56
- right: auto;
57
- }
58
- }
59
- @if ($type == offset) {
60
- .col-#{$class}-offset-#{$index} {
61
- margin-left: percentage(($index / $grid-columns));
62
- }
63
- }
64
- }
65
29
 
66
- // [converter] This is defined recursively in LESS, but Sass supports real loops
67
- @mixin loop-grid-columns($columns, $class, $type) {
68
- @for $i from 0 through $columns {
69
- @include calc-grid-column($i, $class, $type);
70
- }
71
- }
30
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
31
+ // Provide basic `.col-{bp}` classes for equal-width flexbox columns
32
+ .col#{$infix} {
33
+ flex-basis: 0;
34
+ flex-grow: 1;
35
+ max-width: 100%;
36
+ }
37
+ .col#{$infix}-auto {
38
+ flex: 0 0 auto;
39
+ width: auto;
40
+ max-width: none; // Reset earlier grid tiers
41
+ }
42
+
43
+ @for $i from 1 through $columns {
44
+ .col#{$infix}-#{$i} {
45
+ @include make-col($i, $columns);
46
+ }
47
+ }
48
+
49
+ .order#{$infix}-first { order: -1; }
72
50
 
51
+ .order#{$infix}-last { order: $columns + 1; }
73
52
 
74
- // Create grid for specific class
75
- @mixin make-grid($class) {
76
- @include float-grid-columns($class);
77
- @include loop-grid-columns($grid-columns, $class, width);
78
- @include loop-grid-columns($grid-columns, $class, pull);
79
- @include loop-grid-columns($grid-columns, $class, push);
80
- @include loop-grid-columns($grid-columns, $class, offset);
53
+ @for $i from 0 through $columns {
54
+ .order#{$infix}-#{$i} { order: $i; }
55
+ }
56
+
57
+ // `$columns - 1` because offsetting by the width of an entire row isn't possible
58
+ @for $i from 0 through ($columns - 1) {
59
+ @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
60
+ .offset#{$infix}-#{$i} {
61
+ @include make-col-offset($i, $columns);
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
81
67
  }