owasp-td-jekyll 0.1.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 (129) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +202 -0
  3. data/README.md +212 -0
  4. data/_includes/head.html +11 -0
  5. data/_includes/navbar.html +33 -0
  6. data/_includes/sidebar.html +55 -0
  7. data/_layouts/default.html +15 -0
  8. data/_layouts/page.html +11 -0
  9. data/_layouts/post.html +5 -0
  10. data/_sass/bootstrap-theme.scss +15 -0
  11. data/_sass/bootstrap/LICENSE +22 -0
  12. data/_sass/bootstrap/_alert.scss +52 -0
  13. data/_sass/bootstrap/_badge.scss +54 -0
  14. data/_sass/bootstrap/_breadcrumb.scss +44 -0
  15. data/_sass/bootstrap/_button-group.scss +163 -0
  16. data/_sass/bootstrap/_buttons.scss +142 -0
  17. data/_sass/bootstrap/_card.scss +286 -0
  18. data/_sass/bootstrap/_carousel.scss +197 -0
  19. data/_sass/bootstrap/_close.scss +40 -0
  20. data/_sass/bootstrap/_code.scss +48 -0
  21. data/_sass/bootstrap/_custom-forms.scss +524 -0
  22. data/_sass/bootstrap/_dropdown.scss +192 -0
  23. data/_sass/bootstrap/_forms.scss +347 -0
  24. data/_sass/bootstrap/_functions.scss +144 -0
  25. data/_sass/bootstrap/_grid.scss +73 -0
  26. data/_sass/bootstrap/_images.scss +42 -0
  27. data/_sass/bootstrap/_input-group.scss +192 -0
  28. data/_sass/bootstrap/_jumbotron.scss +17 -0
  29. data/_sass/bootstrap/_list-group.scss +154 -0
  30. data/_sass/bootstrap/_media.scss +8 -0
  31. data/_sass/bootstrap/_mixins.scss +47 -0
  32. data/_sass/bootstrap/_modal.scss +240 -0
  33. data/_sass/bootstrap/_nav.scss +123 -0
  34. data/_sass/bootstrap/_navbar.scss +324 -0
  35. data/_sass/bootstrap/_pagination.scss +74 -0
  36. data/_sass/bootstrap/_popover.scss +170 -0
  37. data/_sass/bootstrap/_print.scss +141 -0
  38. data/_sass/bootstrap/_progress.scss +47 -0
  39. data/_sass/bootstrap/_reboot.scss +484 -0
  40. data/_sass/bootstrap/_root.scss +20 -0
  41. data/_sass/bootstrap/_spinners.scss +56 -0
  42. data/_sass/bootstrap/_tables.scss +185 -0
  43. data/_sass/bootstrap/_toasts.scss +46 -0
  44. data/_sass/bootstrap/_tooltip.scss +115 -0
  45. data/_sass/bootstrap/_transitions.scss +20 -0
  46. data/_sass/bootstrap/_type.scss +125 -0
  47. data/_sass/bootstrap/_utilities.scss +18 -0
  48. data/_sass/bootstrap/_variables.scss +1142 -0
  49. data/_sass/bootstrap/bootstrap-grid.scss +29 -0
  50. data/_sass/bootstrap/bootstrap-reboot.scss +12 -0
  51. data/_sass/bootstrap/bootstrap.scss +44 -0
  52. data/_sass/bootstrap/mixins/_alert.scss +13 -0
  53. data/_sass/bootstrap/mixins/_background-variant.scss +23 -0
  54. data/_sass/bootstrap/mixins/_badge.scss +17 -0
  55. data/_sass/bootstrap/mixins/_border-radius.scss +76 -0
  56. data/_sass/bootstrap/mixins/_box-shadow.scss +20 -0
  57. data/_sass/bootstrap/mixins/_breakpoints.scss +123 -0
  58. data/_sass/bootstrap/mixins/_buttons.scss +110 -0
  59. data/_sass/bootstrap/mixins/_caret.scss +62 -0
  60. data/_sass/bootstrap/mixins/_clearfix.scss +7 -0
  61. data/_sass/bootstrap/mixins/_deprecate.scss +10 -0
  62. data/_sass/bootstrap/mixins/_float.scss +14 -0
  63. data/_sass/bootstrap/mixins/_forms.scss +178 -0
  64. data/_sass/bootstrap/mixins/_gradients.scss +45 -0
  65. data/_sass/bootstrap/mixins/_grid-framework.scss +80 -0
  66. data/_sass/bootstrap/mixins/_grid.scss +69 -0
  67. data/_sass/bootstrap/mixins/_hover.scss +37 -0
  68. data/_sass/bootstrap/mixins/_image.scss +36 -0
  69. data/_sass/bootstrap/mixins/_list-group.scss +21 -0
  70. data/_sass/bootstrap/mixins/_lists.scss +7 -0
  71. data/_sass/bootstrap/mixins/_nav-divider.scss +11 -0
  72. data/_sass/bootstrap/mixins/_pagination.scss +22 -0
  73. data/_sass/bootstrap/mixins/_reset-text.scss +17 -0
  74. data/_sass/bootstrap/mixins/_resize.scss +6 -0
  75. data/_sass/bootstrap/mixins/_screen-reader.scss +34 -0
  76. data/_sass/bootstrap/mixins/_size.scss +7 -0
  77. data/_sass/bootstrap/mixins/_table-row.scss +39 -0
  78. data/_sass/bootstrap/mixins/_text-emphasis.scss +17 -0
  79. data/_sass/bootstrap/mixins/_text-hide.scss +11 -0
  80. data/_sass/bootstrap/mixins/_text-truncate.scss +8 -0
  81. data/_sass/bootstrap/mixins/_transition.scss +26 -0
  82. data/_sass/bootstrap/mixins/_visibility.scss +8 -0
  83. data/_sass/bootstrap/utilities/_align.scss +8 -0
  84. data/_sass/bootstrap/utilities/_background.scss +19 -0
  85. data/_sass/bootstrap/utilities/_borders.scss +75 -0
  86. data/_sass/bootstrap/utilities/_clearfix.scss +3 -0
  87. data/_sass/bootstrap/utilities/_display.scss +26 -0
  88. data/_sass/bootstrap/utilities/_embed.scss +39 -0
  89. data/_sass/bootstrap/utilities/_flex.scss +51 -0
  90. data/_sass/bootstrap/utilities/_float.scss +11 -0
  91. data/_sass/bootstrap/utilities/_interactions.scss +5 -0
  92. data/_sass/bootstrap/utilities/_overflow.scss +5 -0
  93. data/_sass/bootstrap/utilities/_position.scss +32 -0
  94. data/_sass/bootstrap/utilities/_screenreaders.scss +11 -0
  95. data/_sass/bootstrap/utilities/_shadows.scss +6 -0
  96. data/_sass/bootstrap/utilities/_sizing.scss +20 -0
  97. data/_sass/bootstrap/utilities/_spacing.scss +73 -0
  98. data/_sass/bootstrap/utilities/_stretched-link.scss +19 -0
  99. data/_sass/bootstrap/utilities/_text.scss +72 -0
  100. data/_sass/bootstrap/utilities/_visibility.scss +13 -0
  101. data/_sass/bootstrap/vendor/_rfs.scss +204 -0
  102. data/_sass/colors.scss +6 -0
  103. data/_sass/layout.scss +13 -0
  104. data/_sass/navbar.scss +20 -0
  105. data/_sass/sidebar.scss +62 -0
  106. data/assets/css/bootstrap.scss +5 -0
  107. data/assets/css/fontawesome.min.css +5 -0
  108. data/assets/css/style.scss +5 -0
  109. data/assets/images/favicon.ico +0 -0
  110. data/assets/js/bootstrap.bundle.min.js +7 -0
  111. data/assets/js/bootstrap.bundle.min.js.map +1 -0
  112. data/assets/js/jquery.min.js +2 -0
  113. data/assets/js/sidebar.js +25 -0
  114. data/assets/webfonts/fa-brands-400.eot +0 -0
  115. data/assets/webfonts/fa-brands-400.svg +3717 -0
  116. data/assets/webfonts/fa-brands-400.ttf +0 -0
  117. data/assets/webfonts/fa-brands-400.woff +0 -0
  118. data/assets/webfonts/fa-brands-400.woff2 +0 -0
  119. data/assets/webfonts/fa-regular-400.eot +0 -0
  120. data/assets/webfonts/fa-regular-400.svg +801 -0
  121. data/assets/webfonts/fa-regular-400.ttf +0 -0
  122. data/assets/webfonts/fa-regular-400.woff +0 -0
  123. data/assets/webfonts/fa-regular-400.woff2 +0 -0
  124. data/assets/webfonts/fa-solid-900.eot +0 -0
  125. data/assets/webfonts/fa-solid-900.svg +5034 -0
  126. data/assets/webfonts/fa-solid-900.ttf +0 -0
  127. data/assets/webfonts/fa-solid-900.woff +0 -0
  128. data/assets/webfonts/fa-solid-900.woff2 +0 -0
  129. metadata +184 -0
@@ -0,0 +1,144 @@
1
+ // Bootstrap functions
2
+ //
3
+ // Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
4
+
5
+ // Ascending
6
+ // Used to evaluate Sass maps like our grid breakpoints.
7
+ @mixin _assert-ascending($map, $map-name) {
8
+ $prev-key: null;
9
+ $prev-num: null;
10
+ @each $key, $num in $map {
11
+ @if $prev-num == null or unit($num) == "%" or unit($prev-num) == "%" {
12
+ // Do nothing
13
+ } @else if not comparable($prev-num, $num) {
14
+ @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
15
+ } @else if $prev-num >= $num {
16
+ @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
17
+ }
18
+ $prev-key: $key;
19
+ $prev-num: $num;
20
+ }
21
+ }
22
+
23
+ // Starts at zero
24
+ // Used to ensure the min-width of the lowest breakpoint starts at 0.
25
+ @mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
26
+ @if length($map) > 0 {
27
+ $values: map-values($map);
28
+ $first-value: nth($values, 1);
29
+ @if $first-value != 0 {
30
+ @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
31
+ }
32
+ }
33
+ }
34
+
35
+ // Replace `$search` with `$replace` in `$string`
36
+ // Used on our SVG icon backgrounds for custom forms.
37
+ //
38
+ // @author Hugo Giraudel
39
+ // @param {String} $string - Initial string
40
+ // @param {String} $search - Substring to replace
41
+ // @param {String} $replace ('') - New value
42
+ // @return {String} - Updated string
43
+ @function str-replace($string, $search, $replace: "") {
44
+ $index: str-index($string, $search);
45
+
46
+ @if $index {
47
+ @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
48
+ }
49
+
50
+ @return $string;
51
+ }
52
+
53
+ // See https://codepen.io/kevinweber/pen/dXWoRw
54
+ //
55
+ // Requires the use of quotes around data URIs.
56
+
57
+ @function escape-svg($string) {
58
+ @if str-index($string, "data:image/svg+xml") {
59
+ @each $char, $encoded in $escaped-characters {
60
+ // Do not escape the url brackets
61
+ @if str-index($string, "url(") == 1 {
62
+ $string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
63
+ } @else {
64
+ $string: str-replace($string, $char, $encoded);
65
+ }
66
+ }
67
+ }
68
+
69
+ @return $string;
70
+ }
71
+
72
+ // Color contrast
73
+ @function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {
74
+ $r: red($color);
75
+ $g: green($color);
76
+ $b: blue($color);
77
+
78
+ $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
79
+
80
+ @if ($yiq >= $yiq-contrasted-threshold) {
81
+ @return $dark;
82
+ } @else {
83
+ @return $light;
84
+ }
85
+ }
86
+
87
+ // Retrieve color Sass maps
88
+ @function color($key: "blue") {
89
+ @return map-get($colors, $key);
90
+ }
91
+
92
+ @function theme-color($key: "primary") {
93
+ @return map-get($theme-colors, $key);
94
+ }
95
+
96
+ @function gray($key: "100") {
97
+ @return map-get($grays, $key);
98
+ }
99
+
100
+ // Request a theme color level
101
+ @function theme-color-level($color-name: "primary", $level: 0) {
102
+ $color: theme-color($color-name);
103
+ $color-base: if($level > 0, $black, $white);
104
+ $level: abs($level);
105
+
106
+ @return mix($color-base, $color, $level * $theme-color-interval);
107
+ }
108
+
109
+ // Return valid calc
110
+ @function add($value1, $value2, $return-calc: true) {
111
+ @if $value1 == null {
112
+ @return $value2;
113
+ }
114
+
115
+ @if $value2 == null {
116
+ @return $value1;
117
+ }
118
+
119
+ @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
120
+ @return $value1 + $value2;
121
+ }
122
+
123
+ @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2);
124
+ }
125
+
126
+ @function subtract($value1, $value2, $return-calc: true) {
127
+ @if $value1 == null and $value2 == null {
128
+ @return null;
129
+ }
130
+
131
+ @if $value1 == null {
132
+ @return -$value2;
133
+ }
134
+
135
+ @if $value2 == null {
136
+ @return $value1;
137
+ }
138
+
139
+ @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
140
+ @return $value1 - $value2;
141
+ }
142
+
143
+ @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
144
+ }
@@ -0,0 +1,73 @@
1
+ // Container widths
2
+ //
3
+ // Set the container width, and override it for fixed navbars in media queries.
4
+
5
+ @if $enable-grid-classes {
6
+ // Single container class with breakpoint max-widths
7
+ .container,
8
+ // 100% wide container at all breakpoints
9
+ .container-fluid {
10
+ @include make-container();
11
+ }
12
+
13
+ // Responsive containers that are 100% wide until a breakpoint
14
+ @each $breakpoint, $container-max-width in $container-max-widths {
15
+ .container-#{$breakpoint} {
16
+ @extend .container-fluid;
17
+ }
18
+
19
+ @include media-breakpoint-up($breakpoint, $grid-breakpoints) {
20
+ %responsive-container-#{$breakpoint} {
21
+ max-width: $container-max-width;
22
+ }
23
+
24
+ // Extend each breakpoint which is smaller or equal to the current breakpoint
25
+ $extend-breakpoint: true;
26
+
27
+ @each $name, $width in $grid-breakpoints {
28
+ @if ($extend-breakpoint) {
29
+ .container#{breakpoint-infix($name, $grid-breakpoints)} {
30
+ @extend %responsive-container-#{$breakpoint};
31
+ }
32
+
33
+ // Once the current breakpoint is reached, stop extending
34
+ @if ($breakpoint == $name) {
35
+ $extend-breakpoint: false;
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
42
+
43
+
44
+ // Row
45
+ //
46
+ // Rows contain your columns.
47
+
48
+ @if $enable-grid-classes {
49
+ .row {
50
+ @include make-row();
51
+ }
52
+
53
+ // Remove the negative margin from default .row, then the horizontal padding
54
+ // from all immediate children columns (to prevent runaway style inheritance).
55
+ .no-gutters {
56
+ margin-right: 0;
57
+ margin-left: 0;
58
+
59
+ > .col,
60
+ > [class*="col-"] {
61
+ padding-right: 0;
62
+ padding-left: 0;
63
+ }
64
+ }
65
+ }
66
+
67
+ // Columns
68
+ //
69
+ // Common styles for small and large grid columns
70
+
71
+ @if $enable-grid-classes {
72
+ @include make-grid-columns();
73
+ }
@@ -0,0 +1,42 @@
1
+ // Responsive images (ensure images don't scale beyond their parents)
2
+ //
3
+ // This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.
4
+ // We previously tried the "images are responsive by default" approach in Bootstrap v2,
5
+ // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
6
+ // which weren't expecting the images within themselves to be involuntarily resized.
7
+ // See also https://github.com/twbs/bootstrap/issues/18178
8
+ .img-fluid {
9
+ @include img-fluid();
10
+ }
11
+
12
+
13
+ // Image thumbnails
14
+ .img-thumbnail {
15
+ padding: $thumbnail-padding;
16
+ background-color: $thumbnail-bg;
17
+ border: $thumbnail-border-width solid $thumbnail-border-color;
18
+ @include border-radius($thumbnail-border-radius);
19
+ @include box-shadow($thumbnail-box-shadow);
20
+
21
+ // Keep them at most 100% wide
22
+ @include img-fluid();
23
+ }
24
+
25
+ //
26
+ // Figures
27
+ //
28
+
29
+ .figure {
30
+ // Ensures the caption's text aligns with the image.
31
+ display: inline-block;
32
+ }
33
+
34
+ .figure-img {
35
+ margin-bottom: $spacer / 2;
36
+ line-height: 1;
37
+ }
38
+
39
+ .figure-caption {
40
+ @include font-size($figure-caption-font-size);
41
+ color: $figure-caption-color;
42
+ }
@@ -0,0 +1,192 @@
1
+ // stylelint-disable selector-no-qualifying-type
2
+
3
+ //
4
+ // Base styles
5
+ //
6
+
7
+ .input-group {
8
+ position: relative;
9
+ display: flex;
10
+ flex-wrap: wrap; // For form validation feedback
11
+ align-items: stretch;
12
+ width: 100%;
13
+
14
+ > .form-control,
15
+ > .form-control-plaintext,
16
+ > .custom-select,
17
+ > .custom-file {
18
+ position: relative; // For focus state's z-index
19
+ flex: 1 1 auto;
20
+ width: 1%;
21
+ min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
22
+ margin-bottom: 0;
23
+
24
+ + .form-control,
25
+ + .custom-select,
26
+ + .custom-file {
27
+ margin-left: -$input-border-width;
28
+ }
29
+ }
30
+
31
+ // Bring the "active" form control to the top of surrounding elements
32
+ > .form-control:focus,
33
+ > .custom-select:focus,
34
+ > .custom-file .custom-file-input:focus ~ .custom-file-label {
35
+ z-index: 3;
36
+ }
37
+
38
+ // Bring the custom file input above the label
39
+ > .custom-file .custom-file-input:focus {
40
+ z-index: 4;
41
+ }
42
+
43
+ > .form-control,
44
+ > .custom-select {
45
+ &:not(:last-child) { @include border-right-radius(0); }
46
+ &:not(:first-child) { @include border-left-radius(0); }
47
+ }
48
+
49
+ // Custom file inputs have more complex markup, thus requiring different
50
+ // border-radius overrides.
51
+ > .custom-file {
52
+ display: flex;
53
+ align-items: center;
54
+
55
+ &:not(:last-child) .custom-file-label,
56
+ &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }
57
+ &:not(:first-child) .custom-file-label { @include border-left-radius(0); }
58
+ }
59
+ }
60
+
61
+
62
+ // Prepend and append
63
+ //
64
+ // While it requires one extra layer of HTML for each, dedicated prepend and
65
+ // append elements allow us to 1) be less clever, 2) simplify our selectors, and
66
+ // 3) support HTML5 form validation.
67
+
68
+ .input-group-prepend,
69
+ .input-group-append {
70
+ display: flex;
71
+
72
+ // Ensure buttons are always above inputs for more visually pleasing borders.
73
+ // This isn't needed for `.input-group-text` since it shares the same border-color
74
+ // as our inputs.
75
+ .btn {
76
+ position: relative;
77
+ z-index: 2;
78
+
79
+ &:focus {
80
+ z-index: 3;
81
+ }
82
+ }
83
+
84
+ .btn + .btn,
85
+ .btn + .input-group-text,
86
+ .input-group-text + .input-group-text,
87
+ .input-group-text + .btn {
88
+ margin-left: -$input-border-width;
89
+ }
90
+ }
91
+
92
+ .input-group-prepend { margin-right: -$input-border-width; }
93
+ .input-group-append { margin-left: -$input-border-width; }
94
+
95
+
96
+ // Textual addons
97
+ //
98
+ // Serves as a catch-all element for any text or radio/checkbox input you wish
99
+ // to prepend or append to an input.
100
+
101
+ .input-group-text {
102
+ display: flex;
103
+ align-items: center;
104
+ padding: $input-padding-y $input-padding-x;
105
+ margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
106
+ @include font-size($input-font-size); // Match inputs
107
+ font-weight: $font-weight-normal;
108
+ line-height: $input-line-height;
109
+ color: $input-group-addon-color;
110
+ text-align: center;
111
+ white-space: nowrap;
112
+ background-color: $input-group-addon-bg;
113
+ border: $input-border-width solid $input-group-addon-border-color;
114
+ @include border-radius($input-border-radius);
115
+
116
+ // Nuke default margins from checkboxes and radios to vertically center within.
117
+ input[type="radio"],
118
+ input[type="checkbox"] {
119
+ margin-top: 0;
120
+ }
121
+ }
122
+
123
+
124
+ // Sizing
125
+ //
126
+ // Remix the default form control sizing classes into new ones for easier
127
+ // manipulation.
128
+
129
+ .input-group-lg > .form-control:not(textarea),
130
+ .input-group-lg > .custom-select {
131
+ height: $input-height-lg;
132
+ }
133
+
134
+ .input-group-lg > .form-control,
135
+ .input-group-lg > .custom-select,
136
+ .input-group-lg > .input-group-prepend > .input-group-text,
137
+ .input-group-lg > .input-group-append > .input-group-text,
138
+ .input-group-lg > .input-group-prepend > .btn,
139
+ .input-group-lg > .input-group-append > .btn {
140
+ padding: $input-padding-y-lg $input-padding-x-lg;
141
+ @include font-size($input-font-size-lg);
142
+ line-height: $input-line-height-lg;
143
+ @include border-radius($input-border-radius-lg);
144
+ }
145
+
146
+ .input-group-sm > .form-control:not(textarea),
147
+ .input-group-sm > .custom-select {
148
+ height: $input-height-sm;
149
+ }
150
+
151
+ .input-group-sm > .form-control,
152
+ .input-group-sm > .custom-select,
153
+ .input-group-sm > .input-group-prepend > .input-group-text,
154
+ .input-group-sm > .input-group-append > .input-group-text,
155
+ .input-group-sm > .input-group-prepend > .btn,
156
+ .input-group-sm > .input-group-append > .btn {
157
+ padding: $input-padding-y-sm $input-padding-x-sm;
158
+ @include font-size($input-font-size-sm);
159
+ line-height: $input-line-height-sm;
160
+ @include border-radius($input-border-radius-sm);
161
+ }
162
+
163
+ .input-group-lg > .custom-select,
164
+ .input-group-sm > .custom-select {
165
+ padding-right: $custom-select-padding-x + $custom-select-indicator-padding;
166
+ }
167
+
168
+
169
+ // Prepend and append rounded corners
170
+ //
171
+ // These rulesets must come after the sizing ones to properly override sm and lg
172
+ // border-radius values when extending. They're more specific than we'd like
173
+ // with the `.input-group >` part, but without it, we cannot override the sizing.
174
+
175
+
176
+ .input-group > .input-group-prepend > .btn,
177
+ .input-group > .input-group-prepend > .input-group-text,
178
+ .input-group > .input-group-append:not(:last-child) > .btn,
179
+ .input-group > .input-group-append:not(:last-child) > .input-group-text,
180
+ .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
181
+ .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
182
+ @include border-right-radius(0);
183
+ }
184
+
185
+ .input-group > .input-group-append > .btn,
186
+ .input-group > .input-group-append > .input-group-text,
187
+ .input-group > .input-group-prepend:not(:first-child) > .btn,
188
+ .input-group > .input-group-prepend:not(:first-child) > .input-group-text,
189
+ .input-group > .input-group-prepend:first-child > .btn:not(:first-child),
190
+ .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
191
+ @include border-left-radius(0);
192
+ }