orgmode-cli-tools 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.
Files changed (40) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +29 -0
  4. data/README.MD +67 -0
  5. data/Rakefile +7 -0
  6. data/bin/org2html +66 -0
  7. data/bin/org2revealjs +116 -0
  8. data/lib/orgmode_cli_tools.rb +6 -0
  9. data/orgmode-cli-tools.gemspec +26 -0
  10. data/pkg/orgmode-cli-tools-0.0.1.gem +0 -0
  11. data/pkg/orgmode-cli-tools-0.1.0.gem +0 -0
  12. data/templates/reveal_js_template/css/FMtZSYIYoYw.ttf +0 -0
  13. data/templates/reveal_js_template/css/LqowQDslGv4DmUBAfWa2Vw.ttf +0 -0
  14. data/templates/reveal_js_template/css/cDxXwCLxiixG1c.ttf +0 -0
  15. data/templates/reveal_js_template/css/google-fonts.css +24 -0
  16. data/templates/reveal_js_template/css/main.css +909 -0
  17. data/templates/reveal_js_template/css/print/paper.css +170 -0
  18. data/templates/reveal_js_template/css/print/pdf.css +158 -0
  19. data/templates/reveal_js_template/css/theme/beige.css +179 -0
  20. data/templates/reveal_js_template/css/theme/default.css +169 -0
  21. data/templates/reveal_js_template/css/theme/simple.css +164 -0
  22. data/templates/reveal_js_template/css/v0SdcGFAl2aezM9Vq_aFTQ.ttf +0 -0
  23. data/templates/reveal_js_template/images/gitorious-org.png +0 -0
  24. data/templates/reveal_js_template/index.html +231 -0
  25. data/templates/reveal_js_template/js/reveal.js +1131 -0
  26. data/templates/reveal_js_template/js/reveal.min.js +70 -0
  27. data/templates/reveal_js_template/lib/css/zenburn.css +115 -0
  28. data/templates/reveal_js_template/lib/font/league_gothic-webfont.eot +0 -0
  29. data/templates/reveal_js_template/lib/font/league_gothic-webfont.svg +230 -0
  30. data/templates/reveal_js_template/lib/font/league_gothic-webfont.ttf +0 -0
  31. data/templates/reveal_js_template/lib/font/league_gothic-webfont.woff +0 -0
  32. data/templates/reveal_js_template/lib/font/league_gothic_license +2 -0
  33. data/templates/reveal_js_template/lib/js/classList.js +2 -0
  34. data/templates/reveal_js_template/lib/js/data-markdown.js +27 -0
  35. data/templates/reveal_js_template/lib/js/head.min.js +8 -0
  36. data/templates/reveal_js_template/lib/js/highlight.js +5 -0
  37. data/templates/reveal_js_template/lib/js/html5shiv.js +7 -0
  38. data/templates/reveal_js_template/lib/js/showdown.js +1341 -0
  39. data/templates/reveal_js_template/package.json +20 -0
  40. metadata +150 -0
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ generated_slides
2
+ test.org
3
+ test.html
4
+ *_slides
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in keeptesting.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,29 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ just_paginate (0.0.1)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ activesupport (3.2.8)
10
+ i18n (~> 0.6)
11
+ multi_json (~> 1.0)
12
+ i18n (0.6.1)
13
+ minitest (4.0.0)
14
+ multi_json (1.3.6)
15
+ shoulda (3.1.1)
16
+ shoulda-context (~> 1.0)
17
+ shoulda-matchers (~> 1.2)
18
+ shoulda-context (1.0.0)
19
+ shoulda-matchers (1.3.0)
20
+ activesupport (>= 3.0.0)
21
+
22
+ PLATFORMS
23
+ ruby
24
+
25
+ DEPENDENCIES
26
+ just_paginate!
27
+ minitest
28
+ shoulda
29
+ shoulda-context
data/README.MD ADDED
@@ -0,0 +1,67 @@
1
+
2
+ orgmode-cli-tools
3
+ ===
4
+
5
+ A couple of tools to make it easier to work with org-mode files from
6
+ the command-line.
7
+
8
+ Current available commands:
9
+
10
+ org2html: convert org files to html
11
+
12
+ org2revealjs: convert org files into reveal.js presentations
13
+
14
+
15
+ Dependencies
16
+ ===========
17
+
18
+ These tools depend on Ruby and Emacs 24.x.
19
+
20
+
21
+ Install
22
+ =======
23
+
24
+ # 1. install gem
25
+ # 2. check emacs dependencies
26
+ # Your emacs has to support orgmode html export with htmlize
27
+
28
+
29
+
30
+ Usage
31
+ =====
32
+
33
+ `org2html ORG_FILE_PATH [HTML_FILE_PATH]`
34
+
35
+ `org2revealjs ORG_FILE_PATH`
36
+
37
+
38
+ Examples
39
+ ========
40
+
41
+ Generate a html export of and orgfile and open it in firefox in one step:
42
+
43
+ `org2html test.org && firefox test.html &!`
44
+
45
+ Generate a presentation and open it in Firefox in one step:
46
+
47
+ `org2revealjs test.org && firefox generated_slides/index.html &!`
48
+
49
+
50
+ FAQ
51
+ ====
52
+
53
+ Q: Src code in my original org file is syntax highlighted in emacs,
54
+ and is htmlized with colors when I convert manually from within Emacs,
55
+ yet I get no colored syntax highlighting when converting with org2html
56
+ or org2revealjs. What gives?
57
+
58
+ A: Inline styling of code doesn't work in emacs "batch mode". However
59
+ the code elements are given classes (function, keyword etc), so you
60
+ are free to add css styling for your code as a final step yourself.
61
+
62
+
63
+ License
64
+ =======
65
+
66
+ orgmode-cli-tools is free software licensed under the
67
+ [GNU Affero General Public License (AGPL)](http://www.gnu.org/licenses/agpl-3.0.html).
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |i|
5
+ i.test_files = FileList['test/test_*.rb']
6
+ #i.verbose = true
7
+ end
data/bin/org2html ADDED
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # TODO add CLI flags to toggle:
4
+ # t, --include-toc
5
+ # s, --include-section-numbering
6
+ # h N, --headline-levels=N
7
+ # v, --version
8
+
9
+ # TODO check what fresh user needs to install to make it work from
10
+ # cold start in bare emacs 24 install
11
+
12
+ def elisp_code(src_dir)
13
+ <<ELISP
14
+ (package-initialize)
15
+ (require 'org-publish)
16
+ (require 'htmlize)
17
+
18
+ (setq org-export-htmlize-output-type 'css)
19
+
20
+ (org-publish '("org2html" :base-directory "#{src_dir}"
21
+ :publishing-function org-publish-org-to-html
22
+ :publishing-directory "/tmp"
23
+ :base-extension "org"
24
+ :html-extension "html"
25
+ :recursive t
26
+ :html-preamble nil
27
+ :html-postamble nil
28
+ :table-of-contents nil
29
+ :headline-levels 3
30
+ :htmlized-source t
31
+ :section-numbers nil
32
+ :body-only nil) nil)
33
+ ELISP
34
+ end
35
+
36
+ if ARGV.size == 0 || ARGV.size > 2
37
+ puts "Usage: org2html ORG_FILE_PATH [HTML_FILE_PATH]"
38
+ exit 1
39
+ end
40
+
41
+ if !File.exists?(ARGV[0])
42
+ puts "No such source org-file: #{ARGV[0]}"
43
+ end
44
+
45
+ src_file = ARGV[0]
46
+ dest_file = ARGV[1] || src_file.gsub(".org", ".html")
47
+
48
+ src_dir = File.dirname(File.expand_path(src_file))
49
+ dest_dir = File.dirname(File.expand_path(dest_file))
50
+
51
+ src_basefilename = File.basename(src_file)
52
+ src_generated_name = src_basefilename.gsub(".org", ".html")
53
+ dest_filepath = File.expand_path(File.basename(dest_file))
54
+
55
+ require 'tempfile' # use tempfile to make this thread-safe
56
+ elisp_file = Tempfile.new('foo')
57
+ begin
58
+ elisp_file.write(elisp_code(src_dir))
59
+ elisp_file.close
60
+ `rm -rf ~/.org-timestamps/org2html.cache`
61
+ `emacs --batch -l #{elisp_file.path}`
62
+ `cp /tmp/#{src_generated_name} #{dest_filepath}`
63
+ ensure
64
+ elisp_file.close
65
+ elisp_file.unlink # deletes the temp file
66
+ end
data/bin/org2revealjs ADDED
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ def body(orgfile_path)
4
+ `cat #{orgfile_path}`
5
+ end
6
+
7
+ def title(orgfile_path)
8
+ `cat #{orgfile_path} | grep "#+TITLE:" `.gsub("#+TITLE:", "").strip
9
+ end
10
+
11
+ def transform_divs_into_sections(html_markup)
12
+ require 'nokogiri'
13
+ doc = Nokogiri::HTML(html_markup)
14
+ doc.css("#preamble").remove
15
+ doc.css("style").remove
16
+ doc.css(".title").remove
17
+ doc.css("head").remove
18
+ doc.css("#table-of-contents").remove
19
+ doc.css("div").each do |node|
20
+ node.node_name = "section"
21
+ end
22
+ doc.css("#content").inner_html
23
+ end
24
+
25
+ def slide_layout(title, body)
26
+ <<MARKUP
27
+ <!doctype html>
28
+ <html lang="en">
29
+ <head>
30
+ <meta charset="utf-8">
31
+ <title>#{title}</title>
32
+ <meta name="apple-mobile-web-app-capable" content="yes">
33
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
34
+ <link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
35
+ <link rel="stylesheet" href="css/main.css">
36
+ <link rel="stylesheet" href="css/theme/default.css">
37
+ <!-- For syntax highlighting -->
38
+ <link rel="stylesheet" href="lib/css/zenburn.css">
39
+ <script>
40
+ // If the query includes 'print-pdf' we'll use the PDF print sheet
41
+ document.write( '<link rel="stylesheet" href="css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
42
+ </script>
43
+ <!--[if lt IE 9]>
44
+ <script src="lib/js/html5shiv.js"></script>
45
+ <![endif]-->
46
+ </head>
47
+ <body>
48
+ <div class="reveal">
49
+ <!-- Used to fade in a background when a specific slide state is reached -->
50
+ <div class="state-background"></div>
51
+
52
+ <!-- Any section element inside of this container is displayed as a slide -->
53
+ <div class="slides">
54
+
55
+ #{body}
56
+
57
+ </div>
58
+
59
+ <!-- The navigational controls UI -->
60
+ <aside class="controls">
61
+ <a class="left" href="#">&#x25C4;</a>
62
+ <a class="right" href="#">&#x25BA;</a>
63
+ <a class="up" href="#">&#x25B2;</a>
64
+ <a class="down" href="#">&#x25BC;</a>
65
+ </aside>
66
+ <!-- Presentation progress bar -->
67
+ <div class="progress"><span></span></div>
68
+ </div>
69
+ <script src="lib/js/head.min.js"></script>
70
+ <script src="js/reveal.min.js"></script>
71
+ <script>
72
+ // Full list of configuration options available here:
73
+ // https://github.com/hakimel/reveal.js#configuration
74
+ Reveal.initialize({
75
+ controls: true,
76
+ progress: true,
77
+ history: true,
78
+ transition: Reveal.getQueryHash().transition || 'linear', // default/cube/page/concave/linear(2d)
79
+ // Optional libraries used to extend on reveal.js
80
+ dependencies: [
81
+ { src: 'lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
82
+ { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
83
+ { src: 'lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
84
+ { src: 'lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
85
+ { src: 'socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
86
+ { src: 'plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
87
+ ]
88
+ });
89
+ </script>
90
+ </body>
91
+ </html>
92
+ MARKUP
93
+ end
94
+
95
+ def convert(orgfile_path)
96
+ title = "" # TODO derive title from filename and|or org contents
97
+ puts `org2html #{orgfile_path}`
98
+ htmlfile_path = orgfile_path.gsub(".org", ".html")
99
+ body = body(htmlfile_path)
100
+ body = transform_divs_into_sections(body)
101
+ body = slide_layout(title, body)
102
+
103
+ # TODO use path of this file to find dir of template dir where gem is actually located
104
+
105
+ gem_root_path = File.expand_path(File.dirname(__FILE__))+"/.."
106
+ `cp -r #{gem_root_path}/templates/reveal_js_template generated_slides`
107
+ File.open("generated_slides/index.html", 'w') { |file| file.write(body) }
108
+ `rm #{htmlfile_path}`
109
+ end
110
+
111
+ if ARGV.length != 1
112
+ puts "Usage: org2revealjs ORG_FILE_PATH"
113
+ exit 1
114
+ end
115
+
116
+ convert(ARGV[0])
@@ -0,0 +1,6 @@
1
+ # -*- coding: utf-8 -*-
2
+ module OrgmodeCliTools
3
+
4
+ VERSION = "0.1.0"
5
+
6
+ end
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "orgmode_cli_tools"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "orgmode-cli-tools"
7
+ s.version = OrgmodeCliTools::VERSION
8
+ s.authors = ["Thomas Kjeldahl Nilsson"]
9
+ s.email = ["thomas@kjeldahlnilsson.net"]
10
+ s.homepage = "https://kjeldahlnilsson.net"
11
+ s.summary = %q{CLI convenience tools for Org Mode files}
12
+ s.description = %q{CLI convenience tools for Org Mode files}
13
+
14
+ s.rubyforge_project = "orgmode-cli-tools"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_runtime_dependency "nokogiri"
22
+
23
+ s.add_development_dependency "minitest"
24
+ s.add_development_dependency "shoulda"
25
+ s.add_development_dependency "shoulda-context"
26
+ end
Binary file
Binary file
@@ -0,0 +1,24 @@
1
+ @font-face {
2
+ font-family: 'Lato';
3
+ font-style: normal;
4
+ font-weight: 700;
5
+ src: local('Lato Bold'), local('Lato-Bold'), url(FMtZSYIYoYw.ttf) format('truetype');
6
+ }
7
+ @font-face {
8
+ font-family: 'Lato';
9
+ font-style: italic;
10
+ font-weight: 400;
11
+ src: local('Lato Italic'), local('Lato-Italic'), url(LqowQDslGv4DmUBAfWa2Vw.ttf) format('truetype');
12
+ }
13
+ @font-face {
14
+ font-family: 'Lato';
15
+ font-style: italic;
16
+ font-weight: 700;
17
+ src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url(cDxXwCLxiixG1c.ttf) format('truetype');
18
+ }
19
+ @font-face {
20
+ font-family: 'Lato';
21
+ font-style: normal;
22
+ font-weight: 400;
23
+ src: local('Lato Regular'), local('Lato-Regular'), url(v0SdcGFAl2aezM9Vq_aFTQ.ttf) format('truetype');
24
+ }
@@ -0,0 +1,909 @@
1
+ @charset "UTF-8";
2
+
3
+ /**
4
+ * reveal.js
5
+ * http://lab.hakim.se/reveal-js
6
+ * MIT licensed
7
+ *
8
+ * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
9
+ */
10
+
11
+
12
+ /*********************************************
13
+ * RESET STYLES
14
+ *********************************************/
15
+
16
+ html, body, div, span, applet, object, iframe,
17
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
18
+ a, abbr, acronym, address, big, cite, code,
19
+ del, dfn, em, img, ins, kbd, q, s, samp,
20
+ small, strike, strong, sub, sup, tt, var,
21
+ b, u, i, center,
22
+ dl, dt, dd, ol, ul, li,
23
+ fieldset, form, label, legend,
24
+ table, caption, tbody, tfoot, thead, tr, th, td,
25
+ article, aside, canvas, details, embed,
26
+ figure, figcaption, footer, header, hgroup,
27
+ menu, nav, output, ruby, section, summary,
28
+ 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
+ }
36
+
37
+ article, aside, details, figcaption, figure,
38
+ footer, header, hgroup, menu, nav, section {
39
+ display: block;
40
+ }
41
+
42
+
43
+ /*********************************************
44
+ * GLOBAL STYLES
45
+ *********************************************/
46
+
47
+ html,
48
+ body {
49
+ padding: 0;
50
+ margin: 0;
51
+ width: 100%;
52
+ height: 100%;
53
+ min-height: 600px;
54
+ overflow: hidden;
55
+ }
56
+
57
+ body {
58
+ position: relative;
59
+ line-height: 1;
60
+ }
61
+
62
+ @media screen and (max-width: 900px) {
63
+ body {
64
+ font-size: 30px;
65
+ }
66
+ }
67
+
68
+ ::selection {
69
+ background:#FF5E99;
70
+ color:#fff;
71
+ text-shadow: none;
72
+ }
73
+
74
+ /*********************************************
75
+ * HEADERS
76
+ *********************************************/
77
+
78
+ .reveal h1 { font-size: 3.77em; }
79
+ .reveal h2 { font-size: 2.11em; }
80
+ .reveal h3 { font-size: 1.55em; }
81
+ .reveal h4 { font-size: 1em; }
82
+
83
+
84
+ /*********************************************
85
+ * VIEW FRAGMENTS
86
+ *********************************************/
87
+
88
+ .reveal .slides section .fragment {
89
+ opacity: 0;
90
+
91
+ -webkit-transition: all .2s ease;
92
+ -moz-transition: all .2s ease;
93
+ -ms-transition: all .2s ease;
94
+ -o-transition: all .2s ease;
95
+ transition: all .2s ease;
96
+ }
97
+ .reveal .slides section .fragment.visible {
98
+ opacity: 1;
99
+ }
100
+
101
+
102
+ /*********************************************
103
+ * DEFAULT ELEMENT STYLES
104
+ *********************************************/
105
+
106
+ .reveal .slides section {
107
+ line-height: 1.2em;
108
+ font-weight: normal;
109
+ }
110
+
111
+ .reveal img {
112
+ /* preserve aspect ratio and scale image so it's bound within the section */
113
+ max-width: 100%;
114
+ max-height: 100%;
115
+ }
116
+
117
+ .reveal strong,
118
+ .reveal b {
119
+ font-weight: bold;
120
+ }
121
+
122
+ .reveal em,
123
+ .reveal i {
124
+ font-style: italic;
125
+ }
126
+
127
+ .reveal ol,
128
+ .reveal ul {
129
+ display: inline-block;
130
+
131
+ text-align: left;
132
+ margin: 0 0 0 1em;
133
+ }
134
+
135
+ .reveal ol {
136
+ list-style-type: decimal;
137
+ }
138
+
139
+ .reveal ul {
140
+ list-style-type: disc;
141
+ }
142
+
143
+ .reveal ul ul {
144
+ list-style-type: square;
145
+ }
146
+
147
+ .reveal ul ul ul {
148
+ list-style-type: circle;
149
+ }
150
+
151
+ .reveal ul ul,
152
+ .reveal ul ol,
153
+ .reveal ol ol,
154
+ .reveal ol ul {
155
+ display: block;
156
+ margin-left: 40px;
157
+ }
158
+
159
+ .reveal p {
160
+ margin-bottom: 10px;
161
+ line-height: 1.2em;
162
+ }
163
+
164
+ .reveal q,
165
+ .reveal blockquote {
166
+ quotes: none;
167
+ }
168
+
169
+ .reveal blockquote {
170
+ display: block;
171
+ position: relative;
172
+ width: 70%;
173
+ margin: 5px auto;
174
+ padding: 5px;
175
+
176
+ font-style: italic;
177
+ background: rgba(255, 255, 255, 0.05);
178
+ box-shadow: 0px 0px 2px rgba(0,0,0,0.2);
179
+ }
180
+ .reveal blockquote:before {
181
+ content: '“';
182
+ }
183
+ .reveal blockquote:after {
184
+ content: '”';
185
+ }
186
+
187
+ .reveal q {
188
+ font-style: italic;
189
+ }
190
+ .reveal q:before {
191
+ content: '“';
192
+ }
193
+ .reveal q:after {
194
+ content: '”';
195
+ }
196
+
197
+ .reveal pre {
198
+ display: block;
199
+ position: relative;
200
+ width: 90%;
201
+ margin: 10px auto;
202
+
203
+ text-align: left;
204
+ font-size: 0.55em;
205
+ font-family: monospace;
206
+ line-height: 1.2em;
207
+
208
+ word-wrap: break-word;
209
+
210
+ box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
211
+ }
212
+
213
+ .reveal code {
214
+ font-family: monospace;
215
+ overflow-x: auto;
216
+ }
217
+
218
+ .reveal table th,
219
+ .reveal table td {
220
+ text-align: left;
221
+ padding-right: .3em;
222
+ }
223
+
224
+ .reveal table th {
225
+ text-shadow: rgb(255,255,255) 1px 1px 2px;
226
+ }
227
+
228
+ .reveal sup {
229
+ vertical-align: super;
230
+ }
231
+ .reveal sub {
232
+ vertical-align: sub;
233
+ }
234
+
235
+ .reveal small {
236
+ font-size: 0.6em;
237
+ line-height: 1em;
238
+ vertical-align: top;
239
+ }
240
+
241
+ .reveal small * {
242
+ vertical-align: top;
243
+ }
244
+
245
+
246
+ /*********************************************
247
+ * CONTROLS
248
+ *********************************************/
249
+
250
+ .reveal .controls {
251
+ display: none;
252
+ position: fixed;
253
+ width: 100px;
254
+ height: 100px;
255
+ z-index: 30;
256
+
257
+ right: 0;
258
+ bottom: 0;
259
+ }
260
+
261
+ .reveal .controls a {
262
+ font-family: Arial;
263
+ font-size: 0.83em;
264
+ position: absolute;
265
+ opacity: 0.1;
266
+ }
267
+ .reveal .controls a.enabled {
268
+ opacity: 0.6;
269
+ }
270
+ .reveal .controls a.enabled:active {
271
+ margin-top: 1px;
272
+ }
273
+
274
+ .reveal .controls .left {
275
+ top: 30px;
276
+ }
277
+
278
+ .reveal .controls .right {
279
+ left: 60px;
280
+ top: 30px;
281
+ }
282
+
283
+ .reveal .controls .up {
284
+ left: 30px;
285
+ }
286
+
287
+ .reveal .controls .down {
288
+ left: 30px;
289
+ top: 60px;
290
+ }
291
+
292
+
293
+ /*********************************************
294
+ * PROGRESS BAR
295
+ *********************************************/
296
+
297
+ .reveal .progress {
298
+ position: fixed;
299
+ display: none;
300
+ height: 3px;
301
+ width: 100%;
302
+ bottom: 0;
303
+ left: 0;
304
+ }
305
+
306
+ .reveal .progress span {
307
+ display: block;
308
+ height: 100%;
309
+ width: 0px;
310
+
311
+ -webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
312
+ -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
313
+ -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
314
+ -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
315
+ transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
316
+ }
317
+
318
+ /*********************************************
319
+ * ROLLING LINKS
320
+ *********************************************/
321
+ /*
322
+ .reveal .roll {
323
+ display: inline-block;
324
+ line-height: 1.2;
325
+ overflow: hidden;
326
+
327
+ vertical-align: top;
328
+
329
+ -webkit-perspective: 400px;
330
+ -moz-perspective: 400px;
331
+ -ms-perspective: 400px;
332
+ perspective: 400px;
333
+
334
+ -webkit-perspective-origin: 50% 50%;
335
+ -moz-perspective-origin: 50% 50%;
336
+ -ms-perspective-origin: 50% 50%;
337
+ perspective-origin: 50% 50%;
338
+ }
339
+ .reveal .roll:hover {
340
+ background: none;
341
+ text-shadow: none;
342
+ }
343
+ .reveal .roll span {
344
+ display: block;
345
+ position: relative;
346
+ padding: 0 2px;
347
+
348
+ pointer-events: none;
349
+
350
+ -webkit-transition: all 400ms ease;
351
+ -moz-transition: all 400ms ease;
352
+ -ms-transition: all 400ms ease;
353
+ transition: all 400ms ease;
354
+
355
+ -webkit-transform-origin: 50% 0%;
356
+ -moz-transform-origin: 50% 0%;
357
+ -ms-transform-origin: 50% 0%;
358
+ transform-origin: 50% 0%;
359
+
360
+ -webkit-transform-style: preserve-3d;
361
+ -moz-transform-style: preserve-3d;
362
+ -ms-transform-style: preserve-3d;
363
+ transform-style: preserve-3d;
364
+
365
+ -webkit-backface-visibility: hidden;
366
+ -moz-backface-visibility: hidden;
367
+ backface-visibility: hidden;
368
+ }
369
+ .reveal .roll:hover span {
370
+ background: rgba(0,0,0,0.5);
371
+
372
+ -webkit-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
373
+ -moz-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
374
+ -ms-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
375
+ transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
376
+ }
377
+ .reveal .roll span:after {
378
+ content: attr(data-title);
379
+
380
+ display: block;
381
+ position: absolute;
382
+ left: 0;
383
+ top: 0;
384
+ padding: 0 2px;
385
+
386
+ -webkit-transform-origin: 50% 0%;
387
+ -moz-transform-origin: 50% 0%;
388
+ -ms-transform-origin: 50% 0%;
389
+ transform-origin: 50% 0%;
390
+
391
+ -webkit-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
392
+ -moz-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
393
+ -ms-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
394
+ transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
395
+ }
396
+
397
+
398
+ /*********************************************
399
+ * SLIDES
400
+ *********************************************/
401
+
402
+ .reveal .slides {
403
+ position: absolute;
404
+ max-width: 900px;
405
+ width: 80%;
406
+ height: 60%;
407
+ left: 50%;
408
+ top: 50%;
409
+ margin-top: -320px;
410
+ padding: 20px 0px;
411
+ overflow: visible;
412
+
413
+ text-align: center;
414
+
415
+ -webkit-transition: -webkit-perspective .4s ease;
416
+ -moz-transition: -moz-perspective .4s ease;
417
+ -ms-transition: -ms-perspective .4s ease;
418
+ -o-transition: -o-perspective .4s ease;
419
+ transition: perspective .4s ease;
420
+
421
+ -webkit-perspective: 600px;
422
+ -moz-perspective: 600px;
423
+ -ms-perspective: 600px;
424
+ perspective: 600px;
425
+
426
+ -webkit-perspective-origin: 0% 25%;
427
+ -moz-perspective-origin: 0% 25%;
428
+ -ms-perspective-origin: 0% 25%;
429
+ perspective-origin: 0% 25%;
430
+ }
431
+
432
+ .reveal .slides>section,
433
+ .reveal .slides>section>section {
434
+ display: none;
435
+ position: absolute;
436
+ width: 100%;
437
+ min-height: 600px;
438
+
439
+ z-index: 10;
440
+
441
+ -webkit-transform-style: preserve-3d;
442
+ -moz-transform-style: preserve-3d;
443
+ -ms-transform-style: preserve-3d;
444
+ transform-style: preserve-3d;
445
+
446
+ -webkit-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
447
+ -moz-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
448
+ -ms-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
449
+ -o-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
450
+ transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
451
+ }
452
+
453
+ .reveal .slides>section.present {
454
+ display: block;
455
+ z-index: 11;
456
+ opacity: 1;
457
+ }
458
+
459
+ .reveal .slides>section {
460
+ margin-left: -50%;
461
+ }
462
+
463
+
464
+ /*********************************************
465
+ * DEFAULT TRANSITION
466
+ *********************************************/
467
+
468
+ .reveal .slides>section.past {
469
+ display: block;
470
+ opacity: 0;
471
+
472
+ -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
473
+ -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
474
+ -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
475
+ transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
476
+ }
477
+ .reveal .slides>section.future {
478
+ display: block;
479
+ opacity: 0;
480
+
481
+ -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
482
+ -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
483
+ -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
484
+ transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
485
+ }
486
+
487
+ .reveal .slides>section>section.past {
488
+ display: block;
489
+ opacity: 0;
490
+
491
+ -webkit-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
492
+ -moz-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
493
+ -ms-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
494
+ transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
495
+ }
496
+ .reveal .slides>section>section.future {
497
+ display: block;
498
+ opacity: 0;
499
+
500
+ -webkit-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
501
+ -moz-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
502
+ -ms-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
503
+ transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
504
+ }
505
+
506
+
507
+ /*********************************************
508
+ * CONCAVE TRANSITION
509
+ *********************************************/
510
+
511
+ .reveal.concave .slides>section.past {
512
+ -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
513
+ -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
514
+ -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
515
+ transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
516
+ }
517
+ .reveal.concave .slides>section.future {
518
+ -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
519
+ -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
520
+ -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
521
+ transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
522
+ }
523
+
524
+ .reveal.concave .slides>section>section.past {
525
+ -webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
526
+ -moz-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
527
+ -ms-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
528
+ transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
529
+ }
530
+ .reveal.concave .slides>section>section.future {
531
+ -webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
532
+ -moz-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
533
+ -ms-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
534
+ transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
535
+ }
536
+
537
+
538
+ /*********************************************
539
+ * LINEAR TRANSITION
540
+ *********************************************/
541
+
542
+ .reveal.linear .slides>section.past {
543
+ -webkit-transform: translate(-150%, 0);
544
+ -moz-transform: translate(-150%, 0);
545
+ -ms-transform: translate(-150%, 0);
546
+ -o-transform: translate(-150%, 0);
547
+ transform: translate(-150%, 0);
548
+ }
549
+ .reveal.linear .slides>section.future {
550
+ -webkit-transform: translate(150%, 0);
551
+ -moz-transform: translate(150%, 0);
552
+ -ms-transform: translate(150%, 0);
553
+ -o-transform: translate(150%, 0);
554
+ transform: translate(150%, 0);
555
+ }
556
+
557
+ .reveal.linear .slides>section>section.past {
558
+ -webkit-transform: translate(0, -150%);
559
+ -moz-transform: translate(0, -150%);
560
+ -ms-transform: translate(0, -150%);
561
+ -o-transform: translate(0, -150%);
562
+ transform: translate(0, -150%);
563
+ }
564
+ .reveal.linear .slides>section>section.future {
565
+ -webkit-transform: translate(0, 150%);
566
+ -moz-transform: translate(0, 150%);
567
+ -ms-transform: translate(0, 150%);
568
+ -o-transform: translate(0, 150%);
569
+ transform: translate(0, 150%);
570
+ }
571
+
572
+ /*********************************************
573
+ * BOX TRANSITION
574
+ *********************************************/
575
+
576
+ .reveal.cube .slides {
577
+ margin-top: -350px;
578
+
579
+ -webkit-perspective-origin: 50% 25%;
580
+ -moz-perspective-origin: 50% 25%;
581
+ -ms-perspective-origin: 50% 25%;
582
+ perspective-origin: 50% 25%;
583
+
584
+ -webkit-perspective: 1300px;
585
+ -moz-perspective: 1300px;
586
+ -ms-perspective: 1300px;
587
+ perspective: 1300px;
588
+ }
589
+
590
+ .reveal.cube .slides section {
591
+ padding: 30px;
592
+
593
+ -webkit-backface-visibility: hidden;
594
+ -moz-backface-visibility: hidden;
595
+ -ms-backface-visibility: hidden;
596
+ backface-visibility: hidden;
597
+
598
+ -webkit-box-sizing: border-box;
599
+ -moz-box-sizing: border-box;
600
+ box-sizing: border-box;
601
+ }
602
+ .reveal.cube .slides section:not(.stack):before {
603
+ content: '';
604
+ position: absolute;
605
+ display: block;
606
+ width: 100%;
607
+ height: 100%;
608
+ left: 0;
609
+ top: 0;
610
+ background: #232628;
611
+ border-radius: 4px;
612
+
613
+ -webkit-transform: translateZ( -20px );
614
+ -moz-transform: translateZ( -20px );
615
+ -ms-transform: translateZ( -20px );
616
+ -o-transform: translateZ( -20px );
617
+ transform: translateZ( -20px );
618
+ }
619
+ .reveal.cube .slides section:not(.stack):after {
620
+ content: '';
621
+ position: absolute;
622
+ display: block;
623
+ width: 90%;
624
+ height: 30px;
625
+ left: 5%;
626
+ bottom: 0;
627
+ background: none;
628
+ z-index: 1;
629
+
630
+ border-radius: 4px;
631
+ box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
632
+
633
+ -webkit-transform: translateZ(-90px) rotateX( 65deg );
634
+ -moz-transform: translateZ(-90px) rotateX( 65deg );
635
+ -ms-transform: translateZ(-90px) rotateX( 65deg );
636
+ -o-transform: translateZ(-90px) rotateX( 65deg );
637
+ transform: translateZ(-90px) rotateX( 65deg );
638
+ }
639
+
640
+ .reveal.cube .slides>section.stack {
641
+ padding: 0;
642
+ background: none;
643
+ }
644
+
645
+ .reveal.cube .slides>section.past {
646
+ -webkit-transform-origin: 100% 0%;
647
+ -moz-transform-origin: 100% 0%;
648
+ -ms-transform-origin: 100% 0%;
649
+ transform-origin: 100% 0%;
650
+
651
+ -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
652
+ -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
653
+ -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
654
+ transform: translate3d(-100%, 0, 0) rotateY(-90deg);
655
+ }
656
+
657
+ .reveal.cube .slides>section.future {
658
+ -webkit-transform-origin: 0% 0%;
659
+ -moz-transform-origin: 0% 0%;
660
+ -ms-transform-origin: 0% 0%;
661
+ transform-origin: 0% 0%;
662
+
663
+ -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);
664
+ -moz-transform: translate3d(100%, 0, 0) rotateY(90deg);
665
+ -ms-transform: translate3d(100%, 0, 0) rotateY(90deg);
666
+ transform: translate3d(100%, 0, 0) rotateY(90deg);
667
+ }
668
+
669
+ .reveal.cube .slides>section>section.past {
670
+ -webkit-transform-origin: 0% 100%;
671
+ -moz-transform-origin: 0% 100%;
672
+ -ms-transform-origin: 0% 100%;
673
+ transform-origin: 0% 100%;
674
+
675
+ -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);
676
+ -moz-transform: translate3d(0, -100%, 0) rotateX(90deg);
677
+ -ms-transform: translate3d(0, -100%, 0) rotateX(90deg);
678
+ transform: translate3d(0, -100%, 0) rotateX(90deg);
679
+ }
680
+
681
+ .reveal.cube .slides>section>section.future {
682
+ -webkit-transform-origin: 0% 0%;
683
+ -moz-transform-origin: 0% 0%;
684
+ -ms-transform-origin: 0% 0%;
685
+ transform-origin: 0% 0%;
686
+
687
+ -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);
688
+ -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg);
689
+ -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg);
690
+ transform: translate3d(0, 100%, 0) rotateX(-90deg);
691
+ }
692
+
693
+
694
+ /*********************************************
695
+ * PAGE TRANSITION
696
+ *********************************************/
697
+
698
+ .reveal.page .slides {
699
+ margin-top: -350px;
700
+
701
+ -webkit-perspective-origin: 50% 50%;
702
+ -moz-perspective-origin: 50% 50%;
703
+ -ms-perspective-origin: 50% 50%;
704
+ perspective-origin: 50% 50%;
705
+
706
+ -webkit-perspective: 3000px;
707
+ -moz-perspective: 3000px;
708
+ -ms-perspective: 3000px;
709
+ perspective: 3000px;
710
+ }
711
+
712
+ .reveal.page .slides section {
713
+ padding: 30px;
714
+
715
+ -webkit-box-sizing: border-box;
716
+ -moz-box-sizing: border-box;
717
+ box-sizing: border-box;
718
+ }
719
+ .reveal.page .slides section.past {
720
+ z-index: 12;
721
+ }
722
+ .reveal.page .slides section:not(.stack):before {
723
+ content: '';
724
+ position: absolute;
725
+ display: block;
726
+ width: 100%;
727
+ height: 100%;
728
+ left: 0;
729
+ top: 0;
730
+ background: rgba(0,0,0,0.2);
731
+
732
+ -webkit-transform: translateZ( -20px );
733
+ -moz-transform: translateZ( -20px );
734
+ -ms-transform: translateZ( -20px );
735
+ -o-transform: translateZ( -20px );
736
+ transform: translateZ( -20px );
737
+ }
738
+ .reveal.page .slides section:not(.stack):after {
739
+ content: '';
740
+ position: absolute;
741
+ display: block;
742
+ width: 90%;
743
+ height: 30px;
744
+ left: 5%;
745
+ bottom: 0;
746
+ background: none;
747
+ z-index: 1;
748
+
749
+ border-radius: 4px;
750
+ box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
751
+
752
+ -webkit-transform: translateZ(-90px) rotateX( 65deg );
753
+ }
754
+
755
+ .reveal.page .slides>section.stack {
756
+ padding: 0;
757
+ background: none;
758
+ }
759
+
760
+ .reveal.page .slides>section.past {
761
+ -webkit-transform-origin: 0% 0%;
762
+ -moz-transform-origin: 0% 0%;
763
+ -ms-transform-origin: 0% 0%;
764
+ transform-origin: 0% 0%;
765
+
766
+ -webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
767
+ -moz-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
768
+ -ms-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
769
+ transform: translate3d(-40%, 0, 0) rotateY(-80deg);
770
+ }
771
+
772
+ .reveal.page .slides>section.future {
773
+ -webkit-transform-origin: 100% 0%;
774
+ -moz-transform-origin: 100% 0%;
775
+ -ms-transform-origin: 100% 0%;
776
+ transform-origin: 100% 0%;
777
+
778
+ -webkit-transform: translate3d(0, 0, 0);
779
+ -moz-transform: translate3d(0, 0, 0);
780
+ -ms-transform: translate3d(0, 0, 0);
781
+ transform: translate3d(0, 0, 0);
782
+ }
783
+
784
+ .reveal.page .slides>section>section.past {
785
+ -webkit-transform-origin: 0% 0%;
786
+ -moz-transform-origin: 0% 0%;
787
+ -ms-transform-origin: 0% 0%;
788
+ transform-origin: 0% 0%;
789
+
790
+ -webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);
791
+ -moz-transform: translate3d(0, -40%, 0) rotateX(80deg);
792
+ -ms-transform: translate3d(0, -40%, 0) rotateX(80deg);
793
+ transform: translate3d(0, -40%, 0) rotateX(80deg);
794
+ }
795
+
796
+ .reveal.page .slides>section>section.future {
797
+ -webkit-transform-origin: 0% 100%;
798
+ -moz-transform-origin: 0% 100%;
799
+ -ms-transform-origin: 0% 100%;
800
+ transform-origin: 0% 100%;
801
+
802
+ -webkit-transform: translate3d(0, 0, 0);
803
+ -moz-transform: translate3d(0, 0, 0);
804
+ -ms-transform: translate3d(0, 0, 0);
805
+ transform: translate3d(0, 0, 0);
806
+ }
807
+
808
+
809
+ /*********************************************
810
+ * OVERVIEW
811
+ *********************************************/
812
+
813
+ .reveal.overview .slides {
814
+ -webkit-perspective: 700px;
815
+ -moz-perspective: 700px;
816
+ -ms-perspective: 700px;
817
+ perspective: 700px;
818
+ }
819
+
820
+ .reveal.overview .slides section {
821
+ padding: 20px 0;
822
+ max-height: 600px;
823
+ overflow: hidden;
824
+ opacity: 1;
825
+ cursor: pointer;
826
+ background: rgba(0,0,0,0.1);
827
+ }
828
+ .reveal.overview .slides section .fragment {
829
+ opacity: 1;
830
+ }
831
+ .reveal.overview .slides section:after,
832
+ .reveal.overview .slides section:before {
833
+ display: none !important;
834
+ }
835
+ .reveal.overview .slides section>section {
836
+ opacity: 1;
837
+ cursor: pointer;
838
+ }
839
+ .reveal.overview .slides section:hover {
840
+ background: rgba(0,0,0,0.3);
841
+ }
842
+
843
+ .reveal.overview .slides section.present {
844
+ background: rgba(0,0,0,0.3);
845
+ }
846
+ .reveal.overview .slides>section.stack {
847
+ background: none;
848
+ padding: 0;
849
+ overflow: visible;
850
+ }
851
+
852
+
853
+ /*********************************************
854
+ * FALLBACK
855
+ *********************************************/
856
+
857
+ .no-transforms {
858
+ overflow-y: auto;
859
+ }
860
+
861
+ .no-transforms .slides section {
862
+ display: block!important;
863
+ opacity: 1!important;
864
+ position: relative!important;
865
+ height: auto;
866
+ min-height: auto;
867
+ margin-bottom: 100px;
868
+
869
+ -webkit-transform: none;
870
+ -moz-transform: none;
871
+ -ms-transform: none;
872
+ transform: none;
873
+ }
874
+
875
+
876
+ /*********************************************
877
+ * DEFAULT STATES
878
+ *********************************************/
879
+
880
+ .state-background {
881
+ position: absolute;
882
+ width: 100%;
883
+ height: 100%;
884
+ background: rgba( 0, 0, 0, 0 );
885
+
886
+ -webkit-transition: background 800ms ease;
887
+ -moz-transition: background 800ms ease;
888
+ -ms-transition: background 800ms ease;
889
+ -o-transition: background 800ms ease;
890
+ transition: background 800ms ease;
891
+ }
892
+ .alert .state-background {
893
+ background: rgba( 200, 50, 30, 0.6 );
894
+ }
895
+ .soothe .state-background {
896
+ background: rgba( 50, 200, 90, 0.4 );
897
+ }
898
+ .blackout .state-background {
899
+ background: rgba( 0, 0, 0, 0.6 );
900
+ }
901
+
902
+
903
+ /*********************************************
904
+ * SPEAKER NOTES
905
+ *********************************************/
906
+
907
+ .reveal aside.notes {
908
+ display: none;
909
+ }