webby 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -0
- data/Manifest.txt +30 -1
- data/Rakefile +6 -2
- data/bin/webby +1 -1
- data/data/Rakefile +6 -2
- data/data/content/{index.rhtml → index.txt} +0 -0
- data/data/tasks/create.rake +6 -1
- data/data/tasks/deploy.rake +22 -0
- data/data/tasks/heel.rake +26 -0
- data/data/tasks/setup.rb +27 -0
- data/lib/webby.rb +20 -12
- data/lib/webby/builder.rb +6 -19
- data/lib/webby/main.rb +85 -15
- data/lib/webby/pages_db.rb +24 -1
- data/lib/webby/renderer.rb +25 -3
- data/lib/webby/resource.rb +89 -13
- data/lib/webby/webby_task.rb +19 -41
- data/tasks/doc.rake +2 -19
- data/tasks/gem.rake +14 -41
- data/tasks/manifest.rake +1 -1
- data/tasks/rubyforge.rake +57 -0
- data/tasks/setup.rb +6 -5
- data/tasks/spec.rake +3 -3
- data/tasks/website.rake +38 -0
- data/website/Rakefile +13 -0
- data/website/content/css/blueprint/lib/buttons.css +112 -0
- data/website/content/css/blueprint/lib/compressed.css +127 -0
- data/website/content/css/blueprint/lib/grid.css +177 -0
- data/website/content/css/blueprint/lib/img/baseline-black.png +0 -0
- data/website/content/css/blueprint/lib/img/baseline.png +0 -0
- data/website/content/css/blueprint/lib/img/grid.png +0 -0
- data/website/content/css/blueprint/lib/img/icons/cross.png +0 -0
- data/website/content/css/blueprint/lib/img/icons/textfield_key.png +0 -0
- data/website/content/css/blueprint/lib/img/icons/tick.png +0 -0
- data/website/content/css/blueprint/lib/reset.css +37 -0
- data/website/content/css/blueprint/lib/typography.css +159 -0
- data/website/content/css/blueprint/print.css +75 -0
- data/website/content/css/blueprint/screen.css +34 -0
- data/website/content/css/site.css +22 -0
- data/website/content/download.txt +8 -0
- data/website/content/index.txt +28 -0
- data/website/content/tutorial.txt +130 -0
- data/website/layouts/default.rhtml +49 -0
- data/website/tasks/create.rake +11 -0
- data/website/tasks/deploy.rake +22 -0
- data/website/tasks/heel.rake +26 -0
- data/website/tasks/setup.rb +27 -0
- data/website/templates/page.erb +8 -0
- metadata +33 -14
data/tasks/manifest.rake
CHANGED
@@ -0,0 +1,57 @@
|
|
1
|
+
# $Id: rubyforge.rake 11 2007-08-23 15:45:16Z tim_pease $
|
2
|
+
|
3
|
+
if PROJ.rubyforge_name && HAVE_RUBYFORGE
|
4
|
+
|
5
|
+
require 'rubyforge'
|
6
|
+
require 'rake/contrib/sshpublisher'
|
7
|
+
|
8
|
+
namespace :gem do
|
9
|
+
desc 'Package and upload to RubyForge'
|
10
|
+
task :release => [:clobber, :package] do |t|
|
11
|
+
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
12
|
+
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
13
|
+
pkg = "pkg/#{PROJ.spec.full_name}"
|
14
|
+
|
15
|
+
if $DEBUG then
|
16
|
+
puts "release_id = rf.add_release #{PROJ.rubyforge_name.inspect}, #{PROJ.name.inspect}, #{PROJ.version.inspect}, \"#{pkg}.tgz\""
|
17
|
+
puts "rf.add_file #{PROJ.rubyforge_name.inspect}, #{PROJ.name.inspect}, release_id, \"#{pkg}.gem\""
|
18
|
+
end
|
19
|
+
|
20
|
+
rf = RubyForge.new
|
21
|
+
puts 'Logging in'
|
22
|
+
rf.login
|
23
|
+
|
24
|
+
c = rf.userconfig
|
25
|
+
c['release_notes'] = PROJ.description if PROJ.description
|
26
|
+
c['release_changes'] = PROJ.changes if PROJ.changes
|
27
|
+
c['preformatted'] = true
|
28
|
+
|
29
|
+
files = [(PROJ.need_tar ? "#{pkg}.tgz" : nil),
|
30
|
+
(PROJ.need_zip ? "#{pkg}.zip" : nil),
|
31
|
+
"#{pkg}.gem"].compact
|
32
|
+
|
33
|
+
puts "Releasing #{PROJ.name} v. #{PROJ.version}"
|
34
|
+
rf.add_release PROJ.rubyforge_name, PROJ.name, PROJ.version, *files
|
35
|
+
end
|
36
|
+
end # namespace :gem
|
37
|
+
|
38
|
+
|
39
|
+
namespace :doc do
|
40
|
+
desc "Publish RDoc to RubyForge"
|
41
|
+
task :release => %w(doc:clobber_rdoc doc:rdoc) do
|
42
|
+
config = YAML.load(
|
43
|
+
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
44
|
+
)
|
45
|
+
|
46
|
+
host = "#{config['username']}@rubyforge.org"
|
47
|
+
remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge_name}/"
|
48
|
+
remote_dir << PROJ.rdoc_remote_dir || PROJ.name
|
49
|
+
local_dir = PROJ.rdoc_dir
|
50
|
+
|
51
|
+
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
|
52
|
+
end
|
53
|
+
end # namespace :doc
|
54
|
+
|
55
|
+
end # if HAVE_RUBYFORGE
|
56
|
+
|
57
|
+
# EOF
|
data/tasks/setup.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: setup.rb
|
1
|
+
# $Id: setup.rb 13 2007-08-23 22:18:00Z tim_pease $
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'ostruct'
|
@@ -33,6 +33,7 @@ PROJ.rdoc_opts = []
|
|
33
33
|
PROJ.rdoc_include = %w(^lib ^bin ^ext txt$)
|
34
34
|
PROJ.rdoc_exclude = %w(extconf\.rb$ ^Manifest\.txt$)
|
35
35
|
PROJ.rdoc_main = 'README.txt'
|
36
|
+
PROJ.rdoc_dir = 'doc'
|
36
37
|
PROJ.rdoc_remote_dir = nil
|
37
38
|
|
38
39
|
# Extensions
|
@@ -86,12 +87,12 @@ SUDO = if WIN32 then ''
|
|
86
87
|
RCOV = WIN32 ? 'rcov.cmd' : 'rcov'
|
87
88
|
GEM = WIN32 ? 'gem.cmd' : 'gem'
|
88
89
|
|
89
|
-
%w(rcov
|
90
|
+
%w(rcov spec rubyforge).each do |lib|
|
90
91
|
begin
|
91
|
-
|
92
|
-
Object.instance_eval {const_set "HAVE_#{
|
92
|
+
require lib
|
93
|
+
Object.instance_eval {const_set "HAVE_#{lib.upcase}", true}
|
93
94
|
rescue LoadError
|
94
|
-
Object.instance_eval {const_set "HAVE_#{
|
95
|
+
Object.instance_eval {const_set "HAVE_#{lib.upcase}", false}
|
95
96
|
end
|
96
97
|
end
|
97
98
|
|
data/tasks/spec.rake
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# $Id$
|
1
|
+
# $Id: spec.rake 13 2007-08-23 22:18:00Z tim_pease $
|
2
2
|
|
3
|
-
if
|
3
|
+
if HAVE_SPEC
|
4
4
|
|
5
5
|
require 'spec/rake/spectask'
|
6
6
|
|
@@ -32,6 +32,6 @@ end # namespace :spec
|
|
32
32
|
|
33
33
|
task :clobber => 'spec:clobber_rcov' if HAVE_RCOV
|
34
34
|
|
35
|
-
end # if
|
35
|
+
end # if HAVE_SPEC
|
36
36
|
|
37
37
|
# EOF
|
data/tasks/website.rake
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# $Id: website.rake 12 2007-08-23 16:43:11Z tim_pease $
|
2
|
+
|
3
|
+
namespace :website do
|
4
|
+
|
5
|
+
desc 'Build the Webby website'
|
6
|
+
task :build do
|
7
|
+
begin
|
8
|
+
olddir = pwd
|
9
|
+
chdir 'website'
|
10
|
+
sh 'rake build'
|
11
|
+
cp_r 'output/.', olddir + '/doc'
|
12
|
+
ensure
|
13
|
+
chdir olddir
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
desc 'Remove the Webby website'
|
18
|
+
task :clobber do
|
19
|
+
rm_r 'doc' rescue nil
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'Publish the website to RubyForge'
|
23
|
+
task :release => %w(website:clobber doc:rdoc website:build) do
|
24
|
+
config = YAML.load(
|
25
|
+
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
26
|
+
)
|
27
|
+
|
28
|
+
host = "#{config['username']}@rubyforge.org"
|
29
|
+
remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge_name}/"
|
30
|
+
|
31
|
+
sh "rsync --delete -rulptzCF doc/ #{host}:#{remote_dir}"
|
32
|
+
end
|
33
|
+
|
34
|
+
end # namespace :website
|
35
|
+
|
36
|
+
task :clobber => 'website:clobber'
|
37
|
+
|
38
|
+
# EOF
|
data/website/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
require 'webby'
|
3
|
+
load 'tasks/setup.rb'
|
4
|
+
|
5
|
+
task :default => :build
|
6
|
+
|
7
|
+
desc 'deploy the website to Rubyforge'
|
8
|
+
task :deploy => [:build, 'deploy:rsync']
|
9
|
+
|
10
|
+
SITE.host = 'tim_pease@rubyforge.org'
|
11
|
+
SITE.remote_dir = '/var/www/gforge-projects/webby/'
|
12
|
+
|
13
|
+
# EOF
|
@@ -0,0 +1,112 @@
|
|
1
|
+
/* --------------------------------------------------------------
|
2
|
+
|
3
|
+
Buttons.css
|
4
|
+
* Gives you some great buttons for many purposes.
|
5
|
+
|
6
|
+
Created by Kevin Hale [particletree.com]
|
7
|
+
* particletree.com/features/rediscovering-the-button-element
|
8
|
+
|
9
|
+
W3C: "Buttons created with the BUTTON element function
|
10
|
+
just like buttons created with the INPUT element,
|
11
|
+
but they offer richer rendering possibilities."
|
12
|
+
|
13
|
+
Usage:
|
14
|
+
|
15
|
+
<button type="submit" class="button positive">
|
16
|
+
<img src="css/blueprint/lib/img/icons/tick.png" alt=""/> Save
|
17
|
+
</button>
|
18
|
+
|
19
|
+
<a class="button" href="/password/reset/">
|
20
|
+
<img src="css/blueprint/lib/img/icons/textfield_key.png" alt=""/> Change Password
|
21
|
+
</a>
|
22
|
+
|
23
|
+
<a href="#" class="button negative">
|
24
|
+
<img src="css/blueprint/lib/img/icons/cross.png" alt=""/> Cancel
|
25
|
+
</a>
|
26
|
+
|
27
|
+
|
28
|
+
-------------------------------------------------------------- */
|
29
|
+
|
30
|
+
a.button, button {
|
31
|
+
display:block;
|
32
|
+
float:left;
|
33
|
+
margin:0 0.583em 0.667em 0;
|
34
|
+
padding:5px 10px 6px 7px; /* Links */
|
35
|
+
|
36
|
+
border:0.1em solid #dedede;
|
37
|
+
border-top:0.1em solid #eee;
|
38
|
+
border-left:0.1em solid #eee;
|
39
|
+
|
40
|
+
background-color:#f5f5f5;
|
41
|
+
font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
|
42
|
+
font-size:100%;
|
43
|
+
line-height:130%;
|
44
|
+
text-decoration:none;
|
45
|
+
font-weight:bold;
|
46
|
+
color:#565656;
|
47
|
+
cursor:pointer;
|
48
|
+
}
|
49
|
+
button {
|
50
|
+
width:auto;
|
51
|
+
overflow:visible;
|
52
|
+
padding:4px 10px 3px 7px; /* IE6 */
|
53
|
+
}
|
54
|
+
button[type] {
|
55
|
+
padding:5px 10px 5px 7px; /* Firefox */
|
56
|
+
line-height:17px; /* Safari */
|
57
|
+
}
|
58
|
+
*:first-child+html button[type] {
|
59
|
+
padding:4px 10px 3px 7px; /* IE7 */
|
60
|
+
}
|
61
|
+
button img, a.button img{
|
62
|
+
margin:0 3px -3px 0 !important;
|
63
|
+
padding:0;
|
64
|
+
border:none;
|
65
|
+
width:16px;
|
66
|
+
height:16px;
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
/* Button colors
|
71
|
+
-------------------------------------------------------------- */
|
72
|
+
|
73
|
+
/* Standard */
|
74
|
+
button:hover, a.button:hover{
|
75
|
+
background-color:#dff4ff;
|
76
|
+
border:0.1em solid #c2e1ef;
|
77
|
+
color:#336699;
|
78
|
+
}
|
79
|
+
a.button:active{
|
80
|
+
background-color:#6299c5;
|
81
|
+
border:1px solid #6299c5;
|
82
|
+
color:#fff;
|
83
|
+
}
|
84
|
+
|
85
|
+
/* Positive */
|
86
|
+
.positive {
|
87
|
+
color:#529214;
|
88
|
+
}
|
89
|
+
a.positive:hover, button.positive:hover {
|
90
|
+
background-color:#E6EFC2;
|
91
|
+
border:0.1em solid #C6D880;
|
92
|
+
color:#529214;
|
93
|
+
}
|
94
|
+
a.positive:active {
|
95
|
+
background-color:#529214;
|
96
|
+
border:0.1em solid #529214;
|
97
|
+
color:#fff;
|
98
|
+
}
|
99
|
+
|
100
|
+
/* Negative */
|
101
|
+
.negative {
|
102
|
+
color:#d12f19;
|
103
|
+
}
|
104
|
+
a.negative:hover, button.negative:hover {
|
105
|
+
background:#fbe3e4;
|
106
|
+
border:0.1em solid #fbc2c4;
|
107
|
+
}
|
108
|
+
a.negative:active {
|
109
|
+
background-color:#d12f19;
|
110
|
+
border:0.1em solid #d12f19;
|
111
|
+
color:#fff;
|
112
|
+
}
|
@@ -0,0 +1,127 @@
|
|
1
|
+
/* Blueprint Comressed Version */
|
2
|
+
|
3
|
+
/* reset.css */
|
4
|
+
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,font,img,ins,kbd,q,s,samp, small,strike,strong,sub,sup,tt,var, dl,dt,dd,ol,ul,li, fieldset,form,label,legend, table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
|
5
|
+
body{line-height:1;color:#333;background:white;}
|
6
|
+
table{border-collapse:separate;border-spacing:0;}
|
7
|
+
caption,th,td{text-align:left;font-weight:normal;}
|
8
|
+
blockquote:before,blockquote:after,q:before,q:after{content:"";}
|
9
|
+
blockquote,q{quotes:"" "";}
|
10
|
+
|
11
|
+
/* typograpghy.css */
|
12
|
+
body{font-family:"Lucida Grande",Helvetica,Arial,Verdana,sans-serif;line-height:1.5;}
|
13
|
+
body{font-size:75%;}
|
14
|
+
html > body{font-size:12px;}
|
15
|
+
h1,h2,h3,h4,h5,h6{font-family:Helvetica,Arial,"Lucida Grande",Verdana,sans-serif;color:#111;clear:both;}
|
16
|
+
h1{font-size:3em;}
|
17
|
+
h2{font-size:2em;}
|
18
|
+
h3{font-size:1.5em;line-height:2;}
|
19
|
+
h4{font-size:1.2em;line-height:1.25;font-weight:bold;}
|
20
|
+
h5{font-size:1em;font-weight:bold;}
|
21
|
+
h6{font-size:1em;}
|
22
|
+
p{margin:0 0 1.5em 0;text-align:justify;}
|
23
|
+
p.last{margin-bottom:0;}
|
24
|
+
p img{float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
|
25
|
+
p img.top{margin-top:0;}
|
26
|
+
ul,ol{margin:0 0 1.5em 1.5em;}
|
27
|
+
ol{list-style-type:decimal;}
|
28
|
+
dl{margin:1.5em 0;}
|
29
|
+
dl dt{font-weight:bold;}
|
30
|
+
a{color:#125AA7;text-decoration:underline;outline:none;}
|
31
|
+
a:hover{color:#000;}
|
32
|
+
blockquote{margin:1.5em 0 1.5em 1.5em;color:#666;font-style:italic;}
|
33
|
+
strong{font-weight:bold;}
|
34
|
+
em{font-style:italic;}
|
35
|
+
pre{margin-bottom:1.3em;background:#eee;border:0.1em solid #ddd;padding:1.5em;}
|
36
|
+
code{font:0.9em Monaco,monospace;}
|
37
|
+
hr{background:#B2CCFF;color:#B2CCFF;clear:both;float:none;width:100%;height:0.1em;margin:0 0 1.4em 0;border:none;}
|
38
|
+
* html hr{margin:0 0 1.2em 0;}
|
39
|
+
table{margin-bottom:1.4em;border-top:0.1em solid #ddd;border-left:0.1em solid #ddd;}
|
40
|
+
th,td{height:1em;padding:0.2em 0.4em;border-bottom:0.1em solid #ddd;border-right:0.1em solid #ddd;}
|
41
|
+
th{font-weight:bold;}
|
42
|
+
label{font-weight:bold;}
|
43
|
+
textarea{height:180px;width:300px;}
|
44
|
+
p.small{font-size:0.8em;margin-bottom:1.875em;line-height:1.875em;}
|
45
|
+
p.large{font-size:1.2em;line-height:2.5em;}
|
46
|
+
p.quiet{color:#666;}
|
47
|
+
.hide{display:none;}
|
48
|
+
.alt{color:#666;font-family:"Warnock Pro","Goudy Old Style","Palatino","Book Antiqua",serif;font-size:1.2em;line-height:1%;font-style:italic;}
|
49
|
+
.dquo{margin-left:-.7em;}
|
50
|
+
p.incr,.incr p{font-size:0.83333em;line-height:1.44em;margin-bottom:1.8em;}
|
51
|
+
|
52
|
+
/* grid.css */
|
53
|
+
body{text-align:center;margin:36px 0;}
|
54
|
+
.container{text-align:left;position:relative;padding:0;margin:0 auto;width:960px;}
|
55
|
+
.column{float:left;margin:0 10px;padding:0;}
|
56
|
+
* html .column{overflow-x:hidden;}
|
57
|
+
.border{padding-right:9px;margin-right:0;border-right:1px solid #ddd;}
|
58
|
+
.first{margin-left:0;}
|
59
|
+
.last{margin-right:0;}
|
60
|
+
.span-1{width:50px;}
|
61
|
+
.span-2{width:120px;}
|
62
|
+
.span-3{width:190px;}
|
63
|
+
.span-4{width:260px;}
|
64
|
+
.span-5{width:330px;}
|
65
|
+
.span-6{width:400px;}
|
66
|
+
.span-7{width:470px;}
|
67
|
+
.span-8{width:540px;}
|
68
|
+
.span-9{width:610px;}
|
69
|
+
.span-10{width:680px;}
|
70
|
+
.span-11{width:750px;}
|
71
|
+
.span-12{width:820px;}
|
72
|
+
.span-13{width:890px;}
|
73
|
+
.span-14{width:960px;margin:0;}
|
74
|
+
.append-1{padding-right:70px;}
|
75
|
+
.append-2{padding-right:140px;}
|
76
|
+
.append-3{padding-right:210px;}
|
77
|
+
.append-4{padding-right:280px;}
|
78
|
+
.append-5{padding-right:350px;}
|
79
|
+
.append-6{padding-right:420px;}
|
80
|
+
.append-7{padding-right:490px;}
|
81
|
+
.append-8{padding-right:560px;}
|
82
|
+
.append-9{padding-right:630px;}
|
83
|
+
.append-10{padding-right:700px;}
|
84
|
+
.append-11{padding-right:770px;}
|
85
|
+
.append-12{padding-right:840px;}
|
86
|
+
.append-13{padding-right:910px;}
|
87
|
+
.prepend-1{padding-left:70px;}
|
88
|
+
.prepend-2{padding-left:140px;}
|
89
|
+
.prepend-3{padding-left:210px;}
|
90
|
+
.prepend-4{padding-left:280px;}
|
91
|
+
.prepend-5{padding-left:350px;}
|
92
|
+
.prepend-6{padding-left:420px;}
|
93
|
+
.prepend-7{padding-left:490px;}
|
94
|
+
.prepend-8{padding-left:560px;}
|
95
|
+
.prepend-9{padding-left:630px;}
|
96
|
+
.prepend-10{padding-left:700px;}
|
97
|
+
.prepend-11{padding-left:770px;}
|
98
|
+
.prepend-12{padding-left:840px;}
|
99
|
+
.prepend-13{padding-left:910px;}
|
100
|
+
.box{padding:1.5em;margin-bottom:1.5em;background:#F0F0F0;}
|
101
|
+
.clear{display:inline-block;}
|
102
|
+
.clear:after,.container:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
|
103
|
+
* html .clear{height:1%;}
|
104
|
+
.clear{display:block;}
|
105
|
+
img{margin:0 0 1.5em 0;}
|
106
|
+
.pull-1{margin-left:-70px;}
|
107
|
+
.pull-2{margin-left:-140px;}
|
108
|
+
.pull-3{margin-left:-210px;}
|
109
|
+
.push-0{margin:0 0 0 1.5em;float:right;}
|
110
|
+
.push-1{margin:0 -88px 0 1.5em;float:right;}
|
111
|
+
.push-2{margin:0 -158px 0 1.5em;float:right;}
|
112
|
+
.push-3{margin:0 -228px 0 1.5em;float:right;}
|
113
|
+
|
114
|
+
/* buttons.css */
|
115
|
+
a.button,button{display:block;float:left;margin:0 0.583em 0.667em 0;padding:5px 10px 6px 7px;border:0.1em solid #dedede;border-top:0.1em solid #eee;border-left:0.1em solid #eee;background-color:#f5f5f5;line-height:130%;text-decoration:none;font-weight:bold;color:#565656;cursor:pointer;font:100% "Lucida Grande",Tahoma,Arial,Verdana,sans-serif}
|
116
|
+
button{width:auto;overflow:visible;padding:4px 10px 3px 7px}
|
117
|
+
button[type]{padding:5px 10px 5px 7px;line-height:17px}
|
118
|
+
*:first-child+html button[type]{padding:4px 10px 3px 7px}
|
119
|
+
button img,a.button img{margin:0 3px -3px 0 !important;padding:0;border:none;width:16px;height:16px}
|
120
|
+
button:hover,a.button:hover{background-color:#dff4ff;border:0.1em solid #c2e1ef;color:#336699}
|
121
|
+
a.button:active{background-color:#6299c5;border:1px solid #6299c5;color:#fff}
|
122
|
+
.positive{color:#529214}
|
123
|
+
a.positive:hover,button.positive:hover{background-color:#E6EFC2;border:0.1em solid #C6D880;color:#529214}
|
124
|
+
a.positive:active{background-color:#529214;border:0.1em solid #529214;color:#fff}
|
125
|
+
.negative{color:#d12f19}
|
126
|
+
a.negative:hover,button.negative:hover{background:#fbe3e4;border:0.1em solid #fbc2c4}
|
127
|
+
a.negative:active{background-color:#d12f19;border:0.1em solid #d12f19;color:#fff}
|
@@ -0,0 +1,177 @@
|
|
1
|
+
/* --------------------------------------------------------------
|
2
|
+
|
3
|
+
Grid.css
|
4
|
+
* Creates an easy to use grid of 14 columns.
|
5
|
+
|
6
|
+
Based on work by:
|
7
|
+
* Nathan Borror [playgroundblues.com]
|
8
|
+
* Jeff Croft [jeffcroft.com]
|
9
|
+
* Christian Metts [mintchaos.com]
|
10
|
+
* Khoi Vinh [subtraction.com]
|
11
|
+
|
12
|
+
By default, the grid is 960px wide, with columns
|
13
|
+
spanning 50px, and a 20px margin between columns.
|
14
|
+
|
15
|
+
If you need fewer or more columns, use this
|
16
|
+
formula to find the new total width:
|
17
|
+
|
18
|
+
Total width = (columns * 70) - 20
|
19
|
+
|
20
|
+
-------------------------------------------------------------- */
|
21
|
+
|
22
|
+
body {
|
23
|
+
text-align: center; /* IE Fix */
|
24
|
+
margin:36px 0;
|
25
|
+
}
|
26
|
+
|
27
|
+
/* A container should group all your columns. */
|
28
|
+
.container {
|
29
|
+
text-align: left;
|
30
|
+
position: relative;
|
31
|
+
padding: 0;
|
32
|
+
margin: 0 auto; /* Centers layout */
|
33
|
+
width: 960px; /* Total width */
|
34
|
+
}
|
35
|
+
|
36
|
+
|
37
|
+
/* Columns
|
38
|
+
-------------------------------------------------------------- */
|
39
|
+
|
40
|
+
/* Use this class together with the .span-x classes
|
41
|
+
to create any compsition of columns in a layout.
|
42
|
+
Nesting columns works like a charm (remember .first and .last). */
|
43
|
+
|
44
|
+
.column {
|
45
|
+
float: left;
|
46
|
+
margin: 0 10px;
|
47
|
+
padding: 0;
|
48
|
+
}
|
49
|
+
* html .column { overflow-x: hidden; } /* IE6 fix */
|
50
|
+
|
51
|
+
|
52
|
+
/* Add this class to a column if you want a border on its
|
53
|
+
right hand side. This should be customized to fit your needs. */
|
54
|
+
|
55
|
+
.border {
|
56
|
+
padding-right: 9px;
|
57
|
+
margin-right: 0;
|
58
|
+
border-right: 1px solid #ddd;
|
59
|
+
}
|
60
|
+
|
61
|
+
|
62
|
+
/* The first and last elements in a multi-column
|
63
|
+
block needs one of these classes each. */
|
64
|
+
|
65
|
+
.first { margin-left: 0; }
|
66
|
+
.last { margin-right: 0; }
|
67
|
+
|
68
|
+
|
69
|
+
/* Use these classes to set how wide a column should be. */
|
70
|
+
.span-1 { width: 50px; }
|
71
|
+
.span-2 { width: 120px; }
|
72
|
+
.span-3 { width: 190px; }
|
73
|
+
.span-4 { width: 260px; }
|
74
|
+
.span-5 { width: 330px; }
|
75
|
+
.span-6 { width: 400px; }
|
76
|
+
.span-7 { width: 470px; }
|
77
|
+
.span-8 { width: 540px; }
|
78
|
+
.span-9 { width: 610px; }
|
79
|
+
.span-10 { width: 680px; }
|
80
|
+
.span-11 { width: 750px; }
|
81
|
+
.span-12 { width: 820px; }
|
82
|
+
.span-13 { width: 890px; }
|
83
|
+
.span-14 { width: 960px; margin: 0; }
|
84
|
+
|
85
|
+
/* Add these to a column to append empty cols. */
|
86
|
+
.append-1 { padding-right: 70px; }
|
87
|
+
.append-2 { padding-right: 140px; }
|
88
|
+
.append-3 { padding-right: 210px; }
|
89
|
+
.append-4 { padding-right: 280px; }
|
90
|
+
.append-5 { padding-right: 350px; }
|
91
|
+
.append-6 { padding-right: 420px; }
|
92
|
+
.append-7 { padding-right: 490px; }
|
93
|
+
.append-8 { padding-right: 560px; }
|
94
|
+
.append-9 { padding-right: 630px; }
|
95
|
+
.append-10 { padding-right: 700px; }
|
96
|
+
.append-11 { padding-right: 770px; }
|
97
|
+
.append-12 { padding-right: 840px; }
|
98
|
+
.append-13 { padding-right: 910px; }
|
99
|
+
|
100
|
+
/* Add these to a column to prepend empty cols. */
|
101
|
+
.prepend-1 { padding-left: 70px; }
|
102
|
+
.prepend-2 { padding-left: 140px; }
|
103
|
+
.prepend-3 { padding-left: 210px; }
|
104
|
+
.prepend-4 { padding-left: 280px; }
|
105
|
+
.prepend-5 { padding-left: 350px; }
|
106
|
+
.prepend-6 { padding-left: 420px; }
|
107
|
+
.prepend-7 { padding-left: 490px; }
|
108
|
+
.prepend-8 { padding-left: 560px; }
|
109
|
+
.prepend-9 { padding-left: 630px; }
|
110
|
+
.prepend-10 { padding-left: 700px; }
|
111
|
+
.prepend-11 { padding-left: 770px; }
|
112
|
+
.prepend-12 { padding-left: 840px; }
|
113
|
+
.prepend-13 { padding-left: 910px; }
|
114
|
+
|
115
|
+
|
116
|
+
/* Use a .box to create a padded box inside a column.
|
117
|
+
Sticking to the the baseline. */
|
118
|
+
|
119
|
+
.box {
|
120
|
+
padding: 1.5em;
|
121
|
+
margin-bottom: 1.5em;
|
122
|
+
background: #f0f0f0;
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
/* Clearing floats without extra markup
|
127
|
+
Based on How To Clear Floats Without Structural Markup by PiE
|
128
|
+
[http://www.positioniseverything.net/easyclearing.html] */
|
129
|
+
|
130
|
+
.clear { display: inline-block; }
|
131
|
+
.clear:after, .container:after {
|
132
|
+
content: ".";
|
133
|
+
display: block;
|
134
|
+
height: 0;
|
135
|
+
clear: both;
|
136
|
+
visibility: hidden;
|
137
|
+
}
|
138
|
+
* html .clear { height: 1%; }
|
139
|
+
.clear { display: block; }
|
140
|
+
|
141
|
+
|
142
|
+
/* Nudge your elements [subtraction.com/archives/2007/0606_nudge_your_e.php]:
|
143
|
+
All block elements (not hr) inside a col should have a 5px padding on each side.
|
144
|
+
(Not everyone wants this, but feel free to uncomment if you do.)
|
145
|
+
|
146
|
+
p,ul,ol,dl,h1,h2,h3,h4,h5,h6,
|
147
|
+
caption,pre,blockquote,input,textarea {
|
148
|
+
padding-left: 5px;
|
149
|
+
padding-right: 5px;
|
150
|
+
}
|
151
|
+
div, table {
|
152
|
+
margin-left: 5px;
|
153
|
+
margin-right: 5px;
|
154
|
+
padding: 0;
|
155
|
+
} */
|
156
|
+
|
157
|
+
|
158
|
+
/* Images
|
159
|
+
-------------------------------------------------------------- */
|
160
|
+
|
161
|
+
/* Remember the baseline (typography.css). */
|
162
|
+
img { margin: 0 0 1.5em 0; }
|
163
|
+
|
164
|
+
|
165
|
+
/* Use these classes to make an image flow into the column before
|
166
|
+
or after it. This techique can also be used on other objects. */
|
167
|
+
|
168
|
+
.pull-1 { margin-left: -70px; }
|
169
|
+
.pull-2 { margin-left: -140px; }
|
170
|
+
.pull-3 { margin-left: -210px; }
|
171
|
+
|
172
|
+
.push-0 { margin: 0 0 0 1.5em; float: right; } /* Right aligns the image. */
|
173
|
+
.push-1 { margin: 0 -88px 0 1.5em; float: right; }
|
174
|
+
.push-2 { margin: 0 -158px 0 1.5em; float: right; }
|
175
|
+
.push-3 { margin: 0 -228px 0 1.5em; float: right; }
|
176
|
+
|
177
|
+
|