monologue 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.
- data/MIT-LICENSE +20 -0
- data/README.md +73 -0
- data/Rakefile +32 -0
- data/app/assets/javascripts/monologue/admin/application.js +13 -0
- data/app/assets/javascripts/monologue/admin/tinymce-config.js +21 -0
- data/app/assets/javascripts/monologue/blog/application.js +9 -0
- data/app/assets/stylesheets/monologue/admin/application.css +10 -0
- data/app/assets/stylesheets/monologue/blog/application.css +13 -0
- data/app/assets/stylesheets/monologue/blog/custom.css +1 -0
- data/app/assets/stylesheets/monologue/blog/fonts.css +1 -0
- data/app/assets/stylesheets/monologue/blog/monologue.css +37 -0
- data/app/assets/stylesheets/monologue/blog/skeleton/base.css +343 -0
- data/app/assets/stylesheets/monologue/blog/skeleton/layout.css +58 -0
- data/app/assets/stylesheets/monologue/blog/skeleton/skeleton.css +242 -0
- data/app/controllers/monologue/admin/base_controller.rb +12 -0
- data/app/controllers/monologue/admin/posts_controller.rb +54 -0
- data/app/controllers/monologue/admin/sessions_controller.rb +22 -0
- data/app/controllers/monologue/application_controller.rb +22 -0
- data/app/controllers/monologue/posts_controller.rb +25 -0
- data/app/form_builders/monologue_admin_form_builder.rb +61 -0
- data/app/helpers/monologue/admin/admin_helper.rb +4 -0
- data/app/helpers/monologue/application_helper.rb +8 -0
- data/app/helpers/monologue/posts_helper.rb +4 -0
- data/app/helpers/monologue/sessions_helper.rb +6 -0
- data/app/models/monologue/post.rb +40 -0
- data/app/models/monologue/posts_revision.rb +34 -0
- data/app/models/monologue/user.rb +6 -0
- data/app/sweepers/monologue/posts_sweeper.rb +28 -0
- data/app/views/layouts/monologue/_google_analytics.html.erb +15 -0
- data/app/views/layouts/monologue/admin.html.erb +21 -0
- data/app/views/layouts/monologue/admin/_nav_bar.html.erb +24 -0
- data/app/views/layouts/monologue/application.html.erb +60 -0
- data/app/views/monologue/admin/posts/_form.html.erb +16 -0
- data/app/views/monologue/admin/posts/edit.html.erb +4 -0
- data/app/views/monologue/admin/posts/index.html.erb +20 -0
- data/app/views/monologue/admin/posts/new.html.erb +4 -0
- data/app/views/monologue/admin/sessions/new.html.erb +13 -0
- data/app/views/monologue/posts/404.html.erb +9 -0
- data/app/views/monologue/posts/_pagination.html.erb +9 -0
- data/app/views/monologue/posts/_social_sharing.html.erb +42 -0
- data/app/views/monologue/posts/feed.rss.builder +19 -0
- data/app/views/monologue/posts/index.html.erb +18 -0
- data/app/views/monologue/posts/show.html.erb +38 -0
- data/config/locales/en.yml +106 -0
- data/config/locales/fr.yml +106 -0
- data/config/routes.rb +15 -0
- data/db/migrate/20120114001001_create_monologue_users.rb +11 -0
- data/db/migrate/20120120193858_create_monologue_posts_revisions.rb +18 -0
- data/db/migrate/20120120193907_create_monologue_posts.rb +10 -0
- data/db/seeds.rb +1 -0
- data/lib/monologue.rb +17 -0
- data/lib/monologue/engine.rb +11 -0
- data/lib/monologue/version.rb +3 -0
- data/lib/tasks/monologue_tasks.rake +4 -0
- data/vendor/assets/images/monologue/bootstrap/glyphicons-halflings-white.png +0 -0
- data/vendor/assets/images/monologue/bootstrap/glyphicons-halflings.png +0 -0
- data/vendor/assets/javascripts/monologue/bootstrap/bootstrap-datepicker-fr.js +9 -0
- data/vendor/assets/javascripts/monologue/bootstrap/bootstrap-datepicker.js +338 -0
- data/vendor/assets/javascripts/monologue/bootstrap/bootstrap.min.js +1 -0
- data/vendor/assets/stylesheets/monologue/bootstrap/bootstrap-datepicker.css +130 -0
- data/vendor/assets/stylesheets/monologue/bootstrap/bootstrap-responsive.min.css +3 -0
- data/vendor/assets/stylesheets/monologue/bootstrap/bootstrap.min.css +610 -0
- metadata +285 -0
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2012 YOURNAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
# MONOLOGUE
|
2
|
+
---
|
3
|
+
Monologue is a basic mountable blogging engine in Rails built to be easily mounted in an already existing Rails app, but it can also be used alone.
|
4
|
+
|
5
|
+
[](http://travis-ci.org/jipiboily/monologue)
|
6
|
+
|
7
|
+
|
8
|
+
## Features
|
9
|
+
---
|
10
|
+
- Rails mountable engine (fully named spaced)
|
11
|
+
- tested
|
12
|
+
- back to basics: few features
|
13
|
+
- it has post revisions (no UI to choose published revision yet, but it keeps your modification history)
|
14
|
+
- few external dependencies (no Devise or Sorcery, etc…) so we don't face problem integrating with existing Rails app.([Rails mountable engines: dependency nightmare?](http://jipiboily.com/2012/rails-mountable-engines-dependency-nightmare))
|
15
|
+
- comments handled by disqus
|
16
|
+
- enforcing [Rails cache](http://edgeguides.rubyonrails.org/caching_with_rails.html) for better performance (only support file store for now)
|
17
|
+
- runs on Heroku
|
18
|
+
|
19
|
+
### missing features
|
20
|
+
- categories
|
21
|
+
- UI for posts revisions and to manage user
|
22
|
+
- much more…see issues!
|
23
|
+
|
24
|
+
|
25
|
+
## Installation
|
26
|
+
---
|
27
|
+
1. add gem to your `Gemfile`
|
28
|
+
|
29
|
+
gem "monologue"
|
30
|
+
2. run
|
31
|
+
|
32
|
+
$ bundle install
|
33
|
+
3. add this to your route file (`config/route.rb`)
|
34
|
+
|
35
|
+
mount Monologue::Engine, :at => '/' # or whatever path, be it "/blog" or "/monologue"
|
36
|
+
|
37
|
+
4. run
|
38
|
+
|
39
|
+
bundle exec rake monologue:install:migrations
|
40
|
+
bundle exec rake db:create # only if this is a new project
|
41
|
+
bundle exec rake db:migrate
|
42
|
+
|
43
|
+
5. Create a user
|
44
|
+
|
45
|
+
rails c
|
46
|
+
Monologue::User.create(name: "monologue", email:"monologue@example.com", password:"my-password", password_confirmation: "my-password")
|
47
|
+
|
48
|
+
6. Configure Monologue. This is all done in an initializer file, say `config/initializers/monologue.rb`. More on this in the [Wiki - Configuration](https://github.com/jipiboily/monologue/wiki/Configuration).
|
49
|
+
|
50
|
+
## Enable caching
|
51
|
+
---
|
52
|
+
Just turn perform_caching to true in your environment config file (`config/environment/{environment}.rb):
|
53
|
+
|
54
|
+
config.action_controller.perform_caching = true
|
55
|
+
|
56
|
+
**IMPORTANT**: if monologue is mounted at root ("/"), you must also add that in your `routes.rb` file, before the monologue mount:
|
57
|
+
|
58
|
+
root :to => 'monologue/posts#index'
|
59
|
+
|
60
|
+
## Customization
|
61
|
+
---
|
62
|
+
|
63
|
+
See the [Wiki - Customizations](https://github.com/jipiboily/monologue/wiki/Customizations).
|
64
|
+
|
65
|
+
## Requirements
|
66
|
+
---
|
67
|
+
- Rails 3.1 +
|
68
|
+
- Database: MySQL & Postgres are supported but other databases might work too.
|
69
|
+
|
70
|
+
## Contribute
|
71
|
+
---
|
72
|
+
|
73
|
+
Fork it, then pull request. Please add tests for your feature or bug fix.
|
data/Rakefile
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
begin
|
3
|
+
require 'bundler/setup'
|
4
|
+
rescue LoadError
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
+
end
|
7
|
+
begin
|
8
|
+
require 'rdoc/task'
|
9
|
+
rescue LoadError
|
10
|
+
require 'rdoc/rdoc'
|
11
|
+
require 'rake/rdoctask'
|
12
|
+
RDoc::Task = Rake::RDocTask
|
13
|
+
end
|
14
|
+
|
15
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
16
|
+
rdoc.rdoc_dir = 'rdoc'
|
17
|
+
rdoc.title = 'Monologue'
|
18
|
+
rdoc.options << '--line-numbers'
|
19
|
+
# rdoc.rdoc_files.include('README.rdoc')
|
20
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
|
+
end
|
22
|
+
|
23
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
24
|
+
load 'rails/tasks/engine.rake'
|
25
|
+
|
26
|
+
|
27
|
+
Bundler::GemHelper.install_tasks
|
28
|
+
|
29
|
+
require 'rspec/core/rake_task'
|
30
|
+
RSpec::Core::RakeTask.new(:spec)
|
31
|
+
|
32
|
+
task :default => :spec
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
|
+
// the compiled file.
|
6
|
+
//
|
7
|
+
//= require jquery
|
8
|
+
//= require jquery_ujs
|
9
|
+
//= require monologue/bootstrap/bootstrap.min
|
10
|
+
//= require monologue/bootstrap/bootstrap-datepicker
|
11
|
+
//= require monologue/bootstrap/bootstrap-datepicker-fr
|
12
|
+
//= require tinymce-jquery
|
13
|
+
//= require_tree .
|
@@ -0,0 +1,21 @@
|
|
1
|
+
$(function() {
|
2
|
+
$('textarea').tinymce({
|
3
|
+
theme: 'advanced',
|
4
|
+
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink",
|
5
|
+
theme_advanced_buttons2 : "formatselect, removeformat, indent, outdent, image, code",
|
6
|
+
theme_advanced_buttons3 : "",
|
7
|
+
theme_advanced_blockformats : "p,h1,h2,h3,h4,h5,h6,blockquote,dt,dd,code,samp",
|
8
|
+
theme_advanced_toolbar_location : "top",
|
9
|
+
theme_advanced_toolbar_align : "left",
|
10
|
+
theme_advanced_statusbar_location : "bottom",
|
11
|
+
|
12
|
+
|
13
|
+
plugins : "fullscreen",
|
14
|
+
theme_advanced_buttons3_add : "fullscreen",
|
15
|
+
fullscreen_new_window : true,
|
16
|
+
fullscreen_settings : {
|
17
|
+
theme_advanced_path_location : "top"
|
18
|
+
}
|
19
|
+
|
20
|
+
});
|
21
|
+
});
|
@@ -0,0 +1,9 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
|
+
// the compiled file.
|
6
|
+
//
|
7
|
+
//= require jquery
|
8
|
+
//= require jquery_ujs
|
9
|
+
//= require_tree .
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
+
*= require_self
|
6
|
+
*= require monologue/bootstrap/bootstrap.min
|
7
|
+
*= require monologue/bootstrap/bootstrap-responsive.min
|
8
|
+
*= require monologue/bootstrap/bootstrap-datepicker
|
9
|
+
*= require_tree .
|
10
|
+
*/
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
+
|
6
|
+
*= require monologue/blog/skeleton/base
|
7
|
+
*= require monologue/blog/skeleton/skeleton
|
8
|
+
*= require monologue/blog/skeleton/layout
|
9
|
+
*= require monologue/blog/custom
|
10
|
+
*= require monologue/blog/fonts
|
11
|
+
*= require_tree .
|
12
|
+
*= require_self
|
13
|
+
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
/* this file is only here to be overridden */
|
@@ -0,0 +1 @@
|
|
1
|
+
/* this file is only here to be overridden */
|
@@ -0,0 +1,37 @@
|
|
1
|
+
.main-header{
|
2
|
+
margin: 20px 0 30px 0;
|
3
|
+
}
|
4
|
+
|
5
|
+
#pagination {
|
6
|
+
margin: 20px 0 0 0;
|
7
|
+
border-top: 3px solid #000;
|
8
|
+
font-size: 20px;
|
9
|
+
}
|
10
|
+
|
11
|
+
#pagination .older_posts {
|
12
|
+
float: left;
|
13
|
+
}
|
14
|
+
|
15
|
+
#pagination .newer_posts {
|
16
|
+
float: right;
|
17
|
+
}
|
18
|
+
|
19
|
+
.content article h2, .content article h3, .content article h4, .content article h5, .content article h6 {
|
20
|
+
font-size: 16px;
|
21
|
+
text-transform: uppercase;
|
22
|
+
font-weight: bold;
|
23
|
+
}
|
24
|
+
|
25
|
+
.content h1 {
|
26
|
+
font-size: 30px;
|
27
|
+
font-weight: bold;
|
28
|
+
}
|
29
|
+
|
30
|
+
section header {
|
31
|
+
margin: 0 0 5px 0;
|
32
|
+
font-size: 12px;
|
33
|
+
}
|
34
|
+
|
35
|
+
section header h1 {
|
36
|
+
margin: 0 0 0 0;
|
37
|
+
}
|
@@ -0,0 +1,343 @@
|
|
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
|
+
|