bootstrap-generators 2.2.1 → 2.2.2

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 (60) hide show
  1. data/README.md +1 -1
  2. data/lib/bootstrap/generators/version.rb +1 -1
  3. data/vendor/assets/javascripts/bootstrap-affix.js +12 -1
  4. data/vendor/assets/javascripts/bootstrap-alert.js +12 -1
  5. data/vendor/assets/javascripts/bootstrap-button.js +12 -1
  6. data/vendor/assets/javascripts/bootstrap-carousel.js +11 -2
  7. data/vendor/assets/javascripts/bootstrap-collapse.js +15 -4
  8. data/vendor/assets/javascripts/bootstrap-dropdown.js +16 -3
  9. data/vendor/assets/javascripts/bootstrap-modal.js +12 -1
  10. data/vendor/assets/javascripts/bootstrap-popover.js +14 -3
  11. data/vendor/assets/javascripts/bootstrap-scrollspy.js +13 -2
  12. data/vendor/assets/javascripts/bootstrap-tab.js +12 -1
  13. data/vendor/assets/javascripts/bootstrap-tooltip.js +12 -1
  14. data/vendor/assets/javascripts/bootstrap-transition.js +1 -1
  15. data/vendor/assets/javascripts/bootstrap-typeahead.js +23 -10
  16. data/vendor/assets/stylesheets/bootstrap-responsive.css +37 -3
  17. data/vendor/assets/stylesheets/bootstrap.css +643 -378
  18. data/vendor/twitter/bootstrap/less/alerts.less +14 -0
  19. data/vendor/twitter/bootstrap/less/bootstrap.less +1 -1
  20. data/vendor/twitter/bootstrap/less/breadcrumbs.less +6 -6
  21. data/vendor/twitter/bootstrap/less/button-groups.less +27 -42
  22. data/vendor/twitter/bootstrap/less/buttons.less +5 -7
  23. data/vendor/twitter/bootstrap/less/carousel.less +15 -15
  24. data/vendor/twitter/bootstrap/less/code.less +3 -0
  25. data/vendor/twitter/bootstrap/less/dropdowns.less +5 -9
  26. data/vendor/twitter/bootstrap/less/forms.less +12 -8
  27. data/vendor/twitter/bootstrap/less/labels-badges.less +8 -0
  28. data/vendor/twitter/bootstrap/less/mixins.less +1 -1
  29. data/vendor/twitter/bootstrap/less/modals.less +4 -3
  30. data/vendor/twitter/bootstrap/less/navbar.less +21 -6
  31. data/vendor/twitter/bootstrap/less/navs.less +6 -0
  32. data/vendor/twitter/bootstrap/less/popovers.less +50 -38
  33. data/vendor/twitter/bootstrap/less/reset.less +82 -4
  34. data/vendor/twitter/bootstrap/less/responsive.less +10 -1
  35. data/vendor/twitter/bootstrap/less/tables.less +35 -34
  36. data/vendor/twitter/bootstrap/less/type.less +29 -21
  37. data/vendor/twitter/bootstrap/less/variables.less +4 -4
  38. data/vendor/twitter/bootstrap/sass/_alerts.scss +14 -0
  39. data/vendor/twitter/bootstrap/sass/_breadcrumbs.scss +5 -5
  40. data/vendor/twitter/bootstrap/sass/_button-groups.scss +27 -42
  41. data/vendor/twitter/bootstrap/sass/_buttons.scss +5 -7
  42. data/vendor/twitter/bootstrap/sass/_carousel.scss +15 -15
  43. data/vendor/twitter/bootstrap/sass/_code.scss +3 -0
  44. data/vendor/twitter/bootstrap/sass/_dropdowns.scss +5 -9
  45. data/vendor/twitter/bootstrap/sass/_forms.scss +12 -8
  46. data/vendor/twitter/bootstrap/sass/_labels-badges.scss +25 -15
  47. data/vendor/twitter/bootstrap/sass/_mixins.scss +3 -3
  48. data/vendor/twitter/bootstrap/sass/_modals.scss +1 -1
  49. data/vendor/twitter/bootstrap/sass/_navbar.scss +22 -4
  50. data/vendor/twitter/bootstrap/sass/_navs.scss +6 -0
  51. data/vendor/twitter/bootstrap/sass/_popovers.scss +50 -38
  52. data/vendor/twitter/bootstrap/sass/_reset.scss +82 -4
  53. data/vendor/twitter/bootstrap/sass/_tables.scss +36 -35
  54. data/vendor/twitter/bootstrap/sass/_type.scss +29 -21
  55. data/vendor/twitter/bootstrap/sass/_variables.scss +9 -9
  56. data/vendor/twitter/bootstrap/sass/bootstrap.scss +1 -1
  57. data/vendor/twitter/bootstrap/sass/responsive.scss +10 -1
  58. metadata +10 -12
  59. data/vendor/assets/stylesheets/bootstrap-responsive.min.css +0 -9
  60. data/vendor/assets/stylesheets/bootstrap.min.css +0 -9
@@ -138,7 +138,6 @@ input[type="checkbox"] {
138
138
  *margin-top: 0; /* IE7 */
139
139
  margin-top: 1px \9; /* IE8-9 */
140
140
  line-height: normal;
141
- cursor: pointer;
142
141
  }
143
142
 
144
143
  // Reset width of input images, buttons, radios, checkboxes
@@ -367,9 +366,9 @@ input[type="checkbox"][readonly] {
367
366
 
368
367
  // HTML5 invalid states
369
368
  // Shares styles with the .control-group.error above
370
- input:focus:required:invalid,
371
- textarea:focus:required:invalid,
372
- select:focus:required:invalid {
369
+ input:focus:invalid,
370
+ textarea:focus:invalid,
371
+ select:focus:invalid {
373
372
  color: #b94a48;
374
373
  border-color: #ee5f5b;
375
374
  &:focus {
@@ -462,7 +461,8 @@ select:focus:required:invalid {
462
461
  border: 1px solid #ccc;
463
462
  }
464
463
  .add-on,
465
- .btn {
464
+ .btn,
465
+ .btn-group > .dropdown-toggle {
466
466
  vertical-align: top;
467
467
  @include border-radius(0);
468
468
  }
@@ -489,7 +489,7 @@ select:focus:required:invalid {
489
489
  select,
490
490
  .uneditable-input {
491
491
  @include border-radius($inputBorderRadius 0 0 $inputBorderRadius);
492
- + .btn-group .btn {
492
+ + .btn-group .btn:last-child {
493
493
  @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
494
494
  }
495
495
  }
@@ -499,7 +499,8 @@ select:focus:required:invalid {
499
499
  margin-left: -1px;
500
500
  }
501
501
  .add-on:last-child,
502
- .btn:last-child {
502
+ .btn:last-child,
503
+ .btn-group:last-child > .dropdown-toggle {
503
504
  @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
504
505
  }
505
506
  }
@@ -670,7 +671,10 @@ legend + .control-group {
670
671
  // And apply it only to .help-block instances that follow a form control
671
672
  input,
672
673
  select,
673
- textarea {
674
+ textarea,
675
+ .uneditable-input,
676
+ .input-prepend,
677
+ .input-append {
674
678
  + .help-block {
675
679
  margin-top: $baseLineHeight / 2;
676
680
  }
@@ -27,6 +27,14 @@
27
27
  @include border-radius(9px);
28
28
  }
29
29
 
30
+ // Empty labels/badges collapse
31
+ .label,
32
+ .badge {
33
+ &:empty {
34
+ display: none;
35
+ }
36
+ }
37
+
30
38
  // Hover state, but only for links
31
39
  a {
32
40
  &.label:hover,
@@ -39,21 +47,23 @@ a {
39
47
 
40
48
  // Colors
41
49
  // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
42
- // Important (red)
43
- .label-important, .badge-important { background-color: $errorText; }
44
- .label-important[href], .badge-important[href] { background-color: darken($errorText, 10%); }
45
- // Warnings (orange)
46
- .label-warning, .badge-warning { background-color: $orange; }
47
- .label-warning[href], .badge-warning[href] { background-color: darken($orange, 10%); }
48
- // Success (green)
49
- .label-success, .badge-success { background-color: $successText; }
50
- .label-success[href], .badge-success[href] { background-color: darken($successText, 10%); }
51
- // Info (turquoise)
52
- .label-info, .badge-info { background-color: $infoText; }
53
- .label-info[href], .badge-info[href] { background-color: darken($infoText, 10%); }
54
- // Inverse (black)
55
- .label-inverse, .badge-inverse { background-color: $grayDark; }
56
- .label-inverse[href], .badge-inverse[href] { background-color: darken($grayDark, 10%); }
50
+ @each $item in label, badge {
51
+ // Important (red)
52
+ .#{$item}-important { background-color: $errorText; }
53
+ .#{$item}-important[href] { background-color: darken($errorText, 10%); }
54
+ // Warnings (orange)
55
+ .#{$item}-warning { background-color: $orange; }
56
+ .#{$item}-warning[href] { background-color: darken($orange, 10%); }
57
+ // Success (green)
58
+ .#{$item}-success { background-color: $successText; }
59
+ .#{$item}-success[href] { background-color: darken($successText, 10%); }
60
+ // Info (turquoise)
61
+ .#{$item}-info { background-color: $infoText; }
62
+ .#{$item}-info[href] { background-color: darken($infoText, 10%); }
63
+ // Inverse (black)
64
+ .#{$item}-inverse { background-color: $grayDark; }
65
+ .#{$item}-inverse[href] { background-color: darken($grayDark, 10%); }
66
+ }
57
67
 
58
68
  // Quick fix for labels/badges in buttons
59
69
  .btn {
@@ -111,6 +111,7 @@
111
111
  border: 0;
112
112
  }
113
113
 
114
+
114
115
  // FONTS
115
116
  // --------------------------------------------------
116
117
 
@@ -158,7 +159,7 @@
158
159
  // Mixin for form field states
159
160
  @mixin formFieldState($textColor: #555, $borderColor: #ccc, $backgroundColor: #f5f5f5) {
160
161
  // Set the text color
161
- > label,
162
+ .control-label,
162
163
  .help-block,
163
164
  .help-inline {
164
165
  color: $textColor;
@@ -256,7 +257,6 @@
256
257
  -o-transition: $transition;
257
258
  transition: $transition;
258
259
  }
259
-
260
260
  @mixin transition-delay($transition-delay) {
261
261
  -webkit-transition-delay: $transition-delay;
262
262
  -moz-transition-delay: $transition-delay;
@@ -413,7 +413,7 @@
413
413
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=1); // IE9 and down
414
414
  }
415
415
  @mixin gradient-vertical($startColor: #555, $endColor: #333) {
416
- background-color: mix($startColor, $endColor, 62.5%);
416
+ background-color: mix($startColor, $endColor, 60%);
417
417
  background-image: -moz-linear-gradient(top, $startColor, $endColor); // FF 3.6+
418
418
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), to($endColor)); // Safari 4+, Chrome 2+
419
419
  background-image: -webkit-linear-gradient(top, $startColor, $endColor); // Safari 5.1+, Chrome 10+
@@ -26,7 +26,6 @@
26
26
  top: 50%;
27
27
  left: 50%;
28
28
  z-index: $zindexModal;
29
- overflow: auto;
30
29
  width: 560px;
31
30
  margin: -250px 0 0 -280px;
32
31
  background-color: $white;
@@ -59,6 +58,7 @@
59
58
 
60
59
  // Body (where all modal content resides)
61
60
  .modal-body {
61
+ position: relative;
62
62
  overflow-y: auto;
63
63
  max-height: 400px;
64
64
  padding: 15px;
@@ -10,7 +10,6 @@
10
10
  .navbar {
11
11
  overflow: visible;
12
12
  margin-bottom: $baseLineHeight;
13
- color: $navbarText;
14
13
 
15
14
  // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
16
15
  *position: relative;
@@ -67,6 +66,7 @@
67
66
  .navbar-text {
68
67
  margin-bottom: 0;
69
68
  line-height: $navbarHeight;
69
+ color: $navbarText;
70
70
  }
71
71
 
72
72
  // Janky solution for now to account for links outside the .nav
@@ -123,7 +123,7 @@
123
123
  }
124
124
  .input-append,
125
125
  .input-prepend {
126
- margin-top: 6px;
126
+ margin-top: 5px;
127
127
  white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
128
128
  input {
129
129
  margin-top: 0; // remove the margin on top since it's on the parent
@@ -245,6 +245,7 @@
245
245
  }
246
246
  .navbar .nav .dropdown-toggle .caret {
247
247
  margin-top: 8px;
248
+
248
249
  }
249
250
 
250
251
  // Hover
@@ -273,7 +274,7 @@
273
274
  padding: 7px 10px;
274
275
  margin-left: 5px;
275
276
  margin-right: 5px;
276
- @include buttonBackground(darken($navbarBackgroundHighlight, 5%), darken($navbarBackground, 5.25%));
277
+ @include buttonBackground(darken($navbarBackgroundHighlight, 5%), darken($navbarBackground, 5%));
277
278
  @include box-shadow(inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075));
278
279
  }
279
280
  .navbar .btn-navbar .icon-bar {
@@ -334,6 +335,12 @@
334
335
  }
335
336
  }
336
337
 
338
+ // Caret should match text color on hover
339
+ .navbar .nav li.dropdown > a:hover .caret {
340
+ border-top-color: $navbarLinkColorActive;
341
+ border-bottom-color: $navbarLinkColorActive;
342
+ }
343
+
337
344
  // Remove background color from open dropdown
338
345
  .navbar .nav li.dropdown.open > .dropdown-toggle,
339
346
  .navbar .nav li.dropdown.active > .dropdown-toggle,
@@ -379,7 +386,6 @@
379
386
  // -------------------------
380
387
 
381
388
  .navbar-inverse {
382
- color: $navbarInverseText;
383
389
 
384
390
  .navbar-inner {
385
391
  @include gradient-vertical($navbarInverseBackgroundHighlight, $navbarInverseBackground);
@@ -395,6 +401,14 @@
395
401
  }
396
402
  }
397
403
 
404
+ .brand {
405
+ color: $navbarInverseBrandColor;
406
+ }
407
+
408
+ .navbar-text {
409
+ color: $navbarInverseText;
410
+ }
411
+
398
412
  .nav > li > a:focus,
399
413
  .nav > li > a:hover {
400
414
  background-color: $navbarInverseLinkBackgroundHover;
@@ -429,6 +443,10 @@
429
443
  background-color: $navbarInverseLinkBackgroundActive;
430
444
  color: $navbarInverseLinkColorActive;
431
445
  }
446
+ .nav li.dropdown > a:hover .caret {
447
+ border-top-color: $navbarInverseLinkColorActive;
448
+ color: $navbarInverseLinkColorActive;
449
+ }
432
450
  .nav li.dropdown > .dropdown-toggle .caret {
433
451
  border-top-color: $navbarInverseLinkColor;
434
452
  border-bottom-color: $navbarInverseLinkColor;
@@ -21,6 +21,12 @@
21
21
  background-color: $grayLighter;
22
22
  }
23
23
 
24
+ // Prevent IE8 from misplacing imgs
25
+ // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
26
+ .nav > li > a > img {
27
+ max-width: none;
28
+ }
29
+
24
30
  // Redeclare pull classes because of specifity
25
31
  .nav > .pull-right {
26
32
  float: right;
@@ -11,6 +11,7 @@
11
11
  display: none;
12
12
  width: 236px;
13
13
  padding: 1px;
14
+ text-align: left; // Reset given new insertion method
14
15
  background-color: $popoverBackground;
15
16
  -webkit-background-clip: padding-box;
16
17
  -moz-background-clip: padding;
@@ -20,12 +21,14 @@
20
21
  @include border-radius(6px);
21
22
  @include box-shadow(0 5px 10px rgba(0,0,0,.2));
22
23
 
24
+ // Overrides for proper insertion
25
+ white-space: normal;
26
+
23
27
  // Offset the popover to account for the popover arrow
24
28
  &.top { margin-top: -10px; }
25
29
  &.right { margin-left: 10px; }
26
30
  &.bottom { margin-top: 10px; }
27
31
  &.left { margin-left: -10px; }
28
-
29
32
  }
30
33
 
31
34
  .popover-title {
@@ -41,77 +44,86 @@
41
44
 
42
45
  .popover-content {
43
46
  padding: 9px 14px;
44
- p, ul, ol {
45
- margin-bottom: 0;
46
- }
47
47
  }
48
48
 
49
49
  // Arrows
50
+ //
51
+ // .arrow is outer, .arrow:after is inner
52
+
50
53
  .popover .arrow,
51
54
  .popover .arrow:after {
52
55
  position: absolute;
53
- display: inline-block;
56
+ display: block;
54
57
  width: 0;
55
58
  height: 0;
56
59
  border-color: transparent;
57
60
  border-style: solid;
58
61
  }
62
+ .popover .arrow {
63
+ border-width: $popoverArrowOuterWidth;
64
+ }
59
65
  .popover .arrow:after {
66
+ border-width: $popoverArrowWidth;
60
67
  content: "";
61
- z-index: -1;
62
68
  }
63
69
 
64
70
  .popover {
65
71
  &.top .arrow {
66
- bottom: -$popoverArrowWidth;
67
72
  left: 50%;
68
- margin-left: -$popoverArrowWidth;
69
- border-width: $popoverArrowWidth $popoverArrowWidth 0;
70
- border-top-color: $popoverArrowColor;
73
+ margin-left: -$popoverArrowOuterWidth;
74
+ border-bottom-width: 0;
75
+ border-top-color: #999; // IE8 fallback
76
+ border-top-color: $popoverArrowOuterColor;
77
+ bottom: -$popoverArrowOuterWidth;
71
78
  &:after {
72
- border-width: $popoverArrowOuterWidth $popoverArrowOuterWidth 0;
73
- border-top-color: $popoverArrowOuterColor;
74
- bottom: -1px;
75
- left: -$popoverArrowOuterWidth;
79
+ bottom: 1px;
80
+ margin-left: -$popoverArrowWidth;
81
+ border-bottom-width: 0;
82
+ border-top-color: $popoverArrowColor;
76
83
  }
77
84
  }
78
85
  &.right .arrow {
79
86
  top: 50%;
80
- left: -$popoverArrowWidth;
81
- margin-top: -$popoverArrowWidth;
82
- border-width: $popoverArrowWidth $popoverArrowWidth $popoverArrowWidth 0;
83
- border-right-color: $popoverArrowColor;
87
+ left: -$popoverArrowOuterWidth;
88
+ margin-top: -$popoverArrowOuterWidth;
89
+ border-left-width: 0;
90
+ border-right-color: #999; // IE8 fallback
91
+ border-right-color: $popoverArrowOuterColor;
84
92
  &:after {
85
- border-width: $popoverArrowOuterWidth $popoverArrowOuterWidth $popoverArrowOuterWidth 0;
86
- border-right-color: $popoverArrowOuterColor;
87
- bottom: -$popoverArrowOuterWidth;
88
- left: -1px;
93
+ left: 1px;
94
+ bottom: -$popoverArrowWidth;
95
+ border-left-width: 0;
96
+ border-right-color: $popoverArrowColor;
89
97
  }
90
98
  }
91
99
  &.bottom .arrow {
92
- top: -$popoverArrowWidth;
93
100
  left: 50%;
94
- margin-left: -$popoverArrowWidth;
95
- border-width: 0 $popoverArrowWidth $popoverArrowWidth;
96
- border-bottom-color: $popoverArrowColor;
101
+ margin-left: -$popoverArrowOuterWidth;
102
+ border-top-width: 0;
103
+ border-bottom-color: #999; // IE8 fallback
104
+ border-bottom-color: $popoverArrowOuterColor;
105
+ top: -$popoverArrowOuterWidth;
97
106
  &:after {
98
- border-width: 0 $popoverArrowOuterWidth $popoverArrowOuterWidth;
99
- border-bottom-color: $popoverArrowOuterColor;
100
- top: -1px;
101
- left: -$popoverArrowOuterWidth;
107
+ top: 1px;
108
+ margin-left: -$popoverArrowWidth;
109
+ border-top-width: 0;
110
+ border-bottom-color: $popoverArrowColor;
102
111
  }
103
112
  }
113
+
104
114
  &.left .arrow {
105
115
  top: 50%;
106
- right: -$popoverArrowWidth;
107
- margin-top: -$popoverArrowWidth;
108
- border-width: $popoverArrowWidth 0 $popoverArrowWidth $popoverArrowWidth;
109
- border-left-color: $popoverArrowColor;
116
+ right: -$popoverArrowOuterWidth;
117
+ margin-top: -$popoverArrowOuterWidth;
118
+ border-right-width: 0;
119
+ border-left-color: #999; // IE8 fallback
120
+ border-left-color: $popoverArrowOuterColor;
110
121
  &:after {
111
- border-width: $popoverArrowOuterWidth 0 $popoverArrowOuterWidth $popoverArrowOuterWidth;
112
- border-left-color: $popoverArrowOuterColor;
113
- bottom: -$popoverArrowOuterWidth;
114
- right: -1px;
122
+ right: 1px;
123
+ border-right-width: 0;
124
+ border-left-color: $popoverArrowColor;
125
+ bottom: -$popoverArrowWidth;
115
126
  }
116
127
  }
128
+
117
129
  }
@@ -1,5 +1,5 @@
1
1
  //
2
- // Reset
2
+ // Reset CSS
3
3
  // Adapted from http://github.com/necolas/normalize.css
4
4
  // --------------------------------------------------
5
5
 
@@ -122,10 +122,18 @@ input[type="submit"] {
122
122
  -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.
123
123
  cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
124
124
  }
125
+ label,
126
+ select,
127
+ button,
128
+ input[type="button"],
129
+ input[type="reset"],
130
+ input[type="submit"],
131
+ input[type="radio"],
132
+ input[type="checkbox"] {
133
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
134
+ }
125
135
  input[type="search"] { // Appearance in Safari/Chrome
126
- -webkit-box-sizing: content-box;
127
- -moz-box-sizing: content-box;
128
- box-sizing: content-box;
136
+ @include box-sizing(content-box);
129
137
  -webkit-appearance: textfield;
130
138
  }
131
139
  input[type="search"]::-webkit-search-decoration,
@@ -136,3 +144,73 @@ textarea {
136
144
  overflow: auto; // Remove vertical scrollbar in IE6-9
137
145
  vertical-align: top; // Readability and alignment cross-browser
138
146
  }
147
+
148
+
149
+ // Printing
150
+ // -------------------------
151
+ // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
152
+
153
+ @media print {
154
+
155
+ * {
156
+ text-shadow: none !important;
157
+ color: #000 !important; // Black prints faster: h5bp.com/s
158
+ background: transparent !important;
159
+ box-shadow: none !important;
160
+ }
161
+
162
+ a,
163
+ a:visited {
164
+ text-decoration: underline;
165
+ }
166
+
167
+ a[href]:after {
168
+ content: " (" attr(href) ")";
169
+ }
170
+
171
+ abbr[title]:after {
172
+ content: " (" attr(title) ")";
173
+ }
174
+
175
+ // Don't show links for images, or javascript/internal links
176
+ .ir a:after,
177
+ a[href^="javascript:"]:after,
178
+ a[href^="#"]:after {
179
+ content: "";
180
+ }
181
+
182
+ pre,
183
+ blockquote {
184
+ border: 1px solid #999;
185
+ page-break-inside: avoid;
186
+ }
187
+
188
+ thead {
189
+ display: table-header-group; // h5bp.com/t
190
+ }
191
+
192
+ tr,
193
+ img {
194
+ page-break-inside: avoid;
195
+ }
196
+
197
+ img {
198
+ max-width: 100% !important;
199
+ }
200
+
201
+ @page {
202
+ margin: 0.5cm;
203
+ }
204
+
205
+ p,
206
+ h2,
207
+ h3 {
208
+ orphans: 3;
209
+ widows: 3;
210
+ }
211
+
212
+ h2,
213
+ h3 {
214
+ page-break-after: avoid;
215
+ }
216
+ }