blogelator 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/README.md +86 -0
- data/Rakefile +29 -0
- data/app/assets/images/blogelator/blogelator-logo.svg +15 -0
- data/app/assets/javascripts/blogelator/admin.js +19 -0
- data/app/assets/javascripts/blogelator/application.js +2 -0
- data/app/assets/javascripts/blogelator/components/markdown_editor_component.js +187 -0
- data/app/assets/javascripts/blogelator/components/save_button_component.js +76 -0
- data/app/assets/javascripts/blogelator/config/marked.js +10 -0
- data/app/assets/javascripts/blogelator/config/router.js +9 -0
- data/app/assets/javascripts/blogelator/config/routes.js +13 -0
- data/app/assets/javascripts/blogelator/config/serializer.js +10 -0
- data/app/assets/javascripts/blogelator/config/store.js +10 -0
- data/app/assets/javascripts/blogelator/controllers/application_controller.js +11 -0
- data/app/assets/javascripts/blogelator/controllers/posts/posts_edit_controller.js +97 -0
- data/app/assets/javascripts/blogelator/controllers/posts/posts_index_controller.js +9 -0
- data/app/assets/javascripts/blogelator/controllers/posts/posts_new_controller.js +6 -0
- data/app/assets/javascripts/blogelator/controllers/posts/posts_show_controller.js +37 -0
- data/app/assets/javascripts/blogelator/models/post.js +34 -0
- data/app/assets/javascripts/blogelator/routes/index_route.js +10 -0
- data/app/assets/javascripts/blogelator/routes/posts_edit_route.js +36 -0
- data/app/assets/javascripts/blogelator/routes/posts_index_route.js +20 -0
- data/app/assets/javascripts/blogelator/routes/posts_new_route.js +53 -0
- data/app/assets/javascripts/blogelator/routes/posts_route.js +10 -0
- data/app/assets/javascripts/blogelator/routes/posts_show_route.js +14 -0
- data/app/assets/javascripts/blogelator/templates/application.handlebars +23 -0
- data/app/assets/javascripts/blogelator/templates/components/markdown-editor.handlebars +8 -0
- data/app/assets/javascripts/blogelator/templates/components/save-button.handlebars +8 -0
- data/app/assets/javascripts/blogelator/templates/posts/_footer.handlebars +0 -0
- data/app/assets/javascripts/blogelator/templates/posts/_form.handlebars +6 -0
- data/app/assets/javascripts/blogelator/templates/posts/_form_action_bar.handlebars +22 -0
- data/app/assets/javascripts/blogelator/templates/posts/_show_action_bar.handlebars +20 -0
- data/app/assets/javascripts/blogelator/templates/posts/edit.handlebars +1 -0
- data/app/assets/javascripts/blogelator/templates/posts/index.handlebars +30 -0
- data/app/assets/javascripts/blogelator/templates/posts/new.handlebars +1 -0
- data/app/assets/javascripts/blogelator/templates/posts/show.handlebars +22 -0
- data/app/assets/stylesheets/blogelator/admin/all.scss +7 -0
- data/app/assets/stylesheets/blogelator/admin/components/markdown_editor.scss +142 -0
- data/app/assets/stylesheets/blogelator/admin/components/save_button.scss +121 -0
- data/app/assets/stylesheets/blogelator/admin/layout.scss +94 -0
- data/app/assets/stylesheets/blogelator/admin/posts/_form.scss +12 -0
- data/app/assets/stylesheets/blogelator/admin/posts/_form_action_bar.scss +84 -0
- data/app/assets/stylesheets/blogelator/admin/posts/_posts_list.scss +43 -0
- data/app/assets/stylesheets/blogelator/admin/posts/edit.scss +7 -0
- data/app/assets/stylesheets/blogelator/admin/posts/index.scss +14 -0
- data/app/assets/stylesheets/blogelator/admin/posts/new.scss +16 -0
- data/app/assets/stylesheets/blogelator/admin/posts/show.scss +17 -0
- data/app/assets/stylesheets/blogelator/application/all.scss +19 -0
- data/app/assets/stylesheets/blogelator/application/layout.scss +49 -0
- data/app/assets/stylesheets/blogelator/application/posts/index.scss +50 -0
- data/app/assets/stylesheets/blogelator/application/posts/show.scss +64 -0
- data/app/assets/stylesheets/blogelator/mixins/blogelator_button.scss +57 -0
- data/app/assets/stylesheets/blogelator/mixins/blogelator_logo.scss +12 -0
- data/app/assets/stylesheets/blogelator/shared/post.scss +161 -0
- data/app/assets/stylesheets/blogelator/shared/typography/code_highlighting.scss +111 -0
- data/app/assets/stylesheets/blogelator/shared/typography/forms.scss +94 -0
- data/app/assets/stylesheets/blogelator/shared/typography/headings.scss +22 -0
- data/app/assets/stylesheets/blogelator/shared/typography/lists.scss +25 -0
- data/app/controllers/blogelator/admin/application_controller.rb +15 -0
- data/app/controllers/blogelator/admin/images_controller.rb +40 -0
- data/app/controllers/blogelator/admin/posts_controller.rb +67 -0
- data/app/controllers/blogelator/application_controller.rb +5 -0
- data/app/controllers/blogelator/posts_controller.rb +37 -0
- data/app/controllers/concerns/blogelator/admin/auth.rb +23 -0
- data/app/helpers/blogelator/admin/posts_helper.rb +7 -0
- data/app/helpers/blogelator/posts_helper.rb +28 -0
- data/app/models/blogelator/ability.rb +11 -0
- data/app/models/blogelator/html_renderer.rb +10 -0
- data/app/models/blogelator/post.rb +63 -0
- data/app/models/blogelator/tag.rb +5 -0
- data/app/serializers/blogelator/post_serializer.rb +6 -0
- data/app/views/blogelator/admin/posts/index.html.erb +0 -0
- data/app/views/blogelator/posts/_post.html.erb +14 -0
- data/app/views/blogelator/posts/index.html.erb +39 -0
- data/app/views/blogelator/posts/show.html.erb +27 -0
- data/app/views/layouts/blogelator/_footer.html.erb +3 -0
- data/app/views/layouts/blogelator/_head.html.erb +7 -0
- data/app/views/layouts/blogelator/_header.html.erb +7 -0
- data/app/views/layouts/blogelator/admin.html.erb +14 -0
- data/app/views/layouts/blogelator/application.html.erb +14 -0
- data/config/jshint.json +43 -0
- data/config/routes.rb +15 -0
- data/db/migrate/20140221192000_create_blogelator_posts.rb +12 -0
- data/db/migrate/20140221204230_add_slug_and_change_user_to_author.rb +6 -0
- data/db/migrate/20140221212026_create_blogelator_tags.rb +10 -0
- data/db/migrate/20140224024607_change_posts_properties_to_have_defaults.rb +14 -0
- data/db/migrate/20140224175024_add_slugs_to_existing_posts.rb +16 -0
- data/db/migrate/20140224192058_add_published_at_to_posts.rb +13 -0
- data/db/migrate/20140303015004_add_summary_to_posts.rb +9 -0
- data/lib/assets/stylesheets/blogelator/_variables_sample.scss +38 -0
- data/lib/blogelator.rb +27 -0
- data/lib/blogelator/engine.rb +35 -0
- data/lib/blogelator/version.rb +3 -0
- data/lib/generators/blogelator/install_generator.rb +94 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +1 -0
- data/spec/dummy/app/assets/javascripts/features/user_visits_admin_page_spec.js +12 -0
- data/spec/dummy/app/assets/javascripts/features/user_visits_post_page_spec.js +12 -0
- data/spec/dummy/app/assets/javascripts/fixtures/post.js +17 -0
- data/spec/dummy/app/assets/javascripts/test_helper.js +12 -0
- data/spec/dummy/app/assets/stylesheets/application.css +12 -0
- data/spec/dummy/app/assets/stylesheets/blogelator/_variables.scss +38 -0
- data/spec/dummy/app/assets/stylesheets/blogelator/admin.css.scss +4 -0
- data/spec/dummy/app/assets/stylesheets/blogelator/application.css.scss +4 -0
- data/spec/dummy/app/assets/stylesheets/test_helper.css +21 -0
- data/spec/dummy/app/controllers/application_controller.rb +9 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/blogelator/ability.rb +9 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/q_unit/rails/test/index.html.erb +17 -0
- data/spec/dummy/app/views/qunit/rails/test/index.html.erb +17 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +24 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +32 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/blogelator.rb +6 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20140221215439_create_blogelator_posts.blogelator.rb +13 -0
- data/spec/dummy/db/migrate/20140221215440_add_slug_and_change_user_to_author.blogelator.rb +7 -0
- data/spec/dummy/db/migrate/20140224024931_create_blogelator_tags.blogelator.rb +11 -0
- data/spec/dummy/db/migrate/20140224025218_change_posts_properties_to_have_defaults.blogelator.rb +15 -0
- data/spec/dummy/db/migrate/20140224205646_add_slugs_to_existing_posts.blogelator.rb +17 -0
- data/spec/dummy/db/migrate/20140224205647_add_published_at_to_posts.blogelator.rb +14 -0
- data/spec/dummy/db/migrate/20140303015133_add_summary_to_posts.blogelator.rb +6 -0
- data/spec/dummy/db/production.sqlite3 +0 -0
- data/spec/dummy/db/schema.rb +37 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +50393 -0
- data/spec/dummy/log/production.log +76 -0
- data/spec/dummy/log/test.log +11750 -0
- data/spec/dummy/public/404.html +58 -0
- data/spec/dummy/public/422.html +58 -0
- data/spec/dummy/public/500.html +57 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/index.html.erb +14 -0
- data/spec/dummy/tmp/ember-rails/ember-data.js +11132 -0
- data/spec/dummy/tmp/ember-rails/ember.js +42882 -0
- data/spec/factories/post.rb +11 -0
- data/spec/features/user_visits_blog_post_spec.rb +44 -0
- data/spec/features/user_visits_blog_spec.rb +85 -0
- data/spec/models/blogelator/post_spec.rb +95 -0
- data/spec/qunit_runner.js +148 -0
- data/spec/spec_helper.rb +34 -0
- metadata +764 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
<span class="button-label">{{yield}}</span>
|
2
|
+
<span class="confirm">
|
3
|
+
<i class="fa fa-check yes"></i>
|
4
|
+
<i class="fa fa-times no"></i>
|
5
|
+
</span>
|
6
|
+
<span class="saving"><i class="fa fa-refresh fa-spin"></i></span>
|
7
|
+
<i class="fa fa-check-circle saved"></i>
|
8
|
+
<i class="fa fa-exclamation-circle error"></i>
|
File without changes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div class="form-action-bar">
|
2
|
+
{{#save-button action="destroy" confirm="true" class="destroy"}}
|
3
|
+
Delete
|
4
|
+
{{/save-button}}
|
5
|
+
|
6
|
+
{{#save-button action="togglePublished" confirm="true" class="publish"}}
|
7
|
+
{{#if publishedAt}}
|
8
|
+
Unpublish
|
9
|
+
{{else}}
|
10
|
+
Publish
|
11
|
+
{{/if}}
|
12
|
+
{{/save-button}}
|
13
|
+
|
14
|
+
{{#save-button action="save" isDisabledBinding="isClean"}}
|
15
|
+
Save
|
16
|
+
{{/save-button}}
|
17
|
+
|
18
|
+
<div class="last-saved">
|
19
|
+
<label>Last Saved:</label>
|
20
|
+
{{updatedAtFormatted}}
|
21
|
+
</div>
|
22
|
+
</div>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div class="form-action-bar">
|
2
|
+
{{#save-button action="togglePublished" confirm="true" class="publish"}}
|
3
|
+
{{#if publishedAt}}
|
4
|
+
Unpublish
|
5
|
+
{{else}}
|
6
|
+
Publish
|
7
|
+
{{/if}}
|
8
|
+
{{/save-button}}
|
9
|
+
|
10
|
+
{{#link-to "posts.edit" content class="save-button edit"}}
|
11
|
+
<div class="button-label">
|
12
|
+
Edit
|
13
|
+
</div>
|
14
|
+
{{/link-to}}
|
15
|
+
|
16
|
+
<div class="last-saved">
|
17
|
+
<label>Last Saved:</label>
|
18
|
+
{{updatedAtFormatted}}
|
19
|
+
</div>
|
20
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
{{render "posts/_form" controller="postsEdit"}}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<section class="posts-list">
|
2
|
+
{{#if content.isUpdating}}
|
3
|
+
Loading...
|
4
|
+
{{else}}
|
5
|
+
{{#each post in content}}
|
6
|
+
{{#link-to "posts.show" post class="post" tagName="div"}}
|
7
|
+
<h2>{{post.title}}</h2>
|
8
|
+
<div class="date">
|
9
|
+
{{post.publishedAtFormatted}}
|
10
|
+
</div>
|
11
|
+
<div class="summary">
|
12
|
+
{{{post.summary}}}
|
13
|
+
</div>
|
14
|
+
{{/link-to}}
|
15
|
+
{{else}}
|
16
|
+
<p>
|
17
|
+
No Posts :(
|
18
|
+
</p>
|
19
|
+
{{/each}}
|
20
|
+
{{/if}}
|
21
|
+
</section>
|
22
|
+
<article class="post">
|
23
|
+
<p>
|
24
|
+
Select a post from the left to view, edit, or publish.
|
25
|
+
</p>
|
26
|
+
<p>
|
27
|
+
{{#link-to "posts.new"}}Create a New Post{{/link-to}}
|
28
|
+
</p>
|
29
|
+
<a href="https://github.com/codelation/blogelator" class="logo" target="_blank">Powered by Blogelator</a>
|
30
|
+
</article>
|
@@ -0,0 +1 @@
|
|
1
|
+
{{render "posts/_form" controller="postsNew"}}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<section class="posts-list">
|
2
|
+
{{#each post in controllers.posts}}
|
3
|
+
{{#link-to "posts.show" post class="post" tagName="div"}}
|
4
|
+
<h2>{{post.title}}</h2>
|
5
|
+
<div class="date">
|
6
|
+
{{post.publishedAtFormatted}}
|
7
|
+
</div>
|
8
|
+
<div class="summary">
|
9
|
+
{{{post.summary}}}
|
10
|
+
</div>
|
11
|
+
{{/link-to}}
|
12
|
+
{{/each}}
|
13
|
+
</section>
|
14
|
+
<article class="post">
|
15
|
+
<h1>{{title}}</h1>
|
16
|
+
<div class="date">
|
17
|
+
{{publishedAtFormatted}}
|
18
|
+
</div>
|
19
|
+
<div class="body">
|
20
|
+
{{{bodyHtml}}}
|
21
|
+
</div>
|
22
|
+
</article>
|
@@ -0,0 +1,142 @@
|
|
1
|
+
/*
|
2
|
+
*= require codemirror
|
3
|
+
*= require_self
|
4
|
+
*/
|
5
|
+
@import "bourbon";
|
6
|
+
@import "blogelator/variables";
|
7
|
+
|
8
|
+
.blogelator-markdown-editor {
|
9
|
+
bottom: -0.5em;
|
10
|
+
left: 0.5em;
|
11
|
+
margin-bottom: 1em;
|
12
|
+
position: absolute;
|
13
|
+
right: 0.5em;
|
14
|
+
top: 3.5em;
|
15
|
+
|
16
|
+
.CodeMirror {
|
17
|
+
background-color: $base-body-color;
|
18
|
+
border: 1px solid $base-border-color;
|
19
|
+
color: $base-font-color;
|
20
|
+
float: left;
|
21
|
+
font-family: "Menlo", "Monaco", monospace;
|
22
|
+
height: 100%;
|
23
|
+
padding: 0.5em;
|
24
|
+
position: relative;
|
25
|
+
width: 49.8%;
|
26
|
+
@include box-sizing(border-box);
|
27
|
+
|
28
|
+
&:before {
|
29
|
+
background-color: rgba($base-body-color, 0.92);
|
30
|
+
content: "GitHub Flavored Markdown";
|
31
|
+
color: #aaa;
|
32
|
+
display: block;
|
33
|
+
font-family: $base-font-family;
|
34
|
+
left: 0;
|
35
|
+
line-height: normal;
|
36
|
+
padding: 10px;
|
37
|
+
position: absolute;
|
38
|
+
text-transform: uppercase;
|
39
|
+
top: 0;
|
40
|
+
width: 100%;
|
41
|
+
z-index: 10;
|
42
|
+
@include box-sizing(border-box);
|
43
|
+
}
|
44
|
+
|
45
|
+
.CodeMirror-lines {
|
46
|
+
padding-top: 2em;
|
47
|
+
}
|
48
|
+
|
49
|
+
.CodeMirror-scroll {
|
50
|
+
font-size: 14px;
|
51
|
+
line-height: 1.5em;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
.html-preview {
|
55
|
+
background-color: $base-body-color;
|
56
|
+
border: 1px solid $base-border-color;
|
57
|
+
float: right;
|
58
|
+
height: 100%;
|
59
|
+
margin-top: 0em;
|
60
|
+
padding: 0.5em 0.5em 0 0.5em;
|
61
|
+
position: relative;
|
62
|
+
width: 49.8%;
|
63
|
+
@include box-sizing(border-box);
|
64
|
+
|
65
|
+
&:before {
|
66
|
+
background-color: rgba($base-body-color, 0.92);
|
67
|
+
content: "Preview";
|
68
|
+
color: #aaa;
|
69
|
+
display: block;
|
70
|
+
font-family: $base-font-family;
|
71
|
+
left: 0;
|
72
|
+
line-height: normal;
|
73
|
+
padding: 10px;
|
74
|
+
position: absolute;
|
75
|
+
text-transform: uppercase;
|
76
|
+
top: 0;
|
77
|
+
width: 100%;
|
78
|
+
z-index: 10;
|
79
|
+
@include box-sizing(border-box);
|
80
|
+
}
|
81
|
+
|
82
|
+
.post {
|
83
|
+
height: 100%;
|
84
|
+
overflow: auto;
|
85
|
+
padding-top: 2em;
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
// Markdown styles
|
90
|
+
// ------------------------------------
|
91
|
+
.cm-header-1,
|
92
|
+
.cm-header-2,
|
93
|
+
.cm-header-3,
|
94
|
+
.cm-header-4,
|
95
|
+
.cm-header-5,
|
96
|
+
.cm-header-6 {
|
97
|
+
color: #222;
|
98
|
+
font-size: 1.1em;
|
99
|
+
font-weight: bold;
|
100
|
+
}
|
101
|
+
.cm-em {
|
102
|
+
font-style: italic;
|
103
|
+
}
|
104
|
+
.cm-strong {
|
105
|
+
color: #222;
|
106
|
+
font-weight: bold;
|
107
|
+
}
|
108
|
+
.cm-comment {
|
109
|
+
color: #aaa;
|
110
|
+
}
|
111
|
+
|
112
|
+
.cm-link {
|
113
|
+
color: $base-link-color;
|
114
|
+
& + .cm-tag {
|
115
|
+
color: $base-link-color;
|
116
|
+
}
|
117
|
+
& + .cm-string,
|
118
|
+
& + .cm-tag + .cm-string {
|
119
|
+
color: #aaa;
|
120
|
+
}
|
121
|
+
}
|
122
|
+
|
123
|
+
// Code Styles
|
124
|
+
// ------------------------------------
|
125
|
+
.cm-atom,
|
126
|
+
.cm-tag {
|
127
|
+
color: #477dca;
|
128
|
+
}
|
129
|
+
.cm-keyword {
|
130
|
+
color: #814ede;
|
131
|
+
}
|
132
|
+
.cm-number {
|
133
|
+
color: #83c53d;
|
134
|
+
}
|
135
|
+
.cm-operator {
|
136
|
+
color: #777;
|
137
|
+
}
|
138
|
+
.cm-string {
|
139
|
+
color: #ca2969;
|
140
|
+
}
|
141
|
+
|
142
|
+
}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
@import "bourbon";
|
2
|
+
@import "blogelator/variables";
|
3
|
+
|
4
|
+
.save-button {
|
5
|
+
overflow: hidden;
|
6
|
+
position: relative;
|
7
|
+
|
8
|
+
.button-label {
|
9
|
+
display: block;
|
10
|
+
opacity: 1;
|
11
|
+
@include transform(scale(1));
|
12
|
+
@include transition-duration(0.3s);
|
13
|
+
@include transition-property(all);
|
14
|
+
}
|
15
|
+
|
16
|
+
.confirm {
|
17
|
+
bottom: 0;
|
18
|
+
display: block;
|
19
|
+
font-size: 20px;
|
20
|
+
left: 100%;
|
21
|
+
position: absolute;
|
22
|
+
text-align: center;
|
23
|
+
top: 0;
|
24
|
+
width: 100%;
|
25
|
+
z-index: 10;
|
26
|
+
@include transition-duration(0.3s);
|
27
|
+
@include transition-property(all);
|
28
|
+
|
29
|
+
.no,
|
30
|
+
.yes {
|
31
|
+
bottom: 0;
|
32
|
+
padding: 3px 0;
|
33
|
+
position: absolute;
|
34
|
+
top: 0;
|
35
|
+
width: 50%;
|
36
|
+
}
|
37
|
+
|
38
|
+
.no {
|
39
|
+
background-color: adjust-hue($base-accent-color, 210deg);
|
40
|
+
color: $base-body-color;
|
41
|
+
right: 0;
|
42
|
+
}
|
43
|
+
.yes {
|
44
|
+
background-color: $base-accent-color;
|
45
|
+
color: $base-body-color;
|
46
|
+
left: 0;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
&.confirm {
|
51
|
+
.confirm {
|
52
|
+
left: 0;
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
.error,
|
57
|
+
.saved,
|
58
|
+
.saving {
|
59
|
+
background-color: $base-body-color;
|
60
|
+
color: $base-accent-color;
|
61
|
+
bottom: 0;
|
62
|
+
display: block;
|
63
|
+
font-size: 20px;
|
64
|
+
left: 0;
|
65
|
+
opacity: 0;
|
66
|
+
padding: 4px 0;
|
67
|
+
position: absolute;
|
68
|
+
right: 0;
|
69
|
+
text-align: center;
|
70
|
+
top: 0;
|
71
|
+
@include transform(scale(2));
|
72
|
+
@include transition-duration(0.3s);
|
73
|
+
@include transition-property(all);
|
74
|
+
}
|
75
|
+
|
76
|
+
.saving {
|
77
|
+
background-color: $base-accent-color;
|
78
|
+
color: $base-body-color;
|
79
|
+
font-size: 16px;
|
80
|
+
padding: 6px 0;
|
81
|
+
}
|
82
|
+
|
83
|
+
&.error,
|
84
|
+
&.saved,
|
85
|
+
&.saving {
|
86
|
+
.button-label {
|
87
|
+
opacity: 0;
|
88
|
+
@include transform(scale(0));
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
&.error {
|
93
|
+
.error {
|
94
|
+
opacity: 1;
|
95
|
+
@include transform(scale(1));
|
96
|
+
}
|
97
|
+
.saving {
|
98
|
+
opacity: 0;
|
99
|
+
@include transform(scale(0));
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
&.saved {
|
104
|
+
.saved {
|
105
|
+
opacity: 1;
|
106
|
+
@include transform(scale(1));
|
107
|
+
}
|
108
|
+
.saving {
|
109
|
+
opacity: 0;
|
110
|
+
@include transform(scale(0));
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
&.saving {
|
115
|
+
.saving {
|
116
|
+
opacity: 1;
|
117
|
+
@include transform(scale(1));
|
118
|
+
}
|
119
|
+
}
|
120
|
+
|
121
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
@import "bourbon";
|
2
|
+
@import "blogelator/variables";
|
3
|
+
@import "blogelator/mixins/blogelator_logo";
|
4
|
+
@import "neat";
|
5
|
+
|
6
|
+
body.blogelator.admin {
|
7
|
+
header,
|
8
|
+
footer {
|
9
|
+
background-color: $admin-header-color;
|
10
|
+
border-bottom: 5px solid $admin-header-accent-color;
|
11
|
+
height: 45px;
|
12
|
+
left: 0;
|
13
|
+
padding: 0;
|
14
|
+
position: absolute;
|
15
|
+
top: 0;
|
16
|
+
width: 100%;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
body.blogelator.admin {
|
21
|
+
header,
|
22
|
+
footer {
|
23
|
+
ul {
|
24
|
+
list-style: none;
|
25
|
+
margin: 0;
|
26
|
+
padding: 0;
|
27
|
+
@include clearfix;
|
28
|
+
|
29
|
+
li {
|
30
|
+
display: block;
|
31
|
+
float: left;
|
32
|
+
margin: 0;
|
33
|
+
|
34
|
+
a {
|
35
|
+
border-bottom: 5px solid $base-accent-color;
|
36
|
+
color: lighten($admin-header-accent-color, 5%);
|
37
|
+
display: block;
|
38
|
+
font-size: 1.2em;
|
39
|
+
height: 45px;
|
40
|
+
line-height: 40px;
|
41
|
+
margin: 0 0 -5px;
|
42
|
+
padding: 0 0.5em;
|
43
|
+
text-decoration: none;
|
44
|
+
@include transition(color 0.1s linear);
|
45
|
+
|
46
|
+
&:hover {
|
47
|
+
border-bottom: 5px solid $admin-header-highlight-color;
|
48
|
+
color: $admin-header-highlight-color;
|
49
|
+
}
|
50
|
+
&.active {
|
51
|
+
border-bottom: 5px solid $admin-header-active-color;
|
52
|
+
color: $admin-header-active-color;
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
body.blogelator.admin {
|
61
|
+
main {
|
62
|
+
bottom: 45px;
|
63
|
+
overflow: hidden;
|
64
|
+
position: absolute;
|
65
|
+
top: 45px;
|
66
|
+
width: 100%;
|
67
|
+
|
68
|
+
section.posts-list {
|
69
|
+
@include span-columns(4);
|
70
|
+
height: 100%;
|
71
|
+
overflow: auto;
|
72
|
+
padding: 0.5em;
|
73
|
+
}
|
74
|
+
article.post {
|
75
|
+
@include span-columns(8);
|
76
|
+
height: 100%;
|
77
|
+
margin: 0;
|
78
|
+
padding: 0.5em;
|
79
|
+
overflow: auto;
|
80
|
+
}
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
body.blogelator.admin {
|
85
|
+
footer {
|
86
|
+
bottom: 0;
|
87
|
+
top: auto;
|
88
|
+
|
89
|
+
.logo {
|
90
|
+
@include blogelator-logo(30);
|
91
|
+
margin: 5px 0 0 5px;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|