phrasing 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/.gitignore +2 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +142 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.md +93 -0
  6. data/Rakefile +35 -0
  7. data/app/assets/fonts/icomoon.dev.svg +38 -0
  8. data/app/assets/fonts/icomoon.eot +0 -0
  9. data/app/assets/fonts/icomoon.svg +38 -0
  10. data/app/assets/fonts/icomoon.ttf +0 -0
  11. data/app/assets/fonts/icomoon.woff +0 -0
  12. data/app/assets/images/phrasing_information_icon.png +0 -0
  13. data/app/assets/javascripts/editor.js +318 -0
  14. data/app/assets/javascripts/head.js +423 -0
  15. data/app/assets/javascripts/phrasing.js.erb +148 -0
  16. data/app/assets/javascripts/spin.js +355 -0
  17. data/app/assets/stylesheets/phrasing.css.scss +240 -0
  18. data/app/assets/stylesheets/phrasing_edit_mode_bubble.css.scss +117 -0
  19. data/app/assets/stylesheets/phrasing_engine.css +470 -0
  20. data/app/assets/stylesheets/phrasing_fonts.css.scss +60 -0
  21. data/app/controllers/phrasing_phrases_controller.rb +126 -0
  22. data/app/helpers/inline_helper.rb +47 -0
  23. data/app/models/phrasing_phrase.rb +97 -0
  24. data/app/views/layouts/phrasing.html.haml +12 -0
  25. data/app/views/phrasing/_initializer.html.haml +25 -0
  26. data/app/views/phrasing/_menu.html.haml +8 -0
  27. data/app/views/phrasing/_messages.html.haml +4 -0
  28. data/app/views/phrasing/_production_warning.html.haml +4 -0
  29. data/app/views/phrasing_phrases/edit.html.haml +7 -0
  30. data/app/views/phrasing_phrases/help.html.haml +17 -0
  31. data/app/views/phrasing_phrases/import_export.html.haml +18 -0
  32. data/app/views/phrasing_phrases/index.html.haml +17 -0
  33. data/config/routes.rb +12 -0
  34. data/db/migrate/20120313191745_create_phrasing_phrases.rb +11 -0
  35. data/lib/phrasing.rb +72 -0
  36. data/lib/phrasing/ambiguous_phrases_error.rb +3 -0
  37. data/lib/phrasing/implementation.rb +19 -0
  38. data/lib/phrasing/phrasable_error_handler.rb +9 -0
  39. data/lib/phrasing/simple.rb +3 -0
  40. data/lib/phrasing/version.rb +3 -0
  41. data/lib/tasks/phrasing_tasks.rake +57 -0
  42. data/phrasing.gemspec +21 -0
  43. metadata +135 -0
@@ -0,0 +1,117 @@
1
+ #phrasing-edit-mode-bubble{
2
+ background: rgba(00,00,00, .7);
3
+ color:white;
4
+ border: 2px solid black;
5
+ position: fixed;
6
+ width:105px;
7
+ height:180px;
8
+ bottom:10px;
9
+ right:10px;
10
+ z-index: 1000;
11
+
12
+ -webkit-border-radius: 20px;
13
+ -moz-border-radius: 20px;
14
+ border-radius: 20px;
15
+
16
+ p#edit-mode-headline{
17
+ text-align: center;
18
+ padding-top:10px;
19
+ color:white;
20
+ font-weight: bold;
21
+ }
22
+
23
+ // On/Off Switch
24
+ .onoffswitch {
25
+ padding-left:15px;
26
+ position: relative;
27
+ width: 74px;
28
+ -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
29
+ }
30
+ .onoffswitch-checkbox {
31
+ display: none;
32
+ }
33
+ .onoffswitch-label {
34
+ display: block; overflow: hidden; cursor: pointer;
35
+ border: 2px solid #666666; border-radius: 5px;
36
+ }
37
+ .onoffswitch-inner {
38
+ width: 200%; margin-left: -100%;
39
+ -moz-transition: margin 0.3s ease-in 0s; -webkit-transition: margin 0.3s ease-in 0s;
40
+ -o-transition: margin 0.3s ease-in 0s; transition: margin 0.3s ease-in 0s;
41
+ }
42
+ .onoffswitch-inner:before, .onoffswitch-inner:after {
43
+ float: left; width: 50%; height: 23px; padding: 0; line-height: 23px;
44
+ font-size: 13px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;
45
+ -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
46
+ }
47
+ .onoffswitch-inner:before {
48
+ content: "ON";
49
+ padding-left: 8px;
50
+ background-color: #6194FD; color: #FFFFFF;
51
+ }
52
+ .onoffswitch-inner:after {
53
+ content: "OFF";
54
+ padding-right: 8px;
55
+ background-color: #F8F8F8; color: #666666;
56
+ text-align: right;
57
+ }
58
+ .onoffswitch-switch {
59
+ width: 31px; margin: 0px;
60
+ background: #FFFFFF;
61
+ border: 2px solid #666666; border-radius: 5px;
62
+ position: absolute; top: 0; bottom: 0; right: 39px;
63
+ -moz-transition: all 0.3s ease-in 0s; -webkit-transition: all 0.3s ease-in 0s;
64
+ -o-transition: all 0.3s ease-in 0s; transition: all 0.3s ease-in 0s;
65
+ background-image: -moz-linear-gradient(center top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 100%);
66
+ background-image: -webkit-linear-gradient(center top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 100%);
67
+ background-image: -o-linear-gradient(center top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 100%);
68
+ background-image: linear-gradient(center top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 100%);
69
+ }
70
+ .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
71
+ margin-left: 0;
72
+ }
73
+ .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
74
+ right: 0px;
75
+ }
76
+
77
+ // Spinner
78
+ #phrasing-spinner{
79
+ margin-top: 10px;
80
+ // background-color: black;
81
+ text-align: center;
82
+ font-weight: bold;
83
+ height:40px;
84
+ p{
85
+ color:white;
86
+ }
87
+ }
88
+
89
+ #view-all-phrases{
90
+ margin-top:10px;
91
+ // background-color: black;
92
+ text-align: center;
93
+ font-weight: bold;
94
+ a:hover{
95
+ text-decoration: none;
96
+ }
97
+ }
98
+
99
+ #phrasing-info-icon-container{
100
+ text-align:center;
101
+ cursor:pointer;
102
+ .phrasing-info-icon{
103
+ margin-top:-12px;
104
+ }
105
+ }
106
+
107
+ #phrasing-info-container{
108
+ display:none;
109
+ text-align:center;
110
+ cursor:pointer;
111
+ p{
112
+ font-size:12px;
113
+ line-height:14px;
114
+ }
115
+ }
116
+
117
+ }
@@ -0,0 +1,470 @@
1
+ /*
2
+ * Skeleton V1.1
3
+ * Copyright 2011, Dave Gamache
4
+ * www.getskeleton.com
5
+ * Free to use under the MIT license.
6
+ * http://www.opensource.org/licenses/mit-license.php
7
+ * 8/17/2011
8
+ */
9
+
10
+
11
+ /* Table of Content
12
+ ==================================================
13
+ #Reset & Basics
14
+ #Basic Styles
15
+ #Site Styles
16
+ #Typography
17
+ #Links
18
+ #Lists
19
+ #Images
20
+ #Buttons
21
+ #Tabs
22
+ #Forms
23
+ #Misc */
24
+
25
+
26
+ /* #Reset & Basics (Inspired by E. Meyers)
27
+ ================================================== */
28
+ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
29
+ margin: 0;
30
+ padding: 0;
31
+ border: 0;
32
+ font-size: 100%;
33
+ font: inherit;
34
+ vertical-align: baseline; }
35
+ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
36
+ display: block; }
37
+ body {
38
+ line-height: 1; }
39
+ ol, ul {
40
+ list-style: none; }
41
+ blockquote, q {
42
+ quotes: none; }
43
+ blockquote:before, blockquote:after,
44
+ q:before, q:after {
45
+ content: '';
46
+ content: none; }
47
+ table {
48
+ border-collapse: collapse;
49
+ border-spacing: 0; }
50
+
51
+
52
+ /* #Basic Styles
53
+ ================================================== */
54
+ body {
55
+ background: #fff;
56
+ font: 14px/21px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
57
+ color: #444;
58
+ -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */
59
+ -webkit-text-size-adjust: 100%;
60
+ }
61
+
62
+
63
+ /* #Typography
64
+ ================================================== */
65
+ h1, h2, h3, h4, h5, h6 {
66
+ color: #181818;
67
+ font-family: "Georgia", "Times New Roman", Helvetica, Arial, sans-serif;
68
+ font-weight: normal; }
69
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; }
70
+ h1 { font-size: 46px; line-height: 50px; margin-bottom: 14px;}
71
+ h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; }
72
+ h3 { font-size: 28px; line-height: 34px; margin-bottom: 8px; }
73
+ h4 { font-size: 21px; line-height: 30px; margin-bottom: 4px; }
74
+ h5 { font-size: 17px; line-height: 24px; }
75
+ h6 { font-size: 14px; line-height: 21px; }
76
+ .subheader { color: #777; }
77
+
78
+ p { margin: 0 0 20px 0; }
79
+ p img { margin: 0; }
80
+ p.lead { font-size: 21px; line-height: 27px; color: #777; }
81
+
82
+ em { font-style: italic; }
83
+ strong { font-weight: bold; color: #333; }
84
+ small { font-size: 80%; }
85
+
86
+ /* Blockquotes */
87
+ blockquote, blockquote p { font-size: 17px; line-height: 24px; color: #777; font-style: italic; }
88
+ blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; }
89
+ blockquote cite { display: block; font-size: 12px; color: #555; }
90
+ blockquote cite:before { content: "\2014 \0020"; }
91
+ blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; }
92
+
93
+ hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 10px 0 30px; height: 0; }
94
+
95
+
96
+ /* #Links
97
+ ================================================== */
98
+ a, a:visited { color: #333; text-decoration: underline; outline: 0; }
99
+ a:hover, a:focus { color: #000; }
100
+ p a, p a:visited { line-height: inherit; }
101
+
102
+
103
+ /* #Lists
104
+ ================================================== */
105
+ ul, ol { margin-bottom: 20px; }
106
+ ul { list-style: none outside; }
107
+ ol { list-style: decimal; }
108
+ ol, ul.square, ul.circle, ul.disc { margin-left: 30px; }
109
+ ul.square { list-style: square outside; }
110
+ ul.circle { list-style: circle outside; }
111
+ ul.disc { list-style: disc outside; }
112
+ ul ul, ul ol,
113
+ ol ol, ol ul { margin: 4px 0 5px 30px; font-size: 90%; }
114
+ ul ul li, ul ol li,
115
+ ol ol li, ol ul li { margin-bottom: 6px; }
116
+ li { line-height: 18px; margin-bottom: 12px; }
117
+ ul.large li { line-height: 21px; }
118
+ li p { line-height: 21px; }
119
+
120
+ /* #Images
121
+ ================================================== */
122
+
123
+ img.scale-with-grid {
124
+ max-width: 100%;
125
+ height: auto; }
126
+
127
+
128
+ /* #Buttons
129
+ ================================================== */
130
+
131
+ .button,
132
+ button,
133
+ input[type="submit"],
134
+ input[type="reset"],
135
+ input[type="button"] {
136
+ background: #eee; /* Old browsers */
137
+ background: #eee -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */
138
+ background: #eee -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */
139
+ background: #eee -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */
140
+ background: #eee -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */
141
+ background: #eee -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */
142
+ background: #eee linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */
143
+ border: 1px solid #aaa;
144
+ border-top: 1px solid #ccc;
145
+ border-left: 1px solid #ccc;
146
+ padding: 4px 12px;
147
+ -moz-border-radius: 3px;
148
+ -webkit-border-radius: 3px;
149
+ border-radius: 3px;
150
+ color: #444;
151
+ display: inline-block;
152
+ font-size: 11px;
153
+ font-weight: bold;
154
+ text-decoration: none;
155
+ text-shadow: 0 1px rgba(255, 255, 255, .75);
156
+ cursor: pointer;
157
+ margin-bottom: 20px;
158
+ line-height: normal;
159
+ padding: 8px 10px;
160
+ font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; }
161
+
162
+ .button:hover,
163
+ button:hover,
164
+ input[type="submit"]:hover,
165
+ input[type="reset"]:hover,
166
+ input[type="button"]:hover {
167
+ color: #222;
168
+ background: #ddd; /* Old browsers */
169
+ background: #ddd -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */
170
+ background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */
171
+ background: #ddd -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */
172
+ background: #ddd -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */
173
+ background: #ddd -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */
174
+ background: #ddd linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */
175
+ border: 1px solid #888;
176
+ border-top: 1px solid #aaa;
177
+ border-left: 1px solid #aaa; }
178
+
179
+ .button:active,
180
+ button:active,
181
+ input[type="submit"]:active,
182
+ input[type="reset"]:active,
183
+ input[type="button"]:active {
184
+ border: 1px solid #666;
185
+ background: #ccc; /* Old browsers */
186
+ background: #ccc -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */
187
+ background: #ccc -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */
188
+ background: #ccc -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */
189
+ background: #ccc -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */
190
+ background: #ccc -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */
191
+ background: #ccc linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ }
192
+
193
+ .button.full-width,
194
+ button.full-width,
195
+ input[type="submit"].full-width,
196
+ input[type="reset"].full-width,
197
+ input[type="button"].full-width {
198
+ width: 100%;
199
+ padding-left: 0 !important;
200
+ padding-right: 0 !important;
201
+ text-align: center; }
202
+
203
+ /* Fix for odd Mozilla border & padding issues */
204
+ button::-moz-focus-inner,
205
+ input::-moz-focus-inner {
206
+ border: 0;
207
+ padding: 0;
208
+ }
209
+
210
+
211
+ /* #Tabs (activate in tabs.js)
212
+ ================================================== */
213
+ ul.tabs {
214
+ display: block;
215
+ margin: 0 0 20px 0;
216
+ padding: 0;
217
+ border-bottom: solid 1px #ddd; }
218
+ ul.tabs li {
219
+ display: block;
220
+ width: auto;
221
+ height: 30px;
222
+ padding: 0;
223
+ float: left;
224
+ margin-bottom: 0; }
225
+ ul.tabs li a {
226
+ display: block;
227
+ text-decoration: none;
228
+ width: auto;
229
+ height: 29px;
230
+ padding: 0px 20px;
231
+ line-height: 30px;
232
+ border: solid 1px #ddd;
233
+ border-width: 1px 1px 0 0;
234
+ margin: 0;
235
+ background: #f5f5f5;
236
+ font-size: 13px; }
237
+ ul.tabs li a.active {
238
+ background: #fff;
239
+ height: 30px;
240
+ position: relative;
241
+ top: -4px;
242
+ padding-top: 4px;
243
+ border-left-width: 1px;
244
+ margin: 0 0 0 -1px;
245
+ color: #111;
246
+ -moz-border-radius-topleft: 2px;
247
+ -webkit-border-top-left-radius: 2px;
248
+ border-top-left-radius: 2px;
249
+ -moz-border-radius-topright: 2px;
250
+ -webkit-border-top-right-radius: 2px;
251
+ border-top-right-radius: 2px; }
252
+ ul.tabs li:first-child a.active {
253
+ margin-left: 0; }
254
+ ul.tabs li:first-child a {
255
+ border-width: 1px 1px 0 1px;
256
+ -moz-border-radius-topleft: 2px;
257
+ -webkit-border-top-left-radius: 2px;
258
+ border-top-left-radius: 2px; }
259
+ ul.tabs li:last-child a {
260
+ -moz-border-radius-topright: 2px;
261
+ -webkit-border-top-right-radius: 2px;
262
+ border-top-right-radius: 2px; }
263
+
264
+ ul.tabs-content { margin: 0; display: block; }
265
+ ul.tabs-content > li { display:none; }
266
+ ul.tabs-content > li.active { display: block; }
267
+
268
+ /* Clearfixing tabs for beautiful stacking */
269
+ ul.tabs:before,
270
+ ul.tabs:after {
271
+ content: '\0020';
272
+ display: block;
273
+ overflow: hidden;
274
+ visibility: hidden;
275
+ width: 0;
276
+ height: 0; }
277
+ ul.tabs:after {
278
+ clear: both; }
279
+ ul.tabs {
280
+ zoom: 1; }
281
+
282
+
283
+ /* #Forms
284
+ ================================================== */
285
+
286
+ form {
287
+ margin-bottom: 20px; }
288
+ fieldset {
289
+ margin-bottom: 20px; }
290
+ input[type="text"],
291
+ input[type="password"],
292
+ input[type="email"],
293
+ textarea,
294
+ select {
295
+ border: 1px solid #ccc;
296
+ padding: 6px 4px;
297
+ outline: none;
298
+ -moz-border-radius: 2px;
299
+ -webkit-border-radius: 2px;
300
+ border-radius: 2px;
301
+ font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
302
+ color: #777;
303
+ margin: 0;
304
+ width: 210px;
305
+ max-width: 100%;
306
+ display: block;
307
+ margin-bottom: 20px;
308
+ background: #fff; }
309
+ select {
310
+ padding: 0; }
311
+ input[type="text"]:focus,
312
+ input[type="password"]:focus,
313
+ input[type="email"]:focus,
314
+ textarea:focus {
315
+ border: 1px solid #aaa;
316
+ color: #444;
317
+ -moz-box-shadow: 0 0 3px rgba(0,0,0,.2);
318
+ -webkit-box-shadow: 0 0 3px rgba(0,0,0,.2);
319
+ box-shadow: 0 0 3px rgba(0,0,0,.2); }
320
+ textarea {
321
+ min-height: 60px; }
322
+ label,
323
+ legend {
324
+ display: block;
325
+ font-weight: bold;
326
+ font-size: 13px; }
327
+ select {
328
+ width: 220px; }
329
+ input[type="checkbox"] {
330
+ display: inline; }
331
+ label span,
332
+ legend span {
333
+ font-weight: normal;
334
+ font-size: 13px;
335
+ color: #444; }
336
+
337
+ /* #Misc
338
+ ================================================== */
339
+ .remove-bottom { margin-bottom: 0 !important; }
340
+ .half-bottom { margin-bottom: 10px !important; }
341
+ .add-bottom { margin-bottom: 20px !important; }
342
+
343
+ /* end of getskeleton */
344
+
345
+ h2 {
346
+ font-size: 1.8em;
347
+ }
348
+
349
+ table {
350
+ width: 100%;
351
+ border-bottom: 1px #CCC dotted;
352
+ padding-top: 2em;
353
+ padding-bottom: 1em;
354
+ }
355
+
356
+ table th {
357
+ text-align: left;
358
+ padding-bottom: 1em;
359
+ }
360
+
361
+ table tr td {
362
+ padding-top: 1em;
363
+ padding-bottom: 1em;
364
+ border-top: 1px #CCC dotted;
365
+ }
366
+
367
+ table tr td.key {
368
+ width: 20%;
369
+ margin-right: 5%;
370
+ vertical-align: top;
371
+ }
372
+
373
+ table tr td.value {
374
+ width: 75%;
375
+ }
376
+
377
+ input[type="text"],
378
+ textarea,
379
+ select {
380
+ display: inline;
381
+ margin: .2em;
382
+ }
383
+
384
+ textarea {
385
+ font-size: 1.2em;
386
+ }
387
+
388
+ select {
389
+ width: 4em;
390
+ }
391
+
392
+ div.edit {
393
+ width: 99%;
394
+ }
395
+
396
+ div.edit h2 {
397
+ float: left;
398
+ max-width: 75%;
399
+ overflow: hidden;
400
+ text-overflow: ellipsis;
401
+ }
402
+
403
+ div.edit textarea {
404
+ width: 99%;
405
+ margin-top: 1em;
406
+ }
407
+
408
+ div.edit a {
409
+ display: block;
410
+ margin: 0 0 0 .5em;
411
+ }
412
+
413
+ div.edit form {
414
+ margin-bottom: 0px;
415
+ }
416
+ div.edit form.button_to {
417
+ float: right;
418
+ }
419
+
420
+ body {
421
+ background-color: #FFFDF9;
422
+ }
423
+
424
+ #page {
425
+ background-color: #FFFDF7;
426
+ width: 800px;
427
+ margin: 0 auto;
428
+ padding: 2em;
429
+ }
430
+ #header {
431
+ width: 100%;
432
+ height: 4em;
433
+ margin-bottom: 1em;
434
+ }
435
+
436
+ #header h1 {
437
+ margin-left: 1em;
438
+ float: left;
439
+ font-size: 2.5em;
440
+ line-height: 1em;
441
+ }
442
+
443
+ #header ul {
444
+ float: right;
445
+ list-style-type: none;
446
+ }
447
+
448
+ #header li {
449
+ float: left;
450
+ }
451
+
452
+ #header li a {
453
+ padding: 0 .5em 0 .5em;
454
+ }
455
+
456
+ .notice {
457
+ min-height: 2em;
458
+ background-color: #FFD;
459
+ text-align: center;
460
+ padding-top: .5em;
461
+ margin-bottom: .5em;
462
+ }
463
+
464
+ .alert {
465
+ min-height: 2em;
466
+ background-color: #FDD;
467
+ text-align: center;
468
+ padding-top: .5em;
469
+ margin-bottom: .5em;
470
+ }