bumble 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 (125) hide show
  1. data/.gitignore +16 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +4 -0
  4. data/Rakefile +1 -0
  5. data/Readme.mdown +8 -0
  6. data/app/controllers/bumble_controller.rb +45 -0
  7. data/app/controllers/comments_controller.rb +99 -0
  8. data/app/controllers/password_resets_controller.rb +34 -0
  9. data/app/controllers/posts_controller.rb +103 -0
  10. data/app/controllers/user_sessions_controller.rb +22 -0
  11. data/app/controllers/users_controller.rb +60 -0
  12. data/app/helpers/bumble_helper.rb +50 -0
  13. data/app/models/asset.rb +57 -0
  14. data/app/models/comment.rb +78 -0
  15. data/app/models/notifier.rb +35 -0
  16. data/app/models/post.rb +57 -0
  17. data/app/models/posts/blog.rb +3 -0
  18. data/app/models/posts/code.rb +3 -0
  19. data/app/models/posts/image.rb +3 -0
  20. data/app/models/posts/link.rb +7 -0
  21. data/app/models/posts/quote.rb +3 -0
  22. data/app/models/posts/video.rb +4 -0
  23. data/app/models/user.rb +35 -0
  24. data/app/models/user_session.rb +2 -0
  25. data/app/views/comments/_comment.html.haml +14 -0
  26. data/app/views/comments/_form.html.haml +9 -0
  27. data/app/views/comments/edit.html.haml +7 -0
  28. data/app/views/comments/index.atom.builder +15 -0
  29. data/app/views/comments/new.html.haml +7 -0
  30. data/app/views/layouts/_sidebar.html.haml +20 -0
  31. data/app/views/layouts/bumble.html.haml +35 -0
  32. data/app/views/notifier/activation_confirmation.erb +5 -0
  33. data/app/views/notifier/activation_instructions.erb +5 -0
  34. data/app/views/notifier/new_comment_alert.erb +8 -0
  35. data/app/views/notifier/password_reset_instructions.erb +8 -0
  36. data/app/views/password_resets/edit.html.haml +10 -0
  37. data/app/views/password_resets/new.html.haml +7 -0
  38. data/app/views/posts/_form.html.haml +10 -0
  39. data/app/views/posts/_post.html.haml +16 -0
  40. data/app/views/posts/_preview.html.haml +8 -0
  41. data/app/views/posts/edit.html.haml +10 -0
  42. data/app/views/posts/forms/_blog.html.haml +4 -0
  43. data/app/views/posts/forms/_code.html.haml +6 -0
  44. data/app/views/posts/forms/_image.html.haml +9 -0
  45. data/app/views/posts/forms/_link.html.haml +6 -0
  46. data/app/views/posts/forms/_quote.html.haml +4 -0
  47. data/app/views/posts/forms/_video.html.haml +6 -0
  48. data/app/views/posts/index.atom.builder +15 -0
  49. data/app/views/posts/index.html.haml +21 -0
  50. data/app/views/posts/new.html.haml +8 -0
  51. data/app/views/posts/search.html.haml +27 -0
  52. data/app/views/posts/show.html.haml +22 -0
  53. data/app/views/posts/types/_blog.html.haml +4 -0
  54. data/app/views/posts/types/_code.html.haml +7 -0
  55. data/app/views/posts/types/_image.html.haml +3 -0
  56. data/app/views/posts/types/_link.html.haml +3 -0
  57. data/app/views/posts/types/_quote.html.haml +2 -0
  58. data/app/views/posts/types/_video.html.haml +5 -0
  59. data/app/views/user_sessions/new.html.haml +10 -0
  60. data/app/views/users/_form.html.haml +12 -0
  61. data/app/views/users/_user.html.haml +3 -0
  62. data/app/views/users/delete.html.haml +5 -0
  63. data/app/views/users/edit.html.haml +8 -0
  64. data/app/views/users/index.html.haml +3 -0
  65. data/app/views/users/new.html.haml +7 -0
  66. data/app/views/users/show.html.haml +6 -0
  67. data/bumble.gemspec +31 -0
  68. data/config/initializers/bumble.rb +9 -0
  69. data/config/initializers/haml.rb +2 -0
  70. data/config/initializers/html5_forms.rb +163 -0
  71. data/config/initializers/inflections.rb +10 -0
  72. data/config/initializers/mime_types.rb +5 -0
  73. data/config/initializers/will_paginate.rb +3 -0
  74. data/config/routes.rb +29 -0
  75. data/lib/bumble.rb +18 -0
  76. data/lib/bumble/version.rb +3 -0
  77. data/lib/generators/bumble/assets_generator.rb +10 -0
  78. data/lib/generators/bumble/migrations_generator.rb +40 -0
  79. data/lib/generators/bumble/templates/assets/images/.gitignore +0 -0
  80. data/lib/generators/bumble/templates/assets/images/close.png +0 -0
  81. data/lib/generators/bumble/templates/assets/images/email.png +0 -0
  82. data/lib/generators/bumble/templates/assets/images/feed.png +0 -0
  83. data/lib/generators/bumble/templates/assets/images/image.png +0 -0
  84. data/lib/generators/bumble/templates/assets/images/loading.gif +0 -0
  85. data/lib/generators/bumble/templates/assets/images/preview.png +0 -0
  86. data/lib/generators/bumble/templates/assets/images/shortcut.png +0 -0
  87. data/lib/generators/bumble/templates/assets/images/youtube.png +0 -0
  88. data/lib/generators/bumble/templates/assets/javascripts/admin.js +95 -0
  89. data/lib/generators/bumble/templates/assets/javascripts/bumble.js +76 -0
  90. data/lib/generators/bumble/templates/assets/javascripts/iphone.js +7 -0
  91. data/lib/generators/bumble/templates/assets/javascripts/jquery.autogrow.js +37 -0
  92. data/lib/generators/bumble/templates/assets/javascripts/jquery.cookie.js +96 -0
  93. data/lib/generators/bumble/templates/assets/javascripts/jquery.form.js +665 -0
  94. data/lib/generators/bumble/templates/assets/javascripts/jquery.hint.js +44 -0
  95. data/lib/generators/bumble/templates/assets/javascripts/jquery.jgrow.js +85 -0
  96. data/lib/generators/bumble/templates/assets/javascripts/jquery.js +154 -0
  97. data/lib/generators/bumble/templates/assets/javascripts/jquery.ui.core.js +18 -0
  98. data/lib/generators/bumble/templates/assets/javascripts/jquery.ui.tabs.js +13 -0
  99. data/lib/generators/bumble/templates/assets/javascripts/jquery.ui.widget.js +18 -0
  100. data/lib/generators/bumble/templates/assets/javascripts/jquery.validate.js +16 -0
  101. data/lib/generators/bumble/templates/assets/javascripts/modernizr.js +13 -0
  102. data/lib/generators/bumble/templates/assets/javascripts/ui.core.js +289 -0
  103. data/lib/generators/bumble/templates/assets/javascripts/ui.tabs.js +593 -0
  104. data/lib/generators/bumble/templates/migrations/add_approved_to_comments.rb +15 -0
  105. data/lib/generators/bumble/templates/migrations/add_delta_to_posts.rb +9 -0
  106. data/lib/generators/bumble/templates/migrations/add_missing_indexes.rb +24 -0
  107. data/lib/generators/bumble/templates/migrations/add_url_to_users.rb +9 -0
  108. data/lib/generators/bumble/templates/migrations/create_assets.rb +18 -0
  109. data/lib/generators/bumble/templates/migrations/create_comments.rb +19 -0
  110. data/lib/generators/bumble/templates/migrations/create_posts.rb +25 -0
  111. data/lib/generators/bumble/templates/migrations/create_users.rb +28 -0
  112. data/lib/generators/bumble/templates/migrations/full_text_search.rb +13 -0
  113. data/public/stylesheets/sass/bumble.sass +423 -0
  114. data/public/stylesheets/sass/iphone.sass +79 -0
  115. data/public/stylesheets/sass/print.sass +2 -0
  116. data/public/stylesheets/sass/reset.sass +49 -0
  117. data/test/factories.rb +28 -0
  118. data/test/functional/comments_controller_test.rb +177 -0
  119. data/test/functional/password_resets_controller_test.rb +61 -0
  120. data/test/functional/posts_controller_test.rb +181 -0
  121. data/test/test_helper.rb +113 -0
  122. data/test/unit/comment_test.rb +18 -0
  123. data/test/unit/post_test.rb +18 -0
  124. data/test/unit/user_test.rb +37 -0
  125. metadata +403 -0
@@ -0,0 +1,15 @@
1
+ class AddApprovedToComments < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :comments, :approved, :boolean, :default => true
4
+ add_column :comments, :user_ip, :string
5
+ add_column :comments, :user_agent, :string
6
+ add_column :comments, :referrer, :string
7
+ end
8
+
9
+ def self.down
10
+ remove_column :comments, :approved
11
+ remove_column :comments, :user_ip
12
+ remove_column :comments, :user_agent
13
+ remove_column :comments, :referrer
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ class AddDeltaToPosts < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :posts, :delta, :boolean, :default => true, :null => false
4
+ end
5
+
6
+ def self.down
7
+ remove_column :posts, :delta
8
+ end
9
+ end
@@ -0,0 +1,24 @@
1
+ class AddMissingIndexes < ActiveRecord::Migration
2
+ def self.up
3
+
4
+ # These indexes were found by searching for AR::Base finds on your application
5
+ # It is strongly recommanded that you will consult a professional DBA about your infrastucture and implemntation before
6
+ # changing your database in that matter.
7
+ # There is a possibility that some of the indexes offered below is not required and can be removed and not added, if you require
8
+ # further assistance with your rails application, database infrastructure or any other problem, visit:
9
+ #
10
+ # http://www.railsmentors.org
11
+ # http://www.railstutor.org
12
+ # http://guides.rubyonrails.org
13
+
14
+ add_index :posts, :permalink
15
+ add_index :comments, :post_id
16
+ add_index :posts, [:id, :type]
17
+ end
18
+
19
+ def self.down
20
+ # remove_index :posts, :permalink
21
+ remove_index :comments, :post_id
22
+ remove_index :posts, :column => [:id, :type]
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ class AddUrlToUsers < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :users, :url, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column :users, :url
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ class CreateAssets < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :assets do |t|
4
+ t.integer :post_id
5
+ t.string :attachment_file_name
6
+ t.string :attachment_content_type
7
+ t.integer :attachment_file_size
8
+ t.datetime :attachment_updated_at
9
+ t.string :attachment_remote_url
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+
15
+ def self.down
16
+ drop_table :assets
17
+ end
18
+ end
@@ -0,0 +1,19 @@
1
+ class CreateComments < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :comments do |t|
4
+ t.text :body
5
+ t.integer :post_id
6
+ t.integer :user_id
7
+ t.string :author_name
8
+ t.string :author_email
9
+ t.string :author_url
10
+ t.datetime :deleted_at
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+
16
+ def self.down
17
+ drop_table :comments
18
+ end
19
+ end
@@ -0,0 +1,25 @@
1
+ class CreatePosts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :posts do |t|
4
+ t.string :title
5
+ t.string :link_url
6
+ t.string :image_url
7
+ t.text :video_embed
8
+ t.text :description
9
+ t.text :quote
10
+ t.string :permalink
11
+ t.integer :user_id
12
+ t.string :type
13
+ t.boolean :publicly_viewable, :default => true
14
+ t.datetime :published_at
15
+ t.datetime :deleted_at
16
+ t.string :via
17
+
18
+ t.timestamps
19
+ end
20
+ end
21
+
22
+ def self.down
23
+ drop_table :posts
24
+ end
25
+ end
@@ -0,0 +1,28 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :users do |t|
4
+ t.string :email, :null => false
5
+ t.string :crypted_password, :null => false
6
+ t.string :password_salt, :null => false
7
+ t.string :persistence_token, :null => false
8
+ t.integer :login_count, :null => false, :default => 0
9
+ t.integer :failed_login_count, :null => false, :default => 0
10
+ t.datetime :last_request_at
11
+ t.datetime :current_login_at
12
+ t.datetime :last_login_at
13
+ t.string :current_login_ip
14
+ t.string :last_login_ip
15
+ t.string :perishable_token
16
+ t.datetime :deleted_at
17
+ t.datetime :activated_at
18
+ t.string :first_name
19
+ t.string :last_name
20
+
21
+ t.timestamps
22
+ end
23
+ end
24
+
25
+ def self.down
26
+ drop_table :users
27
+ end
28
+ end
@@ -0,0 +1,13 @@
1
+ class FullTextSearch < ActiveRecord::Migration
2
+ def self.up
3
+ ActiveRecord::Base.connection.execute(<<-'eosql')
4
+ DROP index IF EXISTS posts_fts_idx
5
+ eosql
6
+ ActiveRecord::Base.connection.execute(<<-'eosql')
7
+ CREATE index posts_fts_idx
8
+ ON posts
9
+ USING gin((to_tsvector('english', coalesce(posts.title, '') || ' ' || coalesce(posts.link_url, '') || ' ' || coalesce(posts.image_url, '') || ' ' || coalesce(posts.video_embed, '') || ' ' || coalesce(posts.description, '') || ' ' || coalesce(posts.quote, '') || ' ' || coalesce(posts.permalink, '') || ' ' || coalesce(posts.via, ''))))
10
+
11
+ eosql
12
+ end
13
+ end
@@ -0,0 +1,423 @@
1
+ @import reset.sass
2
+
3
+ html, body
4
+ :height 100%
5
+ :background #fff
6
+ :font 12px Arial, "MS Trebuchet", sans-serif
7
+ :-webkit-text-size-adjust none
8
+
9
+ body
10
+ :width 800px
11
+ :margin 0 auto
12
+
13
+ a
14
+ :color #154DAD
15
+
16
+ .ui-tabs-hide
17
+ :display none
18
+
19
+ textarea
20
+ :min-height 80px
21
+
22
+ input, textarea
23
+ :font inherit
24
+
25
+ .blur
26
+ :color #aaa
27
+
28
+ .clearfix
29
+ :display inline-block
30
+
31
+ &:after
32
+ :content "."
33
+ :display block
34
+ :height 0
35
+ :clear both
36
+ :visibility hidden
37
+
38
+ pre
39
+ :overflow auto
40
+ :background #f5f5f5
41
+ :border 1px solid #efefef
42
+ :width auto
43
+ :padding 5px
44
+
45
+ label.error
46
+ :position absolute
47
+ :margin-left 450px
48
+ :width auto
49
+ :display block
50
+ :z-index 5000
51
+ :background #000
52
+ :color #fff
53
+ :font-family tahoma
54
+ :font-size 0.8em
55
+ :box-shadow 1px 1px 6px #000
56
+ :-moz-box-shadow 1px 1px 6px #000
57
+ :-webkit-box-shadow 1px 1px 6px #000
58
+ :padding 4px 10px 4px 10px
59
+ :border-radius 6px
60
+ :-moz-border-radius 6px
61
+ :-webkit-border-radius 6px
62
+ :opacity 0.8
63
+
64
+ .meta
65
+ :margin-top 5px
66
+ :color #aaa
67
+ :font-size 0.95em
68
+ a
69
+ :color #888
70
+ :text-decoration none
71
+ &:hover
72
+ :text-decoration underline
73
+
74
+ h2
75
+ :margin-bottom 7px
76
+ :color #111
77
+ :font
78
+ :weight bold
79
+ :size 1.2em
80
+ a
81
+ :color inherit
82
+ :text-decoration none
83
+ &:hover
84
+ :color #000 !important
85
+ :text-decoration underline
86
+ &:visited
87
+ :color #111
88
+
89
+ .loading
90
+ :margin 0 0 -3px 3px
91
+
92
+ #formatting
93
+ :margin 10px 5px 10px 0
94
+ :background #f5f5f5
95
+ :border 1px dashed #efefef
96
+ :padding 5px 10px
97
+ :display none
98
+ span
99
+ :display block
100
+ :float left
101
+ :width 200px
102
+ :padding 0 0 5px
103
+ pre
104
+ :border none
105
+ :overflow visible
106
+ :padding 0
107
+ .more
108
+ :clear both
109
+ :font-size 11px
110
+ :padding-top 5px
111
+
112
+ #header
113
+ :height 90px
114
+ :padding 40px 0 0
115
+
116
+ h1 a
117
+ :display block
118
+ :color #000
119
+ :font-size 3.0em
120
+ :text-decoration none
121
+ :width 186px
122
+ :height 54px
123
+
124
+ .field
125
+ :margin-bottom 5px
126
+ input:not([type='checkbox']), textarea
127
+ :width 98%
128
+ :margin 0
129
+ :padding 2px 2px
130
+ :border 1px solid #aaa
131
+ :border-radius 4px
132
+ :-moz-border-radius 4px
133
+ :-webkit-border-radius 4px
134
+
135
+ #content
136
+ :width 500px
137
+ :float left
138
+ ul, ol
139
+ :margin 5px 0 0
140
+ :padding 0 0 0 35px
141
+ li
142
+ :list-style-type disc
143
+ :padding 0px 0px 5px
144
+ ol li
145
+ :list-style-type decimal
146
+ p
147
+ :margin-bottom 10px
148
+ :line-height 1.35em
149
+ :text-align justify
150
+ .flash
151
+ :position absolute
152
+ :margin -35px 0 10px
153
+ :background #F7FCDF
154
+ :border 1px solid #EFFA9E
155
+ :padding 5px
156
+ :border-radius 2px
157
+ :-moz-border-radius 2px
158
+ :-webkit-border-radius 2px
159
+ &#error
160
+ :background #F3C0C1
161
+ :border 1px solid #E5A7A9
162
+ #search
163
+ :width 100%
164
+ :margin-bottom 15px
165
+ :border-bottom 1px solid #efefef
166
+ h2
167
+ :display inline
168
+ .meta
169
+ :float right
170
+ :margin-bottom 5px
171
+ .open
172
+ :position absolute
173
+ :top 0px
174
+ :display block
175
+ :z-index 5000
176
+ :background #efefef
177
+ :color #000
178
+ :font-family tahoma
179
+ :font-size 0.8em
180
+ :box-shadow 0px 0px 2px #000
181
+ :-moz-box-shadow 0px 0px 2px #000
182
+ :-webkit-box-shadow 0px 0px 2px #000
183
+ :padding 2px 10px 4px 10px
184
+ :border-radius 6px
185
+ :-moz-border-radius-bottomleft 6px
186
+ :-webkit-border-bottom-left-radius 6px
187
+ :-moz-border-radius-bottomright 6px
188
+ :-webkit-border-bottom-right-radius 6px
189
+ :text-decoration none
190
+ :margin-left 730px
191
+ form
192
+ a.more
193
+ :float right
194
+ :margin 0 5px 0 0
195
+ #new_post
196
+ :display none
197
+ :width 100%
198
+ :-webkit-box-shadow 0px 2px 5px #ccc
199
+ :-moz-box-shadow 0px 2px 5px #ccc
200
+ :box-shadow 0px 2px 5px #ccc
201
+ :margin 0 0 30px
202
+ :padding 0 0 5px
203
+ .close
204
+ :background url('../images/close.png') no-repeat
205
+ :display block
206
+ :width 30px
207
+ :height 30px
208
+ :text-indent -999px
209
+ :position absolute
210
+ :margin -10px 0 0 490px
211
+ ul
212
+ :padding 0
213
+ :height 25px
214
+ li
215
+ :list-style none
216
+ :float left
217
+ :padding 2px 5px
218
+ :margin 0 2px 0 0
219
+ &.ui-tabs-selected
220
+ :background #eee
221
+ .new_post
222
+ :padding 0 10px
223
+ .new_comment
224
+ :margin-top 15px
225
+ .help
226
+ :float right
227
+ :margin-right 5px
228
+ .post
229
+ :margin 0 0 25px
230
+ .description
231
+ :margin-top 5px
232
+ blockquote
233
+ :margin-bottom 10px
234
+ :font
235
+ :style italic
236
+ &:before
237
+ :content '“'
238
+ &:after
239
+ :content '”'
240
+ p
241
+ :display inline
242
+ img, object, embed
243
+ :width 100% !important
244
+ object, embed
245
+ :height 340px !important
246
+ pre
247
+ :overflow auto
248
+ :background #f5f5f5
249
+ :border 1px solid #efefef
250
+ :padding 5px
251
+ :font-size 0.95em
252
+ :margin-bottom 10px
253
+ .meta .via
254
+ :float right
255
+ &.preview
256
+ :background url('../images/preview.png')
257
+ .comment
258
+ :border-top 1px solid #efefef
259
+ :margin 10px 0
260
+ :padding 10px 0 0 50px
261
+ :overflow hidden
262
+ p, pre
263
+ :margin-bottom 10px
264
+ :line-height 1.35em
265
+ p
266
+ :text-align justify
267
+ .photo
268
+ :float left
269
+ :margin 3px 5px 0 -50px
270
+ :border 1px solid #eee
271
+ &.author
272
+ :padding 10px 50px 0 0
273
+ .photo
274
+ :float right
275
+ :margin 3px -50px 0 0
276
+
277
+ .link
278
+ h2
279
+ a
280
+ :padding-right 18px
281
+ :background url('../images/shortcut.png') no-repeat 100% 50%
282
+
283
+ input.youtube
284
+ :background url('../images/youtube.png') no-repeat 99.5% 50%
285
+
286
+ input.image
287
+ :background url('../images/image.png') no-repeat 99.5% 50%
288
+
289
+ .pagination
290
+ :clear both
291
+ :padding 8px 0
292
+ .prev_page
293
+ :float left
294
+ .next_page
295
+ :float right
296
+ a, span
297
+ :background #ddd
298
+ :color #000
299
+ :font-family tahoma
300
+ :font-size 0.9em
301
+ :padding 7px 20px
302
+ :margin 0 0 10px
303
+ :border-radius 2px
304
+ :-moz-border-radius 2px
305
+ :-webkit-border-radius 2px
306
+ :text-decoration none
307
+ &.disabled
308
+ :display none
309
+ a
310
+ &:hover, &:active
311
+ :background #ccc
312
+
313
+ #sidebar
314
+ :margin-left 560px
315
+ :width 240px
316
+ :position absolute
317
+ :top 130px
318
+ #search_form
319
+ .field
320
+ :display inline
321
+ input
322
+ :width 70%
323
+ h3
324
+ :border-bottom 1px solid #efefef
325
+ :padding 0 0 2px
326
+ :margin 20px 0 8px
327
+ :font-size 13px
328
+ :clear both
329
+ &:first-child
330
+ :margin-top 0
331
+ p
332
+ :text-align justify
333
+ :margin-bottom 12px
334
+ #links
335
+ :padding 5px 0 0
336
+ li
337
+ :background-repeat no-repeat
338
+ :margin 0px 0px 8px 15px
339
+ :line-height 12px
340
+ a
341
+ :display inline-block
342
+ :padding 0 0 5px 25px
343
+ :color #666
344
+ &.flickr
345
+ :background-image url('../images/flickr.png')
346
+ &.facebook
347
+ :background-image url('../images/facebook.png')
348
+ &.lastfm
349
+ :background-image url('../images/lastfm.png')
350
+ &.myspace
351
+ :background-image url('../images/myspace.png')
352
+ &.twitter
353
+ :background-image url('../images/twitter.png')
354
+ &.youtube
355
+ :background-image url('../images/youtube.png')
356
+ &.work
357
+ :background-image url('../images/work.png')
358
+ &.feed
359
+ :background-image url('../images/feed.png')
360
+ &.email
361
+ :background-image url('../images/email.png')
362
+ .album
363
+ :position relative
364
+ :height 72px
365
+ :margin-bottom 20px
366
+ a
367
+ :display block
368
+ :height 72px
369
+ :padding-left 90px
370
+ :float left
371
+ :position relative
372
+ :background url('../images/cd.png') no-repeat
373
+ :z-index 1
374
+ :text-decoration none
375
+ :color #000
376
+ strong
377
+ :display block
378
+ em
379
+ :font-size 0.9em
380
+ img
381
+ :position absolute
382
+ :left 10px
383
+ :top 2px
384
+ :z-index 0
385
+ .sparkline
386
+ :padding 10px 0
387
+ #footer, #bumble
388
+ :clear both
389
+ :color #999
390
+ :font-size 0.9em
391
+ :text-align right
392
+ :padding 10px 0
393
+ :margin-bottom 10px
394
+ a
395
+ :color inherit
396
+ :text-decoration none
397
+ .up
398
+ :float left
399
+ :display block
400
+
401
+ .bookmarks
402
+ h3
403
+ a
404
+ :display block
405
+ :text-decoration none
406
+ :color #000
407
+ ul
408
+ :padding 5px 0 0
409
+ li
410
+ :background url('../images/sprite.png') -10px -612px no-repeat
411
+ :margin 0px 0px 8px 3px
412
+ :padding-left 28px
413
+ h4
414
+ :font-weight normal
415
+ a
416
+ :color #000
417
+ :text-decoration none
418
+ span
419
+ :font-size 10px
420
+ :color #bbb
421
+ .js
422
+ form > label, .more > label
423
+ :display none