1
0
mirror of https://github.com/hakimel/reveal.js.git synced 2025-08-16 03:24:29 +02:00
This commit is contained in:
Hakim El Hattab
2018-08-16 11:16:36 +02:00
parent cd8081dad8
commit 10d100d275
27 changed files with 940 additions and 374 deletions

View File

@@ -72,15 +72,8 @@ ul, ol, div, p {
overflow: visible; overflow: visible;
display: block; display: block;
-webkit-perspective: none; perspective: none;
-moz-perspective: none; perspective-origin: 50% 50%;
-ms-perspective: none;
perspective: none;
-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-moz-perspective-origin: 50% 50%;
-ms-perspective-origin: 50% 50%;
perspective-origin: 50% 50%;
} }
.reveal .slides .pdf-page { .reveal .slides .pdf-page {
@@ -103,15 +96,8 @@ ul, ol, div, p {
opacity: 1 !important; opacity: 1 !important;
-webkit-transform-style: flat !important; transform-style: flat !important;
-moz-transform-style: flat !important; transform: none !important;
-ms-transform-style: flat !important;
transform-style: flat !important;
-webkit-transform: none !important;
-moz-transform: none !important;
-ms-transform: none !important;
transform: none !important;
} }
.reveal section.stack { .reveal section.stack {

View File

@@ -1,9 +1,9 @@
/*! /*!
* reveal.js * reveal.js
* http://lab.hakim.se/reveal-js * http://revealjs.com
* MIT licensed * MIT licensed
* *
* Copyright (C) 2017 Hakim El Hattab, http://hakim.se * Copyright (C) 2018 Hakim El Hattab, http://hakim.se
*/ */
/********************************************* /*********************************************
* RESET STYLES * RESET STYLES
@@ -127,13 +127,25 @@ body {
-webkit-transform: translate(0, 0); -webkit-transform: translate(0, 0);
transform: translate(0, 0); } transform: translate(0, 0); }
.reveal .slides section .fragment.fade-in-then-out,
.reveal .slides section .fragment.current-visible { .reveal .slides section .fragment.current-visible {
opacity: 0; opacity: 0;
visibility: hidden; } visibility: hidden; }
.reveal .slides section .fragment.fade-in-then-out.current-fragment,
.reveal .slides section .fragment.current-visible.current-fragment { .reveal .slides section .fragment.current-visible.current-fragment {
opacity: 1; opacity: 1;
visibility: inherit; } visibility: inherit; }
.reveal .slides section .fragment.fade-in-then-semi-out {
opacity: 0;
visibility: hidden; }
.reveal .slides section .fragment.fade-in-then-semi-out.visible {
opacity: 0.5;
visibility: inherit; }
.reveal .slides section .fragment.fade-in-then-semi-out.current-fragment {
opacity: 1;
visibility: inherit; }
.reveal .slides section .fragment.highlight-red, .reveal .slides section .fragment.highlight-red,
.reveal .slides section .fragment.highlight-current-red, .reveal .slides section .fragment.highlight-current-red,
.reveal .slides section .fragment.highlight-green, .reveal .slides section .fragment.highlight-green,
@@ -448,7 +460,7 @@ body {
* SLIDE NUMBER * SLIDE NUMBER
*********************************************/ *********************************************/
.reveal .slide-number { .reveal .slide-number {
position: fixed; position: absolute;
display: block; display: block;
right: 8px; right: 8px;
bottom: 8px; bottom: 8px;
@@ -460,6 +472,9 @@ body {
background-color: rgba(0, 0, 0, 0.4); background-color: rgba(0, 0, 0, 0.4);
padding: 5px; } padding: 5px; }
.reveal .slide-number a {
color: currentColor; }
.reveal .slide-number-delimiter { .reveal .slide-number-delimiter {
margin: 0 3px; } margin: 0 3px; }
@@ -528,7 +543,8 @@ body {
.reveal .slides > section.stack { .reveal .slides > section.stack {
padding-top: 0; padding-top: 0;
padding-bottom: 0; } padding-bottom: 0;
pointer-events: none; }
.reveal .slides > section.present, .reveal .slides > section.present,
.reveal .slides > section > section.present { .reveal .slides > section > section.present {
@@ -948,6 +964,21 @@ body {
z-index: 100; z-index: 100;
transition: all 1s ease; } transition: all 1s ease; }
.reveal .pause-overlay .resume-button {
position: absolute;
bottom: 20px;
right: 20px;
color: #ccc;
border-radius: 2px;
padding: 6px 14px;
border: 2px solid #ccc;
font-size: 16px;
background: transparent;
cursor: pointer; }
.reveal .pause-overlay .resume-button:hover {
color: #fff;
border-color: #fff; }
.reveal.paused .pause-overlay { .reveal.paused .pause-overlay {
visibility: visible; visibility: visible;
opacity: 1; } opacity: 1; }
@@ -1011,10 +1042,15 @@ body {
visibility: hidden; visibility: hidden;
overflow: hidden; overflow: hidden;
background-color: transparent; background-color: transparent;
transition: all 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
.reveal .slide-background-content {
position: absolute;
width: 100%;
height: 100%;
background-position: 50% 50%; background-position: 50% 50%;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover; background-size: cover; }
transition: all 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
.reveal .slide-background.stack { .reveal .slide-background.stack {
display: block; } display: block; }

7
css/reveal.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,9 @@
/*! /*!
* reveal.js * reveal.js
* http://lab.hakim.se/reveal-js * http://revealjs.com
* MIT licensed * MIT licensed
* *
* Copyright (C) 2017 Hakim El Hattab, http://hakim.se * Copyright (C) 2018 Hakim El Hattab, http://hakim.se
*/ */
@@ -160,6 +160,7 @@ body {
} }
} }
.reveal .slides section .fragment.fade-in-then-out,
.reveal .slides section .fragment.current-visible { .reveal .slides section .fragment.current-visible {
opacity: 0; opacity: 0;
visibility: hidden; visibility: hidden;
@@ -170,6 +171,21 @@ body {
} }
} }
.reveal .slides section .fragment.fade-in-then-semi-out {
opacity: 0;
visibility: hidden;
&.visible {
opacity: 0.5;
visibility: inherit;
}
&.current-fragment {
opacity: 1;
visibility: inherit;
}
}
.reveal .slides section .fragment.highlight-red, .reveal .slides section .fragment.highlight-red,
.reveal .slides section .fragment.highlight-current-red, .reveal .slides section .fragment.highlight-current-red,
.reveal .slides section .fragment.highlight-green, .reveal .slides section .fragment.highlight-green,
@@ -540,7 +556,7 @@ $controlsArrowAngleActive: 36deg;
*********************************************/ *********************************************/
.reveal .slide-number { .reveal .slide-number {
position: fixed; position: absolute;
display: block; display: block;
right: 8px; right: 8px;
bottom: 8px; bottom: 8px;
@@ -553,6 +569,10 @@ $controlsArrowAngleActive: 36deg;
padding: 5px; padding: 5px;
} }
.reveal .slide-number a {
color: currentColor;
}
.reveal .slide-number-delimiter { .reveal .slide-number-delimiter {
margin: 0 3px; margin: 0 3px;
} }
@@ -636,6 +656,7 @@ $controlsArrowAngleActive: 36deg;
.reveal .slides>section.stack { .reveal .slides>section.stack {
padding-top: 0; padding-top: 0;
padding-bottom: 0; padding-bottom: 0;
pointer-events: none;
} }
.reveal .slides>section.present, .reveal .slides>section.present,
@@ -1013,6 +1034,25 @@ $controlsArrowAngleActive: 36deg;
z-index: 100; z-index: 100;
transition: all 1s ease; transition: all 1s ease;
} }
.reveal .pause-overlay .resume-button {
position: absolute;
bottom: 20px;
right: 20px;
color: #ccc;
border-radius: 2px;
padding: 6px 14px;
border: 2px solid #ccc;
font-size: 16px;
background: transparent;
cursor: pointer;
&:hover {
color: #fff;
border-color: #fff;
}
}
.reveal.paused .pause-overlay { .reveal.paused .pause-overlay {
visibility: visible; visibility: visible;
opacity: 1; opacity: 1;
@@ -1086,11 +1126,18 @@ $controlsArrowAngleActive: 36deg;
overflow: hidden; overflow: hidden;
background-color: rgba( 0, 0, 0, 0 ); background-color: rgba( 0, 0, 0, 0 );
transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
}
.reveal .slide-background-content {
position: absolute;
width: 100%;
height: 100%;
background-position: 50% 50%; background-position: 50% 50%;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover; background-size: cover;
transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
} }
.reveal .slide-background.stack { .reveal .slide-background.stack {

View File

@@ -4,7 +4,7 @@ Themes are written using Sass to keep things modular and reduce the need for rep
## Creating a Theme ## Creating a Theme
To create your own theme, start by duplicating a ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled by Grunt from Sass to CSS (see the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js)) when you run `grunt css-themes`. To create your own theme, start by duplicating a ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled by Grunt from Sass to CSS (see the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js)) when you run `npm run build -- css-themes`.
Each theme file does four things in the following order: Each theme file does four things in the following order:

View File

@@ -34,8 +34,8 @@ body {
background: rgba(79, 64, 28, 0.99); background: rgba(79, 64, 28, 0.99);
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -193,10 +193,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -266,3 +268,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #f7f3de; } }

View File

@@ -30,8 +30,8 @@ body {
background: #bee4fd; background: #bee4fd;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -189,10 +189,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -262,3 +264,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #222; } }

View File

@@ -33,8 +33,8 @@ body {
background: #a23; background: #a23;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -192,10 +192,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -266,6 +268,13 @@ body {
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #222; } }
.reveal p { .reveal p {
font-weight: 300; font-weight: 300;
text-shadow: 1px 1px #222; } text-shadow: 1px 1px #222; }

View File

@@ -36,8 +36,8 @@ body {
background: #FF5E99; background: #FF5E99;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -195,10 +195,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -268,3 +270,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #2b2b2b; } }

View File

@@ -34,8 +34,8 @@ body {
background: #d33682; background: #d33682;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -193,10 +193,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -266,3 +268,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #002b36; } }

View File

@@ -28,8 +28,8 @@ body {
background: #e7ad52; background: #e7ad52;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -187,10 +187,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -260,3 +262,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #111; } }

View File

@@ -30,8 +30,8 @@ body {
background: #26351C; background: #26351C;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -189,10 +189,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -262,3 +264,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #F0F1EB; } }

View File

@@ -33,8 +33,8 @@ body {
background: rgba(0, 0, 0, 0.99); background: rgba(0, 0, 0, 0.99);
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -192,10 +192,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -265,3 +267,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #fff; } }

View File

@@ -37,8 +37,8 @@ body {
background: #134674; background: #134674;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -196,10 +196,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -269,3 +271,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #f7fbfc; } }

View File

@@ -34,8 +34,8 @@ body {
background: #d33682; background: #d33682;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -193,10 +193,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -266,3 +268,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #fdf6e3; } }

View File

@@ -28,8 +28,8 @@ body {
text-shadow: none; text-shadow: none;
} }
.reveal .slides>section, .reveal .slides section,
.reveal .slides>section>section { .reveal .slides section>section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; font-weight: inherit;
} }
@@ -217,9 +217,11 @@ body {
.reveal sup { .reveal sup {
vertical-align: super; vertical-align: super;
font-size: smaller;
} }
.reveal sub { .reveal sub {
vertical-align: sub; vertical-align: sub;
font-size: smaller;
} }
.reveal small { .reveal small {
@@ -310,7 +312,14 @@ body {
.reveal .progress span { .reveal .progress span {
-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); -webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
} }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: $backgroundColor;
}
}

View File

@@ -30,8 +30,8 @@ body {
background: #98bdef; background: #98bdef;
text-shadow: none; } text-shadow: none; }
.reveal .slides > section, .reveal .slides section,
.reveal .slides > section > section { .reveal .slides section > section {
line-height: 1.3; line-height: 1.3;
font-weight: inherit; } font-weight: inherit; }
@@ -189,10 +189,12 @@ body {
border-bottom: none; } border-bottom: none; }
.reveal sup { .reveal sup {
vertical-align: super; } vertical-align: super;
font-size: smaller; }
.reveal sub { .reveal sub {
vertical-align: sub; } vertical-align: sub;
font-size: smaller; }
.reveal small { .reveal small {
display: inline-block; display: inline-block;
@@ -262,3 +264,10 @@ body {
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* PRINT BACKGROUND
*********************************************/
@media print {
.backgrounds {
background-color: #fff; } }

File diff suppressed because it is too large Load Diff

9
js/reveal.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -99,6 +99,13 @@
</script> </script>
</section> </section>
<!-- Images -->
<section data-markdown>
<script type="text/template">
![Sample image](https://s3.amazonaws.com/static.slid.es/logo/v2/slides-symbol-512x512.png)
</script>
</section>
</div> </div>
</div> </div>

View File

@@ -29,3 +29,8 @@ Content 3.1
## External 3.2 ## External 3.2
Content 3.2 Content 3.2
## External 3.3
![External Image](https://s3.amazonaws.com/static.slid.es/logo/v2/slides-symbol-512x512.png)

View File

@@ -9,15 +9,15 @@ var RevealMath = window.RevealMath || (function(){
var options = Reveal.getConfig().math || {}; var options = Reveal.getConfig().math || {};
options.mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js'; options.mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js';
options.config = options.config || 'TeX-AMS_HTML-full'; options.config = options.config || 'TeX-AMS_HTML-full';
options.tex2jax = options.tex2jax || {
inlineMath: [['$','$'],['\\(','\\)']] ,
skipTags: ['script','noscript','style','textarea','pre'] };
loadScript( options.mathjax + '?config=' + options.config, function() { loadScript( options.mathjax + '?config=' + options.config, function() {
MathJax.Hub.Config({ MathJax.Hub.Config({
messageStyle: 'none', messageStyle: 'none',
tex2jax: { tex2jax: options.tex2jax,
inlineMath: [['$','$'],['\\(','\\)']] ,
skipTags: ['script','noscript','style','textarea','pre']
},
skipStartupTypeset: true skipStartupTypeset: true
}); });

View File

@@ -2,7 +2,7 @@
"name": "reveal-js-multiplex", "name": "reveal-js-multiplex",
"version": "1.0.0", "version": "1.0.0",
"description": "reveal.js multiplex server", "description": "reveal.js multiplex server",
"homepage": "http://lab.hakim.se/reveal-js", "homepage": "http://revealjs.com",
"scripts": { "scripts": {
"start": "node index.js" "start": "node index.js"
}, },

View File

@@ -34,6 +34,22 @@
z-index: 2; z-index: 2;
} }
#connection-status {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 20;
padding: 30% 20% 20% 20%;
font-size: 18px;
color: #222;
background: #fff;
text-align: center;
box-sizing: border-box;
line-height: 1.4;
}
.overlay-element { .overlay-element {
height: 34px; height: 34px;
line-height: 34px; line-height: 34px;
@@ -288,6 +304,8 @@
<body> <body>
<div id="connection-status">Loading speaker view...</div>
<div id="current-slide"></div> <div id="current-slide"></div>
<div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div> <div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
<div id="speaker-controls"> <div id="speaker-controls">
@@ -340,8 +358,16 @@
setupLayout(); setupLayout();
var connectionStatus = document.querySelector( '#connection-status' );
var connectionTimeout = setTimeout( function() {
connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';
}, 5000 );
window.addEventListener( 'message', function( event ) { window.addEventListener( 'message', function( event ) {
clearTimeout( connectionTimeout );
connectionStatus.style.display = 'none';
var data = JSON.parse( event.data ); var data = JSON.parse( event.data );
// The overview mode is only useful to the reveal.js instance // The overview mode is only useful to the reveal.js instance
@@ -427,10 +453,17 @@
* Forward keyboard events to the current slide window. * Forward keyboard events to the current slide window.
* This enables keyboard events to work even if focus * This enables keyboard events to work even if focus
* isn't set on the current slide iframe. * isn't set on the current slide iframe.
*
* Block F5 default handling, it reloads and disconnects
* the speaker notes window.
*/ */
function setupKeyboard() { function setupKeyboard() {
document.addEventListener( 'keydown', function( event ) { document.addEventListener( 'keydown', function( event ) {
if( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {
event.preventDefault();
return false;
}
currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' ); currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );
} ); } );

View File

@@ -21,8 +21,13 @@ var RevealNotes = (function() {
var notesPopup = window.open( notesFilePath, 'reveal.js - Notes', 'width=1100,height=700' ); var notesPopup = window.open( notesFilePath, 'reveal.js - Notes', 'width=1100,height=700' );
if( !notesPopup ) {
alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
return;
}
// Allow popup window access to Reveal API // Allow popup window access to Reveal API
notesPopup.Reveal = this.Reveal; notesPopup.Reveal = window.Reveal;
/** /**
* Connect to the notes window through a postmessage handshake. * Connect to the notes window through a postmessage handshake.
@@ -131,22 +136,9 @@ var RevealNotes = (function() {
} }
// Open the notes when the 's' key is hit // Open the notes when the 's' key is hit
document.addEventListener( 'keydown', function( event ) { Reveal.addKeyBinding({keyCode: 83, key: 'S', description: 'Speaker notes view'}, function() {
// Disregard the event if the target is editable or a openNotes();
// modifier is present } );
if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
// Disregard the event if keyboard is disabled
if ( Reveal.getConfig().keyboard === false ) return;
if( event.keyCode === 83 ) {
event.preventDefault();
openNotes();
}
}, false );
// Show our keyboard shortcut in the reveal.js help overlay
if( window.Reveal ) Reveal.registerKeyboardShortcut( 'S', 'Speaker notes view' );
} }

View File

@@ -2,7 +2,7 @@
* phantomjs script for printing presentations to PDF. * phantomjs script for printing presentations to PDF.
* *
* Example: * Example:
* phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf * phantomjs print-pdf.js "http://revealjs.com?print-pdf" reveal-demo.pdf
* *
* @author Manuel Bieh (https://github.com/manuelbieh) * @author Manuel Bieh (https://github.com/manuelbieh)
* @author Hakim El Hattab (https://github.com/hakimel) * @author Hakim El Hattab (https://github.com/hakimel)
@@ -42,28 +42,26 @@ probePage.open( inputFile, function( status ) {
printPage.open( inputFile, function( status ) { printPage.open( inputFile, function( status ) {
console.log( 'Export PDF: Preparing pdf [3/4]') console.log( 'Export PDF: Preparing pdf [3/4]')
printPage.evaluate(function() { printPage.evaluate( function() {
Reveal.isReady() ? window.callPhantom() : Reveal.addEventListener( 'pdf-ready', window.callPhantom ); Reveal.isReady() ? window.callPhantom() : Reveal.addEventListener( 'pdf-ready', window.callPhantom );
}); } );
} ); } );
printPage.onCallback = function(data) { printPage.onCallback = function( data ) {
// For some reason we need to "jump the queue" for syntax highlighting to work. // For some reason we need to "jump the queue" for syntax highlighting to work.
// See: http://stackoverflow.com/a/3580132/129269 // See: http://stackoverflow.com/a/3580132/129269
setTimeout(function() { setTimeout( function() {
console.log( 'Export PDF: Writing file [4/4]' ); console.log( 'Export PDF: Writing file [4/4]' );
printPage.render( outputFile ); printPage.render( outputFile );
console.log( 'Export PDF: Finished successfully!' ); console.log( 'Export PDF: Finished successfully!' );
phantom.exit(); phantom.exit();
}, 0); }, 0 );
}; };
} }
else { else {
console.log( 'Export PDF: Unable to read reveal.js config. Make sure the input address points to a reveal.js page.' ); console.log( 'Export PDF: Unable to read reveal.js config. Make sure the input address points to a reveal.js page.' );
phantom.exit(1); phantom.exit( 1 );
} }
} ); } );

View File

@@ -19,92 +19,92 @@ var RevealSearch = (function() {
function Hilitor(id, tag) function Hilitor(id, tag)
{ {
var targetNode = document.getElementById(id) || document.body; var targetNode = document.getElementById(id) || document.body;
var hiliteTag = tag || "EM"; var hiliteTag = tag || "EM";
var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM)$"); var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM)$");
var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"]; var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"];
var wordColor = []; var wordColor = [];
var colorIdx = 0; var colorIdx = 0;
var matchRegex = ""; var matchRegex = "";
var matchingSlides = []; var matchingSlides = [];
this.setRegex = function(input) this.setRegex = function(input)
{ {
input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|"); input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|");
matchRegex = new RegExp("(" + input + ")","i"); matchRegex = new RegExp("(" + input + ")","i");
} }
this.getRegex = function() this.getRegex = function()
{ {
return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " "); return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
} }
// recursively apply word highlighting // recursively apply word highlighting
this.hiliteWords = function(node) this.hiliteWords = function(node)
{ {
if(node == undefined || !node) return; if(node == undefined || !node) return;
if(!matchRegex) return; if(!matchRegex) return;
if(skipTags.test(node.nodeName)) return; if(skipTags.test(node.nodeName)) return;
if(node.hasChildNodes()) { if(node.hasChildNodes()) {
for(var i=0; i < node.childNodes.length; i++) for(var i=0; i < node.childNodes.length; i++)
this.hiliteWords(node.childNodes[i]); this.hiliteWords(node.childNodes[i]);
} }
if(node.nodeType == 3) { // NODE_TEXT if(node.nodeType == 3) { // NODE_TEXT
if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) { if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) {
//find the slide's section element and save it in our list of matching slides //find the slide's section element and save it in our list of matching slides
var secnode = node; var secnode = node;
while (secnode != null && secnode.nodeName != 'SECTION') { while (secnode != null && secnode.nodeName != 'SECTION') {
secnode = secnode.parentNode; secnode = secnode.parentNode;
} }
var slideIndex = Reveal.getIndices(secnode); var slideIndex = Reveal.getIndices(secnode);
var slidelen = matchingSlides.length; var slidelen = matchingSlides.length;
var alreadyAdded = false; var alreadyAdded = false;
for (var i=0; i < slidelen; i++) { for (var i=0; i < slidelen; i++) {
if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) { if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) {
alreadyAdded = true; alreadyAdded = true;
} }
} }
if (! alreadyAdded) { if (! alreadyAdded) {
matchingSlides.push(slideIndex); matchingSlides.push(slideIndex);
} }
if(!wordColor[regs[0].toLowerCase()]) { if(!wordColor[regs[0].toLowerCase()]) {
wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length]; wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length];
} }
var match = document.createElement(hiliteTag); var match = document.createElement(hiliteTag);
match.appendChild(document.createTextNode(regs[0])); match.appendChild(document.createTextNode(regs[0]));
match.style.backgroundColor = wordColor[regs[0].toLowerCase()]; match.style.backgroundColor = wordColor[regs[0].toLowerCase()];
match.style.fontStyle = "inherit"; match.style.fontStyle = "inherit";
match.style.color = "#000"; match.style.color = "#000";
var after = node.splitText(regs.index); var after = node.splitText(regs.index);
after.nodeValue = after.nodeValue.substring(regs[0].length); after.nodeValue = after.nodeValue.substring(regs[0].length);
node.parentNode.insertBefore(match, after); node.parentNode.insertBefore(match, after);
} }
} }
}; };
// remove highlighting // remove highlighting
this.remove = function() this.remove = function()
{ {
var arr = document.getElementsByTagName(hiliteTag); var arr = document.getElementsByTagName(hiliteTag);
while(arr.length && (el = arr[0])) { while(arr.length && (el = arr[0])) {
el.parentNode.replaceChild(el.firstChild, el); el.parentNode.replaceChild(el.firstChild, el);
} }
}; };
// start highlighting at target node // start highlighting at target node
this.apply = function(input) this.apply = function(input)
{ {
if(input == undefined || !input) return; if(input == undefined || !input) return;
this.remove(); this.remove();
this.setRegex(input); this.setRegex(input);
this.hiliteWords(targetNode); this.hiliteWords(targetNode);
return matchingSlides; return matchingSlides;
}; };
} }
@@ -150,7 +150,7 @@ function Hilitor(id, tag)
} }
} }
if (matchedSlides) { if (matchedSlides) {
//navigate to the next slide that has the keyword, wrapping to the first if necessary //navigate to the next slide that has the keyword, wrapping to the first if necessary
if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) { if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) {
currentMatchedIndex = 0; currentMatchedIndex = 0;
@@ -169,20 +169,20 @@ function Hilitor(id, tag)
var searchElement = document.createElement( 'div' ); var searchElement = document.createElement( 'div' );
searchElement.id = "searchinputdiv"; searchElement.id = "searchinputdiv";
searchElement.classList.add( 'searchdiv' ); searchElement.classList.add( 'searchdiv' );
searchElement.style.position = 'absolute'; searchElement.style.position = 'absolute';
searchElement.style.top = '10px'; searchElement.style.top = '10px';
searchElement.style.right = '10px'; searchElement.style.right = '10px';
searchElement.style.zIndex = 10; searchElement.style.zIndex = 10;
//embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/: //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/:
searchElement.innerHTML = '<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>'; searchElement.innerHTML = '<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>';
dom.wrapper.appendChild( searchElement ); dom.wrapper.appendChild( searchElement );
} }
document.getElementById("searchbutton").addEventListener( 'click', function(event) { document.getElementById( 'searchbutton' ).addEventListener( 'click', function(event) {
doSearch(); doSearch();
}, false ); }, false );
document.getElementById("searchinput").addEventListener( 'keyup', function( event ) { document.getElementById( 'searchinput' ).addEventListener( 'keyup', function( event ) {
switch (event.keyCode) { switch (event.keyCode) {
case 13: case 13:
event.preventDefault(); event.preventDefault();
@@ -195,7 +195,7 @@ function Hilitor(id, tag)
}, false ); }, false );
document.addEventListener( 'keydown', function( event ) { document.addEventListener( 'keydown', function( event ) {
if( event.key == "F" && (event.ctrlKey || event.metaKey) ) {//Control+Shift+f if( event.key == "F" && (event.ctrlKey || event.metaKey) ) { //Control+Shift+f
event.preventDefault(); event.preventDefault();
toggleSearch(); toggleSearch();
} }