bootstrap 4.0.0.alpha1

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 (145) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +14 -0
  3. data/.gitignore +19 -0
  4. data/.travis.yml +16 -0
  5. data/CHANGELOG.md +7 -0
  6. data/Gemfile +13 -0
  7. data/LICENSE +21 -0
  8. data/README.md +143 -0
  9. data/Rakefile +75 -0
  10. data/assets/javascripts/bootstrap-sprockets.js +11 -0
  11. data/assets/javascripts/bootstrap.js +3560 -0
  12. data/assets/javascripts/bootstrap.min.js +220 -0
  13. data/assets/javascripts/bootstrap/alert.js +192 -0
  14. data/assets/javascripts/bootstrap/button.js +172 -0
  15. data/assets/javascripts/bootstrap/carousel.js +478 -0
  16. data/assets/javascripts/bootstrap/collapse.js +364 -0
  17. data/assets/javascripts/bootstrap/dropdown.js +293 -0
  18. data/assets/javascripts/bootstrap/modal.js +536 -0
  19. data/assets/javascripts/bootstrap/popover.js +201 -0
  20. data/assets/javascripts/bootstrap/scrollspy.js +320 -0
  21. data/assets/javascripts/bootstrap/tab.js +263 -0
  22. data/assets/javascripts/bootstrap/tooltip.js +619 -0
  23. data/assets/javascripts/bootstrap/util.js +157 -0
  24. data/assets/stylesheets/_bootstrap-flex.scss +8 -0
  25. data/assets/stylesheets/_bootstrap-grid.scss +62 -0
  26. data/assets/stylesheets/_bootstrap-reboot.scss +10 -0
  27. data/assets/stylesheets/_bootstrap.scss +55 -0
  28. data/assets/stylesheets/bootstrap/_alert.scss +65 -0
  29. data/assets/stylesheets/bootstrap/_animation.scss +27 -0
  30. data/assets/stylesheets/bootstrap/_breadcrumb.scss +23 -0
  31. data/assets/stylesheets/bootstrap/_button-group.scss +224 -0
  32. data/assets/stylesheets/bootstrap/_buttons.scss +174 -0
  33. data/assets/stylesheets/bootstrap/_card.scss +293 -0
  34. data/assets/stylesheets/bootstrap/_carousel.scss +252 -0
  35. data/assets/stylesheets/bootstrap/_close.scss +28 -0
  36. data/assets/stylesheets/bootstrap/_code.scss +58 -0
  37. data/assets/stylesheets/bootstrap/_custom-forms.scss +225 -0
  38. data/assets/stylesheets/bootstrap/_dropdown.scss +191 -0
  39. data/assets/stylesheets/bootstrap/_forms.scss +454 -0
  40. data/assets/stylesheets/bootstrap/_grid.scss +76 -0
  41. data/assets/stylesheets/bootstrap/_images.scss +28 -0
  42. data/assets/stylesheets/bootstrap/_input-group.scss +181 -0
  43. data/assets/stylesheets/bootstrap/_jumbotron.scss +22 -0
  44. data/assets/stylesheets/bootstrap/_labels.scss +75 -0
  45. data/assets/stylesheets/bootstrap/_list-group.scss +128 -0
  46. data/assets/stylesheets/bootstrap/_media.scss +90 -0
  47. data/assets/stylesheets/bootstrap/_mixins.scss +54 -0
  48. data/assets/stylesheets/bootstrap/_modal.scss +146 -0
  49. data/assets/stylesheets/bootstrap/_nav.scss +155 -0
  50. data/assets/stylesheets/bootstrap/_navbar.scss +230 -0
  51. data/assets/stylesheets/bootstrap/_normalize.scss +428 -0
  52. data/assets/stylesheets/bootstrap/_pager.scss +57 -0
  53. data/assets/stylesheets/bootstrap/_pagination.scss +82 -0
  54. data/assets/stylesheets/bootstrap/_popover.scss +140 -0
  55. data/assets/stylesheets/bootstrap/_print.scss +88 -0
  56. data/assets/stylesheets/bootstrap/_progress.scss +156 -0
  57. data/assets/stylesheets/bootstrap/_reboot.scss +298 -0
  58. data/assets/stylesheets/bootstrap/_responsive-embed.scss +38 -0
  59. data/assets/stylesheets/bootstrap/_tables.scss +193 -0
  60. data/assets/stylesheets/bootstrap/_tooltip.scss +85 -0
  61. data/assets/stylesheets/bootstrap/_type.scss +192 -0
  62. data/assets/stylesheets/bootstrap/_utilities-responsive.scss +49 -0
  63. data/assets/stylesheets/bootstrap/_utilities-spacing.scss +78 -0
  64. data/assets/stylesheets/bootstrap/_utilities.scss +117 -0
  65. data/assets/stylesheets/bootstrap/_variables.scss +632 -0
  66. data/assets/stylesheets/bootstrap/mixins/_alert.scss +14 -0
  67. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +13 -0
  68. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +35 -0
  69. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +76 -0
  70. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +100 -0
  71. data/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  72. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +7 -0
  73. data/assets/stylesheets/bootstrap/mixins/_forms.scss +89 -0
  74. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +43 -0
  75. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +44 -0
  76. data/assets/stylesheets/bootstrap/mixins/_grid.scss +75 -0
  77. data/assets/stylesheets/bootstrap/mixins/_hover.scss +59 -0
  78. data/assets/stylesheets/bootstrap/mixins/_image.scss +33 -0
  79. data/assets/stylesheets/bootstrap/mixins/_label.scss +11 -0
  80. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +30 -0
  81. data/assets/stylesheets/bootstrap/mixins/_lists.scss +7 -0
  82. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  83. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +9 -0
  84. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
  85. data/assets/stylesheets/bootstrap/mixins/_progress.scss +18 -0
  86. data/assets/stylesheets/bootstrap/mixins/_pulls.scss +6 -0
  87. data/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  88. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
  89. data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  90. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +32 -0
  91. data/assets/stylesheets/bootstrap/mixins/_size.scss +6 -0
  92. data/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  93. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +30 -0
  94. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
  95. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +8 -0
  96. data/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +8 -0
  97. data/bootstrap.gemspec +36 -0
  98. data/lib/bootstrap.rb +76 -0
  99. data/lib/bootstrap/engine.rb +11 -0
  100. data/lib/bootstrap/version.rb +4 -0
  101. data/tasks/updater.rb +67 -0
  102. data/tasks/updater/js.rb +37 -0
  103. data/tasks/updater/logger.rb +57 -0
  104. data/tasks/updater/network.rb +101 -0
  105. data/tasks/updater/scss.rb +34 -0
  106. data/templates/project/_bootstrap-variables.scss +633 -0
  107. data/templates/project/manifest.rb +18 -0
  108. data/templates/project/styles.scss +10 -0
  109. data/test/compass_test.rb +9 -0
  110. data/test/dummy_rails/README.rdoc +3 -0
  111. data/test/dummy_rails/Rakefile +6 -0
  112. data/test/dummy_rails/app/assets/images/.keep +0 -0
  113. data/test/dummy_rails/app/assets/javascripts/application.js +7 -0
  114. data/test/dummy_rails/app/assets/stylesheets/application.sass +1 -0
  115. data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
  116. data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
  117. data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
  118. data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
  119. data/test/dummy_rails/app/views/pages/root.html.slim +58 -0
  120. data/test/dummy_rails/config.ru +4 -0
  121. data/test/dummy_rails/config/application.rb +34 -0
  122. data/test/dummy_rails/config/boot.rb +5 -0
  123. data/test/dummy_rails/config/environment.rb +5 -0
  124. data/test/dummy_rails/config/environments/development.rb +23 -0
  125. data/test/dummy_rails/config/environments/production.rb +82 -0
  126. data/test/dummy_rails/config/environments/test.rb +38 -0
  127. data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
  128. data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
  129. data/test/dummy_rails/config/initializers/inflections.rb +16 -0
  130. data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
  131. data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
  132. data/test/dummy_rails/config/initializers/session_store.rb +3 -0
  133. data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
  134. data/test/dummy_rails/config/locales/en.yml +3 -0
  135. data/test/dummy_rails/config/locales/es.yml +3 -0
  136. data/test/dummy_rails/config/routes.rb +3 -0
  137. data/test/dummy_rails/log/.keep +0 -0
  138. data/test/gemfiles/rails_4_2.gemfile +11 -0
  139. data/test/gemfiles/rails_head.gemfile +19 -0
  140. data/test/rails_test.rb +19 -0
  141. data/test/support/dummy_rails_integration.rb +22 -0
  142. data/test/support/reporting.rb +27 -0
  143. data/test/test_helper.rb +35 -0
  144. data/test/test_helper_rails.rb +6 -0
  145. metadata +433 -0
@@ -0,0 +1,174 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .btn {
6
+ display: inline-block;
7
+ font-weight: $btn-font-weight;
8
+ text-align: center;
9
+ white-space: nowrap;
10
+ vertical-align: middle;
11
+ touch-action: manipulation;
12
+ cursor: pointer;
13
+ user-select: none;
14
+ border: $border-width solid transparent;
15
+ @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $line-height, $btn-border-radius);
16
+ @include transition(all .2s ease-in-out);
17
+
18
+ &,
19
+ &:active,
20
+ &.active {
21
+ &:focus,
22
+ &.focus {
23
+ @include tab-focus();
24
+ }
25
+ }
26
+
27
+ @include hover-focus {
28
+ text-decoration: none;
29
+ }
30
+ &.focus {
31
+ text-decoration: none;
32
+ }
33
+
34
+ &:active,
35
+ &.active {
36
+ background-image: none;
37
+ outline: 0;
38
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
39
+ }
40
+
41
+ &.disabled,
42
+ &:disabled {
43
+ cursor: $cursor-disabled;
44
+ opacity: .65;
45
+ @include box-shadow(none);
46
+ }
47
+ }
48
+
49
+ // Future-proof disabling of clicks on `<a>` elements
50
+ a.btn.disabled,
51
+ fieldset[disabled] a.btn {
52
+ pointer-events: none;
53
+ }
54
+
55
+
56
+ //
57
+ // Alternate buttons
58
+ //
59
+
60
+ .btn-primary {
61
+ @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
62
+ }
63
+ .btn-secondary {
64
+ @include button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border);
65
+ }
66
+ .btn-info {
67
+ @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
68
+ }
69
+ .btn-success {
70
+ @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
71
+ }
72
+ .btn-warning {
73
+ @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
74
+ }
75
+ .btn-danger {
76
+ @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
77
+ }
78
+
79
+ // Remove all backgrounds
80
+ .btn-primary-outline {
81
+ @include button-outline-variant($btn-primary-bg);
82
+ }
83
+ .btn-secondary-outline {
84
+ @include button-outline-variant($btn-secondary-border);
85
+ }
86
+ .btn-info-outline {
87
+ @include button-outline-variant($btn-info-bg);
88
+ }
89
+ .btn-success-outline {
90
+ @include button-outline-variant($btn-success-bg);
91
+ }
92
+ .btn-warning-outline {
93
+ @include button-outline-variant($btn-warning-bg);
94
+ }
95
+ .btn-danger-outline {
96
+ @include button-outline-variant($btn-danger-bg);
97
+ }
98
+
99
+
100
+ //
101
+ // Link buttons
102
+ //
103
+
104
+ // Make a button look and behave like a link
105
+ .btn-link {
106
+ font-weight: normal;
107
+ color: $link-color;
108
+ border-radius: 0;
109
+
110
+ &,
111
+ &:active,
112
+ &.active,
113
+ &:disabled {
114
+ background-color: transparent;
115
+ @include box-shadow(none);
116
+ }
117
+ &,
118
+ &:focus,
119
+ &:active {
120
+ border-color: transparent;
121
+ }
122
+ @include hover {
123
+ border-color: transparent;
124
+ }
125
+ @include hover-focus {
126
+ color: $link-hover-color;
127
+ text-decoration: $link-hover-decoration;
128
+ background-color: transparent;
129
+ }
130
+ &:disabled {
131
+ @include hover-focus {
132
+ color: $btn-link-disabled-color;
133
+ text-decoration: none;
134
+ }
135
+ }
136
+ }
137
+
138
+
139
+ //
140
+ // Button Sizes
141
+ //
142
+
143
+ .btn-lg {
144
+ // line-height: ensure even-numbered height of button next to large input
145
+ @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $line-height-lg, $btn-border-radius-lg);
146
+ }
147
+ .btn-sm {
148
+ // line-height: ensure proper height of button next to small input
149
+ @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $line-height-sm, $btn-border-radius-sm);
150
+ }
151
+
152
+
153
+ //
154
+ // Block button
155
+ //
156
+
157
+ .btn-block {
158
+ display: block;
159
+ width: 100%;
160
+ }
161
+
162
+ // Vertically space out multiple block buttons
163
+ .btn-block + .btn-block {
164
+ margin-top: 5px;
165
+ }
166
+
167
+ // Specificity overrides
168
+ input[type="submit"],
169
+ input[type="reset"],
170
+ input[type="button"] {
171
+ &.btn-block {
172
+ width: 100%;
173
+ }
174
+ }
@@ -0,0 +1,293 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .card {
6
+ position: relative;
7
+ margin-bottom: $card-spacer-y;
8
+ background-color: $card-bg;
9
+ border: $card-border-width solid $card-border-color;
10
+ @include border-radius($card-border-radius);
11
+ }
12
+
13
+ .card-block {
14
+ padding: $card-spacer-x;
15
+ }
16
+
17
+ .card-title {
18
+ margin-bottom: $card-spacer-y;
19
+ }
20
+
21
+ .card-subtitle {
22
+ margin-top: -($card-spacer-y / 2);
23
+ margin-bottom: 0;
24
+ }
25
+
26
+ .card-text:last-child {
27
+ margin-bottom: 0;
28
+ }
29
+
30
+ // .card-actions {
31
+ // padding: $card-spacer-y $card-spacer-x;
32
+
33
+ // .card-link + .card-link {
34
+ // margin-left: $card-spacer-x;
35
+ // }
36
+ // }
37
+
38
+ .card-link {
39
+ @include hover {
40
+ text-decoration: none;
41
+ }
42
+
43
+ + .card-link {
44
+ margin-left: $card-spacer-x;
45
+ }
46
+ }
47
+
48
+ @if $enable-rounded {
49
+ .card {
50
+ > .list-group:first-child {
51
+ .list-group-item:first-child {
52
+ border-radius: $card-border-radius $card-border-radius 0 0;
53
+ }
54
+ }
55
+
56
+ > .list-group:last-child {
57
+ .list-group-item:last-child {
58
+ border-radius: 0 0 $card-border-radius $card-border-radius;
59
+ }
60
+ }
61
+ }
62
+ }
63
+
64
+
65
+ //
66
+ // Optional textual caps
67
+ //
68
+
69
+ .card-header {
70
+ padding: $card-spacer-y $card-spacer-x;
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-border-radius-inner $card-border-radius-inner 0 0);
76
+ }
77
+ }
78
+
79
+ .card-footer {
80
+ padding: $card-spacer-y $card-spacer-x;
81
+ background-color: $card-cap-bg;
82
+ border-top: $card-border-width solid $card-border-color;
83
+
84
+ &:last-child {
85
+ @include border-radius(0 0 $card-border-radius-inner $card-border-radius-inner);
86
+ }
87
+ }
88
+
89
+
90
+ //
91
+ // Background variations
92
+ //
93
+
94
+ .card-primary {
95
+ background-color: $brand-primary;
96
+ border-color: $brand-primary;
97
+ }
98
+ .card-success {
99
+ background-color: $brand-success;
100
+ border-color: $brand-success;
101
+ }
102
+ .card-info {
103
+ background-color: $brand-info;
104
+ border-color: $brand-info;
105
+ }
106
+ .card-warning {
107
+ background-color: $brand-warning;
108
+ border-color: $brand-warning;
109
+ }
110
+ .card-danger {
111
+ background-color: $brand-danger;
112
+ border-color: $brand-danger;
113
+ }
114
+
115
+
116
+ //
117
+ // Inverse text within a card for use with dark backgrounds
118
+ //
119
+
120
+ .card-inverse {
121
+ .card-header,
122
+ .card-footer {
123
+ border-bottom: .075rem solid rgba(255,255,255,.2);
124
+ }
125
+ .card-header,
126
+ .card-footer,
127
+ .card-title,
128
+ .card-blockquote {
129
+ color: #fff;
130
+ }
131
+ .card-link,
132
+ .card-text,
133
+ .card-blockquote > footer {
134
+ color: rgba(255,255,255,.65);
135
+ }
136
+ .card-link {
137
+ @include hover-focus {
138
+ color: #fff;
139
+ }
140
+ }
141
+ }
142
+
143
+
144
+ //
145
+ // Blockquote
146
+ //
147
+
148
+ .card-blockquote {
149
+ padding: 0;
150
+ margin-bottom: 0;
151
+ border-left: 0;
152
+ }
153
+
154
+ // Card image
155
+ .card-img {
156
+ // margin: -1.325rem;
157
+ @include border-radius(.25rem);
158
+ }
159
+ .card-img-overlay {
160
+ position: absolute;
161
+ top: 0;
162
+ right: 0;
163
+ bottom: 0;
164
+ left: 0;
165
+ padding: 1.25rem;
166
+ }
167
+
168
+
169
+
170
+ // Card image caps
171
+ .card-img-top {
172
+ @include border-radius(.25rem .25rem 0 0);
173
+ }
174
+ .card-img-bottom {
175
+ @include border-radius(0 0 .25rem .25rem);
176
+ }
177
+
178
+
179
+ //
180
+ // Card set
181
+ //
182
+
183
+ @if $enable-flex {
184
+ @include media-breakpoint-up(sm) {
185
+ .card-deck {
186
+ display: flex;
187
+ flex-flow: row wrap;
188
+ margin-right: -.625rem;
189
+ margin-left: -.625rem;
190
+
191
+ .card {
192
+ flex: 1 0 0;
193
+ margin-right: .625rem;
194
+ margin-left: .625rem;
195
+ }
196
+ }
197
+ }
198
+ } @else {
199
+ @include media-breakpoint-up(sm) {
200
+ .card-deck {
201
+ display: table;
202
+ table-layout: fixed;
203
+ border-spacing: 1.25rem 0;
204
+
205
+ .card {
206
+ display: table-cell;
207
+ width: 1%;
208
+ vertical-align: top;
209
+ }
210
+ }
211
+ .card-deck-wrapper {
212
+ margin-right: -1.25rem;
213
+ margin-left: -1.25rem;
214
+ }
215
+ }
216
+ }
217
+
218
+ //
219
+ // Card groups
220
+ //
221
+
222
+ @include media-breakpoint-up(sm) {
223
+ .card-group {
224
+ @if $enable-flex {
225
+ display: flex;
226
+ flex-flow: row wrap;
227
+ } @else {
228
+ display: table;
229
+ width: 100%;
230
+ table-layout: fixed;
231
+ }
232
+
233
+ .card {
234
+ @if $enable-flex {
235
+ flex: 1 0 0;
236
+ } @else {
237
+ display: table-cell;
238
+ vertical-align: top;
239
+ }
240
+
241
+ + .card {
242
+ margin-left: 0;
243
+ border-left: 0;
244
+ }
245
+
246
+ // Handle rounded corners
247
+ @if $enable-rounded {
248
+ &:first-child {
249
+ .card-img-top {
250
+ border-top-right-radius: 0;
251
+ }
252
+ .card-img-bottom {
253
+ border-bottom-right-radius: 0;
254
+ }
255
+ }
256
+ &:last-child {
257
+ .card-img-top {
258
+ border-top-left-radius: 0;
259
+ }
260
+ .card-img-bottom {
261
+ border-bottom-left-radius: 0;
262
+ }
263
+ }
264
+
265
+ &:not(:first-child):not(:last-child) {
266
+ border-radius: 0;
267
+
268
+ .card-img-top,
269
+ .card-img-bottom {
270
+ border-radius: 0;
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ }
277
+
278
+
279
+ //
280
+ // Card
281
+ //
282
+
283
+ @include media-breakpoint-up(sm) {
284
+ .card-columns {
285
+ column-count: 3;
286
+ column-gap: 1.25rem;
287
+
288
+ .card {
289
+ display: inline-block;
290
+ width: 100%; // Don't let them exceed the column width
291
+ }
292
+ }
293
+ }