359 lines
8.9 KiB
CSS
359 lines
8.9 KiB
CSS
body * {
|
|
font-family: "Gentium Plus", serif;
|
|
}
|
|
|
|
.apple {
|
|
font-family: "Homemade Apple", cursive;
|
|
}
|
|
|
|
.verse {
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
/* Default Impress stuff */
|
|
#impress {
|
|
}
|
|
/* Using the substep plugin, hide bullet points at first, then show them one by one. */
|
|
#impress .step .substep {
|
|
opacity: 0;
|
|
}
|
|
|
|
#impress .step .substep.substep-visible {
|
|
opacity: 1;
|
|
transition: opacity 1s;
|
|
}
|
|
/*
|
|
Speaker notes allow you to write comments within the steps, that will not
|
|
be displayed as part of the presentation. However, they will be picked up
|
|
and displayed by impressConsole.js when you press P.
|
|
*/
|
|
.notes {
|
|
display: none;
|
|
}
|
|
|
|
/* Toolbar plugin */
|
|
.impress-enabled div#impress-toolbar {
|
|
position: fixed;
|
|
right: 1px;
|
|
bottom: 1px;
|
|
opacity: 0.6;
|
|
z-index: 10;
|
|
}
|
|
.impress-enabled div#impress-toolbar > span {
|
|
margin-right: 10px;
|
|
}
|
|
.impress-enabled div#impress-toolbar.impress-toolbar-show {
|
|
display: block;
|
|
}
|
|
.impress-enabled div#impress-toolbar.impress-toolbar-hide {
|
|
display: none;
|
|
}
|
|
|
|
/* Progress bar */
|
|
.impress-progress {
|
|
position: absolute;
|
|
left: 59px;
|
|
bottom: 1px;
|
|
text-align: left;
|
|
font-size: 10pt;
|
|
opacity: 0.6;
|
|
}
|
|
.impress-enabled .impress-progressbar {
|
|
position: absolute;
|
|
right: 318px;
|
|
bottom: 1px;
|
|
left: 118px;
|
|
border-radius: 7px;
|
|
border: 2px solid rgba(100, 100, 100, 0.2);
|
|
}
|
|
.impress-progressbar {
|
|
right: 118px;
|
|
}
|
|
.impress-progressbar DIV {
|
|
width: 0;
|
|
height: 2px;
|
|
border-radius: 5px;
|
|
background: rgba(75, 75, 75, 0.4);
|
|
transition: width 1s linear;
|
|
}
|
|
.impress-enabled .impress-progress {
|
|
position: absolute;
|
|
left: 59px;
|
|
bottom: 1px;
|
|
text-align: left;
|
|
opacity: 0.6;
|
|
}
|
|
.impress-enabled #impress-help {
|
|
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.5);
|
|
color: #EEEEEE;
|
|
font-size: 80%;
|
|
position: fixed;
|
|
left: 2em;
|
|
bottom: 2em;
|
|
width: 24em;
|
|
border-radius: 1em;
|
|
padding: 1em;
|
|
text-align: center;
|
|
z-index: 100;
|
|
font-family: Verdana, Arial, Sans;
|
|
}
|
|
.impress-enabled #impress-help td {
|
|
padding-left: 1em;
|
|
padding-right: 1em;
|
|
}
|
|
|
|
/*
|
|
We might want to hide the help, toolbar, progress and progress bar in the
|
|
preView window of the impressConsole that is displayed when you press P.
|
|
*/
|
|
.impress-console.preView .impress-progress,
|
|
.impress-console.preView .impress-progressbar,
|
|
.impress-console.preView #impress-toolbar,
|
|
.impress-console.preView #impress-help {
|
|
display: none;
|
|
}
|
|
/*
|
|
Hide the help in the slideView as well.
|
|
*/
|
|
.impress-console.slideView #impress-help {
|
|
display: none;
|
|
}
|
|
|
|
/*
|
|
With help from the mouse-timeout plugin, we can hide the toolbar and
|
|
have it show only when you move/click/touch the mouse.
|
|
*/
|
|
body.impress-mouse-timeout div#impress-toolbar {
|
|
display: none;
|
|
}
|
|
|
|
/*
|
|
In fact, we can hide the mouse cursor itself too, when mouse isn't used.
|
|
*/
|
|
body.impress-mouse-timeout {
|
|
cursor: none;
|
|
}
|
|
|
|
|
|
/*
|
|
And as the last thing there is a workaround for quite strange bug.
|
|
It happens a lot in Chrome. I don't remember if I've seen it in Firefox.
|
|
Sometimes the element positioned in 3D (especially when it's moved back
|
|
along Z axis) is not clickable, because it falls 'behind' the <body>
|
|
element.
|
|
To prevent this, I decided to make <body> non clickable by setting
|
|
pointer-events property to `none` value.
|
|
Value if this property is inherited, so to make everything else clickable
|
|
I bring it back on the #impress element.
|
|
If you want to know more about `pointer-events` here are some docs:
|
|
https://developer.mozilla.org/en/CSS/pointer-events
|
|
There is one very important thing to notice about this workaround - it makes
|
|
everything 'unclickable' except what's in #impress element.
|
|
So use it wisely ... or don't use at all.
|
|
*/
|
|
|
|
.impress-enabled { pointer-events: none }
|
|
.impress-enabled #impress { pointer-events: auto }
|
|
|
|
/*If you disable pointer-events, you need to re-enable them for the toolbar.
|
|
And the speaker console while at it.*/
|
|
|
|
.impress-enabled #impress-toolbar { pointer-events: auto }
|
|
.impress-enabled #impress-console-button { pointer-events: auto }
|
|
|
|
|
|
/*
|
|
There is one funny thing I just realized.
|
|
Thanks to this workaround above everything except #impress element is invisible
|
|
for click events. That means that the hint element is also not clickable.
|
|
So basically all of this transforms and delayed transitions trickery was probably
|
|
not needed at all...
|
|
But it was fun to learn about it, wasn't it?
|
|
*/
|
|
|
|
.fallback-message {
|
|
font-family: sans-serif;
|
|
line-height: 1.3;
|
|
|
|
width: 780px;
|
|
padding: 10px 10px 0;
|
|
margin: 20px auto;
|
|
|
|
border: 1px solid #E4C652;
|
|
border-radius: 10px;
|
|
background: #EEDC94;
|
|
}
|
|
|
|
.fallback-message p {
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.impress-supported .fallback-message {
|
|
display: none;
|
|
}
|
|
|
|
|
|
/*
|
|
Now let's style the presentation steps.
|
|
We start with basics to make sure it displays correctly in everywhere ...
|
|
*/
|
|
|
|
.step {
|
|
position: relative;
|
|
width: 1024px;
|
|
max-height: 100vh;
|
|
padding: 40px;
|
|
margin: 20px auto;
|
|
|
|
-webkit-box-sizing: border-box;
|
|
-moz-box-sizing: border-box;
|
|
-ms-box-sizing: border-box;
|
|
-o-box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
|
|
font-family: 'PT Serif', georgia, serif;
|
|
font-size: 40px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
/*
|
|
... and we enhance the styles for impress.js.
|
|
Basically we remove the margin and make inactive steps a little bit transparent.
|
|
*/
|
|
.impress-enabled .step {
|
|
margin: 0;
|
|
opacity: 1;
|
|
|
|
-webkit-transition: opacity 1s;
|
|
-moz-transition: opacity 1s;
|
|
-ms-transition: opacity 1s;
|
|
-o-transition: opacity 1s;
|
|
transition: opacity 1s;
|
|
}
|
|
|
|
.impress-enabled .step.active { opacity: 1 }
|
|
|
|
.prose {
|
|
font-size: 16pt;
|
|
}
|
|
|
|
#Overview {
|
|
width: 100vw;
|
|
height: 100vh;
|
|
margin: 0;
|
|
padding: 0;
|
|
background-image: url(cover-web.png);
|
|
background-repeat: no-repeat;
|
|
background-size: contain;
|
|
background-position: center;
|
|
}
|
|
|
|
#Overview p {
|
|
opacity: 0;
|
|
}
|
|
|
|
.impress-on-Overview #Overview p {
|
|
opacity: 1;
|
|
text-align: center;
|
|
}
|
|
|
|
#Introduction, #Michael, #I, #II {
|
|
color: #eeeeee;
|
|
}
|
|
|
|
#Giles, #Ampy, #Corvus, #III {
|
|
color: #dddddd;
|
|
}
|
|
|
|
#Kyzak, #Nisa, #Renga {
|
|
color: #ffffff;
|
|
}
|
|
|
|
.hint {
|
|
/*
|
|
We hide the hint until presentation is started and from browsers not supporting
|
|
impress.js, as they will have a linear scrollable view ...
|
|
*/
|
|
display: none;
|
|
|
|
/*
|
|
... and give it some fixed position and nice styles.
|
|
*/
|
|
position: fixed;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 200px;
|
|
|
|
background: rgba(0,0,0,0.5);
|
|
color: #EEE;
|
|
text-align: center;
|
|
|
|
font-size: 50px;
|
|
padding: 20px;
|
|
|
|
z-index: 100;
|
|
|
|
/*
|
|
By default we don't want the hint to be visible, so we make it transparent ...
|
|
*/
|
|
opacity: 0;
|
|
|
|
/*
|
|
... and position it below the bottom of the screen (relative to it's fixed position)
|
|
*/
|
|
-webkit-transform: translateY(400px);
|
|
-moz-transform: translateY(400px);
|
|
-ms-transform: translateY(400px);
|
|
-o-transform: translateY(400px);
|
|
transform: translateY(400px);
|
|
|
|
/*
|
|
Now let's imagine that the hint is visible and we want to fade it out and move out
|
|
of the screen.
|
|
So we define the transition on the opacity property with 1s duration and another
|
|
transition on transform property delayed by 1s so it will happen after the fade out
|
|
on opacity finished.
|
|
This way user will not see the hint moving down.
|
|
*/
|
|
-webkit-transition: opacity 1s, -webkit-transform 0.5s 1s;
|
|
-moz-transition: opacity 1s, -moz-transform 0.5s 1s;
|
|
-ms-transition: opacity 1s, -ms-transform 0.5s 1s;
|
|
-o-transition: opacity 1s, -o-transform 0.5s 1s;
|
|
transition: opacity 1s, transform 0.5s 1s;
|
|
}
|
|
|
|
/*
|
|
Now we 'enable' the hint when presentation is initialized ...
|
|
*/
|
|
.impress-enabled .hint { display: block }
|
|
|
|
/*
|
|
... and we will show it when the first step (with id 'bored') is active.
|
|
*/
|
|
.impress-on-Title .hint {
|
|
/*
|
|
We remove the transparency and position the hint in its default fixed
|
|
position.
|
|
*/
|
|
opacity: 1;
|
|
|
|
-webkit-transform: translateY(0px);
|
|
-moz-transform: translateY(0px);
|
|
-ms-transform: translateY(0px);
|
|
-o-transform: translateY(0px);
|
|
transform: translateY(0px);
|
|
|
|
/*
|
|
Now for fade in transition we have the oposite situation from the one
|
|
above.
|
|
First after 4.5s delay we animate the transform property to move the hint
|
|
into its correct position and after that we fade it in with opacity
|
|
transition.
|
|
*/
|
|
-webkit-transition: opacity 1s 5s, -webkit-transform 0.5s 4.5s;
|
|
-moz-transition: opacity 1s 5s, -moz-transform 0.5s 4.5s;
|
|
-ms-transition: opacity 1s 5s, -ms-transform 0.5s 4.5s;
|
|
-o-transition: opacity 1s 5s, -o-transform 0.5s 4.5s;
|
|
transition: opacity 1s 5s, transform 0.5s 4.5s;
|
|
}
|