/*!
* Name: WebSlides
* Version: 1.5.0
* Date: 2018-01-01
* Description: Making HTML presentations easy
* URL: https://github.com/webslides/webslides#readme
* Credits: @jlantunez, @LuisSacristan, @Belelros
*/
@charset "UTF-8";
/*-----------------------------------------------------------------------------------
0. CSS Reset & Normalize
1. Base
1.1 Wrap/Container
1.2 Animations
1.3 Responsive Media (videos, iframe, screenshots...)
1.4 Basic Grid (2,3,4 columns)
2. Typography & Lists
2.1 Headings with background
2.2 Classes: .text-
2.3 San Francisco Font (Apple)
3. Header & Footer
3.1 Logo
4. Navigation
4.1 Navbars
5. SLIDES (vertically and horizontally centered)
5.1 Mini container & Alignment
5.2 Counter / Navigation Slides
5.3 Background Images/Video
6. Magic blocks = .flexblock (Flexible blocks with auto-fill and equal height).
6.1 .flexblock.features
6.2 .flexblock.clients
6.3 .flexblock.steps
6.4 .flexblock.metrics
6.5 .flexblock.specs
6.6 .flexblock.reasons
6.7 .flexblock.gallery
6.8 .flexblock.plans
6.9. flexblock.activity
7. Promos/Offers (pricing, tagline, CTA...)
8. Work / Resume / CV
9. Table of contents
10. Cards
11. Quotes
12. Avatars
13. Tables
14. Forms
15. Longform Elements
16. Safari Bug (flex-wrap)
17. Slidex index (aka zoom)
18. Print
19. Colors
----------------------------------------------------------------------------------- */
/*
=========================================
0. CSS Reset & Normalize
=========================================
*/
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,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
border: 0;
font: inherit;
font-size: 100%;
margin: 0;
padding: 0;
vertical-align: baseline; }
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
display: block; }
body {
line-height: 1; }
blockquote,
q {
quotes: '' ''; }
blockquote:before,
blockquote:after,
q:before,
q:after {
content: ''; }
table {
border-collapse: collapse;
border-spacing: 0;
margin-bottom: 24px;
width: 100%; }
html {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
-webkit-box-sizing: border-box;
box-sizing: border-box; }
*,
*::before,
*::after {
-webkit-box-sizing: inherit;
box-sizing: inherit; }
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline; }
embed,
iframe,
object {
max-width: 100%; }
audio:not([controls]) {
display: none;
height: 0; }
[hidden],
template {
display: none; }
ul {
list-style: square;
text-indent: inherit; }
ol {
list-style: decimal; }
b,
strong {
font-weight: 600; }
a {
background-color: transparent; }
a:active,
a:hover {
outline: 0; }
sup,
sub {
font-size: .75em;
height: 0;
line-height: 2.2em;
position: relative;
vertical-align: baseline; }
sup {
bottom: 1ex; }
sub {
top: .5ex; }
small {
font-size: .75em;
line-height: 1.72; }
big {
font-size: 1.25em; }
hr {
border: 0;
clear: both;
display: block;
height: 1px;
margin: 3.2rem auto;
text-align: center;
width: 100%; }
h2 + hr,
h3 + hr {
margin-bottom: 4.8rem; }
p + hr {
margin-bottom: 4rem; }
dfn,
cite,
em,
i {
font-style: italic; }
abbr,
acronym {
cursor: help; }
mark,
ins {
padding: 0 4px;
text-decoration: none;
text-shadow: none; }
::-moz-selection {
text-shadow: none; }
::selection {
text-shadow: none; }
img {
border: 0;
height: auto;
max-width: 100%; }
img:hover {
opacity: .9; }
svg:not(:root) {
overflow: hidden; }
figure {
line-height: 0;
margin: 0;
position: relative; }
optgroup {
font-weight: bold; }
td,
th {
padding: 0; }
dt {
font-weight: bold; }
dd {
margin: 0; }
/*=== Clearing === */
header:before, header:after,
main:before,
main:after,
section:before,
section:after,
aside:before,
aside:after,
footer:before,
footer:after,
.clear:before,
.clear:after,
.wrap:before,
.wrap:after {
content: '';
display: table; }
header:after,
main:after,
section:after,
aside:after,
footer:after,
.clear:after,
.wrap:after {
clear: both; }
/*=========================================
1. Base --> Baseline: 8px = .8rem
=========================================== */
/* -- Disable elastic scrolling/bounce:
webslides.js will add .ws-ready automatically. Don't worry :) -- */
.ws-ready,
.ws-ready body {
height: 100%;
overflow: hidden;
width: 100%; }
.ws-ready.ws-ready-zoom {
overflow: visible; }
.ws-ready.ws-ready-zoom body {
overflow: auto; }
#webslides {
-ms-overflow-style: none;
-webkit-overflow-scrolling: touch;
height: 100vh;
overflow-x: hidden;
overflow-y: scroll; }
#webslides::-webkit-scrollbar {
display: none; }
li li {
margin-left: 1.6rem; }
a,
a:active,
a:focus,
a:visited,
input:focus,
textarea:focus,
button {
text-decoration: none;
-webkit-transition: all .3s ease-out;
transition: all .3s ease-out; }
p a:active {
position: relative;
top: 2px; }
nav a[rel='external'] em,
.hidden {
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
position: absolute;
width: 1px; }
.shadow {
position: relative; }
.shadow:before, .shadow:after {
bottom: 1.6rem;
content: '';
max-width: 300px;
position: absolute;
top: 80%;
width: 50%;
z-index: -1; }
.shadow:after {
right: 2.4rem;
-webkit-transform: rotate(3deg);
transform: rotate(3deg); }
.shadow:before {
left: 2.4rem;
-webkit-transform: rotate(-3deg);
transform: rotate(-3deg); }
/*=== 1.1 WRAP/CONTAINER === */
.wrap,
header nav,
footer nav {
margin-left: auto;
margin-right: auto;
max-width: 100%;
position: relative;
width: 100%;
z-index: 2; }
@media (min-width: 1024px) {
.wrap,
header nav,
footer nav {
width: 90%; } }
.frame,
.shadow {
padding: 2.4rem; }
.radius {
border-radius: .4rem; }
.alignright {
float: right; }
.alignleft {
float: left; }
.aligncenter {
margin-left: auto;
margin-right: auto;
text-align: center; }
img.aligncenter,
figure.aligncenter {
display: block;
margin-bottom: .8rem;
margin-top: .8rem; }
img.alignleft,
figure.alignleft,
img.alignright,
figure.alignright,
img.aligncenter,
figure.aligncenter {
margin-bottom: 3.2rem;
margin-top: 3.2rem; }
img.alignright,
svg.alignright,
figure.alignright {
margin: .8rem 0 .8rem 2.4rem; }
img.alignleft,
svg.alignleft,
figure.alignleft {
margin: .8rem 2.4rem .8rem 0; }
/*=== div.size-60, img.size-50, h1.size-40, p.size-30... === */
@media (min-width: 1024px) {
.size-80 {
width: 80%; }
.size-70 {
width: 70%; }
.size-60 {
width: 60%; }
.size-50 {
width: 50%; }
.size-40 {
width: 40%; }
.size-30 {
width: 30%; }
.size-20 {
width: 20%; } }
pre,
code {
font-family: 'Cousine', monospace; }
pre {
font-size: 1.6rem;
line-height: 2.4rem;
overflow: auto;
padding: 2.4rem;
text-align: left;
white-space: pre-wrap;
width: 100%;
word-wrap: break-word; }
pre + p {
margin-top: 3.2rem; }
pre code {
padding: 0; }
code {
padding: .4rem; }
/* === 1.2 Animations ================
Just 5 basic animations:
.fadeIn, .fadeInUp, .zoomIn, .slideInLeft, and .slideInRight
https://github.com/daneden/animate.css */
/*-- fadeIn -- */
@-webkit-keyframes fadeIn {
from {
opacity: 0; }
to {
opacity: 1; } }
@keyframes fadeIn {
from {
opacity: 0; }
to {
opacity: 1; } }
.fadeIn {
-webkit-animation: fadeIn 1s;
animation: fadeIn 1s; }
/*-- fadeInUp -- */
@-webkit-keyframes fadeInUp {
from {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInUp {
from {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInUp {
-webkit-animation: fadeInUp 1s;
animation: fadeInUp 1s; }
/*-- zoomIn -- */
@-webkit-keyframes zoomIn {
from {
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); }
50% {
opacity: 1; } }
@keyframes zoomIn {
from {
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); }
50% {
opacity: 1; } }
.zoomIn {
-webkit-animation: zoomIn 1s;
animation: zoomIn 1s; }
/*-- slideInLeft -- */
@-webkit-keyframes slideInLeft {
from {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
@keyframes slideInLeft {
from {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.slideInLeft {
-webkit-animation: slideInLeft 1s;
animation: slideInLeft 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both; }
/*-- slideInRight -- */
@-webkit-keyframes slideInRight {
from {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
@keyframes slideInRight {
from {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.slideInRight {
-webkit-animation: slideInRight 1s;
animation: slideInRight 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both; }
/* Animated Background (Matrix) */
@-webkit-keyframes anim {
0% {
-webkit-transform: translateY(0);
transform: translateY(0); }
100% {
-webkit-transform: translateY(-1200px);
transform: translateY(-1200px); } }
@keyframes anim {
0% {
-webkit-transform: translateY(0);
transform: translateY(0); }
100% {
-webkit-transform: translateY(-1200px);
transform: translateY(-1200px); } }
/* Duration */
.slow {
-webkit-animation-duration: 4s;
animation-duration: 4s; }
.slow + .slow {
-webkit-animation-duration: 5s;
animation-duration: 5s; }
/*=== 1.3 Responsive Media (videos, iframe...) === */
.embed {
height: 0;
overflow: hidden;
/*aspect ratio:16:9*/
padding-bottom: 56.6%;
/*aspect ratio: 4:3*/
/*padding-bottom: 75%;*/
position: relative;
/* -- Responsive background video
https://fvsch.com/code/video-background/ -- */ }
.embed iframe,
.embed object,
.embed embed,
.embed video {
height: 100%;
left: 0;
margin: 0;
position: absolute;
top: 0;
width: 100%; }
.fullscreen > .embed {
bottom: 0;
height: auto;
left: 0;
padding-bottom: 0;
position: fixed;
right: 0;
top: 0;
/* 1. No object-fit support: */ }
.fullscreen > .embed > iframe,
.fullscreen > .embed > object,
.fullscreen > .embed > embed,
.fullscreen > .embed > video {
/* 2. If supporting object-fit, overriding (1): */ }
@media (min-aspect-ratio: 16 / 9) {
.fullscreen > .embed > iframe,
.fullscreen > .embed > object,
.fullscreen > .embed > embed,
.fullscreen > .embed > video {
height: 300%;
top: -100%; } }
@media (max-aspect-ratio: 16 / 9) {
.fullscreen > .embed > iframe,
.fullscreen > .embed > object,
.fullscreen > .embed > embed,
.fullscreen > .embed > video {
left: -100%;
width: 300%; } }
@supports ((-o-object-fit: cover) or (object-fit: cover)) {
.fullscreen > .embed > iframe,
.fullscreen > .embed > object,
.fullscreen > .embed > embed,
.fullscreen > .embed > video {
height: 100%;
left: 0;
-o-object-fit: cover;
object-fit: cover;
top: 0;
width: 100%; } }
/*=== HTML Browser (Screenshots) ================ */
/*
question or answer