flipper-ui 0.16.2 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +5 -5
  2. data/docs/ui/README.md +34 -24
  3. data/docs/ui/images/banner.png +0 -0
  4. data/docs/ui/images/description.png +0 -0
  5. data/docs/ui/images/feature.png +0 -0
  6. data/docs/ui/images/features.png +0 -0
  7. data/examples/ui/basic.ru +20 -0
  8. data/flipper-ui.gemspec +2 -3
  9. data/lib/flipper/ui/action.rb +3 -6
  10. data/lib/flipper/ui/actions/feature.rb +5 -2
  11. data/lib/flipper/ui/actions/features.rb +14 -1
  12. data/lib/flipper/ui/actions/file.rb +1 -1
  13. data/lib/flipper/ui/assets/javascripts/application.coffee +5 -3
  14. data/lib/flipper/ui/configuration.rb +34 -10
  15. data/lib/flipper/ui/decorators/feature.rb +39 -13
  16. data/lib/flipper/ui/public/css/application.css +20 -6493
  17. data/lib/flipper/ui/public/js/application.js +5 -5
  18. data/lib/flipper/ui/util.rb +40 -0
  19. data/lib/flipper/ui/views/add_actor.erb +2 -2
  20. data/lib/flipper/ui/views/add_feature.erb +2 -2
  21. data/lib/flipper/ui/views/add_group.erb +1 -1
  22. data/lib/flipper/ui/views/feature.erb +199 -180
  23. data/lib/flipper/ui/views/features.erb +55 -36
  24. data/lib/flipper/ui/views/layout.erb +4 -14
  25. data/lib/flipper/ui.rb +4 -7
  26. data/lib/flipper/version.rb +1 -1
  27. data/spec/flipper/ui/actions/actors_gate_spec.rb +9 -13
  28. data/spec/flipper/ui/actions/feature_spec.rb +14 -16
  29. data/spec/flipper/ui/actions/features_spec.rb +49 -14
  30. data/spec/flipper/ui/actions/file_spec.rb +0 -10
  31. data/spec/flipper/ui/actions/groups_gate_spec.rb +0 -6
  32. data/spec/flipper/ui/actions/percentage_of_actors_gate_spec.rb +0 -2
  33. data/spec/flipper/ui/actions/percentage_of_time_gate_spec.rb +0 -2
  34. data/spec/flipper/ui/configuration_spec.rb +69 -34
  35. data/spec/flipper/ui/decorators/feature_spec.rb +2 -32
  36. data/spec/flipper/ui_spec.rb +1 -1
  37. metadata +21 -133
  38. data/docs/ui/images/configured-ui.png +0 -0
  39. data/docs/ui/images/environment-banner.png +0 -0
  40. data/lib/flipper/ui/assets/stylesheets/.DS_Store +0 -0
  41. data/lib/flipper/ui/assets/stylesheets/application.scss +0 -19
  42. data/lib/flipper/ui/assets/stylesheets/bootstrap/_alert.scss +0 -51
  43. data/lib/flipper/ui/assets/stylesheets/bootstrap/_badge.scss +0 -47
  44. data/lib/flipper/ui/assets/stylesheets/bootstrap/_breadcrumb.scss +0 -38
  45. data/lib/flipper/ui/assets/stylesheets/bootstrap/_button-group.scss +0 -166
  46. data/lib/flipper/ui/assets/stylesheets/bootstrap/_buttons.scss +0 -143
  47. data/lib/flipper/ui/assets/stylesheets/bootstrap/_card.scss +0 -270
  48. data/lib/flipper/ui/assets/stylesheets/bootstrap/_carousel.scss +0 -191
  49. data/lib/flipper/ui/assets/stylesheets/bootstrap/_close.scss +0 -34
  50. data/lib/flipper/ui/assets/stylesheets/bootstrap/_code.scss +0 -56
  51. data/lib/flipper/ui/assets/stylesheets/bootstrap/_custom-forms.scss +0 -297
  52. data/lib/flipper/ui/assets/stylesheets/bootstrap/_dropdown.scss +0 -131
  53. data/lib/flipper/ui/assets/stylesheets/bootstrap/_forms.scss +0 -333
  54. data/lib/flipper/ui/assets/stylesheets/bootstrap/_functions.scss +0 -86
  55. data/lib/flipper/ui/assets/stylesheets/bootstrap/_grid.scss +0 -52
  56. data/lib/flipper/ui/assets/stylesheets/bootstrap/_images.scss +0 -42
  57. data/lib/flipper/ui/assets/stylesheets/bootstrap/_input-group.scss +0 -159
  58. data/lib/flipper/ui/assets/stylesheets/bootstrap/_jumbotron.scss +0 -16
  59. data/lib/flipper/ui/assets/stylesheets/bootstrap/_list-group.scss +0 -115
  60. data/lib/flipper/ui/assets/stylesheets/bootstrap/_media.scss +0 -8
  61. data/lib/flipper/ui/assets/stylesheets/bootstrap/_mixins.scss +0 -42
  62. data/lib/flipper/ui/assets/stylesheets/bootstrap/_modal.scss +0 -168
  63. data/lib/flipper/ui/assets/stylesheets/bootstrap/_nav.scss +0 -118
  64. data/lib/flipper/ui/assets/stylesheets/bootstrap/_navbar.scss +0 -311
  65. data/lib/flipper/ui/assets/stylesheets/bootstrap/_pagination.scss +0 -77
  66. data/lib/flipper/ui/assets/stylesheets/bootstrap/_popover.scss +0 -183
  67. data/lib/flipper/ui/assets/stylesheets/bootstrap/_print.scss +0 -124
  68. data/lib/flipper/ui/assets/stylesheets/bootstrap/_progress.scss +0 -33
  69. data/lib/flipper/ui/assets/stylesheets/bootstrap/_reboot.scss +0 -482
  70. data/lib/flipper/ui/assets/stylesheets/bootstrap/_root.scss +0 -19
  71. data/lib/flipper/ui/assets/stylesheets/bootstrap/_tables.scss +0 -180
  72. data/lib/flipper/ui/assets/stylesheets/bootstrap/_tooltip.scss +0 -115
  73. data/lib/flipper/ui/assets/stylesheets/bootstrap/_transitions.scss +0 -36
  74. data/lib/flipper/ui/assets/stylesheets/bootstrap/_type.scss +0 -125
  75. data/lib/flipper/ui/assets/stylesheets/bootstrap/_utilities.scss +0 -14
  76. data/lib/flipper/ui/assets/stylesheets/bootstrap/_variables.scss +0 -894
  77. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-grid.scss +0 -32
  78. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-reboot.scss +0 -12
  79. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap.scss +0 -42
  80. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -13
  81. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  82. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -12
  83. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_border-radius.scss +0 -35
  84. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +0 -5
  85. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +0 -123
  86. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_buttons.scss +0 -109
  87. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_caret.scss +0 -65
  88. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_clearfix.scss +0 -7
  89. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_float.scss +0 -11
  90. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_forms.scss +0 -137
  91. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_gradients.scss +0 -45
  92. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -67
  93. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid.scss +0 -52
  94. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -39
  95. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_image.scss +0 -36
  96. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_list-group.scss +0 -21
  97. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_lists.scss +0 -7
  98. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  99. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
  100. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_pagination.scss +0 -22
  101. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_reset-text.scss +0 -17
  102. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_resize.scss +0 -6
  103. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -35
  104. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_size.scss +0 -6
  105. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -30
  106. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -14
  107. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -9
  108. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +0 -8
  109. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_transition.scss +0 -9
  110. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -7
  111. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  112. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  113. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -59
  114. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_clearfix.scss +0 -3
  115. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_display.scss +0 -38
  116. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -52
  117. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -46
  118. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_float.scss +0 -9
  119. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_position.scss +0 -36
  120. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  121. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -12
  122. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -51
  123. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_text.scss +0 -52
  124. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -11
  125. data/lib/flipper/ui/assets/stylesheets/primer/.scss-lint.yml +0 -446
  126. data/lib/flipper/ui/assets/stylesheets/primer/_alerts.scss +0 -106
  127. data/lib/flipper/ui/assets/stylesheets/primer/_avatars.scss +0 -36
  128. data/lib/flipper/ui/assets/stylesheets/primer/_base.scss +0 -40
  129. data/lib/flipper/ui/assets/stylesheets/primer/_blankslate.scss +0 -96
  130. data/lib/flipper/ui/assets/stylesheets/primer/_buttons.scss +0 -404
  131. data/lib/flipper/ui/assets/stylesheets/primer/_counter.scss +0 -10
  132. data/lib/flipper/ui/assets/stylesheets/primer/_filter-list.scss +0 -68
  133. data/lib/flipper/ui/assets/stylesheets/primer/_flex-table.scss +0 -20
  134. data/lib/flipper/ui/assets/stylesheets/primer/_forms.scss +0 -756
  135. data/lib/flipper/ui/assets/stylesheets/primer/_layout.scss +0 -69
  136. data/lib/flipper/ui/assets/stylesheets/primer/_menu.scss +0 -113
  137. data/lib/flipper/ui/assets/stylesheets/primer/_mixins.scss +0 -53
  138. data/lib/flipper/ui/assets/stylesheets/primer/_normalize.scss +0 -425
  139. data/lib/flipper/ui/assets/stylesheets/primer/_states.scss +0 -32
  140. data/lib/flipper/ui/assets/stylesheets/primer/_tabnav.scss +0 -65
  141. data/lib/flipper/ui/assets/stylesheets/primer/_tooltips.scss +0 -255
  142. data/lib/flipper/ui/assets/stylesheets/primer/_truncate.scss +0 -27
  143. data/lib/flipper/ui/assets/stylesheets/primer/_type.scss +0 -92
  144. data/lib/flipper/ui/assets/stylesheets/primer/_utility.scss +0 -73
  145. data/lib/flipper/ui/assets/stylesheets/primer/_variables.scss +0 -34
  146. data/lib/flipper/ui/assets/stylesheets/primer/primer.scss +0 -39
  147. data/lib/flipper/ui/eruby.rb +0 -11
  148. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  149. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -288
  150. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  151. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  152. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  153. data/lib/flipper/ui/public/images/remove.png +0 -0
  154. data/lib/flipper/ui/public/octicons/octicons.less +0 -235
  155. data/lib/flipper/ui/public/octicons/sprockets-octicons.scss +0 -232
@@ -1,143 +0,0 @@
1
- // stylelint-disable selector-no-qualifying-type
2
-
3
- //
4
- // Base styles
5
- //
6
-
7
- .btn {
8
- display: inline-block;
9
- font-weight: $btn-font-weight;
10
- text-align: center;
11
- white-space: nowrap;
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);
17
-
18
- // Share hover and focus styles
19
- @include hover-focus {
20
- text-decoration: none;
21
- }
22
-
23
- &:focus,
24
- &.focus {
25
- outline: 0;
26
- box-shadow: $btn-focus-box-shadow;
27
- }
28
-
29
- // Disabled comes first so active can properly restyle
30
- &.disabled,
31
- &:disabled {
32
- opacity: $btn-disabled-opacity;
33
- @include box-shadow(none);
34
- }
35
-
36
- // Opinionated: add "hand" cursor to non-disabled .btn elements
37
- &:not(:disabled):not(.disabled) {
38
- cursor: pointer;
39
- }
40
-
41
- &:not(:disabled):not(.disabled):active,
42
- &:not(:disabled):not(.disabled).active {
43
- background-image: none;
44
- @include box-shadow($btn-active-box-shadow);
45
-
46
- &:focus {
47
- @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
48
- }
49
- }
50
- }
51
-
52
- // Future-proof disabling of clicks on `<a>` elements
53
- a.btn.disabled,
54
- fieldset:disabled a.btn {
55
- pointer-events: none;
56
- }
57
-
58
-
59
- //
60
- // Alternate buttons
61
- //
62
-
63
- @each $color, $value in $theme-colors {
64
- .btn-#{$color} {
65
- @include button-variant($value, $value);
66
- }
67
- }
68
-
69
- @each $color, $value in $theme-colors {
70
- .btn-outline-#{$color} {
71
- @include button-outline-variant($value);
72
- }
73
- }
74
-
75
-
76
- //
77
- // Link buttons
78
- //
79
-
80
- // Make a button look and behave like a link
81
- .btn-link {
82
- font-weight: $font-weight-normal;
83
- color: $link-color;
84
- background-color: transparent;
85
-
86
- @include hover {
87
- color: $link-hover-color;
88
- text-decoration: $link-hover-decoration;
89
- background-color: transparent;
90
- border-color: transparent;
91
- }
92
-
93
- &:focus,
94
- &.focus {
95
- text-decoration: $link-hover-decoration;
96
- border-color: transparent;
97
- box-shadow: none;
98
- }
99
-
100
- &:disabled,
101
- &.disabled {
102
- color: $btn-link-disabled-color;
103
- }
104
-
105
- // No need for an active state here
106
- }
107
-
108
-
109
- //
110
- // Button Sizes
111
- //
112
-
113
- .btn-lg {
114
- @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
115
- }
116
-
117
- .btn-sm {
118
- @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);
119
- }
120
-
121
-
122
- //
123
- // Block button
124
- //
125
-
126
- .btn-block {
127
- display: block;
128
- width: 100%;
129
-
130
- // Vertically space out multiple block buttons
131
- + .btn-block {
132
- margin-top: $btn-block-spacing-y;
133
- }
134
- }
135
-
136
- // Specificity overrides
137
- input[type="submit"],
138
- input[type="reset"],
139
- input[type="button"] {
140
- &.btn-block {
141
- width: 100%;
142
- }
143
- }
@@ -1,270 +0,0 @@
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#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored
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#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored
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
-
265
- .card {
266
- display: inline-block; // Don't let them vertically span multiple columns
267
- width: 100%; // Don't let their width change
268
- }
269
- }
270
- }
@@ -1,191 +0,0 @@
1
- // Wrapper for the slide container and indicators
2
- .carousel {
3
- position: relative;
4
- }
5
-
6
- .carousel-inner {
7
- position: relative;
8
- width: 100%;
9
- overflow: hidden;
10
- }
11
-
12
- .carousel-item {
13
- position: relative;
14
- display: none;
15
- align-items: center;
16
- width: 100%;
17
- @include transition($carousel-transition);
18
- backface-visibility: hidden;
19
- perspective: 1000px;
20
- }
21
-
22
- .carousel-item.active,
23
- .carousel-item-next,
24
- .carousel-item-prev {
25
- display: block;
26
- }
27
-
28
- .carousel-item-next,
29
- .carousel-item-prev {
30
- position: absolute;
31
- top: 0;
32
- }
33
-
34
- // CSS3 transforms when supported by the browser
35
- .carousel-item-next.carousel-item-left,
36
- .carousel-item-prev.carousel-item-right {
37
- transform: translateX(0);
38
-
39
- @supports (transform-style: preserve-3d) {
40
- transform: translate3d(0, 0, 0);
41
- }
42
- }
43
-
44
- .carousel-item-next,
45
- .active.carousel-item-right {
46
- transform: translateX(100%);
47
-
48
- @supports (transform-style: preserve-3d) {
49
- transform: translate3d(100%, 0, 0);
50
- }
51
- }
52
-
53
- .carousel-item-prev,
54
- .active.carousel-item-left {
55
- transform: translateX(-100%);
56
-
57
- @supports (transform-style: preserve-3d) {
58
- transform: translate3d(-100%, 0, 0);
59
- }
60
- }
61
-
62
-
63
- //
64
- // Left/right controls for nav
65
- //
66
-
67
- .carousel-control-prev,
68
- .carousel-control-next {
69
- position: absolute;
70
- top: 0;
71
- bottom: 0;
72
- // Use flex for alignment (1-3)
73
- display: flex; // 1. allow flex styles
74
- align-items: center; // 2. vertically center contents
75
- justify-content: center; // 3. horizontally center contents
76
- width: $carousel-control-width;
77
- color: $carousel-control-color;
78
- text-align: center;
79
- opacity: $carousel-control-opacity;
80
- // We can't have a transition here because WebKit cancels the carousel
81
- // animation if you trip this while in the middle of another animation.
82
-
83
- // Hover/focus state
84
- @include hover-focus {
85
- color: $carousel-control-color;
86
- text-decoration: none;
87
- outline: 0;
88
- opacity: .9;
89
- }
90
- }
91
- .carousel-control-prev {
92
- left: 0;
93
- @if $enable-gradients {
94
- background: linear-gradient(90deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .001));
95
- }
96
- }
97
- .carousel-control-next {
98
- right: 0;
99
- @if $enable-gradients {
100
- background: linear-gradient(270deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .001));
101
- }
102
- }
103
-
104
- // Icons for within
105
- .carousel-control-prev-icon,
106
- .carousel-control-next-icon {
107
- display: inline-block;
108
- width: $carousel-control-icon-width;
109
- height: $carousel-control-icon-width;
110
- background: transparent no-repeat center center;
111
- background-size: 100% 100%;
112
- }
113
- .carousel-control-prev-icon {
114
- background-image: $carousel-control-prev-icon-bg;
115
- }
116
- .carousel-control-next-icon {
117
- background-image: $carousel-control-next-icon-bg;
118
- }
119
-
120
-
121
- // Optional indicator pips
122
- //
123
- // Add an ordered list with the following class and add a list item for each
124
- // slide your carousel holds.
125
-
126
- .carousel-indicators {
127
- position: absolute;
128
- right: 0;
129
- bottom: 10px;
130
- left: 0;
131
- z-index: 15;
132
- display: flex;
133
- justify-content: center;
134
- padding-left: 0; // override <ol> default
135
- // Use the .carousel-control's width as margin so we don't overlay those
136
- margin-right: $carousel-control-width;
137
- margin-left: $carousel-control-width;
138
- list-style: none;
139
-
140
- li {
141
- position: relative;
142
- flex: 0 1 auto;
143
- width: $carousel-indicator-width;
144
- height: $carousel-indicator-height;
145
- margin-right: $carousel-indicator-spacer;
146
- margin-left: $carousel-indicator-spacer;
147
- text-indent: -999px;
148
- background-color: rgba($carousel-indicator-active-bg, .5);
149
-
150
- // Use pseudo classes to increase the hit area by 10px on top and bottom.
151
- &::before {
152
- position: absolute;
153
- top: -10px;
154
- left: 0;
155
- display: inline-block;
156
- width: 100%;
157
- height: 10px;
158
- content: "";
159
- }
160
- &::after {
161
- position: absolute;
162
- bottom: -10px;
163
- left: 0;
164
- display: inline-block;
165
- width: 100%;
166
- height: 10px;
167
- content: "";
168
- }
169
- }
170
-
171
- .active {
172
- background-color: $carousel-indicator-active-bg;
173
- }
174
- }
175
-
176
-
177
- // Optional captions
178
- //
179
- //
180
-
181
- .carousel-caption {
182
- position: absolute;
183
- right: ((100% - $carousel-caption-width) / 2);
184
- bottom: 20px;
185
- left: ((100% - $carousel-caption-width) / 2);
186
- z-index: 10;
187
- padding-top: 20px;
188
- padding-bottom: 20px;
189
- color: $carousel-caption-color;
190
- text-align: center;
191
- }
@@ -1,34 +0,0 @@
1
- .close {
2
- float: right;
3
- font-size: $close-font-size;
4
- font-weight: $close-font-weight;
5
- line-height: 1;
6
- color: $close-color;
7
- text-shadow: $close-text-shadow;
8
- opacity: .5;
9
-
10
- @include hover-focus {
11
- color: $close-color;
12
- text-decoration: none;
13
- opacity: .75;
14
- }
15
-
16
- // Opinionated: add "hand" cursor to non-disabled .close elements
17
- &:not(:disabled):not(.disabled) {
18
- cursor: pointer;
19
- }
20
- }
21
-
22
- // Additional properties for button version
23
- // iOS requires the button element instead of an anchor tag.
24
- // If you want the anchor version, it requires `href="#"`.
25
- // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
26
-
27
- // stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type
28
- button.close {
29
- padding: 0;
30
- background-color: transparent;
31
- border: 0;
32
- -webkit-appearance: none;
33
- }
34
- // stylelint-enable
@@ -1,56 +0,0 @@
1
- // Inline and block code styles
2
- code,
3
- kbd,
4
- pre,
5
- samp {
6
- font-family: $font-family-monospace;
7
- }
8
-
9
- // Inline code
10
- code {
11
- font-size: $code-font-size;
12
- color: $code-color;
13
- word-break: break-word;
14
-
15
- // Streamline the style when inside anchors to avoid broken underline and more
16
- a > & {
17
- color: inherit;
18
- }
19
- }
20
-
21
- // User input typically entered via keyboard
22
- kbd {
23
- padding: $kbd-padding-y $kbd-padding-x;
24
- font-size: $kbd-font-size;
25
- color: $kbd-color;
26
- background-color: $kbd-bg;
27
- @include border-radius($border-radius-sm);
28
- @include box-shadow($kbd-box-shadow);
29
-
30
- kbd {
31
- padding: 0;
32
- font-size: 100%;
33
- font-weight: $nested-kbd-font-weight;
34
- @include box-shadow(none);
35
- }
36
- }
37
-
38
- // Blocks of code
39
- pre {
40
- display: block;
41
- font-size: $code-font-size;
42
- color: $pre-color;
43
-
44
- // Account for some code outputs that place code tags in pre tags
45
- code {
46
- font-size: inherit;
47
- color: inherit;
48
- word-break: normal;
49
- }
50
- }
51
-
52
- // Enable scrollable blocks of code
53
- .pre-scrollable {
54
- max-height: $pre-scrollable-max-height;
55
- overflow-y: scroll;
56
- }