├── .gitignore
├── LICENSE
├── README.md
├── css
├── print
│ ├── paper.css
│ └── pdf.css
├── reveal.css
├── reveal.min.css
└── theme
│ ├── README.md
│ ├── beige.css
│ ├── blood.css
│ ├── default.css
│ ├── moon.css
│ ├── night.css
│ ├── serif.css
│ ├── simple.css
│ ├── sky.css
│ ├── solarized.css
│ ├── source
│ ├── beige.scss
│ ├── blood.scss
│ ├── default.scss
│ ├── moon.scss
│ ├── night.scss
│ ├── serif.scss
│ ├── simple.scss
│ ├── sky.scss
│ └── solarized.scss
│ └── template
│ ├── mixins.scss
│ ├── settings.scss
│ └── theme.scss
├── demo1.html
├── demo2.html
├── imagemagick
├── bg.png
├── kirby_betterspin_dance-fixed.gif
├── kirby_bigfight.gif
├── kirby_paint.gif
├── kirby_run.gif
└── make_gif.txt
├── img
├── caniuse_sw.png
├── caniuse_webworkers.png
├── caniuse_ww.png
├── canvas_worker.png
├── edge_14_now.jpg
├── edgems.png
├── firefox_unhandled.png
├── functions.png
├── html5workertest.png
├── hype_train.jpg
├── is_sw_ready.png
├── jeff_atwood.png
├── kirby_blimp.gif
├── kirby_busy.gif
├── kirby_challenge.png
├── kirby_cook.gif
├── kirby_expedition.gif
├── kirby_expedition_big.gif
├── kirby_fight.gif
├── kirby_paint.gif
├── kirby_run.gif
├── kirby_sleep.gif
├── kirby_slide.png
├── kirby_spin_dance.gif
├── kirby_star.gif
├── kirby_star_big.gif
├── kirby_sword.png
├── kirby_three_dance.gif
├── kirbydance.gif
├── mariko.png
├── me.jpg
├── nolan_tweet.png
├── paul_lewis.png
├── phones-overlay.png
├── phones.png
├── pokedex_architecture.png
├── pouchdb.jpg
├── pouchdb.png
├── promise-worker.png
├── pseudoworker.png
├── service_worker_revolution.png
├── site_scan.png
├── site_scan2.png
├── skyrocket.png
├── squarespace.jpg
├── squarespace.png
├── stringify-chrome.png
├── tweet_briant.png
├── tweet_cramforce.png
├── tweet_floyd.png
├── tweet_impossible.png
├── tweet_jaffa.png
├── tweet_tom.png
├── webgl_worker.png
├── withoutworker.png
├── withworker.png
├── worker-types.png
├── worker_classes.png
├── worker_kirby.png
├── worker_kirby_big.png
└── year_of_concurrency.png
├── index.css
├── index.html
├── js
├── blockAjax.js
├── blockTheDom.js
├── highcharts-exporting.js
├── highcharts.js
├── jquery-1.9.1.js
├── randomColor.js
├── reveal.js
├── reveal.min.js
├── simulateJank.js
└── ua.js
├── lib
├── css
│ ├── github.css
│ ├── tomorrow.css
│ └── zenburn.css
├── font
│ ├── league_gothic-webfont.eot
│ ├── league_gothic-webfont.svg
│ ├── league_gothic-webfont.ttf
│ ├── league_gothic-webfont.woff
│ └── league_gothic_license
└── js
│ ├── classList.js
│ ├── head.min.js
│ └── html5shiv.js
├── plugin
├── highlight
│ └── highlight.js
├── leap
│ └── leap.js
├── markdown
│ ├── example.html
│ ├── example.md
│ ├── markdown.js
│ └── marked.js
├── math
│ └── math.js
├── multiplex
│ ├── client.js
│ ├── index.js
│ └── master.js
├── notes-server
│ ├── client.js
│ ├── index.js
│ └── notes.html
├── notes
│ ├── notes.html
│ └── notes.js
├── postmessage
│ ├── example.html
│ └── postmessage.js
├── print-pdf
│ └── print-pdf.js
├── remotes
│ └── remotes.js
├── search
│ └── search.js
└── zoom-js
│ └── zoom.js
├── test
├── examples
│ ├── assets
│ │ ├── image1.png
│ │ └── image2.png
│ ├── barebones.html
│ ├── embedded-media.html
│ ├── math.html
│ └── slide-backgrounds.html
├── qunit-1.12.0.css
├── qunit-1.12.0.js
├── test-markdown-element-attributes.html
├── test-markdown-element-attributes.js
├── test-markdown-slide-attributes.html
├── test-markdown-slide-attributes.js
├── test-markdown.html
├── test-markdown.js
├── test.html
└── test.js
└── vid
├── angular_after.webm
├── angular_before.webm
├── cache_first.mp4
├── cache_first.webm
├── flipbook.mp4
├── flipbook.webm
├── freakingout.mp4
├── freakingout.webm
├── kirby_1.mp4
├── kirby_1.webm
├── kirby_2.mp4
├── kirby_2.webm
├── kirby_3.mp4
├── kirby_3.webm
├── kirby_blocked_by_ajax.mp4
├── kirby_blocked_by_ajax.webm
├── kirby_blocked_by_fetch.mp4
├── kirby_blocked_by_fetch.webm
├── kirby_blocked_by_idb.mp4
├── kirby_blocked_by_idb.webm
├── kirby_unblocked_by_idb.mp4
├── kirby_unblocked_by_idb.webm
├── offline.mp4
├── offline.webm
├── pokedex_loop.mp4
├── pokedex_loop.webm
└── react_worker.webm
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .svn
3 | log/*.log
4 | tmp/**
5 | node_modules/
6 | .sass-cache
7 | npm-debug.log
8 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (C) 2014 Hakim El Hattab, http://hakim.se
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | We can work it out: from Web Workers to Service Workers
2 | =====
3 |
4 | Nolan's 30-minute talk on Web Workers and Service Workers for BrazilJS 2016.
5 |
--------------------------------------------------------------------------------
/css/print/paper.css:
--------------------------------------------------------------------------------
1 | /* Default Print Stylesheet Template
2 | by Rob Glazebrook of CSSnewbie.com
3 | Last Updated: June 4, 2008
4 |
5 | Feel free (nay, compelled) to edit, append, and
6 | manipulate this file as you see fit. */
7 |
8 |
9 | /* SECTION 1: Set default width, margin, float, and
10 | background. This prevents elements from extending
11 | beyond the edge of the printed page, and prevents
12 | unnecessary background images from printing */
13 | body {
14 | background: #fff;
15 | font-size: 13pt;
16 | width: auto;
17 | height: auto;
18 | border: 0;
19 | margin: 0 5%;
20 | padding: 0;
21 | float: none !important;
22 | overflow: visible;
23 | }
24 | html {
25 | background: #fff;
26 | width: auto;
27 | height: auto;
28 | overflow: visible;
29 | }
30 |
31 | /* SECTION 2: Remove any elements not needed in print.
32 | This would include navigation, ads, sidebars, etc. */
33 | .nestedarrow,
34 | .controls,
35 | .reveal .progress,
36 | .reveal.overview,
37 | .fork-reveal,
38 | .share-reveal,
39 | .state-background {
40 | display: none !important;
41 | }
42 |
43 | /* SECTION 3: Set body font face, size, and color.
44 | Consider using a serif font for readability. */
45 | body, p, td, li, div, a {
46 | font-size: 16pt!important;
47 | font-family: Georgia, "Times New Roman", Times, serif !important;
48 | color: #000;
49 | }
50 |
51 | /* SECTION 4: Set heading font face, sizes, and color.
52 | Differentiate your headings from your body text.
53 | Perhaps use a large sans-serif for distinction. */
54 | h1,h2,h3,h4,h5,h6 {
55 | color: #000!important;
56 | height: auto;
57 | line-height: normal;
58 | font-family: Georgia, "Times New Roman", Times, serif !important;
59 | text-shadow: 0 0 0 #000 !important;
60 | text-align: left;
61 | letter-spacing: normal;
62 | }
63 | /* Need to reduce the size of the fonts for printing */
64 | h1 { font-size: 26pt !important; }
65 | h2 { font-size: 22pt !important; }
66 | h3 { font-size: 20pt !important; }
67 | h4 { font-size: 20pt !important; font-variant: small-caps; }
68 | h5 { font-size: 19pt !important; }
69 | h6 { font-size: 18pt !important; font-style: italic; }
70 |
71 | /* SECTION 5: Make hyperlinks more usable.
72 | Ensure links are underlined, and consider appending
73 | the URL to the end of the link for usability. */
74 | a:link,
75 | a:visited {
76 | color: #000 !important;
77 | font-weight: bold;
78 | text-decoration: underline;
79 | }
80 | /*
81 | .reveal a:link:after,
82 | .reveal a:visited:after {
83 | content: " (" attr(href) ") ";
84 | color: #222 !important;
85 | font-size: 90%;
86 | }
87 | */
88 |
89 |
90 | /* SECTION 6: more reveal.js specific additions by @skypanther */
91 | ul, ol, div, p {
92 | visibility: visible;
93 | position: static;
94 | width: auto;
95 | height: auto;
96 | display: block;
97 | overflow: visible;
98 | margin: auto;
99 | text-align: left !important;
100 | }
101 | .reveal .slides {
102 | position: static;
103 | width: auto;
104 | height: auto;
105 |
106 | left: auto;
107 | top: auto;
108 | margin-left: auto;
109 | margin-top: auto;
110 | padding: auto;
111 |
112 | overflow: visible;
113 | display: block;
114 |
115 | text-align: center;
116 | -webkit-perspective: none;
117 | -moz-perspective: none;
118 | -ms-perspective: none;
119 | perspective: none;
120 |
121 | -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
122 | -moz-perspective-origin: 50% 50%;
123 | -ms-perspective-origin: 50% 50%;
124 | perspective-origin: 50% 50%;
125 | }
126 | .reveal .slides>section,
127 | .reveal .slides>section>section {
128 |
129 | visibility: visible !important;
130 | position: static !important;
131 | width: 90% !important;
132 | height: auto !important;
133 | display: block !important;
134 | overflow: visible !important;
135 |
136 | left: 0% !important;
137 | top: 0% !important;
138 | margin-left: 0px !important;
139 | margin-top: 0px !important;
140 | padding: 20px 0px !important;
141 |
142 | opacity: 1 !important;
143 |
144 | -webkit-transform-style: flat !important;
145 | -moz-transform-style: flat !important;
146 | -ms-transform-style: flat !important;
147 | transform-style: flat !important;
148 |
149 | -webkit-transform: none !important;
150 | -moz-transform: none !important;
151 | -ms-transform: none !important;
152 | transform: none !important;
153 | }
154 | .reveal section {
155 | page-break-after: always !important;
156 | display: block !important;
157 | }
158 | .reveal section .fragment {
159 | opacity: 1 !important;
160 | visibility: visible !important;
161 |
162 | -webkit-transform: none !important;
163 | -moz-transform: none !important;
164 | -ms-transform: none !important;
165 | transform: none !important;
166 | }
167 | .reveal section:last-of-type {
168 | page-break-after: avoid !important;
169 | }
170 | .reveal section img {
171 | display: block;
172 | margin: 15px 0px;
173 | background: rgba(255,255,255,1);
174 | border: 1px solid #666;
175 | box-shadow: none;
176 | }
--------------------------------------------------------------------------------
/css/print/pdf.css:
--------------------------------------------------------------------------------
1 | /* Default Print Stylesheet Template
2 | by Rob Glazebrook of CSSnewbie.com
3 | Last Updated: June 4, 2008
4 |
5 | Feel free (nay, compelled) to edit, append, and
6 | manipulate this file as you see fit. */
7 |
8 |
9 | /* SECTION 1: Set default width, margin, float, and
10 | background. This prevents elements from extending
11 | beyond the edge of the printed page, and prevents
12 | unnecessary background images from printing */
13 |
14 | * {
15 | -webkit-print-color-adjust: exact;
16 | }
17 |
18 | body {
19 | font-size: 18pt;
20 | width: 297mm;
21 | height: 229mm;
22 | margin: 0 auto !important;
23 | border: 0;
24 | padding: 0;
25 | float: none !important;
26 | overflow: visible;
27 | }
28 |
29 | html {
30 | width: 100%;
31 | height: 100%;
32 | overflow: visible;
33 | }
34 |
35 | @page {
36 | size: letter landscape;
37 | margin: 0;
38 | }
39 |
40 | /* SECTION 2: Remove any elements not needed in print.
41 | This would include navigation, ads, sidebars, etc. */
42 | .nestedarrow,
43 | .controls,
44 | .reveal .progress,
45 | .reveal.overview,
46 | .fork-reveal,
47 | .share-reveal,
48 | .state-background {
49 | display: none !important;
50 | }
51 |
52 | /* SECTION 3: Set body font face, size, and color.
53 | Consider using a serif font for readability. */
54 | body, p, td, li, div {
55 | font-size: 18pt;
56 | }
57 |
58 | /* SECTION 4: Set heading font face, sizes, and color.
59 | Differentiate your headings from your body text.
60 | Perhaps use a large sans-serif for distinction. */
61 | h1,h2,h3,h4,h5,h6 {
62 | text-shadow: 0 0 0 #000 !important;
63 | }
64 |
65 | /* SECTION 5: Make hyperlinks more usable.
66 | Ensure links are underlined, and consider appending
67 | the URL to the end of the link for usability. */
68 | a:link,
69 | a:visited {
70 | font-weight: normal;
71 | text-decoration: underline;
72 | }
73 |
74 | .reveal pre code {
75 | overflow: hidden !important;
76 | font-family: monospace !important;
77 | }
78 |
79 |
80 | /* SECTION 6: more reveal.js specific additions by @skypanther */
81 | ul, ol, div, p {
82 | visibility: visible;
83 | position: static;
84 | width: auto;
85 | height: auto;
86 | display: block;
87 | overflow: visible;
88 | margin: auto;
89 | }
90 | .reveal {
91 | width: auto !important;
92 | height: auto !important;
93 | overflow: hidden !important;
94 | }
95 | .reveal .slides {
96 | position: static;
97 | width: 100%;
98 | height: auto;
99 |
100 | left: auto;
101 | top: auto;
102 | margin: 0 !important;
103 | padding: 0 !important;
104 |
105 | overflow: visible;
106 | display: block;
107 |
108 | text-align: center;
109 |
110 | -webkit-perspective: none;
111 | -moz-perspective: none;
112 | -ms-perspective: none;
113 | perspective: none;
114 |
115 | -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
116 | -moz-perspective-origin: 50% 50%;
117 | -ms-perspective-origin: 50% 50%;
118 | perspective-origin: 50% 50%;
119 | }
120 | .reveal .slides section {
121 |
122 | page-break-after: always !important;
123 |
124 | visibility: visible !important;
125 | position: relative !important;
126 | width: 100% !important;
127 | height: 229mm !important;
128 | min-height: 229mm !important;
129 | display: block !important;
130 | overflow: hidden !important;
131 |
132 | left: 0 !important;
133 | top: 0 !important;
134 | margin: 0 !important;
135 | padding: 2cm 2cm 0 2cm !important;
136 | box-sizing: border-box !important;
137 |
138 | opacity: 1 !important;
139 |
140 | -webkit-transform-style: flat !important;
141 | -moz-transform-style: flat !important;
142 | -ms-transform-style: flat !important;
143 | transform-style: flat !important;
144 |
145 | -webkit-transform: none !important;
146 | -moz-transform: none !important;
147 | -ms-transform: none !important;
148 | transform: none !important;
149 | }
150 | .reveal section.stack {
151 | margin: 0 !important;
152 | padding: 0 !important;
153 | page-break-after: avoid !important;
154 | height: auto !important;
155 | min-height: auto !important;
156 | }
157 | .reveal .absolute-element {
158 | margin-left: 2.2cm;
159 | margin-top: 1.8cm;
160 | }
161 | .reveal section .fragment {
162 | opacity: 1 !important;
163 | visibility: visible !important;
164 |
165 | -webkit-transform: none !important;
166 | -moz-transform: none !important;
167 | -ms-transform: none !important;
168 | transform: none !important;
169 | }
170 | .reveal section .slide-background {
171 | position: absolute;
172 | top: 0;
173 | left: 0;
174 | width: 100%;
175 | z-index: 0;
176 | }
177 | .reveal section>* {
178 | position: relative;
179 | z-index: 1;
180 | }
181 | .reveal img {
182 | box-shadow: none;
183 | }
184 | .reveal .roll {
185 | overflow: visible;
186 | line-height: 1em;
187 | }
188 | .reveal small a {
189 | font-size: 16pt !important;
190 | }
191 |
--------------------------------------------------------------------------------
/css/theme/README.md:
--------------------------------------------------------------------------------
1 | ## Dependencies
2 |
3 | Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceding: https://github.com/hakimel/reveal.js#full-setup
4 |
5 | You also need to install Ruby and then Sass (with `gem install sass`).
6 |
7 | ## Creating a Theme
8 |
9 | To create your own theme, start by duplicating any ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source) and adding it to the compilation list in the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js).
10 |
11 | Each theme file does four things in the following order:
12 |
13 | 1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)**
14 | Shared utility functions.
15 |
16 | 2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)**
17 | Declares a set of custom variables that the template file (step 4) expects. Can be overridden in step 3.
18 |
19 | 3. **Override**
20 | This is where you override the default theme. Either by specifying variables (see [settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss) for reference) or by adding full selectors with hardcoded styles.
21 |
22 | 4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)**
23 | The template theme file which will generate final CSS output based on the currently defined variables.
24 |
25 | When you are done, run `grunt themes` to compile the Sass file to CSS and you are ready to use your new theme.
26 |
--------------------------------------------------------------------------------
/css/theme/beige.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
2 | /**
3 | * Beige theme for reveal.js.
4 | *
5 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
6 | */
7 | @font-face {
8 | font-family: 'League Gothic';
9 | src: url("../../lib/font/league_gothic-webfont.eot");
10 | src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
11 | font-weight: normal;
12 | font-style: normal; }
13 |
14 | /*********************************************
15 | * GLOBAL STYLES
16 | *********************************************/
17 | body {
18 | background: #f7f2d3;
19 | background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
20 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3));
21 | background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
22 | background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
23 | background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
24 | background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
25 | background-color: #f7f3de; }
26 |
27 | .reveal {
28 | font-family: "Lato", sans-serif;
29 | font-size: 36px;
30 | font-weight: normal;
31 | letter-spacing: -0.02em;
32 | color: #333333; }
33 |
34 | ::selection {
35 | color: white;
36 | background: rgba(79, 64, 28, 0.99);
37 | text-shadow: none; }
38 |
39 | /*********************************************
40 | * HEADERS
41 | *********************************************/
42 | .reveal h1,
43 | .reveal h2,
44 | .reveal h3,
45 | .reveal h4,
46 | .reveal h5,
47 | .reveal h6 {
48 | margin: 0 0 20px 0;
49 | color: #333333;
50 | font-family: "League Gothic", Impact, sans-serif;
51 | line-height: 0.9em;
52 | letter-spacing: 0.02em;
53 | text-transform: uppercase;
54 | text-shadow: none; }
55 |
56 | .reveal h1 {
57 | text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
58 |
59 | /*********************************************
60 | * LINKS
61 | *********************************************/
62 | .reveal a:not(.image) {
63 | color: #8b743d;
64 | text-decoration: none;
65 | -webkit-transition: color .15s ease;
66 | -moz-transition: color .15s ease;
67 | -ms-transition: color .15s ease;
68 | -o-transition: color .15s ease;
69 | transition: color .15s ease; }
70 |
71 | .reveal a:not(.image):hover {
72 | color: #c0a86e;
73 | text-shadow: none;
74 | border: none; }
75 |
76 | .reveal .roll span:after {
77 | color: #fff;
78 | background: #564826; }
79 |
80 | /*********************************************
81 | * IMAGES
82 | *********************************************/
83 | .reveal section img {
84 | margin: 15px 0px;
85 | background: rgba(255, 255, 255, 0.12);
86 | border: 4px solid #333333;
87 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
88 | -webkit-transition: all .2s linear;
89 | -moz-transition: all .2s linear;
90 | -ms-transition: all .2s linear;
91 | -o-transition: all .2s linear;
92 | transition: all .2s linear; }
93 |
94 | .reveal a:hover img {
95 | background: rgba(255, 255, 255, 0.2);
96 | border-color: #8b743d;
97 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
98 |
99 | /*********************************************
100 | * NAVIGATION CONTROLS
101 | *********************************************/
102 | .reveal .controls div.navigate-left,
103 | .reveal .controls div.navigate-left.enabled {
104 | border-right-color: #8b743d; }
105 |
106 | .reveal .controls div.navigate-right,
107 | .reveal .controls div.navigate-right.enabled {
108 | border-left-color: #8b743d; }
109 |
110 | .reveal .controls div.navigate-up,
111 | .reveal .controls div.navigate-up.enabled {
112 | border-bottom-color: #8b743d; }
113 |
114 | .reveal .controls div.navigate-down,
115 | .reveal .controls div.navigate-down.enabled {
116 | border-top-color: #8b743d; }
117 |
118 | .reveal .controls div.navigate-left.enabled:hover {
119 | border-right-color: #c0a86e; }
120 |
121 | .reveal .controls div.navigate-right.enabled:hover {
122 | border-left-color: #c0a86e; }
123 |
124 | .reveal .controls div.navigate-up.enabled:hover {
125 | border-bottom-color: #c0a86e; }
126 |
127 | .reveal .controls div.navigate-down.enabled:hover {
128 | border-top-color: #c0a86e; }
129 |
130 | /*********************************************
131 | * PROGRESS BAR
132 | *********************************************/
133 | .reveal .progress {
134 | background: rgba(0, 0, 0, 0.2); }
135 |
136 | .reveal .progress span {
137 | background: #8b743d;
138 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
139 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
140 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
141 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
142 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
143 |
144 | /*********************************************
145 | * SLIDE NUMBER
146 | *********************************************/
147 | .reveal .slide-number {
148 | color: #8b743d; }
149 |
--------------------------------------------------------------------------------
/css/theme/blood.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);
2 | /**
3 | * Blood theme for reveal.js
4 | * Author: Walther http://github.com/Walther
5 | *
6 | * Designed to be used with highlight.js theme
7 | * "monokai_sublime.css" available from
8 | * https://github.com/isagalaev/highlight.js/
9 | *
10 | * For other themes, change $codeBackground accordingly.
11 | *
12 | */
13 | /*********************************************
14 | * GLOBAL STYLES
15 | *********************************************/
16 | body {
17 | background: #222222;
18 | background: -moz-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
19 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #626262), color-stop(100%, #222222));
20 | background: -webkit-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
21 | background: -o-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
22 | background: -ms-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
23 | background: radial-gradient(center, circle cover, #626262 0%, #222222 100%);
24 | background-color: #2b2b2b; }
25 |
26 | .reveal {
27 | font-family: Ubuntu, "sans-serif";
28 | font-size: 36px;
29 | font-weight: normal;
30 | letter-spacing: -0.02em;
31 | color: #eeeeee; }
32 |
33 | ::selection {
34 | color: white;
35 | background: #aa2233;
36 | text-shadow: none; }
37 |
38 | /*********************************************
39 | * HEADERS
40 | *********************************************/
41 | .reveal h1,
42 | .reveal h2,
43 | .reveal h3,
44 | .reveal h4,
45 | .reveal h5,
46 | .reveal h6 {
47 | margin: 0 0 20px 0;
48 | color: #eeeeee;
49 | font-family: Ubuntu, "sans-serif";
50 | line-height: 0.9em;
51 | letter-spacing: 0.02em;
52 | text-transform: uppercase;
53 | text-shadow: 2px 2px 2px #222222; }
54 |
55 | .reveal h1 {
56 | text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
57 |
58 | /*********************************************
59 | * LINKS
60 | *********************************************/
61 | .reveal a:not(.image) {
62 | color: #aa2233;
63 | text-decoration: none;
64 | -webkit-transition: color .15s ease;
65 | -moz-transition: color .15s ease;
66 | -ms-transition: color .15s ease;
67 | -o-transition: color .15s ease;
68 | transition: color .15s ease; }
69 |
70 | .reveal a:not(.image):hover {
71 | color: #dd5566;
72 | text-shadow: none;
73 | border: none; }
74 |
75 | .reveal .roll span:after {
76 | color: #fff;
77 | background: #6a1520; }
78 |
79 | /*********************************************
80 | * IMAGES
81 | *********************************************/
82 | .reveal section img {
83 | margin: 15px 0px;
84 | background: rgba(255, 255, 255, 0.12);
85 | border: 4px solid #eeeeee;
86 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
87 | -webkit-transition: all .2s linear;
88 | -moz-transition: all .2s linear;
89 | -ms-transition: all .2s linear;
90 | -o-transition: all .2s linear;
91 | transition: all .2s linear; }
92 |
93 | .reveal a:hover img {
94 | background: rgba(255, 255, 255, 0.2);
95 | border-color: #aa2233;
96 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
97 |
98 | /*********************************************
99 | * NAVIGATION CONTROLS
100 | *********************************************/
101 | .reveal .controls div.navigate-left,
102 | .reveal .controls div.navigate-left.enabled {
103 | border-right-color: #aa2233; }
104 |
105 | .reveal .controls div.navigate-right,
106 | .reveal .controls div.navigate-right.enabled {
107 | border-left-color: #aa2233; }
108 |
109 | .reveal .controls div.navigate-up,
110 | .reveal .controls div.navigate-up.enabled {
111 | border-bottom-color: #aa2233; }
112 |
113 | .reveal .controls div.navigate-down,
114 | .reveal .controls div.navigate-down.enabled {
115 | border-top-color: #aa2233; }
116 |
117 | .reveal .controls div.navigate-left.enabled:hover {
118 | border-right-color: #dd5566; }
119 |
120 | .reveal .controls div.navigate-right.enabled:hover {
121 | border-left-color: #dd5566; }
122 |
123 | .reveal .controls div.navigate-up.enabled:hover {
124 | border-bottom-color: #dd5566; }
125 |
126 | .reveal .controls div.navigate-down.enabled:hover {
127 | border-top-color: #dd5566; }
128 |
129 | /*********************************************
130 | * PROGRESS BAR
131 | *********************************************/
132 | .reveal .progress {
133 | background: rgba(0, 0, 0, 0.2); }
134 |
135 | .reveal .progress span {
136 | background: #aa2233;
137 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
138 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
139 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
140 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
141 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
142 |
143 | /*********************************************
144 | * SLIDE NUMBER
145 | *********************************************/
146 | .reveal .slide-number {
147 | color: #aa2233; }
148 |
149 | .reveal p {
150 | font-weight: 300;
151 | text-shadow: 1px 1px #222222; }
152 |
153 | .reveal h1,
154 | .reveal h2,
155 | .reveal h3,
156 | .reveal h4,
157 | .reveal h5,
158 | .reveal h6 {
159 | font-weight: 700; }
160 |
161 | .reveal a:not(.image),
162 | .reveal a:not(.image):hover {
163 | text-shadow: 2px 2px 2px #000; }
164 |
165 | .reveal small a:not(.image),
166 | .reveal small a:not(.image):hover {
167 | text-shadow: 1px 1px 1px #000; }
168 |
169 | .reveal p code {
170 | background-color: #23241f;
171 | display: inline-block;
172 | border-radius: 7px; }
173 |
174 | .reveal small code {
175 | vertical-align: baseline; }
176 |
--------------------------------------------------------------------------------
/css/theme/default.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
2 | /**
3 | * Default theme for reveal.js.
4 | *
5 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
6 | */
7 | @font-face {
8 | font-family: 'League Gothic';
9 | src: url("../../lib/font/league_gothic-webfont.eot");
10 | src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
11 | font-weight: normal;
12 | font-style: normal; }
13 |
14 | /*********************************************
15 | * GLOBAL STYLES
16 | *********************************************/
17 | body {
18 | background: #1c1e20;
19 | background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
20 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));
21 | background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
22 | background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
23 | background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
24 | background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
25 | background-color: #2b2b2b; }
26 |
27 | .reveal {
28 | font-family: "Lato", sans-serif;
29 | font-size: 36px;
30 | font-weight: normal;
31 | letter-spacing: -0.02em;
32 | color: #eeeeee; }
33 |
34 | ::selection {
35 | color: white;
36 | background: #ff5e99;
37 | text-shadow: none; }
38 |
39 | /*********************************************
40 | * HEADERS
41 | *********************************************/
42 | .reveal h1,
43 | .reveal h2,
44 | .reveal h3,
45 | .reveal h4,
46 | .reveal h5,
47 | .reveal h6 {
48 | margin: 0 0 20px 0;
49 | color: #eeeeee;
50 | font-family: "League Gothic", Impact, sans-serif;
51 | line-height: 0.9em;
52 | letter-spacing: 0.02em;
53 | text-transform: uppercase;
54 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
55 |
56 | .reveal h1 {
57 | text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
58 |
59 | /*********************************************
60 | * LINKS
61 | *********************************************/
62 | .reveal a:not(.image) {
63 | color: #13daec;
64 | text-decoration: none;
65 | -webkit-transition: color .15s ease;
66 | -moz-transition: color .15s ease;
67 | -ms-transition: color .15s ease;
68 | -o-transition: color .15s ease;
69 | transition: color .15s ease; }
70 |
71 | .reveal a:not(.image):hover {
72 | color: #71e9f4;
73 | text-shadow: none;
74 | border: none; }
75 |
76 | .reveal .roll span:after {
77 | color: #fff;
78 | background: #0d99a5; }
79 |
80 | /*********************************************
81 | * IMAGES
82 | *********************************************/
83 | .reveal section img {
84 | margin: 15px 0px;
85 | background: rgba(255, 255, 255, 0.12);
86 | border: 4px solid #eeeeee;
87 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
88 | -webkit-transition: all .2s linear;
89 | -moz-transition: all .2s linear;
90 | -ms-transition: all .2s linear;
91 | -o-transition: all .2s linear;
92 | transition: all .2s linear; }
93 |
94 | .reveal a:hover img {
95 | background: rgba(255, 255, 255, 0.2);
96 | border-color: #13daec;
97 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
98 |
99 | /*********************************************
100 | * NAVIGATION CONTROLS
101 | *********************************************/
102 | .reveal .controls div.navigate-left,
103 | .reveal .controls div.navigate-left.enabled {
104 | border-right-color: #13daec; }
105 |
106 | .reveal .controls div.navigate-right,
107 | .reveal .controls div.navigate-right.enabled {
108 | border-left-color: #13daec; }
109 |
110 | .reveal .controls div.navigate-up,
111 | .reveal .controls div.navigate-up.enabled {
112 | border-bottom-color: #13daec; }
113 |
114 | .reveal .controls div.navigate-down,
115 | .reveal .controls div.navigate-down.enabled {
116 | border-top-color: #13daec; }
117 |
118 | .reveal .controls div.navigate-left.enabled:hover {
119 | border-right-color: #71e9f4; }
120 |
121 | .reveal .controls div.navigate-right.enabled:hover {
122 | border-left-color: #71e9f4; }
123 |
124 | .reveal .controls div.navigate-up.enabled:hover {
125 | border-bottom-color: #71e9f4; }
126 |
127 | .reveal .controls div.navigate-down.enabled:hover {
128 | border-top-color: #71e9f4; }
129 |
130 | /*********************************************
131 | * PROGRESS BAR
132 | *********************************************/
133 | .reveal .progress {
134 | background: rgba(0, 0, 0, 0.2); }
135 |
136 | .reveal .progress span {
137 | background: #13daec;
138 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
139 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
140 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
141 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
142 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
143 |
144 | /*********************************************
145 | * SLIDE NUMBER
146 | *********************************************/
147 | .reveal .slide-number {
148 | color: #13daec; }
149 |
--------------------------------------------------------------------------------
/css/theme/moon.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
2 | /**
3 | * Solarized Dark theme for reveal.js.
4 | * Author: Achim Staebler
5 | */
6 | @font-face {
7 | font-family: 'League Gothic';
8 | src: url("../../lib/font/league_gothic-webfont.eot");
9 | src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
10 | font-weight: normal;
11 | font-style: normal; }
12 |
13 | /**
14 | * Solarized colors by Ethan Schoonover
15 | */
16 | html * {
17 | color-profile: sRGB;
18 | rendering-intent: auto; }
19 |
20 | /*********************************************
21 | * GLOBAL STYLES
22 | *********************************************/
23 | body {
24 | background: #002b36;
25 | background-color: #002b36; }
26 |
27 | .reveal {
28 | font-family: "Lato", sans-serif;
29 | font-size: 36px;
30 | font-weight: normal;
31 | letter-spacing: -0.02em;
32 | color: #93a1a1; }
33 |
34 | ::selection {
35 | color: white;
36 | background: #d33682;
37 | text-shadow: none; }
38 |
39 | /*********************************************
40 | * HEADERS
41 | *********************************************/
42 | .reveal h1,
43 | .reveal h2,
44 | .reveal h3,
45 | .reveal h4,
46 | .reveal h5,
47 | .reveal h6 {
48 | margin: 0 0 20px 0;
49 | color: #eee8d5;
50 | font-family: "League Gothic", Impact, sans-serif;
51 | line-height: 0.9em;
52 | letter-spacing: 0.02em;
53 | text-transform: uppercase;
54 | text-shadow: none; }
55 |
56 | .reveal h1 {
57 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
58 |
59 | /*********************************************
60 | * LINKS
61 | *********************************************/
62 | .reveal a:not(.image) {
63 | color: #268bd2;
64 | text-decoration: none;
65 | -webkit-transition: color .15s ease;
66 | -moz-transition: color .15s ease;
67 | -ms-transition: color .15s ease;
68 | -o-transition: color .15s ease;
69 | transition: color .15s ease; }
70 |
71 | .reveal a:not(.image):hover {
72 | color: #78b9e6;
73 | text-shadow: none;
74 | border: none; }
75 |
76 | .reveal .roll span:after {
77 | color: #fff;
78 | background: #1a6091; }
79 |
80 | /*********************************************
81 | * IMAGES
82 | *********************************************/
83 | .reveal section img {
84 | margin: 15px 0px;
85 | background: rgba(255, 255, 255, 0.12);
86 | border: 4px solid #93a1a1;
87 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
88 | -webkit-transition: all .2s linear;
89 | -moz-transition: all .2s linear;
90 | -ms-transition: all .2s linear;
91 | -o-transition: all .2s linear;
92 | transition: all .2s linear; }
93 |
94 | .reveal a:hover img {
95 | background: rgba(255, 255, 255, 0.2);
96 | border-color: #268bd2;
97 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
98 |
99 | /*********************************************
100 | * NAVIGATION CONTROLS
101 | *********************************************/
102 | .reveal .controls div.navigate-left,
103 | .reveal .controls div.navigate-left.enabled {
104 | border-right-color: #268bd2; }
105 |
106 | .reveal .controls div.navigate-right,
107 | .reveal .controls div.navigate-right.enabled {
108 | border-left-color: #268bd2; }
109 |
110 | .reveal .controls div.navigate-up,
111 | .reveal .controls div.navigate-up.enabled {
112 | border-bottom-color: #268bd2; }
113 |
114 | .reveal .controls div.navigate-down,
115 | .reveal .controls div.navigate-down.enabled {
116 | border-top-color: #268bd2; }
117 |
118 | .reveal .controls div.navigate-left.enabled:hover {
119 | border-right-color: #78b9e6; }
120 |
121 | .reveal .controls div.navigate-right.enabled:hover {
122 | border-left-color: #78b9e6; }
123 |
124 | .reveal .controls div.navigate-up.enabled:hover {
125 | border-bottom-color: #78b9e6; }
126 |
127 | .reveal .controls div.navigate-down.enabled:hover {
128 | border-top-color: #78b9e6; }
129 |
130 | /*********************************************
131 | * PROGRESS BAR
132 | *********************************************/
133 | .reveal .progress {
134 | background: rgba(0, 0, 0, 0.2); }
135 |
136 | .reveal .progress span {
137 | background: #268bd2;
138 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
139 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
140 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
141 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
142 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
143 |
144 | /*********************************************
145 | * SLIDE NUMBER
146 | *********************************************/
147 | .reveal .slide-number {
148 | color: #268bd2; }
149 |
--------------------------------------------------------------------------------
/css/theme/night.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Montserrat:700);
2 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);
3 | /**
4 | * Black theme for reveal.js.
5 | *
6 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
7 | */
8 | /*********************************************
9 | * GLOBAL STYLES
10 | *********************************************/
11 | body {
12 | background: #111111;
13 | background-color: #111111; }
14 |
15 | .reveal {
16 | font-family: "Open Sans", sans-serif;
17 | font-size: 30px;
18 | font-weight: normal;
19 | letter-spacing: -0.02em;
20 | color: #eeeeee; }
21 |
22 | ::selection {
23 | color: white;
24 | background: #e7ad52;
25 | text-shadow: none; }
26 |
27 | /*********************************************
28 | * HEADERS
29 | *********************************************/
30 | .reveal h1,
31 | .reveal h2,
32 | .reveal h3,
33 | .reveal h4,
34 | .reveal h5,
35 | .reveal h6 {
36 | margin: 0 0 20px 0;
37 | color: #eeeeee;
38 | font-family: "Montserrat", Impact, sans-serif;
39 | line-height: 0.9em;
40 | letter-spacing: -0.03em;
41 | text-transform: none;
42 | text-shadow: none; }
43 |
44 | .reveal h1 {
45 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
46 |
47 | /*********************************************
48 | * LINKS
49 | *********************************************/
50 | .reveal a:not(.image) {
51 | color: #e7ad52;
52 | text-decoration: none;
53 | -webkit-transition: color .15s ease;
54 | -moz-transition: color .15s ease;
55 | -ms-transition: color .15s ease;
56 | -o-transition: color .15s ease;
57 | transition: color .15s ease; }
58 |
59 | .reveal a:not(.image):hover {
60 | color: #f3d7ac;
61 | text-shadow: none;
62 | border: none; }
63 |
64 | .reveal .roll span:after {
65 | color: #fff;
66 | background: #d08a1d; }
67 |
68 | /*********************************************
69 | * IMAGES
70 | *********************************************/
71 | .reveal section img {
72 | margin: 15px 0px;
73 | background: rgba(255, 255, 255, 0.12);
74 | border: 4px solid #eeeeee;
75 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
76 | -webkit-transition: all .2s linear;
77 | -moz-transition: all .2s linear;
78 | -ms-transition: all .2s linear;
79 | -o-transition: all .2s linear;
80 | transition: all .2s linear; }
81 |
82 | .reveal a:hover img {
83 | background: rgba(255, 255, 255, 0.2);
84 | border-color: #e7ad52;
85 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
86 |
87 | /*********************************************
88 | * NAVIGATION CONTROLS
89 | *********************************************/
90 | .reveal .controls div.navigate-left,
91 | .reveal .controls div.navigate-left.enabled {
92 | border-right-color: #e7ad52; }
93 |
94 | .reveal .controls div.navigate-right,
95 | .reveal .controls div.navigate-right.enabled {
96 | border-left-color: #e7ad52; }
97 |
98 | .reveal .controls div.navigate-up,
99 | .reveal .controls div.navigate-up.enabled {
100 | border-bottom-color: #e7ad52; }
101 |
102 | .reveal .controls div.navigate-down,
103 | .reveal .controls div.navigate-down.enabled {
104 | border-top-color: #e7ad52; }
105 |
106 | .reveal .controls div.navigate-left.enabled:hover {
107 | border-right-color: #f3d7ac; }
108 |
109 | .reveal .controls div.navigate-right.enabled:hover {
110 | border-left-color: #f3d7ac; }
111 |
112 | .reveal .controls div.navigate-up.enabled:hover {
113 | border-bottom-color: #f3d7ac; }
114 |
115 | .reveal .controls div.navigate-down.enabled:hover {
116 | border-top-color: #f3d7ac; }
117 |
118 | /*********************************************
119 | * PROGRESS BAR
120 | *********************************************/
121 | .reveal .progress {
122 | background: rgba(0, 0, 0, 0.2); }
123 |
124 | .reveal .progress span {
125 | background: #e7ad52;
126 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
127 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
128 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
129 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
130 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
131 |
132 | /*********************************************
133 | * SLIDE NUMBER
134 | *********************************************/
135 | .reveal .slide-number {
136 | color: #e7ad52; }
137 |
--------------------------------------------------------------------------------
/css/theme/serif.css:
--------------------------------------------------------------------------------
1 | /**
2 | * A simple theme for reveal.js presentations, similar
3 | * to the default theme. The accent color is brown.
4 | *
5 | * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
6 | */
7 | .reveal a:not(.image) {
8 | line-height: 1.3em; }
9 |
10 | /*********************************************
11 | * GLOBAL STYLES
12 | *********************************************/
13 | body {
14 | background: #f0f1eb;
15 | background-color: #f0f1eb; }
16 |
17 | .reveal {
18 | font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
19 | font-size: 36px;
20 | font-weight: normal;
21 | letter-spacing: -0.02em;
22 | color: black; }
23 |
24 | ::selection {
25 | color: white;
26 | background: #26351c;
27 | text-shadow: none; }
28 |
29 | /*********************************************
30 | * HEADERS
31 | *********************************************/
32 | .reveal h1,
33 | .reveal h2,
34 | .reveal h3,
35 | .reveal h4,
36 | .reveal h5,
37 | .reveal h6 {
38 | margin: 0 0 20px 0;
39 | color: #383d3d;
40 | font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
41 | line-height: 0.9em;
42 | letter-spacing: 0.02em;
43 | text-transform: none;
44 | text-shadow: none; }
45 |
46 | .reveal h1 {
47 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
48 |
49 | /*********************************************
50 | * LINKS
51 | *********************************************/
52 | .reveal a:not(.image) {
53 | color: #51483d;
54 | text-decoration: none;
55 | -webkit-transition: color .15s ease;
56 | -moz-transition: color .15s ease;
57 | -ms-transition: color .15s ease;
58 | -o-transition: color .15s ease;
59 | transition: color .15s ease; }
60 |
61 | .reveal a:not(.image):hover {
62 | color: #8b7c69;
63 | text-shadow: none;
64 | border: none; }
65 |
66 | .reveal .roll span:after {
67 | color: #fff;
68 | background: #25211c; }
69 |
70 | /*********************************************
71 | * IMAGES
72 | *********************************************/
73 | .reveal section img {
74 | margin: 15px 0px;
75 | background: rgba(255, 255, 255, 0.12);
76 | border: 4px solid black;
77 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
78 | -webkit-transition: all .2s linear;
79 | -moz-transition: all .2s linear;
80 | -ms-transition: all .2s linear;
81 | -o-transition: all .2s linear;
82 | transition: all .2s linear; }
83 |
84 | .reveal a:hover img {
85 | background: rgba(255, 255, 255, 0.2);
86 | border-color: #51483d;
87 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
88 |
89 | /*********************************************
90 | * NAVIGATION CONTROLS
91 | *********************************************/
92 | .reveal .controls div.navigate-left,
93 | .reveal .controls div.navigate-left.enabled {
94 | border-right-color: #51483d; }
95 |
96 | .reveal .controls div.navigate-right,
97 | .reveal .controls div.navigate-right.enabled {
98 | border-left-color: #51483d; }
99 |
100 | .reveal .controls div.navigate-up,
101 | .reveal .controls div.navigate-up.enabled {
102 | border-bottom-color: #51483d; }
103 |
104 | .reveal .controls div.navigate-down,
105 | .reveal .controls div.navigate-down.enabled {
106 | border-top-color: #51483d; }
107 |
108 | .reveal .controls div.navigate-left.enabled:hover {
109 | border-right-color: #8b7c69; }
110 |
111 | .reveal .controls div.navigate-right.enabled:hover {
112 | border-left-color: #8b7c69; }
113 |
114 | .reveal .controls div.navigate-up.enabled:hover {
115 | border-bottom-color: #8b7c69; }
116 |
117 | .reveal .controls div.navigate-down.enabled:hover {
118 | border-top-color: #8b7c69; }
119 |
120 | /*********************************************
121 | * PROGRESS BAR
122 | *********************************************/
123 | .reveal .progress {
124 | background: rgba(0, 0, 0, 0.2); }
125 |
126 | .reveal .progress span {
127 | background: #51483d;
128 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
129 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
130 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
131 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
132 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
133 |
134 | /*********************************************
135 | * SLIDE NUMBER
136 | *********************************************/
137 | .reveal .slide-number {
138 | color: #51483d; }
139 |
--------------------------------------------------------------------------------
/css/theme/simple.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
2 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
3 | /**
4 | * A simple theme for reveal.js presentations, similar
5 | * to the default theme. The accent color is darkblue.
6 | *
7 | * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
8 | * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
9 | */
10 | /*********************************************
11 | * GLOBAL STYLES
12 | *********************************************/
13 | body {
14 | background: white;
15 | background-color: white; }
16 |
17 | .reveal {
18 | font-family: "Lato", sans-serif;
19 | font-size: 36px;
20 | font-weight: normal;
21 | letter-spacing: -0.02em;
22 | color: black; }
23 |
24 | ::selection {
25 | color: white;
26 | background: rgba(0, 0, 0, 0.99);
27 | text-shadow: none; }
28 |
29 | /*********************************************
30 | * HEADERS
31 | *********************************************/
32 | .reveal h1,
33 | .reveal h2,
34 | .reveal h3,
35 | .reveal h4,
36 | .reveal h5,
37 | .reveal h6 {
38 | margin: 0 0 20px 0;
39 | color: black;
40 | font-family: "News Cycle", Impact, sans-serif;
41 | line-height: 0.9em;
42 | letter-spacing: 0.02em;
43 | text-transform: none;
44 | text-shadow: none; }
45 |
46 | .reveal h1 {
47 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
48 |
49 | /*********************************************
50 | * LINKS
51 | *********************************************/
52 | .reveal a:not(.image) {
53 | color: darkblue;
54 | text-decoration: none;
55 | -webkit-transition: color .15s ease;
56 | -moz-transition: color .15s ease;
57 | -ms-transition: color .15s ease;
58 | -o-transition: color .15s ease;
59 | transition: color .15s ease; }
60 |
61 | .reveal a:not(.image):hover {
62 | color: #0000f1;
63 | text-shadow: none;
64 | border: none; }
65 |
66 | .reveal .roll span:after {
67 | color: #fff;
68 | background: #00003f; }
69 |
70 | /*********************************************
71 | * IMAGES
72 | *********************************************/
73 | .reveal section img {
74 | margin: 15px 0px;
75 | background: rgba(255, 255, 255, 0.12);
76 | border: 4px solid black;
77 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
78 | -webkit-transition: all .2s linear;
79 | -moz-transition: all .2s linear;
80 | -ms-transition: all .2s linear;
81 | -o-transition: all .2s linear;
82 | transition: all .2s linear; }
83 |
84 | .reveal a:hover img {
85 | background: rgba(255, 255, 255, 0.2);
86 | border-color: darkblue;
87 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
88 |
89 | /*********************************************
90 | * NAVIGATION CONTROLS
91 | *********************************************/
92 | .reveal .controls div.navigate-left,
93 | .reveal .controls div.navigate-left.enabled {
94 | border-right-color: darkblue; }
95 |
96 | .reveal .controls div.navigate-right,
97 | .reveal .controls div.navigate-right.enabled {
98 | border-left-color: darkblue; }
99 |
100 | .reveal .controls div.navigate-up,
101 | .reveal .controls div.navigate-up.enabled {
102 | border-bottom-color: darkblue; }
103 |
104 | .reveal .controls div.navigate-down,
105 | .reveal .controls div.navigate-down.enabled {
106 | border-top-color: darkblue; }
107 |
108 | .reveal .controls div.navigate-left.enabled:hover {
109 | border-right-color: #0000f1; }
110 |
111 | .reveal .controls div.navigate-right.enabled:hover {
112 | border-left-color: #0000f1; }
113 |
114 | .reveal .controls div.navigate-up.enabled:hover {
115 | border-bottom-color: #0000f1; }
116 |
117 | .reveal .controls div.navigate-down.enabled:hover {
118 | border-top-color: #0000f1; }
119 |
120 | /*********************************************
121 | * PROGRESS BAR
122 | *********************************************/
123 | .reveal .progress {
124 | background: rgba(0, 0, 0, 0.2); }
125 |
126 | .reveal .progress span {
127 | background: darkblue;
128 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
129 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
130 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
131 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
132 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
133 |
134 | /*********************************************
135 | * SLIDE NUMBER
136 | *********************************************/
137 | .reveal .slide-number {
138 | color: darkblue; }
139 |
--------------------------------------------------------------------------------
/css/theme/sky.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
2 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
3 | /**
4 | * Sky theme for reveal.js.
5 | *
6 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
7 | */
8 | .reveal a:not(.image) {
9 | line-height: 1.3em; }
10 |
11 | /*********************************************
12 | * GLOBAL STYLES
13 | *********************************************/
14 | body {
15 | background: #add9e4;
16 | background: -moz-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
17 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #f7fbfc), color-stop(100%, #add9e4));
18 | background: -webkit-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
19 | background: -o-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
20 | background: -ms-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
21 | background: radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
22 | background-color: #f7fbfc; }
23 |
24 | .reveal {
25 | font-family: "Open Sans", sans-serif;
26 | font-size: 36px;
27 | font-weight: normal;
28 | letter-spacing: -0.02em;
29 | color: #333333; }
30 |
31 | ::selection {
32 | color: white;
33 | background: #134674;
34 | text-shadow: none; }
35 |
36 | /*********************************************
37 | * HEADERS
38 | *********************************************/
39 | .reveal h1,
40 | .reveal h2,
41 | .reveal h3,
42 | .reveal h4,
43 | .reveal h5,
44 | .reveal h6 {
45 | margin: 0 0 20px 0;
46 | color: #333333;
47 | font-family: "Quicksand", sans-serif;
48 | line-height: 0.9em;
49 | letter-spacing: -0.08em;
50 | text-transform: uppercase;
51 | text-shadow: none; }
52 |
53 | .reveal h1 {
54 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
55 |
56 | /*********************************************
57 | * LINKS
58 | *********************************************/
59 | .reveal a:not(.image) {
60 | color: #3b759e;
61 | text-decoration: none;
62 | -webkit-transition: color .15s ease;
63 | -moz-transition: color .15s ease;
64 | -ms-transition: color .15s ease;
65 | -o-transition: color .15s ease;
66 | transition: color .15s ease; }
67 |
68 | .reveal a:not(.image):hover {
69 | color: #74a7cb;
70 | text-shadow: none;
71 | border: none; }
72 |
73 | .reveal .roll span:after {
74 | color: #fff;
75 | background: #264c66; }
76 |
77 | /*********************************************
78 | * IMAGES
79 | *********************************************/
80 | .reveal section img {
81 | margin: 15px 0px;
82 | background: rgba(255, 255, 255, 0.12);
83 | border: 4px solid #333333;
84 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
85 | -webkit-transition: all .2s linear;
86 | -moz-transition: all .2s linear;
87 | -ms-transition: all .2s linear;
88 | -o-transition: all .2s linear;
89 | transition: all .2s linear; }
90 |
91 | .reveal a:hover img {
92 | background: rgba(255, 255, 255, 0.2);
93 | border-color: #3b759e;
94 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
95 |
96 | /*********************************************
97 | * NAVIGATION CONTROLS
98 | *********************************************/
99 | .reveal .controls div.navigate-left,
100 | .reveal .controls div.navigate-left.enabled {
101 | border-right-color: #3b759e; }
102 |
103 | .reveal .controls div.navigate-right,
104 | .reveal .controls div.navigate-right.enabled {
105 | border-left-color: #3b759e; }
106 |
107 | .reveal .controls div.navigate-up,
108 | .reveal .controls div.navigate-up.enabled {
109 | border-bottom-color: #3b759e; }
110 |
111 | .reveal .controls div.navigate-down,
112 | .reveal .controls div.navigate-down.enabled {
113 | border-top-color: #3b759e; }
114 |
115 | .reveal .controls div.navigate-left.enabled:hover {
116 | border-right-color: #74a7cb; }
117 |
118 | .reveal .controls div.navigate-right.enabled:hover {
119 | border-left-color: #74a7cb; }
120 |
121 | .reveal .controls div.navigate-up.enabled:hover {
122 | border-bottom-color: #74a7cb; }
123 |
124 | .reveal .controls div.navigate-down.enabled:hover {
125 | border-top-color: #74a7cb; }
126 |
127 | /*********************************************
128 | * PROGRESS BAR
129 | *********************************************/
130 | .reveal .progress {
131 | background: rgba(0, 0, 0, 0.2); }
132 |
133 | .reveal .progress span {
134 | background: #3b759e;
135 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
136 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
137 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
138 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
139 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
140 |
141 | /*********************************************
142 | * SLIDE NUMBER
143 | *********************************************/
144 | .reveal .slide-number {
145 | color: #3b759e; }
146 |
--------------------------------------------------------------------------------
/css/theme/solarized.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
2 | /**
3 | * Solarized Light theme for reveal.js.
4 | * Author: Achim Staebler
5 | */
6 | @font-face {
7 | font-family: 'League Gothic';
8 | src: url("../../lib/font/league_gothic-webfont.eot");
9 | src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
10 | font-weight: normal;
11 | font-style: normal; }
12 |
13 | /**
14 | * Solarized colors by Ethan Schoonover
15 | */
16 | html * {
17 | color-profile: sRGB;
18 | rendering-intent: auto; }
19 |
20 | /*********************************************
21 | * GLOBAL STYLES
22 | *********************************************/
23 | body {
24 | background: #fdf6e3;
25 | background-color: #fdf6e3; }
26 |
27 | .reveal {
28 | font-family: "Lato", sans-serif;
29 | font-size: 36px;
30 | font-weight: normal;
31 | letter-spacing: -0.02em;
32 | color: #657b83; }
33 |
34 | ::selection {
35 | color: white;
36 | background: #d33682;
37 | text-shadow: none; }
38 |
39 | /*********************************************
40 | * HEADERS
41 | *********************************************/
42 | .reveal h1,
43 | .reveal h2,
44 | .reveal h3,
45 | .reveal h4,
46 | .reveal h5,
47 | .reveal h6 {
48 | margin: 0 0 20px 0;
49 | color: #586e75;
50 | font-family: "League Gothic", Impact, sans-serif;
51 | line-height: 0.9em;
52 | letter-spacing: 0.02em;
53 | text-transform: uppercase;
54 | text-shadow: none; }
55 |
56 | .reveal h1 {
57 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
58 |
59 | /*********************************************
60 | * LINKS
61 | *********************************************/
62 | .reveal a:not(.image) {
63 | color: #268bd2;
64 | text-decoration: none;
65 | -webkit-transition: color .15s ease;
66 | -moz-transition: color .15s ease;
67 | -ms-transition: color .15s ease;
68 | -o-transition: color .15s ease;
69 | transition: color .15s ease; }
70 |
71 | .reveal a:not(.image):hover {
72 | color: #78b9e6;
73 | text-shadow: none;
74 | border: none; }
75 |
76 | .reveal .roll span:after {
77 | color: #fff;
78 | background: #1a6091; }
79 |
80 | /*********************************************
81 | * IMAGES
82 | *********************************************/
83 | .reveal section img {
84 | margin: 15px 0px;
85 | background: rgba(255, 255, 255, 0.12);
86 | border: 4px solid #657b83;
87 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
88 | -webkit-transition: all .2s linear;
89 | -moz-transition: all .2s linear;
90 | -ms-transition: all .2s linear;
91 | -o-transition: all .2s linear;
92 | transition: all .2s linear; }
93 |
94 | .reveal a:hover img {
95 | background: rgba(255, 255, 255, 0.2);
96 | border-color: #268bd2;
97 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
98 |
99 | /*********************************************
100 | * NAVIGATION CONTROLS
101 | *********************************************/
102 | .reveal .controls div.navigate-left,
103 | .reveal .controls div.navigate-left.enabled {
104 | border-right-color: #268bd2; }
105 |
106 | .reveal .controls div.navigate-right,
107 | .reveal .controls div.navigate-right.enabled {
108 | border-left-color: #268bd2; }
109 |
110 | .reveal .controls div.navigate-up,
111 | .reveal .controls div.navigate-up.enabled {
112 | border-bottom-color: #268bd2; }
113 |
114 | .reveal .controls div.navigate-down,
115 | .reveal .controls div.navigate-down.enabled {
116 | border-top-color: #268bd2; }
117 |
118 | .reveal .controls div.navigate-left.enabled:hover {
119 | border-right-color: #78b9e6; }
120 |
121 | .reveal .controls div.navigate-right.enabled:hover {
122 | border-left-color: #78b9e6; }
123 |
124 | .reveal .controls div.navigate-up.enabled:hover {
125 | border-bottom-color: #78b9e6; }
126 |
127 | .reveal .controls div.navigate-down.enabled:hover {
128 | border-top-color: #78b9e6; }
129 |
130 | /*********************************************
131 | * PROGRESS BAR
132 | *********************************************/
133 | .reveal .progress {
134 | background: rgba(0, 0, 0, 0.2); }
135 |
136 | .reveal .progress span {
137 | background: #268bd2;
138 | -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
139 | -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
140 | -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
141 | -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
142 | transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
143 |
144 | /*********************************************
145 | * SLIDE NUMBER
146 | *********************************************/
147 | .reveal .slide-number {
148 | color: #268bd2; }
149 |
--------------------------------------------------------------------------------
/css/theme/source/beige.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Beige theme for reveal.js.
3 | *
4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
5 | */
6 |
7 |
8 | // Default mixins and settings -----------------
9 | @import "../template/mixins";
10 | @import "../template/settings";
11 | // ---------------------------------------------
12 |
13 |
14 |
15 | // Include theme-specific fonts
16 | @font-face {
17 | font-family: 'League Gothic';
18 | src: url('../../lib/font/league_gothic-webfont.eot');
19 | src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
20 | url('../../lib/font/league_gothic-webfont.woff') format('woff'),
21 | url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
22 | url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
23 |
24 | font-weight: normal;
25 | font-style: normal;
26 | }
27 |
28 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
29 |
30 |
31 | // Override theme settings (see ../template/settings.scss)
32 | $mainColor: #333;
33 | $headingColor: #333;
34 | $headingTextShadow: none;
35 | $backgroundColor: #f7f3de;
36 | $linkColor: #8b743d;
37 | $linkColorHover: lighten( $linkColor, 20% );
38 | $selectionBackgroundColor: rgba(79, 64, 28, 0.99);
39 | $heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
40 |
41 | // Background generator
42 | @mixin bodyBackground() {
43 | @include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) );
44 | }
45 |
46 |
47 |
48 | // Theme template ------------------------------
49 | @import "../template/theme";
50 | // ---------------------------------------------
--------------------------------------------------------------------------------
/css/theme/source/blood.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Blood theme for reveal.js
3 | * Author: Walther http://github.com/Walther
4 | *
5 | * Designed to be used with highlight.js theme
6 | * "monokai_sublime.css" available from
7 | * https://github.com/isagalaev/highlight.js/
8 | *
9 | * For other themes, change $codeBackground accordingly.
10 | *
11 | */
12 |
13 | // Default mixins and settings -----------------
14 | @import "../template/mixins";
15 | @import "../template/settings";
16 | // ---------------------------------------------
17 |
18 | // Include theme-specific fonts
19 |
20 | @import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);
21 |
22 | // Colors used in the theme
23 | $blood: #a23;
24 | $coal: #222;
25 | $codeBackground: #23241f;
26 |
27 | // Main text
28 | $mainFont: Ubuntu, 'sans-serif';
29 | $mainFontSize: 36px;
30 | $mainColor: #eee;
31 |
32 | // Headings
33 | $headingFont: Ubuntu, 'sans-serif';
34 | $headingTextShadow: 2px 2px 2px $coal;
35 |
36 | // h1 shadow, borrowed humbly from
37 | // (c) Default theme by Hakim El Hattab
38 | $heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
39 |
40 | // Links
41 | $linkColor: $blood;
42 | $linkColorHover: lighten( $linkColor, 20% );
43 |
44 | // Text selection
45 | $selectionBackgroundColor: $blood;
46 | $selectionColor: #fff;
47 |
48 | // Background generator
49 | @mixin bodyBackground() {
50 | @include radial-gradient( $coal, lighten( $coal, 25% ) );
51 | }
52 |
53 | // Theme template ------------------------------
54 | @import "../template/theme";
55 | // ---------------------------------------------
56 |
57 | // some overrides after theme template import
58 |
59 | .reveal p {
60 | font-weight: 300;
61 | text-shadow: 1px 1px $coal;
62 | }
63 |
64 | .reveal h1,
65 | .reveal h2,
66 | .reveal h3,
67 | .reveal h4,
68 | .reveal h5,
69 | .reveal h6 {
70 | font-weight: 700;
71 | }
72 |
73 | .reveal a:not(.image),
74 | .reveal a:not(.image):hover {
75 | text-shadow: 2px 2px 2px #000;
76 | }
77 |
78 | .reveal small a:not(.image),
79 | .reveal small a:not(.image):hover {
80 | text-shadow: 1px 1px 1px #000;
81 | }
82 |
83 | .reveal p code {
84 | background-color: $codeBackground;
85 | display: inline-block;
86 | border-radius: 7px;
87 | }
88 |
89 | .reveal small code {
90 | vertical-align: baseline;
91 | }
--------------------------------------------------------------------------------
/css/theme/source/default.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Default theme for reveal.js.
3 | *
4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
5 | */
6 |
7 |
8 | // Default mixins and settings -----------------
9 | @import "../template/mixins";
10 | @import "../template/settings";
11 | // ---------------------------------------------
12 |
13 |
14 |
15 | // Include theme-specific fonts
16 | @font-face {
17 | font-family: 'League Gothic';
18 | src: url('../../lib/font/league_gothic-webfont.eot');
19 | src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
20 | url('../../lib/font/league_gothic-webfont.woff') format('woff'),
21 | url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
22 | url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
23 |
24 | font-weight: normal;
25 | font-style: normal;
26 | }
27 |
28 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
29 |
30 | // Override theme settings (see ../template/settings.scss)
31 | $heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
32 |
33 | // Background generator
34 | @mixin bodyBackground() {
35 | @include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) );
36 | }
37 |
38 |
39 |
40 | // Theme template ------------------------------
41 | @import "../template/theme";
42 | // ---------------------------------------------
--------------------------------------------------------------------------------
/css/theme/source/moon.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Solarized Dark theme for reveal.js.
3 | * Author: Achim Staebler
4 | */
5 |
6 |
7 | // Default mixins and settings -----------------
8 | @import "../template/mixins";
9 | @import "../template/settings";
10 | // ---------------------------------------------
11 |
12 |
13 |
14 | // Include theme-specific fonts
15 | @font-face {
16 | font-family: 'League Gothic';
17 | src: url('../../lib/font/league_gothic-webfont.eot');
18 | src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
19 | url('../../lib/font/league_gothic-webfont.woff') format('woff'),
20 | url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
21 | url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
22 |
23 | font-weight: normal;
24 | font-style: normal;
25 | }
26 |
27 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
28 |
29 | /**
30 | * Solarized colors by Ethan Schoonover
31 | */
32 | html * {
33 | color-profile: sRGB;
34 | rendering-intent: auto;
35 | }
36 |
37 | // Solarized colors
38 | $base03: #002b36;
39 | $base02: #073642;
40 | $base01: #586e75;
41 | $base00: #657b83;
42 | $base0: #839496;
43 | $base1: #93a1a1;
44 | $base2: #eee8d5;
45 | $base3: #fdf6e3;
46 | $yellow: #b58900;
47 | $orange: #cb4b16;
48 | $red: #dc322f;
49 | $magenta: #d33682;
50 | $violet: #6c71c4;
51 | $blue: #268bd2;
52 | $cyan: #2aa198;
53 | $green: #859900;
54 |
55 | // Override theme settings (see ../template/settings.scss)
56 | $mainColor: $base1;
57 | $headingColor: $base2;
58 | $headingTextShadow: none;
59 | $backgroundColor: $base03;
60 | $linkColor: $blue;
61 | $linkColorHover: lighten( $linkColor, 20% );
62 | $selectionBackgroundColor: $magenta;
63 |
64 |
65 |
66 | // Theme template ------------------------------
67 | @import "../template/theme";
68 | // ---------------------------------------------
69 |
--------------------------------------------------------------------------------
/css/theme/source/night.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Black theme for reveal.js.
3 | *
4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
5 | */
6 |
7 |
8 | // Default mixins and settings -----------------
9 | @import "../template/mixins";
10 | @import "../template/settings";
11 | // ---------------------------------------------
12 |
13 |
14 | // Include theme-specific fonts
15 | @import url(https://fonts.googleapis.com/css?family=Montserrat:700);
16 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);
17 |
18 |
19 | // Override theme settings (see ../template/settings.scss)
20 | $backgroundColor: #111;
21 |
22 | $mainFont: 'Open Sans', sans-serif;
23 | $linkColor: #e7ad52;
24 | $linkColorHover: lighten( $linkColor, 20% );
25 | $headingFont: 'Montserrat', Impact, sans-serif;
26 | $headingTextShadow: none;
27 | $headingLetterSpacing: -0.03em;
28 | $headingTextTransform: none;
29 | $selectionBackgroundColor: #e7ad52;
30 | $mainFontSize: 30px;
31 |
32 |
33 | // Theme template ------------------------------
34 | @import "../template/theme";
35 | // ---------------------------------------------
--------------------------------------------------------------------------------
/css/theme/source/serif.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * A simple theme for reveal.js presentations, similar
3 | * to the default theme. The accent color is brown.
4 | *
5 | * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
6 | */
7 |
8 |
9 | // Default mixins and settings -----------------
10 | @import "../template/mixins";
11 | @import "../template/settings";
12 | // ---------------------------------------------
13 |
14 |
15 |
16 | // Override theme settings (see ../template/settings.scss)
17 | $mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
18 | $mainColor: #000;
19 | $headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
20 | $headingColor: #383D3D;
21 | $headingTextShadow: none;
22 | $headingTextTransform: none;
23 | $backgroundColor: #F0F1EB;
24 | $linkColor: #51483D;
25 | $linkColorHover: lighten( $linkColor, 20% );
26 | $selectionBackgroundColor: #26351C;
27 |
28 | .reveal a:not(.image) {
29 | line-height: 1.3em;
30 | }
31 |
32 |
33 | // Theme template ------------------------------
34 | @import "../template/theme";
35 | // ---------------------------------------------
36 |
--------------------------------------------------------------------------------
/css/theme/source/simple.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * A simple theme for reveal.js presentations, similar
3 | * to the default theme. The accent color is darkblue.
4 | *
5 | * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
6 | * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
7 | */
8 |
9 |
10 | // Default mixins and settings -----------------
11 | @import "../template/mixins";
12 | @import "../template/settings";
13 | // ---------------------------------------------
14 |
15 |
16 |
17 | // Include theme-specific fonts
18 | @import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
19 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
20 |
21 |
22 | // Override theme settings (see ../template/settings.scss)
23 | $mainFont: 'Lato', sans-serif;
24 | $mainColor: #000;
25 | $headingFont: 'News Cycle', Impact, sans-serif;
26 | $headingColor: #000;
27 | $headingTextShadow: none;
28 | $headingTextTransform: none;
29 | $backgroundColor: #fff;
30 | $linkColor: #00008B;
31 | $linkColorHover: lighten( $linkColor, 20% );
32 | $selectionBackgroundColor: rgba(0, 0, 0, 0.99);
33 |
34 |
35 |
36 | // Theme template ------------------------------
37 | @import "../template/theme";
38 | // ---------------------------------------------
--------------------------------------------------------------------------------
/css/theme/source/sky.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Sky theme for reveal.js.
3 | *
4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
5 | */
6 |
7 |
8 | // Default mixins and settings -----------------
9 | @import "../template/mixins";
10 | @import "../template/settings";
11 | // ---------------------------------------------
12 |
13 |
14 |
15 | // Include theme-specific fonts
16 | @import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
17 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
18 |
19 |
20 | // Override theme settings (see ../template/settings.scss)
21 | $mainFont: 'Open Sans', sans-serif;
22 | $mainColor: #333;
23 | $headingFont: 'Quicksand', sans-serif;
24 | $headingColor: #333;
25 | $headingLetterSpacing: -0.08em;
26 | $headingTextShadow: none;
27 | $backgroundColor: #f7fbfc;
28 | $linkColor: #3b759e;
29 | $linkColorHover: lighten( $linkColor, 20% );
30 | $selectionBackgroundColor: #134674;
31 |
32 | // Fix links so they are not cut off
33 | .reveal a:not(.image) {
34 | line-height: 1.3em;
35 | }
36 |
37 | // Background generator
38 | @mixin bodyBackground() {
39 | @include radial-gradient( #add9e4, #f7fbfc );
40 | }
41 |
42 |
43 |
44 | // Theme template ------------------------------
45 | @import "../template/theme";
46 | // ---------------------------------------------
47 |
--------------------------------------------------------------------------------
/css/theme/source/solarized.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Solarized Light theme for reveal.js.
3 | * Author: Achim Staebler
4 | */
5 |
6 |
7 | // Default mixins and settings -----------------
8 | @import "../template/mixins";
9 | @import "../template/settings";
10 | // ---------------------------------------------
11 |
12 |
13 |
14 | // Include theme-specific fonts
15 | @font-face {
16 | font-family: 'League Gothic';
17 | src: url('../../lib/font/league_gothic-webfont.eot');
18 | src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
19 | url('../../lib/font/league_gothic-webfont.woff') format('woff'),
20 | url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
21 | url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
22 |
23 | font-weight: normal;
24 | font-style: normal;
25 | }
26 |
27 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
28 |
29 |
30 | /**
31 | * Solarized colors by Ethan Schoonover
32 | */
33 | html * {
34 | color-profile: sRGB;
35 | rendering-intent: auto;
36 | }
37 |
38 | // Solarized colors
39 | $base03: #002b36;
40 | $base02: #073642;
41 | $base01: #586e75;
42 | $base00: #657b83;
43 | $base0: #839496;
44 | $base1: #93a1a1;
45 | $base2: #eee8d5;
46 | $base3: #fdf6e3;
47 | $yellow: #b58900;
48 | $orange: #cb4b16;
49 | $red: #dc322f;
50 | $magenta: #d33682;
51 | $violet: #6c71c4;
52 | $blue: #268bd2;
53 | $cyan: #2aa198;
54 | $green: #859900;
55 |
56 | // Override theme settings (see ../template/settings.scss)
57 | $mainColor: $base00;
58 | $headingColor: $base01;
59 | $headingTextShadow: none;
60 | $backgroundColor: $base3;
61 | $linkColor: $blue;
62 | $linkColorHover: lighten( $linkColor, 20% );
63 | $selectionBackgroundColor: $magenta;
64 |
65 | // Background generator
66 | // @mixin bodyBackground() {
67 | // @include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) );
68 | // }
69 |
70 |
71 |
72 | // Theme template ------------------------------
73 | @import "../template/theme";
74 | // ---------------------------------------------
75 |
--------------------------------------------------------------------------------
/css/theme/template/mixins.scss:
--------------------------------------------------------------------------------
1 | @mixin vertical-gradient( $top, $bottom ) {
2 | background: $top;
3 | background: -moz-linear-gradient( top, $top 0%, $bottom 100% );
4 | background: -webkit-gradient( linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom) );
5 | background: -webkit-linear-gradient( top, $top 0%, $bottom 100% );
6 | background: -o-linear-gradient( top, $top 0%, $bottom 100% );
7 | background: -ms-linear-gradient( top, $top 0%, $bottom 100% );
8 | background: linear-gradient( top, $top 0%, $bottom 100% );
9 | }
10 |
11 | @mixin horizontal-gradient( $top, $bottom ) {
12 | background: $top;
13 | background: -moz-linear-gradient( left, $top 0%, $bottom 100% );
14 | background: -webkit-gradient( linear, left top, right top, color-stop(0%,$top), color-stop(100%,$bottom) );
15 | background: -webkit-linear-gradient( left, $top 0%, $bottom 100% );
16 | background: -o-linear-gradient( left, $top 0%, $bottom 100% );
17 | background: -ms-linear-gradient( left, $top 0%, $bottom 100% );
18 | background: linear-gradient( left, $top 0%, $bottom 100% );
19 | }
20 |
21 | @mixin radial-gradient( $outer, $inner, $type: circle ) {
22 | background: $outer;
23 | background: -moz-radial-gradient( center, $type cover, $inner 0%, $outer 100% );
24 | background: -webkit-gradient( radial, center center, 0px, center center, 100%, color-stop(0%,$inner), color-stop(100%,$outer) );
25 | background: -webkit-radial-gradient( center, $type cover, $inner 0%, $outer 100% );
26 | background: -o-radial-gradient( center, $type cover, $inner 0%, $outer 100% );
27 | background: -ms-radial-gradient( center, $type cover, $inner 0%, $outer 100% );
28 | background: radial-gradient( center, $type cover, $inner 0%, $outer 100% );
29 | }
--------------------------------------------------------------------------------
/css/theme/template/settings.scss:
--------------------------------------------------------------------------------
1 | // Base settings for all themes that can optionally be
2 | // overridden by the super-theme
3 |
4 | // Background of the presentation
5 | $backgroundColor: #2b2b2b;
6 |
7 | // Primary/body text
8 | $mainFont: 'Lato', sans-serif;
9 | $mainFontSize: 36px;
10 | $mainColor: #eee;
11 |
12 | // Headings
13 | $headingMargin: 0 0 20px 0;
14 | $headingFont: 'League Gothic', Impact, sans-serif;
15 | $headingColor: #eee;
16 | $headingLineHeight: 0.9em;
17 | $headingLetterSpacing: 0.02em;
18 | $headingTextTransform: uppercase;
19 | $headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2);
20 | $heading1TextShadow: $headingTextShadow;
21 |
22 | // Links and actions
23 | $linkColor: #13DAEC;
24 | $linkColorHover: lighten( $linkColor, 20% );
25 |
26 | // Text selection
27 | $selectionBackgroundColor: #FF5E99;
28 | $selectionColor: #fff;
29 |
30 | // Generates the presentation background, can be overridden
31 | // to return a background image or gradient
32 | @mixin bodyBackground() {
33 | background: $backgroundColor;
34 | }
--------------------------------------------------------------------------------
/css/theme/template/theme.scss:
--------------------------------------------------------------------------------
1 | // Base theme template for reveal.js
2 |
3 | /*********************************************
4 | * GLOBAL STYLES
5 | *********************************************/
6 |
7 | body {
8 | @include bodyBackground();
9 | background-color: $backgroundColor;
10 | }
11 |
12 | .reveal {
13 | font-family: $mainFont;
14 | font-size: $mainFontSize;
15 | font-weight: normal;
16 | letter-spacing: -0.02em;
17 | color: $mainColor;
18 | }
19 |
20 | ::selection {
21 | color: $selectionColor;
22 | background: $selectionBackgroundColor;
23 | text-shadow: none;
24 | }
25 |
26 | /*********************************************
27 | * HEADERS
28 | *********************************************/
29 |
30 | .reveal h1,
31 | .reveal h2,
32 | .reveal h3,
33 | .reveal h4,
34 | .reveal h5,
35 | .reveal h6 {
36 | margin: $headingMargin;
37 | color: $headingColor;
38 |
39 | font-family: $headingFont;
40 | line-height: $headingLineHeight;
41 | letter-spacing: $headingLetterSpacing;
42 |
43 | text-transform: $headingTextTransform;
44 | text-shadow: $headingTextShadow;
45 | }
46 |
47 | .reveal h1 {
48 | text-shadow: $heading1TextShadow;
49 | }
50 |
51 |
52 | /*********************************************
53 | * LINKS
54 | *********************************************/
55 |
56 | .reveal a:not(.image) {
57 | color: $linkColor;
58 | text-decoration: none;
59 |
60 | -webkit-transition: color .15s ease;
61 | -moz-transition: color .15s ease;
62 | -ms-transition: color .15s ease;
63 | -o-transition: color .15s ease;
64 | transition: color .15s ease;
65 | }
66 | .reveal a:not(.image):hover {
67 | color: $linkColorHover;
68 |
69 | text-shadow: none;
70 | border: none;
71 | }
72 |
73 | .reveal .roll span:after {
74 | color: #fff;
75 | background: darken( $linkColor, 15% );
76 | }
77 |
78 |
79 | /*********************************************
80 | * IMAGES
81 | *********************************************/
82 |
83 | .reveal section img {
84 | margin: 15px 0px;
85 | background: rgba(255,255,255,0.12);
86 | border: 4px solid $mainColor;
87 |
88 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
89 |
90 | -webkit-transition: all .2s linear;
91 | -moz-transition: all .2s linear;
92 | -ms-transition: all .2s linear;
93 | -o-transition: all .2s linear;
94 | transition: all .2s linear;
95 | }
96 |
97 | .reveal a:hover img {
98 | background: rgba(255,255,255,0.2);
99 | border-color: $linkColor;
100 |
101 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
102 | }
103 |
104 |
105 | /*********************************************
106 | * NAVIGATION CONTROLS
107 | *********************************************/
108 |
109 | .reveal .controls div.navigate-left,
110 | .reveal .controls div.navigate-left.enabled {
111 | border-right-color: $linkColor;
112 | }
113 |
114 | .reveal .controls div.navigate-right,
115 | .reveal .controls div.navigate-right.enabled {
116 | border-left-color: $linkColor;
117 | }
118 |
119 | .reveal .controls div.navigate-up,
120 | .reveal .controls div.navigate-up.enabled {
121 | border-bottom-color: $linkColor;
122 | }
123 |
124 | .reveal .controls div.navigate-down,
125 | .reveal .controls div.navigate-down.enabled {
126 | border-top-color: $linkColor;
127 | }
128 |
129 | .reveal .controls div.navigate-left.enabled:hover {
130 | border-right-color: $linkColorHover;
131 | }
132 |
133 | .reveal .controls div.navigate-right.enabled:hover {
134 | border-left-color: $linkColorHover;
135 | }
136 |
137 | .reveal .controls div.navigate-up.enabled:hover {
138 | border-bottom-color: $linkColorHover;
139 | }
140 |
141 | .reveal .controls div.navigate-down.enabled:hover {
142 | border-top-color: $linkColorHover;
143 | }
144 |
145 |
146 | /*********************************************
147 | * PROGRESS BAR
148 | *********************************************/
149 |
150 | .reveal .progress {
151 | background: rgba(0,0,0,0.2);
152 | }
153 | .reveal .progress span {
154 | background: $linkColor;
155 |
156 | -webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
157 | -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
158 | -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
159 | -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
160 | transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
161 | }
162 |
163 | /*********************************************
164 | * SLIDE NUMBER
165 | *********************************************/
166 | .reveal .slide-number {
167 | color: $linkColor;
168 | }
169 |
170 |
171 |
--------------------------------------------------------------------------------
/demo1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
16 |
17 |
18 |
19 |

20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/demo2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
89 |
90 |
91 | Kirbypalooza
92 |
146 |
147 |
148 |
149 |
--------------------------------------------------------------------------------
/imagemagick/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/imagemagick/bg.png
--------------------------------------------------------------------------------
/imagemagick/kirby_betterspin_dance-fixed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/imagemagick/kirby_betterspin_dance-fixed.gif
--------------------------------------------------------------------------------
/imagemagick/kirby_bigfight.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/imagemagick/kirby_bigfight.gif
--------------------------------------------------------------------------------
/imagemagick/kirby_paint.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/imagemagick/kirby_paint.gif
--------------------------------------------------------------------------------
/imagemagick/kirby_run.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/imagemagick/kirby_run.gif
--------------------------------------------------------------------------------
/imagemagick/make_gif.txt:
--------------------------------------------------------------------------------
1 | convert -dispose previous -loop 0 bg.png -page +25+25 kirby_paint*gif -page +30+20 kirby_bigfight*gif -page +35+35 /tmp/kirby_betterspin_dance-fixed.gif -page +20+10 kirby_run*gif out.gif
2 |
--------------------------------------------------------------------------------
/img/caniuse_sw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/caniuse_sw.png
--------------------------------------------------------------------------------
/img/caniuse_webworkers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/caniuse_webworkers.png
--------------------------------------------------------------------------------
/img/caniuse_ww.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/caniuse_ww.png
--------------------------------------------------------------------------------
/img/canvas_worker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/canvas_worker.png
--------------------------------------------------------------------------------
/img/edge_14_now.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/edge_14_now.jpg
--------------------------------------------------------------------------------
/img/edgems.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/edgems.png
--------------------------------------------------------------------------------
/img/firefox_unhandled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/firefox_unhandled.png
--------------------------------------------------------------------------------
/img/functions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/functions.png
--------------------------------------------------------------------------------
/img/html5workertest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/html5workertest.png
--------------------------------------------------------------------------------
/img/hype_train.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/hype_train.jpg
--------------------------------------------------------------------------------
/img/is_sw_ready.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/is_sw_ready.png
--------------------------------------------------------------------------------
/img/jeff_atwood.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/jeff_atwood.png
--------------------------------------------------------------------------------
/img/kirby_blimp.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_blimp.gif
--------------------------------------------------------------------------------
/img/kirby_busy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_busy.gif
--------------------------------------------------------------------------------
/img/kirby_challenge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_challenge.png
--------------------------------------------------------------------------------
/img/kirby_cook.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_cook.gif
--------------------------------------------------------------------------------
/img/kirby_expedition.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_expedition.gif
--------------------------------------------------------------------------------
/img/kirby_expedition_big.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_expedition_big.gif
--------------------------------------------------------------------------------
/img/kirby_fight.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_fight.gif
--------------------------------------------------------------------------------
/img/kirby_paint.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_paint.gif
--------------------------------------------------------------------------------
/img/kirby_run.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_run.gif
--------------------------------------------------------------------------------
/img/kirby_sleep.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_sleep.gif
--------------------------------------------------------------------------------
/img/kirby_slide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_slide.png
--------------------------------------------------------------------------------
/img/kirby_spin_dance.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_spin_dance.gif
--------------------------------------------------------------------------------
/img/kirby_star.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_star.gif
--------------------------------------------------------------------------------
/img/kirby_star_big.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_star_big.gif
--------------------------------------------------------------------------------
/img/kirby_sword.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_sword.png
--------------------------------------------------------------------------------
/img/kirby_three_dance.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirby_three_dance.gif
--------------------------------------------------------------------------------
/img/kirbydance.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/kirbydance.gif
--------------------------------------------------------------------------------
/img/mariko.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/mariko.png
--------------------------------------------------------------------------------
/img/me.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/me.jpg
--------------------------------------------------------------------------------
/img/nolan_tweet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/nolan_tweet.png
--------------------------------------------------------------------------------
/img/paul_lewis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/paul_lewis.png
--------------------------------------------------------------------------------
/img/phones-overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/phones-overlay.png
--------------------------------------------------------------------------------
/img/phones.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/phones.png
--------------------------------------------------------------------------------
/img/pokedex_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/pokedex_architecture.png
--------------------------------------------------------------------------------
/img/pouchdb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/pouchdb.jpg
--------------------------------------------------------------------------------
/img/pouchdb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/pouchdb.png
--------------------------------------------------------------------------------
/img/promise-worker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/promise-worker.png
--------------------------------------------------------------------------------
/img/pseudoworker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/pseudoworker.png
--------------------------------------------------------------------------------
/img/service_worker_revolution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/service_worker_revolution.png
--------------------------------------------------------------------------------
/img/site_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/site_scan.png
--------------------------------------------------------------------------------
/img/site_scan2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/site_scan2.png
--------------------------------------------------------------------------------
/img/skyrocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/skyrocket.png
--------------------------------------------------------------------------------
/img/squarespace.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/squarespace.jpg
--------------------------------------------------------------------------------
/img/squarespace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/squarespace.png
--------------------------------------------------------------------------------
/img/stringify-chrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/stringify-chrome.png
--------------------------------------------------------------------------------
/img/tweet_briant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/tweet_briant.png
--------------------------------------------------------------------------------
/img/tweet_cramforce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/tweet_cramforce.png
--------------------------------------------------------------------------------
/img/tweet_floyd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/tweet_floyd.png
--------------------------------------------------------------------------------
/img/tweet_impossible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/tweet_impossible.png
--------------------------------------------------------------------------------
/img/tweet_jaffa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/tweet_jaffa.png
--------------------------------------------------------------------------------
/img/tweet_tom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/tweet_tom.png
--------------------------------------------------------------------------------
/img/webgl_worker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/webgl_worker.png
--------------------------------------------------------------------------------
/img/withoutworker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/withoutworker.png
--------------------------------------------------------------------------------
/img/withworker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/withworker.png
--------------------------------------------------------------------------------
/img/worker-types.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/worker-types.png
--------------------------------------------------------------------------------
/img/worker_classes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/worker_classes.png
--------------------------------------------------------------------------------
/img/worker_kirby.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/worker_kirby.png
--------------------------------------------------------------------------------
/img/worker_kirby_big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/worker_kirby_big.png
--------------------------------------------------------------------------------
/img/year_of_concurrency.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/img/year_of_concurrency.png
--------------------------------------------------------------------------------
/index.css:
--------------------------------------------------------------------------------
1 | .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
2 | line-height: 1em;
3 | letter-spacing: 0;
4 | font-family: Helvetica, Arial, sans-serif;
5 | text-rendering: optimizeLegibility;
6 | }
7 |
8 | button.btn {
9 | width: 100%;
10 | font-size: 1.1em;
11 | margin: 0 auto;
12 | }
13 |
14 | .video-compare {
15 | display: -webkit-box;
16 | display: flex;
17 | justify-content: center;
18 | height: 640px;
19 | }
20 |
21 | .flex {
22 | display: -webkit-box;
23 | display: flex;
24 | }
25 |
26 | .horizontal-flex {
27 | display: -webkit-box;
28 | display: flex;
29 | -webkit-box-orient: horizontal;
30 | flex-direction: column;
31 | }
32 |
33 | .center-flex {
34 | display: -webkit-box;
35 | display: flex;
36 | align-items: center;
37 | }
38 |
39 | .center-flex .no-emphasis {
40 | flex-grow: 0;
41 | }
42 |
43 | .center-flex .emphasis {
44 | flex-grow: 1;
45 | }
46 |
47 | .reveal .slides .fancy-fragments {
48 | height: 600px;
49 | }
50 |
51 | .reveal .slides .fancy-fragments .fragment {
52 | transition: all 0.4s cubic-bezier(.17, .67, .58, 1);
53 | -webkit-transition: all 0.4s cubic-bezier(.17, .67, .58, 1);
54 |
55 | max-height: 95%;
56 | opacity: 0;
57 | }
58 |
59 | .reveal .slides .fancy-fragments .fragment.visible {
60 | max-height: 95%;
61 | opacity: 1;
62 | }
63 |
64 | .reveal .slides .fancy-fragments .fragment.fancy-first:not(.visible) {
65 | transform: translate3d(0, -999px, 0) scale3d(0.9, 0.9, 1);
66 | -webkit-transform: translate3d(0, -999px, 0) scale3d(0.9, 0.9, 1);
67 | }
68 |
69 | .reveal .slides .fancy-fragments .fragment.fancy-second:not(.visible) {
70 | transform: translate3d(0, 999px, 0) scale3d(0.9, 0.9, 1);
71 | -webkit-transform: translate3d(0, 999px, 0) scale3d(0.9, 0.9, 1);
72 | }
73 |
74 | .reveal .slides .fancy-fragments .fragment.visible {
75 | transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
76 | -webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
77 | }
78 |
79 | .reveal .slides .fancy-fragments .fragment img {
80 | transition: none;
81 | -webkit-transition: none;
82 | }
83 |
84 | .android-chart {
85 | min-width: 310px;
86 | height: 400px;
87 | max-width: 600px;
88 | margin: 0 auto;
89 | }
90 |
91 | .reveal .nice-table td {
92 | padding-right: 1.5em;
93 | padding-bottom: 0.5em;
94 | }
95 |
96 | .reveal .nice-table th {
97 | padding-right: 3em;
98 | padding-bottom: 0.5em;
99 | }
100 |
101 | .text-muted {
102 | opacity: 0.4;
103 | }
104 |
105 | .reveal .footer {
106 | position: fixed;
107 | bottom: 0;
108 | left: 0;
109 | font-size: 0.5em;
110 | transform: translate(0, 50px);
111 | width: 100%;
112 | }
113 |
114 | .reveal .header {
115 | position: fixed;
116 | top: 0;
117 | left: 0;
118 | font-size: 0.5em;
119 | transform: translate(0, -50px);
120 | width: 100%;
121 | }
122 |
123 | .sources li {
124 | font-size: 0.7em !important;
125 | }
126 |
127 | .reveal img.inline-img {
128 | display: inline-block;
129 | border: 0;
130 | background: none;
131 | margin: 0;
132 | box-shadow: none;
133 | transform: translate(0, 20px);
134 | }
135 |
136 | .reveal img.no-border {
137 | border: none;
138 | box-shadow: none;
139 | }
140 |
141 | .overlay-outer {
142 | position: relative;
143 | }
144 |
145 | pre.overlay-inner {
146 | position: absolute;
147 | width: 100%;
148 | }
149 |
150 | .hoist {
151 | top: -40% !important;
152 | }
153 |
154 | .pixel-image {
155 | background-repeat: no-repeat;
156 | background-position: center center;
157 | margin: 0 auto !important;
158 | background-size: contain;
159 | image-rendering: -moz-crisp-edges;
160 | image-rendering: -webkit-crisp-edges;
161 | image-rendering: pixelated;
162 | }
163 |
164 | .quad-outer {
165 | display: flex;
166 | justify-content: center;
167 | align-items: center;
168 | flex-direction: column;
169 | }
170 |
171 | .quad-inner {
172 | flex-grow: 1;
173 | flex-shrink: 1;
174 | flex-basis: 100%;
175 | min-width: 100%;
176 | display: flex;
177 | margin: 5px 0 !important;
178 | justify-content: center;
179 | align-items: flex-end;
180 | }
181 |
182 | h1, h2, h3, h4, h5, h6 {
183 | hyphens: none !important; /* yolo */
184 | }
185 |
186 | .reveal pre code.embiggen {
187 | font-size: 1.5em;
188 | line-height: 1.5em;
189 | }
190 |
191 | video.big-video {
192 | max-width: initial !important;
193 | max-height: initial !important;
194 | }
195 |
196 | table.fade-in-table {
197 | border-collapse: collapse;
198 | }
199 |
200 | table.fade-in-table td,
201 | table.fade-in-table th {
202 | padding: 20px;
203 | }
204 |
205 | table.fade-in-table td {
206 | border: 2px solid #333;
207 | }
208 |
209 | .signature {
210 | position: absolute;
211 | bottom:0;
212 | left:0;
213 | right:0;
214 | padding-bottom: 56px;
215 | padding-left: 30px;
216 | font-size: 22px;
217 | color: darkblue;
218 | font-family: Arial, Helvetica, "sans-serif";
219 | z-index: 1000;
220 | }
221 |
222 | html {
223 | /* fix reveal fullscreen black background issue */
224 | background-color: #fafafa !important;
225 | }
--------------------------------------------------------------------------------
/js/blockAjax.js:
--------------------------------------------------------------------------------
1 | function doAjax() {
2 | $.ajax({
3 | url: 'http://localhost:1337/localhost:9055/tmp.json?nonce=' + Math.random(),
4 | dataType: 'json',
5 | success: function (json) {
6 | }
7 | });
8 | }
--------------------------------------------------------------------------------
/js/blockTheDom.js:
--------------------------------------------------------------------------------
1 | for (var i = 0; i < 1000000; i++) {
2 | Math.random();
3 | }
--------------------------------------------------------------------------------
/js/highcharts-exporting.js:
--------------------------------------------------------------------------------
1 | /*
2 | Highcharts JS v4.0.4 (2014-09-02)
3 | Exporting module
4 |
5 | (c) 2010-2014 Torstein Honsi
6 |
7 | License: www.highcharts.com/license
8 | */
9 | (function(f){var A=f.Chart,t=f.addEvent,B=f.removeEvent,l=f.createElement,o=f.discardElement,v=f.css,k=f.merge,r=f.each,p=f.extend,D=Math.max,j=document,C=window,E=f.isTouchDevice,F=f.Renderer.prototype.symbols,s=f.getOptions(),y;p(s.lang,{printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"});s.navigation={menuStyle:{border:"1px solid #A0A0A0",
10 | background:"#FFFFFF",padding:"5px 0"},menuItemStyle:{padding:"0 10px",background:"none",color:"#303030",fontSize:E?"14px":"11px"},menuItemHoverStyle:{background:"#4572A5",color:"#FFFFFF"},buttonOptions:{symbolFill:"#E0E0E0",symbolSize:14,symbolStroke:"#666",symbolStrokeWidth:3,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,theme:{fill:"white",stroke:"none"},verticalAlign:"top",width:24}};s.exporting={type:"image/png",url:"http://export.highcharts.com/",buttons:{contextButton:{menuClassName:"highcharts-contextmenu",
11 | symbol:"menu",_titleKey:"contextButtonTitle",menuItems:[{textKey:"printChart",onclick:function(){this.print()}},{separator:!0},{textKey:"downloadPNG",onclick:function(){this.exportChart()}},{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}]}}};f.post=function(b,a,d){var c,b=l("form",k({method:"post",
12 | action:b,enctype:"multipart/form-data"},d),{display:"none"},j.body);for(c in a)l("input",{type:"hidden",name:c,value:a[c]},null,b);b.submit();o(b)};p(A.prototype,{getSVG:function(b){var a=this,d,c,z,h,g=k(a.options,b);if(!j.createElementNS)j.createElementNS=function(a,b){return j.createElement(b)};b=l("div",null,{position:"absolute",top:"-9999em",width:a.chartWidth+"px",height:a.chartHeight+"px"},j.body);c=a.renderTo.style.width;h=a.renderTo.style.height;c=g.exporting.sourceWidth||g.chart.width||
13 | /px$/.test(c)&&parseInt(c,10)||600;h=g.exporting.sourceHeight||g.chart.height||/px$/.test(h)&&parseInt(h,10)||400;p(g.chart,{animation:!1,renderTo:b,forExport:!0,width:c,height:h});g.exporting.enabled=!1;g.series=[];r(a.series,function(a){z=k(a.options,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});z.isInternal||g.series.push(z)});d=new f.Chart(g,a.callback);r(["xAxis","yAxis"],function(b){r(a[b],function(a,c){var g=d[b][c],f=a.getExtremes(),h=f.userMin,f=f.userMax;g&&(h!==
14 | void 0||f!==void 0)&&g.setExtremes(h,f,!0,!1)})});c=d.container.innerHTML;g=null;d.destroy();o(b);c=c.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\([^#]+#/g,"url(#").replace(/").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1="rgb($2)" $1-opacity="$3"').replace(/ /g,
15 | " ").replace(//g,"").replace(/
/g,'xlink:href="$1"/>').replace(/id=([^" >]+)/g,'id="$1"').replace(/class=([^" >]+)/g,'class="$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(a){return a.toLowerCase()});return c=c.replace(/(url\(#highcharts-[0-9]+)"/g,"$1").replace(/"/g,"'")},exportChart:function(b,a){var b=
16 | b||{},d=this.options.exporting,d=this.getSVG(k({chart:{borderRadius:0}},d.chartOptions,a,{exporting:{sourceWidth:b.sourceWidth||d.sourceWidth,sourceHeight:b.sourceHeight||d.sourceHeight}})),b=k(this.options.exporting,b);f.post(b.url,{filename:b.filename||"chart",type:b.type,width:b.width||0,scale:b.scale||2,svg:d},b.formAttributes)},print:function(){var b=this,a=b.container,d=[],c=a.parentNode,f=j.body,h=f.childNodes;if(!b.isPrinting)b.isPrinting=!0,r(h,function(a,b){if(a.nodeType===1)d[b]=a.style.display,
17 | a.style.display="none"}),f.appendChild(a),C.focus(),C.print(),setTimeout(function(){c.appendChild(a);r(h,function(a,b){if(a.nodeType===1)a.style.display=d[b]});b.isPrinting=!1},1E3)},contextMenu:function(b,a,d,c,f,h,g){var e=this,k=e.options.navigation,q=k.menuItemStyle,m=e.chartWidth,n=e.chartHeight,j="cache-"+b,i=e[j],u=D(f,h),w,x,o,s=function(a){e.pointer.inClass(a.target,b)||x()};if(!i)e[j]=i=l("div",{className:b},{position:"absolute",zIndex:1E3,padding:u+"px"},e.container),w=l("div",null,p({MozBoxShadow:"3px 3px 10px #888",
18 | WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},k.menuStyle),i),x=function(){v(i,{display:"none"});g&&g.setState(0);e.openMenu=!1},t(i,"mouseleave",function(){o=setTimeout(x,500)}),t(i,"mouseenter",function(){clearTimeout(o)}),t(document,"mouseup",s),t(e,"destroy",function(){B(document,"mouseup",s)}),r(a,function(a){if(a){var b=a.separator?l("hr",null,null,w):l("div",{onmouseover:function(){v(this,k.menuItemHoverStyle)},onmouseout:function(){v(this,q)},onclick:function(){x();a.onclick.apply(e,
19 | arguments)},innerHTML:a.text||e.options.lang[a.textKey]},p({cursor:"pointer"},q),w);e.exportDivElements.push(b)}}),e.exportDivElements.push(w,i),e.exportMenuWidth=i.offsetWidth,e.exportMenuHeight=i.offsetHeight;a={display:"block"};d+e.exportMenuWidth>m?a.right=m-d-f-u+"px":a.left=d-u+"px";c+h+e.exportMenuHeight>n&&g.alignOptions.verticalAlign!=="top"?a.bottom=n-c-u+"px":a.top=c+h-u+"px";v(i,a);e.openMenu=!0},addButton:function(b){var a=this,d=a.renderer,c=k(a.options.navigation.buttonOptions,b),j=
20 | c.onclick,h=c.menuItems,g,e,l={stroke:c.symbolStroke,fill:c.symbolFill},q=c.symbolSize||12;if(!a.btnCount)a.btnCount=0;if(!a.exportDivElements)a.exportDivElements=[],a.exportSVGElements=[];if(c.enabled!==!1){var m=c.theme,n=m.states,o=n&&n.hover,n=n&&n.select,i;delete m.states;j?i=function(){j.apply(a,arguments)}:h&&(i=function(){a.contextMenu(e.menuClassName,h,e.translateX,e.translateY,e.width,e.height,e);e.setState(2)});c.text&&c.symbol?m.paddingLeft=f.pick(m.paddingLeft,25):c.text||p(m,{width:c.width,
21 | height:c.height,padding:0});e=d.button(c.text,0,0,i,m,o,n).attr({title:a.options.lang[c._titleKey],"stroke-linecap":"round"});e.menuClassName=b.menuClassName||"highcharts-menu-"+a.btnCount++;c.symbol&&(g=d.symbol(c.symbol,c.symbolX-q/2,c.symbolY-q/2,q,q).attr(p(l,{"stroke-width":c.symbolStrokeWidth||1,zIndex:1})).add(e));e.add().align(p(c,{width:e.width,x:f.pick(c.x,y)}),!0,"spacingBox");y+=(e.width+c.buttonSpacing)*(c.align==="right"?-1:1);a.exportSVGElements.push(e,g)}},destroyExport:function(b){var b=
22 | b.target,a,d;for(a=0;a
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | color: #333;
12 | background: #f8f8f8;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #998;
18 | font-style: italic;
19 | }
20 |
21 | .hljs-keyword,
22 | .hljs-selector-tag,
23 | .hljs-subst {
24 | color: #333;
25 | font-weight: bold;
26 | }
27 |
28 | .hljs-number,
29 | .hljs-literal,
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-tag .hljs-attr {
33 | color: #008080;
34 | }
35 |
36 | .hljs-string,
37 | .hljs-doctag {
38 | color: #d14;
39 | }
40 |
41 | .hljs-title,
42 | .hljs-section,
43 | .hljs-selector-id {
44 | color: #900;
45 | font-weight: bold;
46 | }
47 |
48 | .hljs-subst {
49 | font-weight: normal;
50 | }
51 |
52 | .hljs-type,
53 | .hljs-class .hljs-title {
54 | color: #458;
55 | font-weight: bold;
56 | }
57 |
58 | .hljs-tag,
59 | .hljs-name,
60 | .hljs-attribute {
61 | color: #000080;
62 | font-weight: normal;
63 | }
64 |
65 | .hljs-regexp,
66 | .hljs-link {
67 | color: #009926;
68 | }
69 |
70 | .hljs-symbol,
71 | .hljs-bullet {
72 | color: #990073;
73 | }
74 |
75 | .hljs-built_in,
76 | .hljs-builtin-name {
77 | color: #0086b3;
78 | }
79 |
80 | .hljs-meta {
81 | color: #999;
82 | font-weight: bold;
83 | }
84 |
85 | .hljs-deletion {
86 | background: #fdd;
87 | }
88 |
89 | .hljs-addition {
90 | background: #dfd;
91 | }
92 |
93 | .hljs-emphasis {
94 | font-style: italic;
95 | }
96 |
97 | .hljs-strong {
98 | font-weight: bold;
99 | }
--------------------------------------------------------------------------------
/lib/css/tomorrow.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Theme */
2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
5 | .tomorrow-comment, pre .comment, pre .title {
6 | color: #8e908c;
7 | }
8 |
9 | .tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo {
10 | color: #c82829;
11 | }
12 |
13 | .tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant {
14 | color: #f5871f;
15 | }
16 |
17 | .tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute {
18 | color: #eab700;
19 | }
20 |
21 | .tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata {
22 | color: #718c00;
23 | }
24 |
25 | .tomorrow-aqua, pre .css .hexcolor {
26 | color: #3e999f;
27 | }
28 |
29 | .tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title {
30 | color: #4271ae;
31 | }
32 |
33 | .tomorrow-purple, pre .keyword, pre .javascript .function {
34 | color: #8959a8;
35 | }
36 |
37 | pre code {
38 | display: block;
39 | background: white;
40 | color: #4d4d4c;
41 | font-family: Menlo, Monaco, Consolas, monospace;
42 | line-height: 1.5;
43 | border: 1px solid #ccc;
44 | padding: 10px;
45 | }
46 |
--------------------------------------------------------------------------------
/lib/css/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | pre code {
9 | display: block; padding: 0.5em;
10 | background: #3F3F3F;
11 | color: #DCDCDC;
12 | }
13 |
14 | pre .keyword,
15 | pre .tag,
16 | pre .css .class,
17 | pre .css .id,
18 | pre .lisp .title,
19 | pre .nginx .title,
20 | pre .request,
21 | pre .status,
22 | pre .clojure .attribute {
23 | color: #E3CEAB;
24 | }
25 |
26 | pre .django .template_tag,
27 | pre .django .variable,
28 | pre .django .filter .argument {
29 | color: #DCDCDC;
30 | }
31 |
32 | pre .number,
33 | pre .date {
34 | color: #8CD0D3;
35 | }
36 |
37 | pre .dos .envvar,
38 | pre .dos .stream,
39 | pre .variable,
40 | pre .apache .sqbracket {
41 | color: #EFDCBC;
42 | }
43 |
44 | pre .dos .flow,
45 | pre .diff .change,
46 | pre .python .exception,
47 | pre .python .built_in,
48 | pre .literal,
49 | pre .tex .special {
50 | color: #EFEFAF;
51 | }
52 |
53 | pre .diff .chunk,
54 | pre .subst {
55 | color: #8F8F8F;
56 | }
57 |
58 | pre .dos .keyword,
59 | pre .python .decorator,
60 | pre .title,
61 | pre .haskell .type,
62 | pre .diff .header,
63 | pre .ruby .class .parent,
64 | pre .apache .tag,
65 | pre .nginx .built_in,
66 | pre .tex .command,
67 | pre .prompt {
68 | color: #efef8f;
69 | }
70 |
71 | pre .dos .winutils,
72 | pre .ruby .symbol,
73 | pre .ruby .symbol .string,
74 | pre .ruby .string {
75 | color: #DCA3A3;
76 | }
77 |
78 | pre .diff .deletion,
79 | pre .string,
80 | pre .tag .value,
81 | pre .preprocessor,
82 | pre .built_in,
83 | pre .sql .aggregate,
84 | pre .javadoc,
85 | pre .smalltalk .class,
86 | pre .smalltalk .localvars,
87 | pre .smalltalk .array,
88 | pre .css .rules .value,
89 | pre .attr_selector,
90 | pre .pseudo,
91 | pre .apache .cbracket,
92 | pre .tex .formula {
93 | color: #CC9393;
94 | }
95 |
96 | pre .shebang,
97 | pre .diff .addition,
98 | pre .comment,
99 | pre .java .annotation,
100 | pre .template_comment,
101 | pre .pi,
102 | pre .doctype {
103 | color: #7F9F7F;
104 | }
105 |
106 | pre .coffeescript .javascript,
107 | pre .javascript .xml,
108 | pre .tex .formula,
109 | pre .xml .javascript,
110 | pre .xml .vbscript,
111 | pre .xml .css,
112 | pre .xml .cdata {
113 | opacity: 0.5;
114 | }
--------------------------------------------------------------------------------
/lib/font/league_gothic-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/lib/font/league_gothic-webfont.eot
--------------------------------------------------------------------------------
/lib/font/league_gothic-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/lib/font/league_gothic-webfont.ttf
--------------------------------------------------------------------------------
/lib/font/league_gothic-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/lib/font/league_gothic-webfont.woff
--------------------------------------------------------------------------------
/lib/font/league_gothic_license:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/lib/js/classList.js:
--------------------------------------------------------------------------------
1 | /*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
2 | if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p
3 | Copyright Tero Piirainen (tipiirai)
4 | License MIT / http://bit.ly/mit-license
5 | Version 0.96
6 |
7 | http://headjs.com
8 | */(function(a){function z(){d||(d=!0,s(e,function(a){p(a)}))}function y(c,d){var e=a.createElement("script");e.type="text/"+(c.type||"javascript"),e.src=c.src||c,e.async=!1,e.onreadystatechange=e.onload=function(){var a=e.readyState;!d.done&&(!a||/loaded|complete/.test(a))&&(d.done=!0,d())},(a.body||b).appendChild(e)}function x(a,b){if(a.state==o)return b&&b();if(a.state==n)return k.ready(a.name,b);if(a.state==m)return a.onpreload.push(function(){x(a,b)});a.state=n,y(a.url,function(){a.state=o,b&&b(),s(g[a.name],function(a){p(a)}),u()&&d&&s(g.ALL,function(a){p(a)})})}function w(a,b){a.state===undefined&&(a.state=m,a.onpreload=[],y({src:a.url,type:"cache"},function(){v(a)}))}function v(a){a.state=l,s(a.onpreload,function(a){a.call()})}function u(a){a=a||h;var b;for(var c in a){if(a.hasOwnProperty(c)&&a[c].state!=o)return!1;b=!0}return b}function t(a){return Object.prototype.toString.call(a)=="[object Function]"}function s(a,b){if(!!a){typeof a=="object"&&(a=[].slice.call(a));for(var c=0;c
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Markdown Demo
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
37 |
38 |
39 |
55 |
56 |
57 |
70 |
71 |
72 |
78 |
79 |
80 |
87 |
88 |
89 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/plugin/markdown/example.md:
--------------------------------------------------------------------------------
1 | # Markdown Demo
2 |
3 |
4 |
5 | ## External 1.1
6 |
7 | Content 1.1
8 |
9 | Note: This will only appear in the speaker notes window.
10 |
11 |
12 | ## External 1.2
13 |
14 | Content 1.2
15 |
16 |
17 |
18 | ## External 2
19 |
20 | Content 2.1
21 |
22 |
23 |
24 | ## External 3.1
25 |
26 | Content 3.1
27 |
28 |
29 | ## External 3.2
30 |
31 | Content 3.2
32 |
--------------------------------------------------------------------------------
/plugin/math/math.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax.
4 | *
5 | * @author Hakim El Hattab
6 | */
7 | var RevealMath = window.RevealMath || (function(){
8 |
9 | var options = Reveal.getConfig().math || {};
10 | options.mathjax = options.mathjax || 'http://cdn.mathjax.org/mathjax/latest/MathJax.js';
11 | options.config = options.config || 'TeX-AMS_HTML-full';
12 |
13 | loadScript( options.mathjax + '?config=' + options.config, function() {
14 |
15 | MathJax.Hub.Config({
16 | messageStyle: 'none',
17 | tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] },
18 | skipStartupTypeset: true
19 | });
20 |
21 | // Typeset followed by an immediate reveal.js layout since
22 | // the typesetting process could affect slide height
23 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] );
24 | MathJax.Hub.Queue( Reveal.layout );
25 |
26 | // Reprocess equations in slides when they turn visible
27 | Reveal.addEventListener( 'slidechanged', function( event ) {
28 |
29 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
30 |
31 | } );
32 |
33 | } );
34 |
35 | function loadScript( url, callback ) {
36 |
37 | var head = document.querySelector( 'head' );
38 | var script = document.createElement( 'script' );
39 | script.type = 'text/javascript';
40 | script.src = url;
41 |
42 | // Wrapper for callback to make sure it only fires once
43 | var finish = function() {
44 | if( typeof callback === 'function' ) {
45 | callback.call();
46 | callback = null;
47 | }
48 | }
49 |
50 | script.onload = finish;
51 |
52 | // IE
53 | script.onreadystatechange = function() {
54 | if ( this.readyState === 'loaded' ) {
55 | finish();
56 | }
57 | }
58 |
59 | // Normal browsers
60 | head.appendChild( script );
61 |
62 | }
63 |
64 | })();
65 |
--------------------------------------------------------------------------------
/plugin/multiplex/client.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var multiplex = Reveal.getConfig().multiplex;
3 | var socketId = multiplex.id;
4 | var socket = io.connect(multiplex.url);
5 |
6 | socket.on(multiplex.id, function(data) {
7 | // ignore data from sockets that aren't ours
8 | if (data.socketId !== socketId) { return; }
9 | if( window.location.host === 'localhost:1947' ) return;
10 |
11 | Reveal.slide(data.indexh, data.indexv, data.indexf, 'remote');
12 | });
13 | }());
14 |
--------------------------------------------------------------------------------
/plugin/multiplex/index.js:
--------------------------------------------------------------------------------
1 | var express = require('express');
2 | var fs = require('fs');
3 | var io = require('socket.io');
4 | var crypto = require('crypto');
5 |
6 | var app = express.createServer();
7 | var staticDir = express.static;
8 |
9 | io = io.listen(app);
10 |
11 | var opts = {
12 | port: 1948,
13 | baseDir : __dirname + '/../../'
14 | };
15 |
16 | io.sockets.on('connection', function(socket) {
17 | socket.on('slidechanged', function(slideData) {
18 | if (typeof slideData.secret == 'undefined' || slideData.secret == null || slideData.secret === '') return;
19 | if (createHash(slideData.secret) === slideData.socketId) {
20 | slideData.secret = null;
21 | socket.broadcast.emit(slideData.socketId, slideData);
22 | };
23 | });
24 | });
25 |
26 | app.configure(function() {
27 | [ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
28 | app.use('/' + dir, staticDir(opts.baseDir + dir));
29 | });
30 | });
31 |
32 | app.get("/", function(req, res) {
33 | res.writeHead(200, {'Content-Type': 'text/html'});
34 | fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
35 | });
36 |
37 | app.get("/token", function(req,res) {
38 | var ts = new Date().getTime();
39 | var rand = Math.floor(Math.random()*9999999);
40 | var secret = ts.toString() + rand.toString();
41 | res.send({secret: secret, socketId: createHash(secret)});
42 | });
43 |
44 | var createHash = function(secret) {
45 | var cipher = crypto.createCipher('blowfish', secret);
46 | return(cipher.final('hex'));
47 | };
48 |
49 | // Actually listen
50 | app.listen(opts.port || null);
51 |
52 | var brown = '\033[33m',
53 | green = '\033[32m',
54 | reset = '\033[0m';
55 |
56 | console.log( brown + "reveal.js:" + reset + " Multiplex running on port " + green + opts.port + reset );
--------------------------------------------------------------------------------
/plugin/multiplex/master.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | // Don't emit events from inside of notes windows
3 | if ( window.location.search.match( /receiver/gi ) ) { return; }
4 |
5 | var multiplex = Reveal.getConfig().multiplex;
6 |
7 | var socket = io.connect(multiplex.url);
8 |
9 | var notify = function( slideElement, indexh, indexv, origin ) {
10 | if( typeof origin === 'undefined' && origin !== 'remote' ) {
11 | var nextindexh;
12 | var nextindexv;
13 |
14 | var fragmentindex = Reveal.getIndices().f;
15 | if (typeof fragmentindex == 'undefined') {
16 | fragmentindex = 0;
17 | }
18 |
19 | if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
20 | nextindexh = indexh;
21 | nextindexv = indexv + 1;
22 | } else {
23 | nextindexh = indexh + 1;
24 | nextindexv = 0;
25 | }
26 |
27 | var slideData = {
28 | indexh : indexh,
29 | indexv : indexv,
30 | indexf : fragmentindex,
31 | nextindexh : nextindexh,
32 | nextindexv : nextindexv,
33 | secret: multiplex.secret,
34 | socketId : multiplex.id
35 | };
36 |
37 | socket.emit('slidechanged', slideData);
38 | }
39 | }
40 |
41 | Reveal.addEventListener( 'slidechanged', function( event ) {
42 | notify( event.currentSlide, event.indexh, event.indexv, event.origin );
43 | } );
44 |
45 | var fragmentNotify = function( event ) {
46 | notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
47 | };
48 |
49 | Reveal.addEventListener( 'fragmentshown', fragmentNotify );
50 | Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
51 | }());
--------------------------------------------------------------------------------
/plugin/notes-server/client.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | // don't emit events from inside the previews themselves
3 | if ( window.location.search.match( /receiver/gi ) ) { return; }
4 |
5 | var socket = io.connect(window.location.origin);
6 | var socketId = Math.random().toString().slice(2);
7 |
8 | console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
9 | window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId);
10 |
11 | // Fires when a fragment is shown
12 | Reveal.addEventListener( 'fragmentshown', function( event ) {
13 | var fragmentData = {
14 | fragment : 'next',
15 | socketId : socketId
16 | };
17 | socket.emit('fragmentchanged', fragmentData);
18 | } );
19 |
20 | // Fires when a fragment is hidden
21 | Reveal.addEventListener( 'fragmenthidden', function( event ) {
22 | var fragmentData = {
23 | fragment : 'previous',
24 | socketId : socketId
25 | };
26 | socket.emit('fragmentchanged', fragmentData);
27 | } );
28 |
29 | // Fires when slide is changed
30 | Reveal.addEventListener( 'slidechanged', function( event ) {
31 | var nextindexh;
32 | var nextindexv;
33 | var slideElement = event.currentSlide;
34 |
35 | if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
36 | nextindexh = event.indexh;
37 | nextindexv = event.indexv + 1;
38 | } else {
39 | nextindexh = event.indexh + 1;
40 | nextindexv = 0;
41 | }
42 |
43 | var notes = slideElement.querySelector('aside.notes');
44 | var slideData = {
45 | notes : notes ? notes.innerHTML : '',
46 | indexh : event.indexh,
47 | indexv : event.indexv,
48 | nextindexh : nextindexh,
49 | nextindexv : nextindexv,
50 | socketId : socketId,
51 | markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
52 |
53 | };
54 |
55 | socket.emit('slidechanged', slideData);
56 | } );
57 | }());
58 |
--------------------------------------------------------------------------------
/plugin/notes-server/index.js:
--------------------------------------------------------------------------------
1 | var express = require('express');
2 | var fs = require('fs');
3 | var io = require('socket.io');
4 | var _ = require('underscore');
5 | var Mustache = require('mustache');
6 |
7 | var app = express.createServer();
8 | var staticDir = express.static;
9 |
10 | io = io.listen(app);
11 |
12 | var opts = {
13 | port : 1947,
14 | baseDir : __dirname + '/../../'
15 | };
16 |
17 | io.sockets.on('connection', function(socket) {
18 | socket.on('slidechanged', function(slideData) {
19 | socket.broadcast.emit('slidedata', slideData);
20 | });
21 | socket.on('fragmentchanged', function(fragmentData) {
22 | socket.broadcast.emit('fragmentdata', fragmentData);
23 | });
24 | });
25 |
26 | app.configure(function() {
27 | [ 'css', 'js', 'images', 'plugin', 'lib' ].forEach(function(dir) {
28 | app.use('/' + dir, staticDir(opts.baseDir + dir));
29 | });
30 | });
31 |
32 | app.get("/", function(req, res) {
33 | res.writeHead(200, {'Content-Type': 'text/html'});
34 | fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
35 | });
36 |
37 | app.get("/notes/:socketId", function(req, res) {
38 |
39 | fs.readFile(opts.baseDir + 'plugin/notes-server/notes.html', function(err, data) {
40 | res.send(Mustache.to_html(data.toString(), {
41 | socketId : req.params.socketId
42 | }));
43 | });
44 | // fs.createReadStream(opts.baseDir + 'notes-server/notes.html').pipe(res);
45 | });
46 |
47 | // Actually listen
48 | app.listen(opts.port || null);
49 |
50 | var brown = '\033[33m',
51 | green = '\033[32m',
52 | reset = '\033[0m';
53 |
54 | var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
55 |
56 | console.log( brown + "reveal.js - Speaker Notes" + reset );
57 | console.log( "1. Open the slides at " + green + slidesLocation + reset );
58 | console.log( "2. Click on the link your JS console to go to the notes page" );
59 | console.log( "3. Advance through your slides and your notes will advance automatically" );
60 |
--------------------------------------------------------------------------------
/plugin/notes-server/notes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | reveal.js - Slide Notes
9 |
10 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 | UPCOMING:
101 |
102 |
103 |
104 |
105 |
106 |
107 |
140 |
141 |
142 |
143 |
--------------------------------------------------------------------------------
/plugin/notes/notes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | reveal.js - Slide Notes
7 |
8 |
137 |
138 |
139 |
140 |
141 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 | UPCOMING:
156 |
157 |
158 |
159 |
160 |
Time
161 | 0:00:00 AM
162 |
163 |
164 |
Elapsed
165 | 00:00:00
166 |
167 |
168 |
169 |
170 |
171 |
172 |
266 |
267 |
268 |
--------------------------------------------------------------------------------
/plugin/notes/notes.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Handles opening of and synchronization with the reveal.js
3 | * notes window.
4 | */
5 | var RevealNotes = (function() {
6 |
7 | function openNotes() {
8 | var jsFileLocation = document.querySelector('script[src$="notes.js"]').src; // this js file path
9 | jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, ''); // the js folder path
10 | var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
11 |
12 | // Fires when slide is changed
13 | Reveal.addEventListener( 'slidechanged', post );
14 |
15 | // Fires when a fragment is shown
16 | Reveal.addEventListener( 'fragmentshown', post );
17 |
18 | // Fires when a fragment is hidden
19 | Reveal.addEventListener( 'fragmenthidden', post );
20 |
21 | /**
22 | * Posts the current slide data to the notes window
23 | */
24 | function post() {
25 | var slideElement = Reveal.getCurrentSlide(),
26 | slideIndices = Reveal.getIndices(),
27 | messageData;
28 |
29 | var notes = slideElement.querySelector( 'aside.notes' ),
30 | nextindexh,
31 | nextindexv;
32 |
33 | if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
34 | nextindexh = slideIndices.h;
35 | nextindexv = slideIndices.v + 1;
36 | } else {
37 | nextindexh = slideIndices.h + 1;
38 | nextindexv = 0;
39 | }
40 |
41 | messageData = {
42 | notes : notes ? notes.innerHTML : '',
43 | indexh : slideIndices.h,
44 | indexv : slideIndices.v,
45 | indexf : slideIndices.f,
46 | nextindexh : nextindexh,
47 | nextindexv : nextindexv,
48 | markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
49 | };
50 |
51 | notesPopup.postMessage( JSON.stringify( messageData ), '*' );
52 | }
53 |
54 | // Navigate to the current slide when the notes are loaded
55 | notesPopup.addEventListener( 'load', function( event ) {
56 | post();
57 | }, false );
58 | }
59 |
60 | // If the there's a 'notes' query set, open directly
61 | if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
62 | openNotes();
63 | }
64 |
65 | // Open the notes when the 's' key is hit
66 | document.addEventListener( 'keydown', function( event ) {
67 | // Disregard the event if the target is editable or a
68 | // modifier is present
69 | if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
70 |
71 | if( event.keyCode === 83 ) {
72 | event.preventDefault();
73 | openNotes();
74 | }
75 | }, false );
76 |
77 | return { open: openNotes };
78 | })();
79 |
--------------------------------------------------------------------------------
/plugin/postmessage/example.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/plugin/postmessage/postmessage.js:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | simple postmessage plugin
4 |
5 | Useful when a reveal slideshow is inside an iframe.
6 | It allows to call reveal methods from outside.
7 |
8 | Example:
9 | var reveal = window.frames[0];
10 |
11 | // Reveal.prev();
12 | reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*');
13 | // Reveal.next();
14 | reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*');
15 | // Reveal.slide(2, 2);
16 | reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*');
17 |
18 | Add to the slideshow:
19 |
20 | dependencies: [
21 | ...
22 | { src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
23 | ]
24 |
25 | */
26 |
27 | (function (){
28 |
29 | window.addEventListener( "message", function ( event ) {
30 | var data = JSON.parse( event.data ),
31 | method = data.method,
32 | args = data.args;
33 |
34 | if( typeof Reveal[method] === 'function' ) {
35 | Reveal[method].apply( Reveal, data.args );
36 | }
37 | }, false);
38 |
39 | }());
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/plugin/print-pdf/print-pdf.js:
--------------------------------------------------------------------------------
1 | /**
2 | * phantomjs script for printing presentations to PDF.
3 | *
4 | * Example:
5 | * phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf
6 | *
7 | * By Manuel Bieh (https://github.com/manuelbieh)
8 | */
9 |
10 | // html2pdf.js
11 | var page = new WebPage();
12 | var system = require( 'system' );
13 |
14 | page.viewportSize = {
15 | width: 1024,
16 | height: 768
17 | };
18 |
19 | page.paperSize = {
20 | format: 'letter',
21 | orientation: 'landscape',
22 | margin: {
23 | left: '0',
24 | right: '0',
25 | top: '0',
26 | bottom: '0'
27 | }
28 | };
29 |
30 | var revealFile = system.args[1] || 'index.html?print-pdf';
31 | var slideFile = system.args[2] || 'slides.pdf';
32 |
33 | if( slideFile.match( /\.pdf$/gi ) === null ) {
34 | slideFile += '.pdf';
35 | }
36 |
37 | console.log( 'Printing PDF...' );
38 |
39 | page.open( revealFile, function( status ) {
40 | console.log( 'Printed succesfully' );
41 | page.render( slideFile );
42 | phantom.exit();
43 | } );
44 |
45 |
--------------------------------------------------------------------------------
/plugin/remotes/remotes.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Touch-based remote controller for your presentation courtesy
3 | * of the folks at http://remotes.io
4 | */
5 |
6 | (function(window){
7 |
8 | /**
9 | * Detects if we are dealing with a touch enabled device (with some false positives)
10 | * Borrowed from modernizr: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touch.js
11 | */
12 | var hasTouch = (function(){
13 | return ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
14 | })();
15 |
16 | /**
17 | * Detects if notes are enable and the current page is opened inside an /iframe
18 | * this prevents loading Remotes.io several times
19 | */
20 | var isNotesAndIframe = (function(){
21 | return window.RevealNotes && !(self == top);
22 | })();
23 |
24 | if(!hasTouch && !isNotesAndIframe){
25 | head.ready( 'remotes.ne.min.js', function() {
26 | new Remotes("preview")
27 | .on("swipe-left", function(e){ Reveal.right(); })
28 | .on("swipe-right", function(e){ Reveal.left(); })
29 | .on("swipe-up", function(e){ Reveal.down(); })
30 | .on("swipe-down", function(e){ Reveal.up(); })
31 | .on("tap", function(e){ Reveal.next(); })
32 | .on("zoom-out", function(e){ Reveal.toggleOverview(true); })
33 | .on("zoom-in", function(e){ Reveal.toggleOverview(false); })
34 | ;
35 | } );
36 |
37 | head.js('https://hakim-static.s3.amazonaws.com/reveal-js/remotes.ne.min.js');
38 | }
39 | })(window);
--------------------------------------------------------------------------------
/plugin/search/search.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
3 | * by navigatating to that slide and highlighting it.
4 | *
5 | * By Jon Snyder , February 2013
6 | */
7 |
8 | var RevealSearch = (function() {
9 |
10 | var matchedSlides;
11 | var currentMatchedIndex;
12 | var searchboxDirty;
13 | var myHilitor;
14 |
15 | // Original JavaScript code by Chirp Internet: www.chirp.com.au
16 | // Please acknowledge use of this code by including this header.
17 | // 2/2013 jon: modified regex to display any match, not restricted to word boundaries.
18 |
19 | function Hilitor(id, tag)
20 | {
21 |
22 | var targetNode = document.getElementById(id) || document.body;
23 | var hiliteTag = tag || "EM";
24 | var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM|SPAN)$");
25 | var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"];
26 | var wordColor = [];
27 | var colorIdx = 0;
28 | var matchRegex = "";
29 | var matchingSlides = [];
30 |
31 | this.setRegex = function(input)
32 | {
33 | input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|");
34 | matchRegex = new RegExp("(" + input + ")","i");
35 | }
36 |
37 | this.getRegex = function()
38 | {
39 | return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
40 | }
41 |
42 | // recursively apply word highlighting
43 | this.hiliteWords = function(node)
44 | {
45 | if(node == undefined || !node) return;
46 | if(!matchRegex) return;
47 | if(skipTags.test(node.nodeName)) return;
48 |
49 | if(node.hasChildNodes()) {
50 | for(var i=0; i < node.childNodes.length; i++)
51 | this.hiliteWords(node.childNodes[i]);
52 | }
53 | if(node.nodeType == 3) { // NODE_TEXT
54 | if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) {
55 | //find the slide's section element and save it in our list of matching slides
56 | var secnode = node.parentNode;
57 | while (secnode.nodeName != 'SECTION') {
58 | secnode = secnode.parentNode;
59 | }
60 |
61 | var slideIndex = Reveal.getIndices(secnode);
62 | var slidelen = matchingSlides.length;
63 | var alreadyAdded = false;
64 | for (var i=0; i < slidelen; i++) {
65 | if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) {
66 | alreadyAdded = true;
67 | }
68 | }
69 | if (! alreadyAdded) {
70 | matchingSlides.push(slideIndex);
71 | }
72 |
73 | if(!wordColor[regs[0].toLowerCase()]) {
74 | wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length];
75 | }
76 |
77 | var match = document.createElement(hiliteTag);
78 | match.appendChild(document.createTextNode(regs[0]));
79 | match.style.backgroundColor = wordColor[regs[0].toLowerCase()];
80 | match.style.fontStyle = "inherit";
81 | match.style.color = "#000";
82 |
83 | var after = node.splitText(regs.index);
84 | after.nodeValue = after.nodeValue.substring(regs[0].length);
85 | node.parentNode.insertBefore(match, after);
86 | }
87 | }
88 | };
89 |
90 | // remove highlighting
91 | this.remove = function()
92 | {
93 | var arr = document.getElementsByTagName(hiliteTag);
94 | while(arr.length && (el = arr[0])) {
95 | el.parentNode.replaceChild(el.firstChild, el);
96 | }
97 | };
98 |
99 | // start highlighting at target node
100 | this.apply = function(input)
101 | {
102 | if(input == undefined || !input) return;
103 | this.remove();
104 | this.setRegex(input);
105 | this.hiliteWords(targetNode);
106 | return matchingSlides;
107 | };
108 |
109 | }
110 |
111 | function openSearch() {
112 | //ensure the search term input dialog is visible and has focus:
113 | var inputbox = document.getElementById("searchinput");
114 | inputbox.style.display = "inline";
115 | inputbox.focus();
116 | inputbox.select();
117 | }
118 |
119 | function toggleSearch() {
120 | var inputbox = document.getElementById("searchinput");
121 | if (inputbox.style.display !== "inline") {
122 | openSearch();
123 | }
124 | else {
125 | inputbox.style.display = "none";
126 | myHilitor.remove();
127 | }
128 | }
129 |
130 | function doSearch() {
131 | //if there's been a change in the search term, perform a new search:
132 | if (searchboxDirty) {
133 | var searchstring = document.getElementById("searchinput").value;
134 |
135 | //find the keyword amongst the slides
136 | myHilitor = new Hilitor("slidecontent");
137 | matchedSlides = myHilitor.apply(searchstring);
138 | currentMatchedIndex = 0;
139 | }
140 |
141 | //navigate to the next slide that has the keyword, wrapping to the first if necessary
142 | if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) {
143 | currentMatchedIndex = 0;
144 | }
145 | if (matchedSlides.length > currentMatchedIndex) {
146 | Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v);
147 | currentMatchedIndex++;
148 | }
149 | }
150 |
151 | var dom = {};
152 | dom.wrapper = document.querySelector( '.reveal' );
153 |
154 | if( !dom.wrapper.querySelector( '.searchbox' ) ) {
155 | var searchElement = document.createElement( 'div' );
156 | searchElement.id = "searchinputdiv";
157 | searchElement.classList.add( 'searchdiv' );
158 | searchElement.style.position = 'absolute';
159 | searchElement.style.top = '10px';
160 | searchElement.style.left = '10px';
161 | //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/:
162 | searchElement.innerHTML = '
';
163 | dom.wrapper.appendChild( searchElement );
164 | }
165 |
166 | document.getElementById("searchbutton").addEventListener( 'click', function(event) {
167 | doSearch();
168 | }, false );
169 |
170 | document.getElementById("searchinput").addEventListener( 'keyup', function( event ) {
171 | switch (event.keyCode) {
172 | case 13:
173 | event.preventDefault();
174 | doSearch();
175 | searchboxDirty = false;
176 | break;
177 | default:
178 | searchboxDirty = true;
179 | }
180 | }, false );
181 |
182 | // Open the search when the 's' key is hit (yes, this conflicts with the notes plugin, disabling for now)
183 | /*
184 | document.addEventListener( 'keydown', function( event ) {
185 | // Disregard the event if the target is editable or a
186 | // modifier is present
187 | if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
188 |
189 | if( event.keyCode === 83 ) {
190 | event.preventDefault();
191 | openSearch();
192 | }
193 | }, false );
194 | */
195 | return { open: openSearch };
196 | })();
197 |
--------------------------------------------------------------------------------
/test/examples/assets/image1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/test/examples/assets/image1.png
--------------------------------------------------------------------------------
/test/examples/assets/image2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/test/examples/assets/image2.png
--------------------------------------------------------------------------------
/test/examples/barebones.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Barebones
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | Barebones Presentation
20 | This example contains the bare minimum includes and markup required to run a reveal.js presentation.
21 |
22 |
23 |
24 | No Theme
25 | There's no theme included, so it will fall back on browser defaults.
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/test/examples/embedded-media.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Embedded Media
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Embedded Media Test
23 |
24 |
25 |
28 |
29 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/test/examples/math.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Math Plugin
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | reveal.js Math Plugin
23 | A thin wrapper for MathJax
24 |
25 |
26 |
27 | The Lorenz Equations
28 |
29 | \[\begin{aligned}
30 | \dot{x} & = \sigma(y-x) \\
31 | \dot{y} & = \rho x - y - xz \\
32 | \dot{z} & = -\beta z + xy
33 | \end{aligned} \]
34 |
35 |
36 |
37 | The Cauchy-Schwarz Inequality
38 |
39 |
42 |
43 |
44 |
45 | A Cross Product Formula
46 |
47 | \[\mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix}
48 | \mathbf{i} & \mathbf{j} & \mathbf{k} \\
49 | \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
50 | \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0
51 | \end{vmatrix} \]
52 |
53 |
54 |
55 | The probability of getting \(k\) heads when flipping \(n\) coins is
56 |
57 | \[P(E) = {n \choose k} p^k (1-p)^{ n-k} \]
58 |
59 |
60 |
61 | An Identity of Ramanujan
62 |
63 | \[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
64 | 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
65 | {1+\frac{e^{-8\pi}} {1+\ldots} } } } \]
66 |
67 |
68 |
69 | A Rogers-Ramanujan Identity
70 |
71 | \[ 1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
72 | \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}\]
73 |
74 |
75 |
76 | Maxwell’s Equations
77 |
78 | \[ \begin{aligned}
79 | \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
80 | \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
81 | \nabla \cdot \vec{\mathbf{B}} & = 0 \end{aligned}
82 | \]
83 |
84 |
85 |
86 |
87 | The Lorenz Equations
88 |
89 |
90 | \[\begin{aligned}
91 | \dot{x} & = \sigma(y-x) \\
92 | \dot{y} & = \rho x - y - xz \\
93 | \dot{z} & = -\beta z + xy
94 | \end{aligned} \]
95 |
96 |
97 |
98 |
99 | The Cauchy-Schwarz Inequality
100 |
101 |
102 | \[ \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \]
103 |
104 |
105 |
106 |
107 | A Cross Product Formula
108 |
109 |
110 | \[\mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix}
111 | \mathbf{i} & \mathbf{j} & \mathbf{k} \\
112 | \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
113 | \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0
114 | \end{vmatrix} \]
115 |
116 |
117 |
118 |
119 | The probability of getting \(k\) heads when flipping \(n\) coins is
120 |
121 |
122 | \[P(E) = {n \choose k} p^k (1-p)^{ n-k} \]
123 |
124 |
125 |
126 |
127 | An Identity of Ramanujan
128 |
129 |
130 | \[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
131 | 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
132 | {1+\frac{e^{-8\pi}} {1+\ldots} } } } \]
133 |
134 |
135 |
136 |
137 | A Rogers-Ramanujan Identity
138 |
139 |
140 | \[ 1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
141 | \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}\]
142 |
143 |
144 |
145 |
146 | Maxwell’s Equations
147 |
148 |
149 | \[ \begin{aligned}
150 | \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
151 | \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
152 | \nabla \cdot \vec{\mathbf{B}} & = 0 \end{aligned}
153 | \]
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
183 |
184 |
185 |
186 |
--------------------------------------------------------------------------------
/test/examples/slide-backgrounds.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Slide Backgrounds
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | data-background: #00ffff
23 |
24 |
25 |
26 | data-background: #bb00bb
27 |
28 |
29 |
30 |
31 | data-background: #ff0000
32 |
33 |
34 | data-background: rgba(0, 0, 0, 0.2)
35 |
36 |
37 | data-background: salmon
38 |
39 |
40 |
41 |
42 |
43 | Background applied to stack
44 |
45 |
46 | Background applied to stack
47 |
48 |
49 | Background applied to slide inside of stack
50 |
51 |
52 |
53 |
54 | Background image
55 |
56 |
57 |
58 |
59 | Background image
60 |
61 |
62 | Background image
63 |
64 |
65 |
66 |
67 | Background image
68 | data-background-size="100px" data-background-repeat="repeat" data-background-color="#111"
69 |
70 |
71 |
72 | Same background twice (1/2)
73 |
74 |
75 | Same background twice (2/2)
76 |
77 |
78 |
79 |
80 | Same background twice vertical (1/2)
81 |
82 |
83 | Same background twice vertical (2/2)
84 |
85 |
86 |
87 |
88 | Same background from horizontal to vertical (1/3)
89 |
90 |
91 |
92 | Same background from horizontal to vertical (2/3)
93 |
94 |
95 | Same background from horizontal to vertical (3/3)
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
120 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/test/qunit-1.12.0.css:
--------------------------------------------------------------------------------
1 | /**
2 | * QUnit v1.12.0 - A JavaScript Unit Testing Framework
3 | *
4 | * http://qunitjs.com
5 | *
6 | * Copyright 2012 jQuery Foundation and other contributors
7 | * Released under the MIT license.
8 | * http://jquery.org/license
9 | */
10 |
11 | /** Font Family and Sizes */
12 |
13 | #qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
14 | font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
15 | }
16 |
17 | #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
18 | #qunit-tests { font-size: smaller; }
19 |
20 |
21 | /** Resets */
22 |
23 | #qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
24 | margin: 0;
25 | padding: 0;
26 | }
27 |
28 |
29 | /** Header */
30 |
31 | #qunit-header {
32 | padding: 0.5em 0 0.5em 1em;
33 |
34 | color: #8699a4;
35 | background-color: #0d3349;
36 |
37 | font-size: 1.5em;
38 | line-height: 1em;
39 | font-weight: normal;
40 |
41 | border-radius: 5px 5px 0 0;
42 | -moz-border-radius: 5px 5px 0 0;
43 | -webkit-border-top-right-radius: 5px;
44 | -webkit-border-top-left-radius: 5px;
45 | }
46 |
47 | #qunit-header a {
48 | text-decoration: none;
49 | color: #c2ccd1;
50 | }
51 |
52 | #qunit-header a:hover,
53 | #qunit-header a:focus {
54 | color: #fff;
55 | }
56 |
57 | #qunit-testrunner-toolbar label {
58 | display: inline-block;
59 | padding: 0 .5em 0 .1em;
60 | }
61 |
62 | #qunit-banner {
63 | height: 5px;
64 | }
65 |
66 | #qunit-testrunner-toolbar {
67 | padding: 0.5em 0 0.5em 2em;
68 | color: #5E740B;
69 | background-color: #eee;
70 | overflow: hidden;
71 | }
72 |
73 | #qunit-userAgent {
74 | padding: 0.5em 0 0.5em 2.5em;
75 | background-color: #2b81af;
76 | color: #fff;
77 | text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
78 | }
79 |
80 | #qunit-modulefilter-container {
81 | float: right;
82 | }
83 |
84 | /** Tests: Pass/Fail */
85 |
86 | #qunit-tests {
87 | list-style-position: inside;
88 | }
89 |
90 | #qunit-tests li {
91 | padding: 0.4em 0.5em 0.4em 2.5em;
92 | border-bottom: 1px solid #fff;
93 | list-style-position: inside;
94 | }
95 |
96 | #qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
97 | display: none;
98 | }
99 |
100 | #qunit-tests li strong {
101 | cursor: pointer;
102 | }
103 |
104 | #qunit-tests li a {
105 | padding: 0.5em;
106 | color: #c2ccd1;
107 | text-decoration: none;
108 | }
109 | #qunit-tests li a:hover,
110 | #qunit-tests li a:focus {
111 | color: #000;
112 | }
113 |
114 | #qunit-tests li .runtime {
115 | float: right;
116 | font-size: smaller;
117 | }
118 |
119 | .qunit-assert-list {
120 | margin-top: 0.5em;
121 | padding: 0.5em;
122 |
123 | background-color: #fff;
124 |
125 | border-radius: 5px;
126 | -moz-border-radius: 5px;
127 | -webkit-border-radius: 5px;
128 | }
129 |
130 | .qunit-collapsed {
131 | display: none;
132 | }
133 |
134 | #qunit-tests table {
135 | border-collapse: collapse;
136 | margin-top: .2em;
137 | }
138 |
139 | #qunit-tests th {
140 | text-align: right;
141 | vertical-align: top;
142 | padding: 0 .5em 0 0;
143 | }
144 |
145 | #qunit-tests td {
146 | vertical-align: top;
147 | }
148 |
149 | #qunit-tests pre {
150 | margin: 0;
151 | white-space: pre-wrap;
152 | word-wrap: break-word;
153 | }
154 |
155 | #qunit-tests del {
156 | background-color: #e0f2be;
157 | color: #374e0c;
158 | text-decoration: none;
159 | }
160 |
161 | #qunit-tests ins {
162 | background-color: #ffcaca;
163 | color: #500;
164 | text-decoration: none;
165 | }
166 |
167 | /*** Test Counts */
168 |
169 | #qunit-tests b.counts { color: black; }
170 | #qunit-tests b.passed { color: #5E740B; }
171 | #qunit-tests b.failed { color: #710909; }
172 |
173 | #qunit-tests li li {
174 | padding: 5px;
175 | background-color: #fff;
176 | border-bottom: none;
177 | list-style-position: inside;
178 | }
179 |
180 | /*** Passing Styles */
181 |
182 | #qunit-tests li li.pass {
183 | color: #3c510c;
184 | background-color: #fff;
185 | border-left: 10px solid #C6E746;
186 | }
187 |
188 | #qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
189 | #qunit-tests .pass .test-name { color: #366097; }
190 |
191 | #qunit-tests .pass .test-actual,
192 | #qunit-tests .pass .test-expected { color: #999999; }
193 |
194 | #qunit-banner.qunit-pass { background-color: #C6E746; }
195 |
196 | /*** Failing Styles */
197 |
198 | #qunit-tests li li.fail {
199 | color: #710909;
200 | background-color: #fff;
201 | border-left: 10px solid #EE5757;
202 | white-space: pre;
203 | }
204 |
205 | #qunit-tests > li:last-child {
206 | border-radius: 0 0 5px 5px;
207 | -moz-border-radius: 0 0 5px 5px;
208 | -webkit-border-bottom-right-radius: 5px;
209 | -webkit-border-bottom-left-radius: 5px;
210 | }
211 |
212 | #qunit-tests .fail { color: #000000; background-color: #EE5757; }
213 | #qunit-tests .fail .test-name,
214 | #qunit-tests .fail .module-name { color: #000000; }
215 |
216 | #qunit-tests .fail .test-actual { color: #EE5757; }
217 | #qunit-tests .fail .test-expected { color: green; }
218 |
219 | #qunit-banner.qunit-fail { background-color: #EE5757; }
220 |
221 |
222 | /** Result */
223 |
224 | #qunit-testresult {
225 | padding: 0.5em 0.5em 0.5em 2.5em;
226 |
227 | color: #2b81af;
228 | background-color: #D2E0E6;
229 |
230 | border-bottom: 1px solid white;
231 | }
232 | #qunit-testresult .module-name {
233 | font-weight: bold;
234 | }
235 |
236 | /** Fixture */
237 |
238 | #qunit-fixture {
239 | position: absolute;
240 | top: -10000px;
241 | left: -10000px;
242 | width: 1000px;
243 | height: 1000px;
244 | }
--------------------------------------------------------------------------------
/test/test-markdown-element-attributes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Test Markdown Element Attributes
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
74 |
75 |
76 |
77 |
91 |
92 |
99 |
100 |
109 |
110 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
--------------------------------------------------------------------------------
/test/test-markdown-element-attributes.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | Reveal.addEventListener( 'ready', function() {
4 |
5 | QUnit.module( 'Markdown' );
6 |
7 | test( 'Vertical separator', function() {
8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 4, 'found four slides' );
9 | });
10 |
11 |
12 | test( 'Attributes on element header in vertical slides', function() {
13 | strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.fade-out' ).length, 1, 'found one vertical slide with class fragment.fade-out on header' );
14 | strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.shrink' ).length, 1, 'found one vertical slide with class fragment.shrink on header' );
15 | });
16 |
17 | test( 'Attributes on element paragraphs in vertical slides', function() {
18 | strictEqual( document.querySelectorAll( '.reveal .slides section>section p.fragment.grow' ).length, 2, 'found a vertical slide with two paragraphs with class fragment.grow' );
19 | });
20 |
21 | test( 'Attributes on element list items in vertical slides', function() {
22 | strictEqual( document.querySelectorAll( '.reveal .slides section>section li.fragment.roll-in' ).length, 3, 'found a vertical slide with three list items with class fragment.roll-in' );
23 | });
24 |
25 | test( 'Attributes on element paragraphs in horizontal slides', function() {
26 | strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-red' ).length, 4, 'found a horizontal slide with four paragraphs with class fragment.grow' );
27 | });
28 | test( 'Attributes on element list items in horizontal slides', function() {
29 | strictEqual( document.querySelectorAll( '.reveal .slides section li.fragment.highlight-green' ).length, 5, 'found a horizontal slide with five list items with class fragment.roll-in' );
30 | });
31 | test( 'Attributes on element list items in horizontal slides', function() {
32 | strictEqual( document.querySelectorAll( '.reveal .slides section img.reveal.stretch' ).length, 1, 'found a horizontal slide with stretched image, class img.reveal.stretch' );
33 | });
34 |
35 | test( 'Attributes on elements in vertical slides with default element attribute separator', function() {
36 | strictEqual( document.querySelectorAll( '.reveal .slides section h2.fragment.highlight-red' ).length, 2, 'found two h2 titles with fragment highlight-red in vertical slides with default element attribute separator' );
37 | });
38 |
39 | test( 'Attributes on elements in single slides with default element attribute separator', function() {
40 | strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-blue' ).length, 3, 'found three elements with fragment highlight-blue in single slide with default element attribute separator' );
41 | });
42 |
43 | } );
44 |
45 | Reveal.initialize();
46 |
47 |
--------------------------------------------------------------------------------
/test/test-markdown-slide-attributes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Test Markdown Attributes
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
57 |
58 |
89 |
90 |
96 |
97 |
103 |
104 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
--------------------------------------------------------------------------------
/test/test-markdown-slide-attributes.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | Reveal.addEventListener( 'ready', function() {
4 |
5 | QUnit.module( 'Markdown' );
6 |
7 | test( 'Vertical separator', function() {
8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 6, 'found six vertical slides' );
9 | });
10 |
11 | test( 'Id on slide', function() {
12 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section#slide2' ).length, 1, 'found one slide with id slide2' );
13 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section a[href="#/slide2"]' ).length, 1, 'found one slide with a link to slide2' );
14 | });
15 |
16 | test( 'data-background attributes', function() {
17 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A0C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
18 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#ff0000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
19 | strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C6916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
20 | });
21 |
22 | test( 'data-transition attributes', function() {
23 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="zoom"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
24 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="fade"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
25 | strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="zoom"]' ).length, 1, 'found one slide with data-transition="zoom"' );
26 | });
27 |
28 | test( 'data-background attributes with default separator', function() {
29 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A7C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
30 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#f70000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
31 | strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C7916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
32 | });
33 |
34 | test( 'data-transition attributes with default separator', function() {
35 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="concave"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
36 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="page"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
37 | strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="concave"]' ).length, 1, 'found one slide with data-transition="zoom"' );
38 | });
39 |
40 | test( 'data-transition attributes with inline content', function() {
41 | strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#ff0000"]' ).length, 3, 'found three horizontal slides with data-background="#ff0000"' );
42 | });
43 |
44 | } );
45 |
46 | Reveal.initialize();
47 |
48 |
--------------------------------------------------------------------------------
/test/test-markdown.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Test Markdown
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/test/test-markdown.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | Reveal.addEventListener( 'ready', function() {
4 |
5 | QUnit.module( 'Markdown' );
6 |
7 | test( 'Vertical separator', function() {
8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
9 | });
10 |
11 |
12 | } );
13 |
14 | Reveal.initialize();
15 |
16 |
--------------------------------------------------------------------------------
/test/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Tests
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
37 |
38 |
39 |
40 | 3.1
41 |
42 | - 4.1
43 | - 4.2
44 | - 4.3
45 |
46 |
47 |
48 |
55 |
56 |
57 | 3.3
58 |
59 | - 3.3.1
60 | - 3.3.2
61 | - 3.3.3
62 |
63 |
64 |
65 |
66 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/vid/angular_after.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/angular_after.webm
--------------------------------------------------------------------------------
/vid/angular_before.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/angular_before.webm
--------------------------------------------------------------------------------
/vid/cache_first.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/cache_first.mp4
--------------------------------------------------------------------------------
/vid/cache_first.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/cache_first.webm
--------------------------------------------------------------------------------
/vid/flipbook.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/flipbook.mp4
--------------------------------------------------------------------------------
/vid/flipbook.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/flipbook.webm
--------------------------------------------------------------------------------
/vid/freakingout.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/freakingout.mp4
--------------------------------------------------------------------------------
/vid/freakingout.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/freakingout.webm
--------------------------------------------------------------------------------
/vid/kirby_1.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_1.mp4
--------------------------------------------------------------------------------
/vid/kirby_1.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_1.webm
--------------------------------------------------------------------------------
/vid/kirby_2.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_2.mp4
--------------------------------------------------------------------------------
/vid/kirby_2.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_2.webm
--------------------------------------------------------------------------------
/vid/kirby_3.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_3.mp4
--------------------------------------------------------------------------------
/vid/kirby_3.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_3.webm
--------------------------------------------------------------------------------
/vid/kirby_blocked_by_ajax.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_blocked_by_ajax.mp4
--------------------------------------------------------------------------------
/vid/kirby_blocked_by_ajax.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_blocked_by_ajax.webm
--------------------------------------------------------------------------------
/vid/kirby_blocked_by_fetch.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_blocked_by_fetch.mp4
--------------------------------------------------------------------------------
/vid/kirby_blocked_by_fetch.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_blocked_by_fetch.webm
--------------------------------------------------------------------------------
/vid/kirby_blocked_by_idb.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_blocked_by_idb.mp4
--------------------------------------------------------------------------------
/vid/kirby_blocked_by_idb.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_blocked_by_idb.webm
--------------------------------------------------------------------------------
/vid/kirby_unblocked_by_idb.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_unblocked_by_idb.mp4
--------------------------------------------------------------------------------
/vid/kirby_unblocked_by_idb.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/kirby_unblocked_by_idb.webm
--------------------------------------------------------------------------------
/vid/offline.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/offline.mp4
--------------------------------------------------------------------------------
/vid/offline.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/offline.webm
--------------------------------------------------------------------------------
/vid/pokedex_loop.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/pokedex_loop.mp4
--------------------------------------------------------------------------------
/vid/pokedex_loop.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/pokedex_loop.webm
--------------------------------------------------------------------------------
/vid/react_worker.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nolanlawson/braziljs-2016/a4cb6490211af197bc615f0566c04e47f7a0b32c/vid/react_worker.webm
--------------------------------------------------------------------------------