padrino-admin 0.11.3 → 0.11.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +3 -3
  3. data/lib/padrino-admin/access_control.rb +46 -47
  4. data/lib/padrino-admin/bootstrap-less/alerts.less +29 -55
  5. data/lib/padrino-admin/bootstrap-less/badges.less +13 -15
  6. data/lib/padrino-admin/bootstrap-less/bootstrap.less +17 -21
  7. data/lib/padrino-admin/bootstrap-less/breadcrumbs.less +6 -11
  8. data/lib/padrino-admin/bootstrap-less/button-groups.less +114 -32
  9. data/lib/padrino-admin/bootstrap-less/buttons.less +41 -41
  10. data/lib/padrino-admin/bootstrap-less/carousel.less +43 -18
  11. data/lib/padrino-admin/bootstrap-less/close.less +4 -4
  12. data/lib/padrino-admin/bootstrap-less/code.less +8 -10
  13. data/lib/padrino-admin/bootstrap-less/component-animations.less +10 -4
  14. data/lib/padrino-admin/bootstrap-less/dropdowns.less +78 -51
  15. data/lib/padrino-admin/bootstrap-less/forms.less +183 -274
  16. data/lib/padrino-admin/bootstrap-less/glyphicons.less +232 -0
  17. data/lib/padrino-admin/bootstrap-less/grid.less +230 -88
  18. data/lib/padrino-admin/bootstrap-less/input-groups.less +127 -0
  19. data/lib/padrino-admin/bootstrap-less/jumbotron.less +16 -8
  20. data/lib/padrino-admin/bootstrap-less/labels.less +25 -37
  21. data/lib/padrino-admin/bootstrap-less/list-group.less +34 -35
  22. data/lib/padrino-admin/bootstrap-less/media.less +7 -5
  23. data/lib/padrino-admin/bootstrap-less/mixins.less +321 -108
  24. data/lib/padrino-admin/bootstrap-less/modals.less +24 -20
  25. data/lib/padrino-admin/bootstrap-less/navbar.less +474 -216
  26. data/lib/padrino-admin/bootstrap-less/navs.less +67 -85
  27. data/lib/padrino-admin/bootstrap-less/pager.less +4 -4
  28. data/lib/padrino-admin/bootstrap-less/pagination.less +64 -69
  29. data/lib/padrino-admin/bootstrap-less/panels.less +114 -62
  30. data/lib/padrino-admin/bootstrap-less/popovers.less +18 -18
  31. data/lib/padrino-admin/bootstrap-less/print.less +22 -7
  32. data/lib/padrino-admin/bootstrap-less/progress-bars.less +10 -33
  33. data/lib/padrino-admin/bootstrap-less/responsive-utilities.less +141 -40
  34. data/lib/padrino-admin/bootstrap-less/scaffolding.less +66 -19
  35. data/lib/padrino-admin/bootstrap-less/tables.less +154 -158
  36. data/lib/padrino-admin/bootstrap-less/theme.less +232 -0
  37. data/lib/padrino-admin/bootstrap-less/thumbnails.less +9 -20
  38. data/lib/padrino-admin/bootstrap-less/tooltip.less +3 -3
  39. data/lib/padrino-admin/bootstrap-less/type.less +47 -55
  40. data/lib/padrino-admin/bootstrap-less/utilities.less +2 -2
  41. data/lib/padrino-admin/bootstrap-less/variables.less +289 -93
  42. data/lib/padrino-admin/bootstrap-less/wells.less +2 -2
  43. data/lib/padrino-admin/generators/actions.rb +11 -10
  44. data/lib/padrino-admin/generators/admin_app.rb +11 -11
  45. data/lib/padrino-admin/generators/admin_page.rb +9 -9
  46. data/lib/padrino-admin/generators/orm.rb +6 -7
  47. data/lib/padrino-admin/generators/templates/account/activerecord.rb.tt +7 -7
  48. data/lib/padrino-admin/generators/templates/account/couchrest.rb.tt +16 -16
  49. data/lib/padrino-admin/generators/templates/account/datamapper.rb.tt +7 -7
  50. data/lib/padrino-admin/generators/templates/account/minirecord.rb.tt +7 -7
  51. data/lib/padrino-admin/generators/templates/account/mongoid.rb.tt +8 -8
  52. data/lib/padrino-admin/generators/templates/account/mongomapper.rb.tt +7 -7
  53. data/lib/padrino-admin/generators/templates/account/ohm.rb.tt +9 -9
  54. data/lib/padrino-admin/generators/templates/account/sequel.rb.tt +8 -8
  55. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/affix.js +9 -3
  56. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/alert.js +4 -2
  57. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap.min.js +4 -4
  58. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/button.js +9 -5
  59. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/carousel.js +19 -12
  60. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/collapse.js +68 -45
  61. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/dropdown.js +6 -7
  62. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/modal.js +43 -40
  63. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/popover.js +16 -10
  64. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/scrollspy.js +6 -4
  65. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tab.js +4 -2
  66. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tooltip.js +78 -48
  67. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/transition.js +10 -1
  68. data/lib/padrino-admin/generators/templates/assets/stylesheets/application.css +1 -0
  69. data/lib/padrino-admin/generators/templates/assets/stylesheets/bootstrap.css +622 -334
  70. data/lib/padrino-admin/generators/templates/erb/app/layouts/error.erb.tt +2 -2
  71. data/lib/padrino-admin/generators/templates/erb/app/sessions/new.erb.tt +9 -9
  72. data/lib/padrino-admin/generators/templates/erb/page/_form.erb.tt +3 -3
  73. data/lib/padrino-admin/generators/templates/erb/page/index.erb.tt +3 -3
  74. data/lib/padrino-admin/generators/templates/haml/app/layouts/error.haml.tt +1 -1
  75. data/lib/padrino-admin/generators/templates/haml/app/sessions/new.haml.tt +9 -7
  76. data/lib/padrino-admin/generators/templates/haml/page/_form.haml.tt +2 -2
  77. data/lib/padrino-admin/generators/templates/haml/page/index.haml.tt +2 -2
  78. data/lib/padrino-admin/generators/templates/page/controller.rb.tt +3 -3
  79. data/lib/padrino-admin/generators/templates/slim/app/layouts/error.slim.tt +1 -1
  80. data/lib/padrino-admin/generators/templates/slim/app/sessions/new.slim.tt +9 -7
  81. data/lib/padrino-admin/generators/templates/slim/page/_form.slim.tt +2 -2
  82. data/lib/padrino-admin/generators/templates/slim/page/index.slim.tt +2 -2
  83. data/lib/padrino-admin/helpers/authentication_helpers.rb +35 -35
  84. data/lib/padrino-admin/helpers/view_helpers.rb +12 -19
  85. data/lib/padrino-admin/utils/crypt.rb +10 -9
  86. data/lib/padrino-admin.rb +4 -5
  87. data/test/fixtures/data_mapper.rb +10 -9
  88. data/test/generators/test_account_model_generator.rb +2 -2
  89. metadata +14 -21
@@ -9,16 +9,14 @@
9
9
  left: 0;
10
10
  z-index: @zindex-popover;
11
11
  display: none;
12
- max-width: 276px;
12
+ max-width: @popover-max-width;
13
13
  padding: 1px;
14
14
  text-align: left; // Reset given new insertion method
15
15
  background-color: @popover-bg;
16
- -webkit-bg-clip: padding-box;
17
- -moz-bg-clip: padding;
18
16
  background-clip: padding-box;
19
- border: 1px solid #ccc;
20
- border: 1px solid rgba(0,0,0,.2);
21
- border-radius: 6px;
17
+ border: 1px solid @popover-fallback-border-color;
18
+ border: 1px solid @popover-border-color;
19
+ border-radius: @border-radius-large;
22
20
  .box-shadow(0 5px 10px rgba(0,0,0,.2));
23
21
 
24
22
  // Overrides for proper insertion
@@ -50,14 +48,16 @@
50
48
  //
51
49
  // .arrow is outer, .arrow:after is inner
52
50
 
53
- .popover .arrow,
54
- .popover .arrow:after {
55
- position: absolute;
56
- display: block;
57
- width: 0;
58
- height: 0;
59
- border-color: transparent;
60
- border-style: solid;
51
+ .popover .arrow {
52
+ &,
53
+ &:after {
54
+ position: absolute;
55
+ display: block;
56
+ width: 0;
57
+ height: 0;
58
+ border-color: transparent;
59
+ border-style: solid;
60
+ }
61
61
  }
62
62
  .popover .arrow {
63
63
  border-width: @popover-arrow-outer-width;
@@ -72,7 +72,7 @@
72
72
  left: 50%;
73
73
  margin-left: -@popover-arrow-outer-width;
74
74
  border-bottom-width: 0;
75
- border-top-color: #999; // IE8 fallback
75
+ border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback
76
76
  border-top-color: @popover-arrow-outer-color;
77
77
  bottom: -@popover-arrow-outer-width;
78
78
  &:after {
@@ -88,7 +88,7 @@
88
88
  left: -@popover-arrow-outer-width;
89
89
  margin-top: -@popover-arrow-outer-width;
90
90
  border-left-width: 0;
91
- border-right-color: #999; // IE8 fallback
91
+ border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
92
92
  border-right-color: @popover-arrow-outer-color;
93
93
  &:after {
94
94
  content: " ";
@@ -102,7 +102,7 @@
102
102
  left: 50%;
103
103
  margin-left: -@popover-arrow-outer-width;
104
104
  border-top-width: 0;
105
- border-bottom-color: #999; // IE8 fallback
105
+ border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback
106
106
  border-bottom-color: @popover-arrow-outer-color;
107
107
  top: -@popover-arrow-outer-width;
108
108
  &:after {
@@ -119,7 +119,7 @@
119
119
  right: -@popover-arrow-outer-width;
120
120
  margin-top: -@popover-arrow-outer-width;
121
121
  border-right-width: 0;
122
- border-left-color: #999; // IE8 fallback
122
+ border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
123
123
  border-left-color: @popover-arrow-outer-color;
124
124
  &:after {
125
125
  content: " ";
@@ -71,15 +71,30 @@
71
71
  .navbar {
72
72
  display: none;
73
73
  }
74
- .table td,
75
- .table th {
76
- background-color: #fff !important;
77
- }
78
- .btn > .caret,
79
- .dropup > .btn > .caret {
80
- border-top-color: #000 !important;
74
+ .table {
75
+ td,
76
+ th {
77
+ background-color: #fff !important;
78
+ }
79
+ }
80
+ .btn,
81
+ .dropup > .btn {
82
+ > .caret {
83
+ border-top-color: #000 !important;
84
+ }
81
85
  }
82
86
  .label {
83
87
  border: 1px solid #000;
84
88
  }
89
+
90
+ .table {
91
+ border-collapse: collapse !important;
92
+ }
93
+ .table-bordered {
94
+ th,
95
+ td {
96
+ border: 1px solid #ddd !important;
97
+ }
98
+ }
99
+
85
100
  }
@@ -18,19 +18,13 @@
18
18
  to { background-position: 0 0; }
19
19
  }
20
20
 
21
- // IE9
22
- @-ms-keyframes progress-bar-stripes {
23
- from { background-position: 40px 0; }
24
- to { background-position: 0 0; }
25
- }
26
-
27
21
  // Opera
28
22
  @-o-keyframes progress-bar-stripes {
29
23
  from { background-position: 0 0; }
30
24
  to { background-position: 40px 0; }
31
25
  }
32
26
 
33
- // Spec
27
+ // Spec and IE10+
34
28
  @keyframes progress-bar-stripes {
35
29
  from { background-position: 40px 0; }
36
30
  to { background-position: 0 0; }
@@ -57,9 +51,8 @@
57
51
  width: 0%;
58
52
  height: 100%;
59
53
  font-size: @font-size-small;
60
- color: #fff;
54
+ color: @progress-bar-color;
61
55
  text-align: center;
62
- text-shadow: 0 -1px 0 rgba(0,0,0,.25);
63
56
  background-color: @progress-bar-bg;
64
57
  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
65
58
  .transition(width .6s ease);
@@ -68,7 +61,7 @@
68
61
  // Striped bars
69
62
  .progress-striped .progress-bar {
70
63
  #gradient > .striped(@progress-bar-bg);
71
- .background-size(40px 40px);
64
+ background-size: 40px 40px;
72
65
  }
73
66
 
74
67
  // Call animation for the active one
@@ -85,34 +78,18 @@
85
78
  // Variations
86
79
  // -------------------------
87
80
 
88
- // Danger (red)
89
- .progress-bar-danger {
90
- background-color: @progress-bar-danger-bg;
91
- .progress-striped & {
92
- #gradient > .striped(@progress-bar-danger-bg);
93
- }
81
+ .progress-bar-success {
82
+ .progress-bar-variant(@progress-bar-success-bg);
94
83
  }
95
84
 
96
- // Success (green)
97
- .progress-bar-success {
98
- background-color: @progress-bar-success-bg;
99
- .progress-striped & {
100
- #gradient > .striped(@progress-bar-success-bg);
101
- }
85
+ .progress-bar-info {
86
+ .progress-bar-variant(@progress-bar-info-bg);
102
87
  }
103
88
 
104
- // Warning (orange)
105
89
  .progress-bar-warning {
106
- background-color: @progress-bar-warning-bg;
107
- .progress-striped & {
108
- #gradient > .striped(@progress-bar-warning-bg);
109
- }
90
+ .progress-bar-variant(@progress-bar-warning-bg);
110
91
  }
111
92
 
112
- // Info (teal)
113
- .progress-bar-info {
114
- background-color: @progress-bar-info-bg;
115
- .progress-striped & {
116
- #gradient > .striped(@progress-bar-info-bg);
117
- }
93
+ .progress-bar-danger {
94
+ .progress-bar-variant(@progress-bar-danger-bg);
118
95
  }
@@ -35,70 +35,172 @@
35
35
 
36
36
  // Visibility utilities
37
37
 
38
- // For Phones
38
+ .visible-xs {
39
+ .responsive-invisibility();
40
+ @media (max-width: @screen-xs-max) {
41
+ .responsive-visibility();
42
+ }
43
+ &.visible-sm {
44
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
45
+ .responsive-visibility();
46
+ }
47
+ }
48
+ &.visible-md {
49
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
50
+ .responsive-visibility();
51
+ }
52
+ }
53
+ &.visible-lg {
54
+ @media (min-width: @screen-lg) {
55
+ .responsive-visibility();
56
+ }
57
+ }
58
+ }
39
59
  .visible-sm {
40
- .responsive-visibility();
60
+ .responsive-invisibility();
61
+ &.visible-xs {
62
+ @media (max-width: @screen-xs-max) {
63
+ .responsive-visibility();
64
+ }
65
+ }
66
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
67
+ .responsive-visibility();
68
+ }
69
+ &.visible-md {
70
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
71
+ .responsive-visibility();
72
+ }
73
+ }
74
+ &.visible-lg {
75
+ @media (min-width: @screen-lg) {
76
+ .responsive-visibility();
77
+ }
78
+ }
41
79
  }
42
80
  .visible-md {
43
81
  .responsive-invisibility();
82
+ &.visible-xs {
83
+ @media (max-width: @screen-xs-max) {
84
+ .responsive-visibility();
85
+ }
86
+ }
87
+ &.visible-sm {
88
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
89
+ .responsive-visibility();
90
+ }
91
+ }
92
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
93
+ .responsive-visibility();
94
+ }
95
+ &.visible-lg {
96
+ @media (min-width: @screen-lg) {
97
+ .responsive-visibility();
98
+ }
99
+ }
44
100
  }
45
101
  .visible-lg {
46
102
  .responsive-invisibility();
103
+ &.visible-xs {
104
+ @media (max-width: @screen-xs-max) {
105
+ .responsive-visibility();
106
+ }
107
+ }
108
+ &.visible-sm {
109
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
110
+ .responsive-visibility();
111
+ }
112
+ }
113
+ &.visible-md {
114
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
115
+ .responsive-visibility();
116
+ }
117
+ }
118
+ @media (min-width: @screen-lg) {
119
+ .responsive-visibility();
120
+ }
47
121
  }
48
122
 
49
- .hidden-sm {
50
- .responsive-invisibility();
51
- }
52
- .hidden-md {
123
+ .hidden-xs {
53
124
  .responsive-visibility();
54
- }
55
- .hidden-lg {
56
- .responsive-visibility();
57
- }
58
-
59
-
60
- // Tablets & small desktops only
61
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
62
- .visible-sm {
125
+ @media (max-width: @screen-xs-max) {
63
126
  .responsive-invisibility();
64
127
  }
65
- .visible-md {
66
- .responsive-visibility();
128
+ &.hidden-sm {
129
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
130
+ .responsive-invisibility();
131
+ }
67
132
  }
68
- .visible-lg {
69
- .responsive-invisibility();
133
+ &.hidden-md {
134
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
135
+ .responsive-invisibility();
136
+ }
70
137
  }
71
-
72
- .hidden-sm {
73
- .responsive-visibility();
138
+ &.hidden-lg {
139
+ @media (min-width: @screen-lg) {
140
+ .responsive-invisibility();
141
+ }
74
142
  }
75
- .hidden-md {
143
+ }
144
+ .hidden-sm {
145
+ .responsive-visibility();
146
+ &.hidden-xs {
147
+ @media (max-width: @screen-xs-max) {
148
+ .responsive-invisibility();
149
+ }
150
+ }
151
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
76
152
  .responsive-invisibility();
77
153
  }
78
- .hidden-lg {
79
- .responsive-visibility();
154
+ &.hidden-md {
155
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
156
+ .responsive-invisibility();
157
+ }
158
+ }
159
+ &.hidden-lg {
160
+ @media (min-width: @screen-lg) {
161
+ .responsive-invisibility();
162
+ }
80
163
  }
81
164
  }
82
-
83
- // For desktops
84
- @media (min-width: @screen-desktop) {
85
- .visible-sm {
86
- .responsive-invisibility();
165
+ .hidden-md {
166
+ .responsive-visibility();
167
+ &.hidden-xs {
168
+ @media (max-width: @screen-xs-max) {
169
+ .responsive-invisibility();
170
+ }
171
+ }
172
+ &.hidden-sm {
173
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
174
+ .responsive-invisibility();
175
+ }
87
176
  }
88
- .visible-md {
177
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
89
178
  .responsive-invisibility();
90
179
  }
91
- .visible-lg {
92
- .responsive-visibility();
180
+ &.hidden-lg {
181
+ @media (min-width: @screen-lg) {
182
+ .responsive-invisibility();
183
+ }
93
184
  }
94
-
95
- .hidden-sm {
96
- .responsive-visibility();
185
+ }
186
+ .hidden-lg {
187
+ .responsive-visibility();
188
+ &.hidden-xs {
189
+ @media (max-width: @screen-xs-max) {
190
+ .responsive-invisibility();
191
+ }
97
192
  }
98
- .hidden-md {
99
- .responsive-visibility();
193
+ &.hidden-sm {
194
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
195
+ .responsive-invisibility();
196
+ }
197
+ }
198
+ &.hidden-md {
199
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
200
+ .responsive-invisibility();
201
+ }
100
202
  }
101
- .hidden-lg {
203
+ @media (min-width: @screen-lg) {
102
204
  .responsive-invisibility();
103
205
  }
104
206
  }
@@ -107,7 +209,6 @@
107
209
  .visible-print {
108
210
  .responsive-invisibility();
109
211
  }
110
- .hidden-print { }
111
212
 
112
213
  @media print {
113
214
  .visible-print {
@@ -4,15 +4,15 @@
4
4
 
5
5
 
6
6
  // Reset the box-sizing
7
- // -------------------------
8
7
 
9
- * {
8
+ *,
9
+ *:before,
10
+ *:after {
10
11
  .box-sizing(border-box);
11
12
  }
12
13
 
13
14
 
14
15
  // Body reset
15
- // -------------------------
16
16
 
17
17
  html {
18
18
  font-size: 62.5%;
@@ -37,26 +37,37 @@ textarea {
37
37
  line-height: inherit;
38
38
  }
39
39
 
40
+ // Reset unusual Firefox-on-Android default style.
41
+ //
42
+ // See https://github.com/necolas/normalize.css/issues/214
43
+
44
+ button,
45
+ input,
46
+ select[multiple],
47
+ textarea {
48
+ background-image: none;
49
+ }
50
+
40
51
 
41
52
  // Links
42
- // -------------------------
43
53
 
44
54
  a {
45
55
  color: @link-color;
46
56
  text-decoration: none;
47
- }
48
- a:hover,
49
- a:focus {
50
- color: @link-hover-color;
51
- text-decoration: underline;
52
- }
53
- a:focus {
54
- .tab-focus();
57
+
58
+ &:hover,
59
+ &:focus {
60
+ color: @link-hover-color;
61
+ text-decoration: underline;
62
+ }
63
+
64
+ &:focus {
65
+ .tab-focus();
66
+ }
55
67
  }
56
68
 
57
69
 
58
70
  // Images
59
- // -------------------------
60
71
 
61
72
  img {
62
73
  vertical-align: middle;
@@ -64,20 +75,56 @@ img {
64
75
 
65
76
  // Responsive images (ensure images don't scale beyond their parents)
66
77
  .img-responsive {
67
- display: inline-block;
68
- max-width: 100%; // Part 1: Set a maximum relative to the parent
69
- height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
78
+ .img-responsive();
70
79
  }
71
80
 
72
81
  // Rounded corners
73
82
  .img-rounded {
74
- border-radius: 6px;
83
+ border-radius: @border-radius-large;
75
84
  }
76
85
 
77
86
  // Image thumbnails
78
- // See thumbnails.less for `.img-thumbnail`
87
+ //
88
+ // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
89
+ .img-thumbnail {
90
+ padding: @thumbnail-padding;
91
+ line-height: @line-height-base;
92
+ background-color: @thumbnail-bg;
93
+ border: 1px solid @thumbnail-border;
94
+ border-radius: @thumbnail-border-radius;
95
+ .transition(all .2s ease-in-out);
96
+
97
+ // Keep them at most 100% wide
98
+ .img-responsive(inline-block);
99
+ }
79
100
 
80
101
  // Perfect circle
81
102
  .img-circle {
82
- border-radius: 500px; // crank the border-radius so it works with most reasonably sized images
103
+ border-radius: 50%; // set radius in percents
104
+ }
105
+
106
+
107
+ // Horizontal rules
108
+
109
+ hr {
110
+ margin-top: @line-height-computed;
111
+ margin-bottom: @line-height-computed;
112
+ border: 0;
113
+ border-top: 1px solid @hr-border;
114
+ }
115
+
116
+
117
+ // Only display content to screen readers
118
+ //
119
+ // See: http://a11yproject.com/posts/how-to-hide-content/
120
+
121
+ .sr-only {
122
+ position: absolute;
123
+ width: 1px;
124
+ height: 1px;
125
+ margin: -1px;
126
+ padding: 0;
127
+ overflow: hidden;
128
+ clip: rect(0 0 0 0);
129
+ border: 0;
83
130
  }