ramaze 2011.01.30 → 2011.07.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (229) hide show
  1. data/.gitignore +2 -1
  2. data/.mailmap +2 -0
  3. data/.rvmrc +1 -0
  4. data/README.md +119 -197
  5. data/Rakefile +14 -97
  6. data/bin/ramaze +6 -14
  7. data/doc/AUTHORS +8 -4
  8. data/doc/CHANGELOG +3784 -3339
  9. data/examples/app/chat/start.rb +2 -2
  10. data/lib/proto/app.rb +2 -3
  11. data/lib/proto/config.ru +4 -5
  12. data/lib/proto/controller/init.rb +11 -4
  13. data/lib/proto/controller/main.rb +12 -7
  14. data/lib/proto/layout/default.xhtml +56 -23
  15. data/lib/proto/model/init.rb +3 -1
  16. data/lib/proto/public/css/grid.css +107 -0
  17. data/lib/proto/public/css/layout.css +81 -0
  18. data/lib/proto/public/css/reset.css +123 -0
  19. data/lib/proto/public/css/text.css +109 -0
  20. data/lib/proto/public/images/bg.png +0 -0
  21. data/lib/proto/spec/main.rb +2 -2
  22. data/lib/proto/start.rb +11 -1
  23. data/lib/proto/view/index.xhtml +27 -23
  24. data/lib/ramaze.rb +0 -1
  25. data/lib/ramaze/app.rb +85 -12
  26. data/lib/ramaze/app_graph.rb +107 -0
  27. data/lib/ramaze/bin/console.rb +87 -0
  28. data/lib/ramaze/bin/create.rb +94 -0
  29. data/lib/ramaze/bin/helper.rb +107 -0
  30. data/lib/ramaze/bin/restart.rb +95 -0
  31. data/lib/ramaze/bin/runner.rb +141 -0
  32. data/lib/ramaze/bin/start.rb +206 -0
  33. data/lib/ramaze/bin/status.rb +152 -0
  34. data/lib/ramaze/bin/stop.rb +112 -0
  35. data/lib/ramaze/cache.rb +9 -4
  36. data/lib/ramaze/cache/localmemcache.rb +10 -13
  37. data/lib/ramaze/cache/lru.rb +49 -7
  38. data/lib/ramaze/cache/memcache.rb +170 -92
  39. data/lib/ramaze/cache/sequel.rb +301 -118
  40. data/lib/ramaze/controller.rb +108 -9
  41. data/lib/ramaze/controller/default.rb +15 -2
  42. data/lib/ramaze/current.rb +14 -2
  43. data/lib/ramaze/dependencies.rb +46 -0
  44. data/lib/ramaze/files.rb +38 -3
  45. data/lib/ramaze/gestalt.rb +12 -12
  46. data/lib/ramaze/helper.rb +0 -2
  47. data/lib/ramaze/helper/auth.rb +30 -23
  48. data/lib/ramaze/helper/blue_form.rb +175 -126
  49. data/lib/ramaze/helper/csrf.rb +76 -91
  50. data/lib/ramaze/helper/email.rb +105 -0
  51. data/lib/ramaze/helper/erector.rb +16 -15
  52. data/lib/ramaze/helper/gestalt.rb +2 -2
  53. data/lib/ramaze/helper/layout.rb +89 -73
  54. data/lib/ramaze/helper/link.rb +7 -6
  55. data/lib/ramaze/helper/localize.rb +6 -5
  56. data/lib/ramaze/helper/markaby.rb +25 -23
  57. data/lib/ramaze/helper/maruku.rb +3 -3
  58. data/lib/ramaze/helper/paginate.rb +19 -27
  59. data/lib/ramaze/helper/remarkably.rb +3 -3
  60. data/lib/ramaze/helper/request_accessor.rb +3 -3
  61. data/lib/ramaze/helper/send_file.rb +12 -8
  62. data/lib/ramaze/helper/simple_captcha.rb +5 -6
  63. data/lib/ramaze/helper/stack.rb +7 -4
  64. data/lib/ramaze/helper/tagz.rb +10 -11
  65. data/lib/ramaze/helper/thread.rb +19 -16
  66. data/lib/ramaze/helper/ultraviolet.rb +7 -4
  67. data/lib/ramaze/helper/user.rb +40 -21
  68. data/lib/ramaze/helper/xhtml.rb +29 -20
  69. data/lib/ramaze/log.rb +3 -11
  70. data/lib/ramaze/log/analogger.rb +5 -4
  71. data/lib/ramaze/log/growl.rb +9 -7
  72. data/lib/ramaze/log/hub.rb +3 -5
  73. data/lib/ramaze/log/informer.rb +15 -12
  74. data/lib/ramaze/log/knotify.rb +3 -5
  75. data/lib/ramaze/log/logger.rb +3 -5
  76. data/lib/ramaze/log/logging.rb +6 -8
  77. data/lib/ramaze/log/rotatinginformer.rb +27 -17
  78. data/lib/ramaze/log/syslog.rb +7 -7
  79. data/lib/ramaze/log/xosd.rb +3 -5
  80. data/lib/ramaze/middleware_compiler.rb +27 -4
  81. data/lib/ramaze/reloader.rb +50 -12
  82. data/lib/ramaze/reloader/watch_inotify.rb +4 -5
  83. data/lib/ramaze/reloader/watch_stat.rb +3 -3
  84. data/lib/ramaze/request.rb +18 -8
  85. data/lib/ramaze/response.rb +38 -7
  86. data/lib/ramaze/rest.rb +36 -0
  87. data/lib/ramaze/setup.rb +101 -31
  88. data/lib/ramaze/spec.rb +1 -1
  89. data/lib/ramaze/spec/bacon.rb +6 -3
  90. data/lib/ramaze/spec/helper/bacon.rb +0 -1
  91. data/lib/ramaze/version.rb +1 -1
  92. data/lib/ramaze/view.rb +2 -11
  93. data/lib/ramaze/view/erector.rb +46 -31
  94. data/lib/ramaze/view/erubis.rb +7 -3
  95. data/lib/ramaze/view/ezamar.rb +7 -3
  96. data/lib/ramaze/view/gestalt.rb +9 -3
  97. data/lib/ramaze/view/haml.rb +7 -3
  98. data/lib/ramaze/view/liquid.rb +3 -3
  99. data/lib/ramaze/view/lokar.rb +7 -3
  100. data/lib/ramaze/view/mustache.rb +11 -5
  101. data/lib/ramaze/view/nagoro.rb +3 -3
  102. data/lib/ramaze/view/sass.rb +1 -1
  103. data/lib/ramaze/view/slippers.rb +40 -13
  104. data/lib/ramaze/view/tagz.rb +9 -5
  105. data/ramaze.gemspec +23 -128
  106. data/spec/helper.rb +5 -0
  107. data/spec/ramaze/bin/app/config.ru +11 -0
  108. data/spec/ramaze/bin/create.rb +28 -0
  109. data/spec/ramaze/bin/runner.rb +30 -0
  110. data/spec/ramaze/bin/start.rb +38 -0
  111. data/spec/ramaze/cache/memcache.rb +10 -3
  112. data/spec/ramaze/cache/sequel.rb +7 -0
  113. data/spec/ramaze/controller/provide_inheritance.rb +0 -10
  114. data/spec/ramaze/dispatcher/file.rb +19 -15
  115. data/spec/ramaze/helper/auth.rb +10 -9
  116. data/spec/ramaze/helper/blue_form.rb +121 -68
  117. data/spec/ramaze/helper/email.rb +69 -0
  118. data/spec/ramaze/helper/layout.rb +12 -15
  119. data/spec/ramaze/helper/layout/alternative.xhtml +5 -0
  120. data/spec/ramaze/helper/user.rb +2 -0
  121. data/spec/ramaze/log/growl.rb +14 -1
  122. data/spec/{contrib → ramaze}/rest.rb +1 -1
  123. data/spec/ramaze/session/memcache.rb +2 -2
  124. data/spec/ramaze/view/sass.rb +1 -1
  125. data/tasks/bacon.rake +3 -3
  126. data/tasks/gem.rake +17 -18
  127. data/tasks/rcov.rake +2 -3
  128. data/tasks/release.rake +8 -65
  129. data/tasks/setup.rake +10 -8
  130. data/tasks/todo.rake +9 -5
  131. data/tasks/yard.rake +3 -2
  132. metadata +105 -397
  133. data/MANIFEST +0 -532
  134. data/TODO.md +0 -19
  135. data/benchmark/bench_templates/bench.rb +0 -67
  136. data/benchmark/bench_templates/view/large.erb +0 -79
  137. data/benchmark/bench_templates/view/large.haml +0 -41
  138. data/benchmark/bench_templates/view/large.lok +0 -79
  139. data/benchmark/bench_templates/view/large.xhtml +0 -79
  140. data/benchmark/bench_templates/view/small.erb +0 -21
  141. data/benchmark/bench_templates/view/small.haml +0 -12
  142. data/benchmark/bench_templates/view/small.lok +0 -21
  143. data/benchmark/bench_templates/view/small.xhtml +0 -21
  144. data/benchmark/results.txt +0 -131
  145. data/benchmark/run.rb +0 -355
  146. data/benchmark/suite/minimal.rb +0 -11
  147. data/benchmark/suite/no_informer.rb +0 -7
  148. data/benchmark/suite/no_sessions.rb +0 -9
  149. data/benchmark/suite/no_template.rb +0 -7
  150. data/benchmark/suite/simple.rb +0 -5
  151. data/benchmark/suite/template_erubis.rb +0 -8
  152. data/benchmark/suite/template_etanni.rb +0 -8
  153. data/benchmark/suite/template_ezamar.rb +0 -8
  154. data/benchmark/suite/template_haml.rb +0 -13
  155. data/benchmark/suite/template_liquid.rb +0 -11
  156. data/benchmark/suite/template_markaby.rb +0 -9
  157. data/benchmark/suite/template_nagoro.rb +0 -8
  158. data/benchmark/suite/template_redcloth.rb +0 -13
  159. data/benchmark/suite/template_tenjin.rb +0 -8
  160. data/benchmark/test.rb +0 -35
  161. data/doc/FAQ +0 -92
  162. data/doc/INSTALL +0 -92
  163. data/doc/TODO +0 -29
  164. data/doc/meta/announcement.txt +0 -119
  165. data/doc/meta/configuration.txt +0 -163
  166. data/doc/meta/internals.txt +0 -278
  167. data/doc/meta/users.kml +0 -64
  168. data/doc/tutorial/todolist.html +0 -1512
  169. data/doc/tutorial/todolist.txt +0 -920
  170. data/examples/app/sourceview/public/coderay.css +0 -104
  171. data/examples/app/sourceview/public/images/file.gif +0 -0
  172. data/examples/app/sourceview/public/images/folder.gif +0 -0
  173. data/examples/app/sourceview/public/images/tv-collapsable-last.gif +0 -0
  174. data/examples/app/sourceview/public/images/tv-collapsable.gif +0 -0
  175. data/examples/app/sourceview/public/images/tv-expandable-last.gif +0 -0
  176. data/examples/app/sourceview/public/images/tv-expandable.gif +0 -0
  177. data/examples/app/sourceview/public/images/tv-item-last.gif +0 -0
  178. data/examples/app/sourceview/public/images/tv-item.gif +0 -0
  179. data/examples/app/sourceview/public/jquery.js +0 -11
  180. data/examples/app/sourceview/public/jquery.treeview.css +0 -48
  181. data/examples/app/sourceview/public/jquery.treeview.js +0 -223
  182. data/examples/app/sourceview/public/sourceview.js +0 -52
  183. data/examples/app/sourceview/start.rb +0 -79
  184. data/examples/app/sourceview/view/index.haml +0 -59
  185. data/examples/helpers/httpdigest.rb +0 -107
  186. data/lib/proto/public/css/screen.css +0 -30
  187. data/lib/proto/public/js/jquery.js +0 -7179
  188. data/lib/ramaze/contrib/addressable_route.rb +0 -56
  189. data/lib/ramaze/contrib/app_graph.rb +0 -64
  190. data/lib/ramaze/contrib/email.rb +0 -88
  191. data/lib/ramaze/contrib/facebook.rb +0 -23
  192. data/lib/ramaze/contrib/facebook/facebook.rb +0 -171
  193. data/lib/ramaze/contrib/gettext.rb +0 -113
  194. data/lib/ramaze/contrib/gettext/mo.rb +0 -155
  195. data/lib/ramaze/contrib/gettext/parser.rb +0 -46
  196. data/lib/ramaze/contrib/gettext/po.rb +0 -109
  197. data/lib/ramaze/contrib/gzip_filter.rb +0 -1
  198. data/lib/ramaze/contrib/maruku_uv.rb +0 -59
  199. data/lib/ramaze/contrib/profiling.rb +0 -36
  200. data/lib/ramaze/contrib/rest.rb +0 -23
  201. data/lib/ramaze/contrib/sequel/create_join.rb +0 -26
  202. data/lib/ramaze/contrib/sequel/form_field.rb +0 -129
  203. data/lib/ramaze/contrib/sequel/image.rb +0 -196
  204. data/lib/ramaze/contrib/sequel/relation.rb +0 -98
  205. data/lib/ramaze/helper/httpdigest.rb +0 -96
  206. data/lib/ramaze/tool/bin.rb +0 -340
  207. data/lib/ramaze/tool/create.rb +0 -48
  208. data/lib/ramaze/tool/project_creator.rb +0 -120
  209. data/lib/ramaze/view/less.rb +0 -12
  210. data/lib/ramaze/view/maruku.rb +0 -15
  211. data/lib/ramaze/view/redcloth.rb +0 -21
  212. data/spec/contrib/addressable_route.rb +0 -30
  213. data/spec/examples/helpers/httpdigest.rb +0 -64
  214. data/spec/examples/templates/template_redcloth.rb +0 -13
  215. data/spec/ramaze/bin/ramaze.rb +0 -96
  216. data/spec/ramaze/helper/httpdigest.rb +0 -176
  217. data/spec/ramaze/view/less.rb +0 -60
  218. data/spec/ramaze/view/less/file.css.less +0 -8
  219. data/spec/ramaze/view/redcloth.rb +0 -66
  220. data/spec/ramaze/view/redcloth/external.redcloth +0 -8
  221. data/tasks/copyright.rake +0 -21
  222. data/tasks/gem_setup.rake +0 -112
  223. data/tasks/git.rake +0 -46
  224. data/tasks/grancher.rake +0 -12
  225. data/tasks/jquery.rake +0 -15
  226. data/tasks/manifest.rake +0 -4
  227. data/tasks/metric_changes.rake +0 -24
  228. data/tasks/reversion.rake +0 -8
  229. data/tasks/traits.rake +0 -21
@@ -1,8 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'ramaze'
3
3
 
4
- require 'model/history'
5
- require 'model/message'
4
+ require __DIR__ 'model/history'
5
+ require __DIR__ 'model/message'
6
6
 
7
7
  class ChatRoom < Ramaze::Controller
8
8
  map '/'
data/lib/proto/app.rb CHANGED
@@ -1,8 +1,7 @@
1
- # This file contains your application, it requires dependencies and necessary
2
- # parts of the application.
1
+ # This file contains your application, it requires dependencies and necessary parts of
2
+ # the application.
3
3
  #
4
4
  # It will be required from either `config.ru` or `start.rb`
5
-
6
5
  require 'rubygems'
7
6
  require 'ramaze'
8
7
 
data/lib/proto/config.ru CHANGED
@@ -1,20 +1,19 @@
1
1
  #!/usr/bin/env rackup
2
2
  #
3
3
  # config.ru for ramaze apps
4
- # use thin >= 1.0.0
5
- # thin start -R config.ru
6
4
  #
7
- # rackup is a useful tool for running Rack applications, which uses the
5
+ # Rackup is a useful tool for running Rack applications, which uses the
8
6
  # Rack::Builder DSL to configure middleware and build up applications easily.
9
7
  #
10
- # rackup automatically figures out the environment it is run in, and runs your
8
+ # Rackup automatically figures out the environment it is run in, and runs your
11
9
  # application as FastCGI, CGI, or standalone with Mongrel or WEBrick -- all from
12
10
  # the same configuration.
13
11
  #
14
12
  # Do not set the adapter.handler in here, it will be ignored.
15
13
  # You can choose the adapter like `ramaze start -s mongrel` or set it in the
16
14
  # 'start.rb' and use `ruby start.rb` instead.
17
-
18
15
  require ::File.expand_path('../app', __FILE__)
16
+
19
17
  Ramaze.start(:root => __DIR__, :started => true)
18
+
20
19
  run Ramaze
@@ -1,11 +1,18 @@
1
- # Define a subclass of Ramaze::Controller holding your defaults for all
2
- # controllers
1
+ # Define a subclass of Ramaze::Controller holding your defaults for all controllers. Note
2
+ # that these changes can be overwritten in sub controllers by simply calling the method
3
+ # but with a different value.
3
4
 
4
5
  class Controller < Ramaze::Controller
5
6
  layout :default
6
7
  helper :xhtml
7
- engine :Etanni
8
+ engine :etanni
8
9
  end
9
10
 
10
- # Here go your requires for subclasses of Controller:
11
+ # Here you can require all your other controllers. Note that if you have multiple
12
+ # controllers you might want to do something like the following:
13
+ #
14
+ # Dir.glob('controller/*.rb').each do |controller|
15
+ # require(controller)
16
+ # end
17
+ #
11
18
  require __DIR__('main')
@@ -1,20 +1,25 @@
1
1
  # Default url mappings are:
2
- # a controller called Main is mapped on the root of the site: /
3
- # a controller called Something is mapped on: /something
4
- # If you want to override this, add a line like this inside the class
2
+ #
3
+ # * a controller called Main is mapped on the root of the site: /
4
+ # * a controller called Something is mapped on: /something
5
+ #
6
+ # If you want to override this, add a line like this inside the class:
7
+ #
5
8
  # map '/otherurl'
6
- # this will force the controller to be mounted on: /otherurl
7
-
9
+ #
10
+ # this will force the controller to be mounted on: /otherurl.
8
11
  class MainController < Controller
9
12
  # the index action is called automatically when no other action is specified
10
13
  def index
11
- @title = "Welcome to Ramaze!"
14
+ @title = 'Welcome to Ramaze!'
12
15
  end
13
16
 
14
17
  # the string returned at the end of the function is used as the html body
15
18
  # if there is no template for the action. if there is a template, the string
16
19
  # is silently ignored
17
20
  def notemplate
18
- "there is no 'notemplate.xhtml' associated with this action"
21
+ @title = 'Welcome to Ramaze!'
22
+
23
+ return 'There is no \'notemplate.xhtml\' associated with this action.'
19
24
  end
20
25
  end
@@ -1,24 +1,57 @@
1
- <?xml version="1.0" ?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml">
5
- <head>
6
- <title>#{@title}</title>
7
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
- <meta http-equiv="Content-Style-Type" content="text/css" />
9
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
- <meta http-equiv="expires" content="0" />
11
- <meta name="description" content="Description for search engines" />
12
- <meta name="generator" content="Ramaze #{Ramaze::VERSION}" />
13
- <meta name="keywords" content="Ramaze, Your own keywords" />
14
- <meta name="author" content="Max Mustermann" />
15
- <meta name="date" content="#{Time.now.iso8601}" />
16
- #{css 'screen'}
17
- </head>
18
- <body>
19
- <h1>#{@title}</h1>
20
- <div id="content">
21
- #@content
22
- </div>
23
- </body>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+
6
+ <title>#{@title}</title>
7
+
8
+ #{css('reset')}
9
+ #{css('grid')}
10
+ #{css('layout')}
11
+ #{css('text')}
12
+ </head>
13
+ <body>
14
+ <div class="container">
15
+ <div id="container" class="row">
16
+ <!-- Top part, contains the navigation menu -->
17
+ <div id="top" class="grid_12">
18
+ <header class="grid_6">
19
+ <h1>#{@title}</h1>
20
+ </header>
21
+
22
+ <nav class="grid_6 last">
23
+ <ul class="clearfix">
24
+ <li>
25
+ <a href="http://ramaze.net/">Website</a>
26
+ </li>
27
+ <li>
28
+ <a href="http://ramaze.net/documentation/index.html">
29
+ Documentation
30
+ </a>
31
+ </li>
32
+ <li>
33
+ <a href="https://groups.google.com/forum/#!forum/ramaze">
34
+ Mailing List
35
+ </a>
36
+ </li>
37
+ </ul>
38
+ </nav>
39
+ </div>
40
+
41
+ <div id="content" class="grid_12">
42
+ #{@content}
43
+ </div>
44
+ </div>
45
+
46
+ <footer id="footer">
47
+ <p>
48
+ Ramaze is free software and is licensed under the Ruby license.<br />
49
+ All textual content is licensed under a
50
+ <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">
51
+ Creative Commons license.
52
+ </a>
53
+ </p>
54
+ </footer>
55
+ </div>
56
+ </body>
24
57
  </html>
@@ -1,4 +1,6 @@
1
- # Here goes your database connection and options:
1
+ # This file is used for loading all your models. Note that you don't have to actually use
2
+ # this file. The great thing about Ramaze is that you're free to change it the way you see
3
+ # fit.
2
4
 
3
5
  # Here go your requires for models:
4
6
  # require __DIR__('user')
@@ -0,0 +1,107 @@
1
+ @charset "UTF-8";
2
+
3
+ /**
4
+ * Modified version of the CSS grid (aka 1140 CSS) that can be found at http://cssgrid.net
5
+ *
6
+ * This modified version has some extra enhancements to make it a bit easier to work with
7
+ * the grid. Along with these minor fixes I also renamed all grid classes to the names
8
+ * used by the 960 grid system as I find "grid_6" easier to write than "sixcol".
9
+ */
10
+ .container
11
+ {
12
+ overflow: hidden;
13
+ padding-left: 1%;
14
+ padding-right: 1%;
15
+ }
16
+
17
+ .row
18
+ {
19
+ max-width: 96%;
20
+ margin: 0 auto;
21
+ overflow: hidden;
22
+ width: 100%;
23
+ }
24
+
25
+ .grid_1, .grid_2, .grid_3, .grid_4, .grid_5, .grid_6, .grid_7, .grid_8, .grid_9,
26
+ .grid_10, .grid_11
27
+ {
28
+ float: left;
29
+ margin-right: 3.8%;
30
+ min-height: 1px;
31
+ }
32
+
33
+ .row .grid_1
34
+ {
35
+ width: 4.85%;
36
+ }
37
+
38
+ .row .grid_2
39
+ {
40
+ width: 13.45%;
41
+ }
42
+
43
+ .row .grid_3
44
+ {
45
+ width: 22.05%;
46
+ }
47
+
48
+ .row .grid_4
49
+ {
50
+ width: 30.75%;
51
+ }
52
+
53
+ .row .grid_5
54
+ {
55
+ width: 39.45%;
56
+ }
57
+
58
+ .row .grid_6
59
+ {
60
+ width: 48%;
61
+ }
62
+
63
+ .row .grid_7
64
+ {
65
+ width: 56.75%;
66
+ }
67
+
68
+ .row .grid_8
69
+ {
70
+ width: 65.4%;
71
+ }
72
+
73
+ .row .grid_9
74
+ {
75
+ width: 74.05%;
76
+ }
77
+
78
+ .row .grid_10
79
+ {
80
+ width: 82.7%;
81
+ }
82
+
83
+ .row .grid_11
84
+ {
85
+ width: 91.35%;
86
+ }
87
+
88
+ .row .grid_12
89
+ {
90
+ float: left;
91
+ width: 100%;
92
+ }
93
+
94
+ .last, .row > *:last-child
95
+ {
96
+ margin-right: 0px;
97
+ }
98
+
99
+ img, object, embed
100
+ {
101
+ max-width: 100%;
102
+ }
103
+
104
+ img
105
+ {
106
+ height: auto;
107
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Stylesheet used for the layout of most elements.
3
+ *
4
+ * @author Yorick Peterse
5
+ * @link http://yorickpeterse.com/
6
+ */
7
+ #container
8
+ {
9
+ margin: 20px auto;
10
+ width: 940px;
11
+ }
12
+
13
+ #content
14
+ {
15
+ background: #fff;
16
+ border: 1px solid #ddd;
17
+ padding: 20px;
18
+ width: 898px;
19
+ }
20
+
21
+ /* Top part of the website, contains the title and the navigation menu */
22
+ #top
23
+ {
24
+ background: #E33F1E;
25
+ height: 70px;
26
+ margin-bottom: 20px;
27
+ padding: 0px 10px;
28
+ }
29
+
30
+ #top header h1
31
+ {
32
+ color: #fff;
33
+ font-size: 38px;
34
+ margin: 10px 0px 0px 0px;
35
+ padding: 0px;
36
+ }
37
+
38
+ #top nav ul
39
+ {
40
+ float: right;
41
+ margin-right: 15px;
42
+ }
43
+
44
+ #top nav ul li
45
+ {
46
+ float: left;
47
+ font-size: 16px;
48
+ list-style-type: none;
49
+ margin-right: 10px;
50
+ }
51
+
52
+ #top nav ul li:last-child
53
+ {
54
+ margin-right: 0px;
55
+ }
56
+
57
+ #top nav ul li a
58
+ {
59
+ color: #fff;
60
+ display: block;
61
+ height: 45px;
62
+ padding: 25px 10px 0px 10px;
63
+ text-decoration: none;
64
+ }
65
+
66
+ #top nav ul li a:hover
67
+ {
68
+ background: #D43919;
69
+ }
70
+
71
+ /* Footer at the bottom of the page */
72
+ #footer
73
+ {
74
+ text-align: center;
75
+ }
76
+
77
+ #footer p
78
+ {
79
+ font-size: 13px;
80
+ margin-bottom: 10px;
81
+ }
@@ -0,0 +1,123 @@
1
+ @charset "UTF-8";
2
+
3
+ /**
4
+ * http://meyerweb.com/eric/tools/css/reset/
5
+ * v2.0 | 20110126
6
+ * License: none (public domain)
7
+ */
8
+ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
9
+ a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small,
10
+ strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset,
11
+ form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside,
12
+ canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output,
13
+ ruby, section, summary, time, mark, audio, video
14
+ {
15
+ border: 0;
16
+ font-size: 100%;
17
+ font: inherit;
18
+ margin: 0;
19
+ padding: 0;
20
+ vertical-align: baseline;
21
+ }
22
+
23
+ /* HTML5 display-role reset for older browsers */
24
+ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
25
+ {
26
+ display: block;
27
+ }
28
+
29
+ body
30
+ {
31
+ line-height: 1.3;
32
+ }
33
+
34
+ ol, ul, ol li, ul li
35
+ {
36
+ list-style-type: none;
37
+ margin: 0px;
38
+ padding: 0px;
39
+ }
40
+
41
+ blockquote, q
42
+ {
43
+ quotes: none;
44
+ }
45
+
46
+ blockquote:before, blockquote:after, q:before, q:after
47
+ {
48
+ content: '';
49
+ content: none;
50
+ }
51
+
52
+ table
53
+ {
54
+ /**
55
+ * Instead of "collapse" I'm using "separate" as that allows me to give table cells
56
+ * a border without having to go through a lot of trouble
57
+ */
58
+ border-collapse: separate;
59
+ border-spacing: 0;
60
+ width: 100%;
61
+ }
62
+
63
+ table th
64
+ {
65
+ font-weight: bold;
66
+ }
67
+
68
+ pre, code
69
+ {
70
+ font-size: 13px;
71
+ font-family: monospace;
72
+ }
73
+
74
+ /**
75
+ * These form elements usually don't trigger any special cursor and thus can confuse
76
+ * users when these elements have custom styles (e.g. a background image).
77
+ */
78
+ input[type="submit"], input[type="button"], input[type="checkbox"], input[type="radio"],
79
+ button, select
80
+ {
81
+ cursor: pointer;
82
+ }
83
+
84
+ *[disabled], *[disabled="disabled"]
85
+ {
86
+ cursor: not-allowed;
87
+ }
88
+
89
+ textarea
90
+ {
91
+ overflow: auto;
92
+ }
93
+
94
+ acronym, abbr
95
+ {
96
+ cursor: help;
97
+ }
98
+
99
+ /* Some typography related styles */
100
+ body
101
+ {
102
+ font-size: 16px;
103
+ }
104
+
105
+ h1, h2, h3, h4, h5, h6
106
+ {
107
+ font-weight: bold;
108
+ }
109
+
110
+ a:hover, a:active
111
+ {
112
+ outline: none;
113
+ }
114
+
115
+ strong
116
+ {
117
+ font-weight: bold;
118
+ }
119
+
120
+ small
121
+ {
122
+ font-size: 11px;
123
+ }