orgmode-cli-tools 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }