Add impress example

This commit is contained in:
L3D 2024-07-09 16:03:35 +02:00
parent 52e622e5eb
commit 407398a992
Signed by: l3d
GPG key ID: CD08445BFF4313D1
3 changed files with 983 additions and 20 deletions

674
css/impress-demo.css Normal file
View file

@ -0,0 +1,674 @@
/*
So you like the style of impress.js demo?
Or maybe you are just curious how it was done?
You couldn't find a better place to find out!
Welcome to the stylesheet impress.js demo presentation.
Please remember that it is not meant to be a part of impress.js and is
not required by impress.js.
I expect that anyone creating a presentation for impress.js would create
their own set of styles.
But feel free to read through it and learn how to get the most of what
impress.js provides.
And let me be your guide.
Shall we begin?
*/
/*
We start with a good ol' reset.
That's the one by Eric Meyer http://meyerweb.com/eric/tools/css/reset/
You can probably argue if it is needed here, or not, but for sure it
doesn't do any harm and gives us a fresh start.
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/*
Now here is when interesting things start to appear.
We set up <body> styles with default font and nice gradient in the background.
And yes, there is a lot of repetition there because of -prefixes but we don't
want to leave anybody behind.
*/
body {
font-family: 'PT Sans', sans-serif;
min-height: 740px;
background: rgb(215, 215, 215);
background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 500, from(rgb(240, 240, 240)), to(rgb(190, 190, 190)));
background: -webkit-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
background: -moz-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
background: -ms-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
background: -o-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
background: radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
}
/*
Now let's bring some text styles back ...
*/
b, strong { font-weight: bold }
i, em { font-style: italic }
/*
... and give links a nice look.
*/
a {
color: inherit;
text-decoration: none;
padding: 0 0.1em;
background: rgba(255,255,255,0.5);
text-shadow: -1px -1px 2px rgba(100,100,100,0.9);
border-radius: 0.2em;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-ms-transition: 0.5s;
-o-transition: 0.5s;
transition: 0.5s;
}
a:hover,
a:focus {
background: rgba(255,255,255,1);
text-shadow: -1px -1px 2px rgba(100,100,100,0.5);
}
/*
Because the main point behind the impress.js demo is to demo impress.js
we display a fallback message for users with browsers that don't support
all the features required by it.
All of the content will be still fully accessible for them, but I want
them to know that they are missing something - that's what the demo is
about, isn't it?
And then we hide the message, when support is detected in the browser.
*/
.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: 900px;
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: 48px;
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: 0.3;
-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 }
/*
These 'slide' step styles were heavily inspired by HTML5 Slides:
http://html5slides.googlecode.com/svn/trunk/styles.css
;)
They cover everything what you see on first three steps of the demo.
All impress.js steps are wrapped inside a div element of 0 size! This means that relative
values for width and height (example: `width: 100%`) will not work. You need to use pixel
values. The pixel values used here correspond to the data-width and data-height given to the
#impress root element. When the presentation is viewed on a larger or smaller screen, impress.js
will automatically scale the steps to fit the screen.
*/
.slide {
display: block;
width: 900px;
height: 700px;
padding: 40px 60px;
background-color: white;
border: 1px solid rgba(0, 0, 0, .3);
border-radius: 10px;
box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
color: rgb(102, 102, 102);
text-shadow: 0 2px 2px rgba(0, 0, 0, .1);
font-family: 'Open Sans', Arial, sans-serif;
font-size: 30px;
line-height: 36px;
letter-spacing: -1px;
}
.slide q {
display: block;
font-size: 50px;
line-height: 72px;
margin-top: 100px;
}
.slide q strong {
white-space: nowrap;
}
/*
And now we start to style each step separately.
I agree that this may be not the most efficient, object-oriented and
scalable way of styling, but most of steps have quite a custom look
and typography tricks here and there, so they had to be styled separately.
First is the title step with a big <h1> (no room for padding) and some
3D positioning along Z axis.
*/
#title {
padding: 0;
}
#title .try {
font-size: 64px;
position: absolute;
top: -0.5em;
left: 1.5em;
-webkit-transform: translateZ(20px);
-moz-transform: translateZ(20px);
-ms-transform: translateZ(20px);
-o-transform: translateZ(20px);
transform: translateZ(20px);
}
#title h1 {
font-size: 180px;
-webkit-transform: translateZ(50px);
-moz-transform: translateZ(50px);
-ms-transform: translateZ(50px);
-o-transform: translateZ(50px);
transform: translateZ(50px);
}
#title .footnote {
font-size: 32px;
}
/*
Second step is nothing special, just a text with a link, so it doesn't need
any special styling.
Let's move to 'big thoughts' with centered text and custom font sizes.
*/
#big {
width: 600px;
text-align: center;
font-size: 60px;
line-height: 1;
}
#big strong,
#big b {
display: block;
font-size: 250px;
line-height: 250px;
}
#big .thoughts {
font-size: 90px;
line-height: 150px;
}
/*
'Tiny ideas' just need some tiny styling.
*/
#tiny {
width: 500px;
text-align: center;
}
/*
This step has some animated text ...
*/
#ing { width: 500px }
/*
... so we define display to `inline-block` to enable transforms and
transition duration to 0.5s ...
*/
#ing b {
display: inline-block;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-ms-transition: 0.5s;
-o-transition: 0.5s;
transition: 0.5s;
}
/*
... and we want 'positioning` word to move up a bit when the step gets
`present` class ...
*/
#ing.present .positioning {
-webkit-transform: translateY(-10px);
-moz-transform: translateY(-10px);
-ms-transform: translateY(-10px);
-o-transform: translateY(-10px);
transform: translateY(-10px);
}
/*
... 'rotating' to rotate a quarter of a second later ...
*/
#ing.present .rotating {
-webkit-transform: rotate(-10deg);
-moz-transform: rotate(-10deg);
-ms-transform: rotate(-10deg);
-o-transform: rotate(-10deg);
transform: rotate(-10deg);
-webkit-transition-delay: 0.25s;
-moz-transition-delay: 0.25s;
-ms-transition-delay: 0.25s;
-o-transition-delay: 0.25s;
transition-delay: 0.25s;
}
/*
... and 'scaling' to scale down after another quarter of a second.
*/
#ing.present .scaling {
-webkit-transform: scale(0.7);
-moz-transform: scale(0.7);
-ms-transform: scale(0.7);
-o-transform: scale(0.7);
transform: scale(0.7);
-webkit-transition-delay: 0.5s;
-moz-transition-delay: 0.5s;
-ms-transition-delay: 0.5s;
-o-transition-delay: 0.5s;
transition-delay: 0.5s;
}
/*
The 'imagination' step is again some boring font-sizing.
*/
#imagination {
width: 600px;
}
#imagination .imagination {
font-size: 78px;
}
/*
There is nothing really special about 'use the source, Luke' step, too,
except maybe of the Yoda background.
As you can see below I've 'hard-coded' it in data URL.
That's not the best way to serve images, but because that's just this one
I decided it will be OK to have it this way.
Just make sure you don't blindly copy this approach.
*/
#source {
width: 700px;
padding-bottom: 300px;
/* Yoda Icon :: Pixel Art from Star Wars http://www.pixeljoint.com/pixelart/1423.htm */
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAEYCAMAAACwUBm+AAAAAXNSR0IArs4c6QAAAKtQTFRFsAAAvbWSLUUrLEQqY1s8UYJMqJ1vNTEgOiIdIzYhjIFVLhsXZ6lgSEIsP2U8JhcCVzMsSXZEgXdOO145XJdWOl03LzAYMk4vSXNExr+hwcuxRTs1Qmk+RW9Am49eFRANQz4pUoNMQWc+OSMDTz0wLBsCNVMxa2NBOyUDUoNNSnlEWo9VRGxAVzYFl6tXCggHbLNmMUIcHhwTXkk5f3VNRT8wUT8xAAAACQocRBWFFwAAAAF0Uk5TAEDm2GYAAAPCSURBVHja7d3JctNAFIZRMwRCCGEmzPM8z/D+T8bu/ptbXXJFdij5fMt2Wuo+2UgqxVmtttq5WVotLzBgwIABAwYMGDCn0qVqbo69psPqVpWx+1XG5iaavF8wYMCAAQMGDBgwi4DJ6Y6qkxB1HNlcN3a92gbR5P2CAQMGDBgwYMCAWSxMlrU+UY5yu2l9okfV4bAxUVbf7TJnAwMGDBgwYMCAAbMLMHeqbGR82Zy+VR1Ht81nVca6R+UdTLaU24Ruzd3qM/e4yjnAgAEDBgwYMGDA7AJMd1l/3NRdVGcj3eX/2WEhCmDGxnM7yqygu8XIPjJj8iN/MGDAgAEDBgwYMAuDGb8q0RGlLCHLv1t9qDKWn3vdNHVuEI6HPaxO9Jo3GDBgwIABAwYMmIXBdC9ShGgMk+XnkXUeuGcsP/e1+lhNnZsL/G5Vs3OAAQMGDBgwYMCAWSxMR3SzOmraG5atdy9wZKzb+vg16qyqe2FltbnAgAEDBgwYMGDALAxmTJSuN3WA76rnVca6GTnemGN1WoEBAwYMGDBgwIBZGMxUomy4+xO899V4LAg5Xnc2MGDAgAEDBgwYMGA218Wq+2K1LDqvY9xZu8zN8fICdM6btYABAwYMGDBgwIABMzfH0+pGU5afze2tXebmeAfVz+p8BQYMGDBgwIABAwbMPBzZ+oWmfJrln1273FhkbHzee9WWbw7AgAEDBgwYMGDALAKm43hcdctKgblcPamOhuXnXlY5Xs6bsW4FGyQCAwYMGDBgwIABswiYMceZKgvMo+h8mrHLTdn676rj+FEFoTtHd8MwOxEYMGDAgAEDBgyYRcBM5UhXqiymW3R3c9ARhWO/OmjqfjVZy+xEYMCAAQMGDBgwYBYG073OnCV0RFNhMhaOa9WfKmOB6XjHMN1tQmaAAQMGDBgwYMCA2VWY7vXjz1U4croAzgPztwIDBgwYMGDAgAEDZhswh035NBw59Dww3RgYMGDAgAEDBgwYMJuD6f4tXT7NUqfCdBvZLkxXdgQGDBgwYMCAAQNmt2DGj8WzwAfV/w7T/aq7mxwwYMCAAQMGDBgwuwqTOo7uTwTngflSzQ3TdaJvAwEDBgwYMGDAgAED5gSvgbyo5oHZ4Pc+gwEDBgwYMGDAgAEzhOm+5G0qTGaAAQMGDBgwYMCAAXNaMOcnls3tNwWm+zRzp54NDBgwYMCAAQMGDJh5YNL36k1TLuGvVq+qnKMbS5n7tulT9asCAwYMGDBgwIABA2ZumKuztLnjgQEDBgwYMGDAgNl5mH/4/ltKA6vBNAAAAABJRU5ErkJggg==);
background-position: bottom right;
background-repeat: no-repeat;
}
#source q {
font-size: 60px;
}
/*
And the "it's in 3D" step again brings some 3D typography - just for fun.
Because we want to position <span> elements in 3D we set transform-style to
`preserve-3d` on the paragraph.
It is not needed by webkit browsers, but it is in Firefox. It's hard to say
which behaviour is correct as 3D transforms spec is not very clear about it.
*/
#its-in-3d p {
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d; /* Y U need this Firefox?! */
-ms-transform-style: preserve-3d;
-o-transform-style: preserve-3d;
transform-style: preserve-3d;
}
/*
Below we position each word separately along Z axis and we want it to transition
to default position in 0.5s when the step gets `present` class.
Quite a simple idea, but lot's of styles and prefixes.
*/
#its-in-3d span,
#its-in-3d b {
display: inline-block;
-webkit-transform: translateZ(40px);
-moz-transform: translateZ(40px);
-ms-transform: translateZ(40px);
-o-transform: translateZ(40px);
transform: translateZ(40px);
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-ms-transition: 0.5s;
-o-transition: 0.5s;
transition: 0.5s;
}
#its-in-3d .have {
-webkit-transform: translateZ(-40px);
-moz-transform: translateZ(-40px);
-ms-transform: translateZ(-40px);
-o-transform: translateZ(-40px);
transform: translateZ(-40px);
}
#its-in-3d .you {
-webkit-transform: translateZ(20px);
-moz-transform: translateZ(20px);
-ms-transform: translateZ(20px);
-o-transform: translateZ(20px);
transform: translateZ(20px);
}
#its-in-3d .noticed {
-webkit-transform: translateZ(-40px);
-moz-transform: translateZ(-40px);
-ms-transform: translateZ(-40px);
-o-transform: translateZ(-40px);
transform: translateZ(-40px);
}
#its-in-3d .its {
-webkit-transform: translateZ(60px);
-moz-transform: translateZ(60px);
-ms-transform: translateZ(60px);
-o-transform: translateZ(60px);
transform: translateZ(60px);
}
#its-in-3d .in {
-webkit-transform: translateZ(-10px);
-moz-transform: translateZ(-10px);
-ms-transform: translateZ(-10px);
-o-transform: translateZ(-10px);
transform: translateZ(-10px);
}
#its-in-3d .footnote {
font-size: 32px;
-webkit-transform: translateZ(-10px);
-moz-transform: translateZ(-10px);
-ms-transform: translateZ(-10px);
-o-transform: translateZ(-10px);
transform: translateZ(-10px);
}
#its-in-3d.present span,
#its-in-3d.present b {
-webkit-transform: translateZ(0px);
-moz-transform: translateZ(0px);
-ms-transform: translateZ(0px);
-o-transform: translateZ(0px);
transform: translateZ(0px);
}
/*
The last step is an overview.
There is no content in it, so we make sure it's not visible because we want
to be able to click on other steps.
*/
#overview { display: none }
/*
We also make other steps visible and give them a pointer cursor using the
`impress-on-` class.
*/
.impress-on-overview .step {
opacity: 1;
cursor: pointer;
}
/*
Now, when we have all the steps styled let's give users a hint how to navigate
around the presentation.
The best way to do this would be to use JavaScript, show a delayed hint for a
first time users, then hide it and store a status in cookie or localStorage...
But I wanted to have some CSS fun and avoid additional scripting...
Let me explain it first, so maybe the transition magic will be more readable
when you read the code.
First of all I wanted the hint to appear only when user is idle for a while.
You can't detect the 'idle' state in CSS, but I delayed a appearing of the
hint by 5s using transition-delay.
You also can't detect in CSS if the user is a first-time visitor, so I had to
make an assumption that I'll only show the hint on the first step. And when
the step is changed hide the hint, because I can assume that user already
knows how to navigate.
To summarize it - hint is shown when the user is on the first step for longer
than 5 seconds.
The other problem I had was caused by the fact that I wanted the hint to fade
in and out. It can be easily achieved by transitioning the opacity property.
But that also meant that the hint was always on the screen, even if totally
transparent. It covered part of the screen and you couldn't correctly clicked
through it.
Unfortunately you cannot transition between display `block` and `none` in pure
CSS, so I needed a way to not only fade out the hint but also move it out of
the screen.
I solved this problem by positioning the hint below the bottom of the screen
with CSS transform and moving it up to show it. But I also didn't want this move
to be visible. I wanted the hint only to fade in and out visually, so I delayed
the fade in transition, so it starts when the hint is already in its correct
position on the screen.
I know, it sounds complicated ... maybe it would be easier with the code?
*/
.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-bored .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;
}
/*
That's all I have for you in this file.
Thanks for reading. I hope you enjoyed it at least as much as I enjoyed writing it
for you.
*/

202
favicon.svg Normal file
View file

@ -0,0 +1,202 @@
<svg width="241" height="241" viewBox="0 0 241 241" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2001_223891)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.4346 152.183C32.4346 152.183 60.0163 196.548 99.4737 191.399C116.79 189.139 134.894 189.384 150.856 189.6C156.854 189.681 162.549 189.758 167.787 189.697C185.223 195.49 211.094 202.114 226.392 196.802C232.366 194.728 223.132 190.081 213.692 185.33C210.344 183.645 206.97 181.946 204.239 180.345C202.424 179.281 200.777 178.242 199.282 177.234C199.268 176.877 199.238 176.509 199.191 176.13C196.705 156.169 201.112 139.17 204.988 124.219C209.917 105.208 213.987 89.5075 201.94 75.2324L32.4346 152.183Z" fill="url(#paint0_linear_2001_223891)"/>
<g filter="url(#filter0_i_2001_223891)">
<path d="M80.0575 164.762C97.6107 164.762 122.295 155.99 136.916 153.065C248.034 108.553 -35.7098 63.5387 20.6 139.744C35.4244 159.807 55.6896 164.762 80.0575 164.762Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter1_i_2001_223891)">
<path d="M77.4601 93.5096C34.8268 98.109 -0.787395 107.498 18.2674 129.255C25.9863 138.069 43.7335 148.217 70.3098 151.116C88.1796 153.066 122.295 155.99 136.916 153.066C205.073 124.429 212.788 86.0777 202.69 75.4178C192.592 64.7579 169.892 83.5377 77.4601 93.5096Z" fill="#346A82"/>
</g>
<path d="M155.489 129.304C147.567 120.357 130.321 107.644 118.679 99.485C114.728 96.7159 116.26 90.395 121.051 89.821L140.755 87.4602C144.597 86.9998 148.814 91.1264 150.307 94.697C151.28 97.0225 152.885 99.8057 155.489 103.002C160.558 109.226 160.374 134.822 155.489 129.304Z" fill="#346A82"/>
<g filter="url(#filter2_i_2001_223891)">
<path d="M159.692 40.0336C142.028 47.5776 124.654 77.549 116.707 92.8566C114.758 96.6119 118.036 100.758 122.18 99.9039L145.339 95.131C148.777 94.4224 151.106 90.2703 151.011 86.7613C150.897 82.5259 151.547 76.1527 154.37 67.1124C157.974 55.5706 167.569 36.6693 159.692 40.0336Z" fill="#346A82"/>
</g>
<path d="M193.366 159.39C161.152 173.135 136.217 156.768 125.738 147.695C122.991 145.318 124.029 141.147 127.457 139.945L152.606 131.127C156.674 129.7 161.118 133.855 161.828 138.107C162.645 142.999 165.562 148.232 173.688 150.483C184.461 152.349 201.244 156.028 193.366 159.39Z" fill="#346A82"/>
<path d="M78.6031 143.598C78.5243 144.678 77.824 145.692 76.5923 146.428C75.3631 147.163 73.6663 147.575 71.7971 147.438C69.9279 147.302 68.3088 146.649 67.1992 145.743C66.0873 144.836 65.5414 143.732 65.6201 142.652C65.6989 141.572 66.3992 140.558 67.6309 139.822C68.8601 139.087 70.5569 138.675 72.4261 138.812C74.2953 138.948 75.9144 139.601 77.024 140.507C78.1359 141.414 78.6818 142.518 78.6031 143.598Z" fill="#FCD1AA" stroke="#313334" stroke-width="1.60474"/>
<path d="M76.3976 143.437C76.3628 143.916 76.0027 144.453 75.1788 144.879C74.3689 145.298 73.2239 145.536 71.9425 145.443C70.6611 145.35 69.5628 144.948 68.8222 144.416C68.0688 143.875 67.7906 143.29 67.8254 142.812C67.8603 142.334 68.2204 141.796 69.0442 141.37C69.8541 140.952 70.9992 140.713 72.2806 140.807C73.5619 140.9 74.6603 141.302 75.4009 141.834C76.1542 142.375 76.4325 142.959 76.3976 143.437Z" fill="#313334" stroke="#313334" stroke-width="1.60474"/>
<ellipse cx="70.5913" cy="141.84" rx="2.22077" ry="1.3615" transform="rotate(4.17038 70.5913 141.84)" fill="#BBEDFE"/>
<path d="M48.845 156.972C35.2952 151.383 28.3657 146.566 22.2119 141.88C24.9783 145.775 29.6675 151.566 39.6104 156.972C50.0306 162.639 68.2165 165.366 75.8819 164.606C75.0351 164.606 61.7266 162.286 48.845 156.972Z" fill="#EFA4A4"/>
<g filter="url(#filter3_i_2001_223891)">
<path d="M52.0916 158.18L57.1679 159.462L56.6978 161.323C56.4799 162.186 55.167 162.598 53.7652 162.244C52.3634 161.89 51.4036 160.904 51.6214 160.042L52.0916 158.18Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter4_i_2001_223891)">
<path d="M47.7637 155.697L52.0769 157.57L51.1264 159.759C50.686 160.773 49.3634 161.176 48.1723 160.659C46.9813 160.142 46.3727 158.9 46.8131 157.886L47.7637 155.697Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter5_i_2001_223891)">
<path d="M42.3694 153.796L47.0444 154.303L46.7513 157.005C46.6155 158.256 45.4589 159.158 44.168 159.018C42.877 158.878 41.9406 157.749 42.0763 156.498L42.3694 153.796Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter6_i_2001_223891)">
<path d="M34.2997 149.903L38.3249 150.882L37.8115 152.992C37.5736 153.97 36.4797 154.543 35.3681 154.273C34.2566 154.002 33.5483 152.99 33.7862 152.013L34.2997 149.903Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter7_i_2001_223891)">
<path d="M32.7767 147.466L33.9571 149.903L32.0028 150.85C31.0974 151.288 30.0991 151.098 29.7732 150.425C29.4473 149.753 29.917 148.852 30.8225 148.413L32.7767 147.466Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter8_i_2001_223891)">
<path d="M38.8579 150.384L42.6064 153.223L40.9654 155.39C40.2051 156.394 38.7497 156.572 37.7146 155.788C36.6794 155.004 36.4567 153.554 37.217 152.55L38.8579 150.384Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter9_i_2001_223891)">
<path d="M22.6383 141.937L24.6579 143.271L23.5995 144.873C23.1092 145.615 22.2596 145.919 21.7019 145.55C21.1442 145.182 21.0896 144.281 21.58 143.539L22.6383 141.937Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter10_i_2001_223891)">
<path d="M24.8904 143.972L27.3003 144.583L26.8282 146.445C26.6095 147.307 25.8928 147.869 25.2273 147.7C24.5618 147.531 24.1997 146.696 24.4184 145.833L24.8904 143.972Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter11_i_2001_223891)">
<path d="M28.8911 145.242L30.8145 147.76L29.2887 148.925C28.5817 149.465 27.5781 149.339 27.047 148.644C26.5158 147.949 26.6584 146.947 27.3653 146.407L28.8911 145.242Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter12_i_2001_223891)">
<path d="M57.1678 159.288L61.904 160.018L61.6633 161.579C61.5517 162.302 60.4011 162.725 59.0932 162.523C57.7853 162.322 56.8155 161.572 56.9271 160.849L57.1678 159.288Z" fill="#BBEDFE"/>
</g>
<g filter="url(#filter13_i_2001_223891)">
<path d="M62.0942 161.177L66.7636 161.418L66.6601 163.42C66.6121 164.347 65.528 165.045 64.2386 164.978C62.9492 164.912 61.9428 164.106 61.9907 163.178L62.0942 161.177Z" fill="#BBEDFE"/>
</g>
</g>
<defs>
<filter id="filter0_i_2001_223891" x="13.1208" y="98.6758" width="155.026" height="71.2612" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="5.17473" dy="5.17473"/>
<feGaussianBlur stdDeviation="10.3495"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter1_i_2001_223891" x="13" y="72.2427" width="198.49" height="87.2348" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="5.17473" dy="5.17473"/>
<feGaussianBlur stdDeviation="10.3495"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.734427 0 0 0 0 0.930482 0 0 0 0 0.995833 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter2_i_2001_223891" x="116.13" y="39.6384" width="46.5847" height="65.5531" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="5.17473"/>
<feGaussianBlur stdDeviation="2.58736"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter3_i_2001_223891" x="51.5906" y="158.18" width="6.87095" height="4.19116" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter4_i_2001_223891" x="46.6698" y="155.697" width="6.70079" height="5.18726" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter5_i_2001_223891" x="42.0632" y="153.796" width="6.27476" height="5.23657" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter6_i_2001_223891" x="33.7402" y="149.903" width="5.8784" height="4.43677" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter7_i_2001_223891" x="29.6697" y="147.466" width="5.58104" height="3.61963" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter8_i_2001_223891" x="36.7655" y="150.384" width="7.13462" height="5.89233" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter9_i_2001_223891" x="21.2451" y="141.937" width="4.7064" height="3.77002" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter10_i_2001_223891" x="24.3546" y="143.972" width="4.23936" height="3.75806" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter11_i_2001_223891" x="26.7258" y="145.242" width="5.3823" height="4.01855" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter12_i_2001_223891" x="56.9183" y="159.288" width="6.2794" height="3.28589" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<filter id="filter13_i_2001_223891" x="61.9891" y="161.177" width="6.0681" height="3.80615" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="1.29368"/>
<feGaussianBlur stdDeviation="0.646841"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.733333 0 0 0 0 0.929412 0 0 0 0 0.996078 0 0 0 1 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_2001_223891"/>
</filter>
<linearGradient id="paint0_linear_2001_223891" x1="81.5073" y1="97.8214" x2="132.524" y2="171.233" gradientUnits="userSpaceOnUse">
<stop stop-color="#6C6C6C" stop-opacity="0.59"/>
<stop offset="1" stop-color="#C4C4C4" stop-opacity="0.08"/>
</linearGradient>
<clipPath id="clip0_2001_223891">
<rect width="215" height="166" fill="white" transform="translate(13 37)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -1,23 +1,110 @@
<!DOCTYPE html>
<html>
<head>
<title>Ansible Collections - MRMCD 2024</title>
<link rel="stylesheet" href="./css/impress-common.css">
</head>
<body class="impress-not-supported">
<div class="fallback-message">
<p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
<p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
</div>
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=1920" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>Ansible Collections | MRMCD2024</title>
<meta name="description" content="impress.js is a presentation tool based on the power of CSS3 transforms and transitions in modern browsers and inspired by the idea behind prezi.com." />
<meta name="author" content="L3D & Loppermann" />
<link href="//fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic" rel="stylesheet" />
<link href="css/impress-demo.css" rel="stylesheet" />
<link href="css/impress-common.css" rel="stylesheet" />
<link rel="shortcut icon" href="favicon.png" />
<link rel="icon" href="favicon.svg" type="image/svg+xml">
</head>
<body class="impress-not-supported">
<div id="impress">
<div id="myFirstSlide" class="step">
<h1>My first Slide</h1>
</div>
</div>
<div class="fallback-message">
<p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
<p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
</div>
<script src="js/impress.js"></script>
<script>window.impress || document.write('<script src="./js/impress.js">\x3C/script>');</script>
<script>impress().init()</script>
</body>
<div id="impress"
data-transition-duration="1000"
data-width="1920"
data-height="1080"
data-max-scale="3"
data-min-scale="0"
data-perspective="1000"
data-autoplay="0">
<div id="ahoi" class="step slide" data-x="-1000" data-y="-1500" data-autoplay="10">
<q>Ahoi, ihr Seemenschen!<br/>
Die MRMCDs haben seit 20 Jahren ihr Seepferdchen und dieses Jahr hissen wir die Flagge mit dem Motto <b>„Land in Sicht?“</b>.
Die digitale Welt ist ein stürmisches Meer voller unbekannter Gefahren...</q>
</div>
<div class="step slide" data-x="0" data-y="-1500">
<script src="https://asciinema.org/a/656354.js" id="asciicast-656354" async="true"></script>
</div>
<div class="step slide" data-x="1000" data-y="-1500">
<q>Would you like to <strong>impress your audience</strong> with <strong>stunning visualization</strong> of your talk?</q>
</div>
<div id="title" class="step" data-x="0" data-y="0" data-scale="4">
<span class="try">then you should try</span>
<h1>impress.js<sup>*</sup></h1>
<span class="footnote"><sup>*</sup> no rhyme intended</span>
</div>
<div id="its" class="step" data-x="850" data-y="3000" data-rotate="90" data-scale="5">
<p>Its a <strong>presentation tool</strong> <br/>
inspired by the idea behind <a href="http://prezi.com">prezi.com</a> <br/>
and based on the <strong>power of CSS3 transforms and transitions</strong> in modern browsers.</p>
</div>
<div id="big" class="step" data-x="3500" data-y="2100" data-rotate="180" data-scale="6">
<p>visualize your <b>big</b> <span class="thoughts">thoughts</span></p>
</div>
<div id="tiny" class="step" data-x="2825" data-y="2325" data-z="-3000" data-rotate="300" data-scale="1">
<p>and <b>tiny</b> ideas</p>
</div>
<div id="ing" class="step" data-x="3500" data-y="-850" data-z="0" data-rotate="270" data-scale="6">
<p>by <b class="positioning">positioning</b>, <b class="rotating">rotating</b> and <b class="scaling">scaling</b> them on an infinite canvas</p>
</div>
<div id="imagination" class="step" data-x="6700" data-y="-300" data-scale="6">
<p>the only <b>limit</b> is your <b class="imagination">imagination</b></p>
</div>
<div id="source" class="step" data-x="6300" data-y="2000" data-rotate="20" data-scale="4">
<p>want to know more?</p>
<q><a href="http://github.com/impress/impress.js">use the source</a>, Luke!</q>
</div>
<div id="one-more-thing" class="step" data-x="6000" data-y="4000" data-scale="2">
<p>one more thing...</p>
</div>
<div id="its-in-3d" class="step" data-x="6200" data-y="4300" data-z="-100" data-rotate-x="-40" data-rotate-y="10" data-scale="2">
<p><span class="have">have</span> <span class="you">you</span> <span class="noticed">noticed</span> <span class="its">its</span> <span class="in">in</span> <b>3D<sup>*</sup></b>?</p>
<span class="footnote">* beat that, prezi ;)</span>
</div>
<div id="overview" class="step" data-x="3000" data-y="1500" data-z="0" data-scale="10">
</div>
</div>
<div id="impress-toolbar"></div>
<div class="hint">
<p>Use a spacebar or arrow keys to navigate. <br/>
Press 'P' to launch speaker console.</p>
</div>
<script>
if ("ontouchstart" in document.documentElement) {
document.querySelector(".hint").innerHTML = "<p>Swipe left or right to navigate</p>";
}
</script>
<script src="js/impress.js"></script>
<script>impress().init();</script>
</body>
</html>