FreeCodeCamp's challenge: Build a Tribute Page
A Pen by Rémy Lenoir on CodePen.
FreeCodeCamp's challenge: Build a Tribute Page
A Pen by Rémy Lenoir on CodePen.
<div class="container"> | |
<div class="row" id="block1"> | |
<div class="col-md-5 col-lg-6 animated" id="block1__photo"> | |
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/1220116/django-reinhardt-duotone-principal.jpg" alt="Django Reinhardt - William P. Gottlieb" /> | |
</div> | |
<!-- /.col-md-5 col-lg-6 #block1__photo --> | |
<div class="col-md-7 col-lg-6 animated" id="block1__elements"> | |
<div class="row" style="display:none;"> | |
<div class="col-md-12 text-right"> | |
<i class="fa fa-volume-up" aria-hidden="true" id="sound-icon"></i> | |
</div> | |
<!-- /.col-md-12 text-right --> | |
</div> | |
<!-- /.row --> | |
<div class="row" id="block1__elements__text"> | |
<div class="col-lg-3 col-xl-2"> | |
</div> | |
<!-- /.col-lg-3 col-xl-2 --> | |
<div class="col-lg-9 col-xl-10"> | |
<h1>Django<br>Reinhardt</h1> | |
<h2>The <mark>most astonishing</mark> guitar player ever.</h2> | |
<p>Jean "Django" Reinhardt was a Belgian-born French jazz guitarist and composer of Romani ethnicity, regarded as one of the greatest musicians of the twentieth century, having written nearly 100 songs.</p> | |
<p>He was the first and most significant jazz talent to emerge from Europe.</p> | |
</div> | |
<!-- /.col-lg-9 col-xl-10 --> | |
</div> | |
<!-- /.row #block1__elements__text --> | |
</div> | |
<!-- /.col-md-7 col-lg-6 #block1__elements --> | |
</div> | |
<!-- /row #block1 --> | |
<div class="row" id="block2"> | |
<div class="push-lg-8 col-md-5 col-lg-4 animated" id="block2__photo"> | |
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/1220116/django-bw-1.jpg" alt="Django Reinhardt" /> | |
</div> | |
<!-- /.push-lg-8 col-md-5 col-lg-4 text-center #block2__photo --> | |
<div class="pull-lg-4 col-md-7 col-lg-8 animated" id="block2__text"> | |
<h2>The 3 fingered-guitar player</h2> | |
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/1220116/line-green.png" alt="Graphic separator" id="block2__text__line" /> | |
<p>Despite having two of his fingers disabled from a fire, he overcame the handicap and went on to forge an entirely new style of jazz guitar technique (sometimes called 'hot' jazz guitar), which has since become a living musical tradition within French Gypsy culture. </p> | |
<p>Benny Goodman asked him to travel with his band, which he never did, but he did tour the U.S. with Duke Ellington's band in 1946. He died suddenly of a stroke at age 43.</p> | |
<p>Many guitar players and other musicians have expressed admiration for Reinhardt or have cited him as a major influence. Jeff Beck described Reinhardt as "by far the most astonishing guitar player ever" and "quite superhuman".</p> | |
</div> | |
<!-- /.pull-lg-4 col-md-7 col-lg-8 #block2__text --> | |
</div> | |
<!-- /row #block2 --> | |
<div class="row" id="block3"> | |
<div class="col-md-5 col-lg-4 text-center animated" id="block3__photo"> | |
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/1220116/django-bw-2.jpg" alt="Django Reinhardt" /> | |
</div> | |
<!-- /.col-md-5 col-lg-4 text-center #block3__photo --> | |
<div class="col-md-7 col-xl-8 animated" id="block3__text"> | |
<h2>World War II</h2> | |
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/1220116/line-blue.png" id="block3__text__line" alt="Graphic separator" /> | |
<p>Because Reinhardt and his family were Gypsies, and he was also a jazz musician, he tried to escape from occupied France with his family. After his first attempt, he survived when a secretly jazz-loving German, Luftwaffe officer Dietrich Schulz-Köhn, | |
let him go back to France after he was captured.</p> | |
<p>During the occupation of France, Reinhardt continued playing and composing. One of his songs, "Nuages," became an unofficial anthem in Paris to signify hope for liberation. One day at a concert, the popularity of the song was such that the crowd | |
made him replay the song three times in a row.</p> | |
</div> | |
<!-- /.col-md-7 col-xl-8 #block3__text --> | |
</div> | |
<!-- /row #block3 --> | |
<div class="row animated" id="button-more"> | |
<div class="text-center" id="button-more__block"> | |
<a class="btn btn-lg" role="button" href="https://en.wikipedia.org/wiki/Django_Reinhardt" title="Read more about Django" rel="external nofollow" target="_blank">Read more about Django</a> | |
</div> | |
</div> | |
<!-- /.row animated #button-more --> | |
</div> | |
<!-- /.container --> | |
<footer id="footer-by"> | |
<div class="container-fluid"> | |
<div class="row"> | |
<div class="col-sm-6 source text-left"> | |
<p>A Pen by Rémy Lenoir - Source: <a href="https://en.wikipedia.org/wiki/Django_Reinhardt" rel="external nofollow" class="footer-by__footer__link">Wikipédia</a></p> | |
</div> | |
<!-- /.col-sm-6 text-center --> | |
<div class="col-sm-6 text-right" id="footer-by__footer__social"> | |
<a href="https://www.behance.net/remylenoir" rel="external" target="_blank"><i class="fa fa-behance" aria-hidden="true"></i></a> | |
<a href="https://twitter.com/remy_lenoir" rel="external" target="_blank"><i class="fa fa-twitter" aria-hidden="true"></i></a> | |
<a href="https://www.instagram.com/upaboveyou/" rel="external" target="_blank"><i class="fa fa-instagram" aria-hidden="true"></i></a> | |
</div> | |
<!-- /.col-sm-6 text-right #footer-by__footer__social --> | |
</div> | |
<!-- /.row --> | |
</div> | |
<!-- /.container --> | |
</footer> | |
<!-- /#footer-by --> |
$(document).ready(function() { | |
//if ($(window).width() <= 576) { | |
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { | |
// Code to run if mobile | |
} else { | |
// Hide the blocks on page load to make them appear after | |
$("#block1__photo, #block1__elements, #block1__elements, #block2__text, #block2__photo, #block3__text, #block3__photo, #button-more").css("opacity", "0"); | |
// #block1 animation | |
$("#block1__photo").waypoint(function() { | |
$("#block1__photo").addClass("zoomIn").css("opacity", "1"); | |
}, { | |
offset: "70%" | |
}); | |
$("#block1__elements").waypoint(function() { | |
$("#block1__elements").addClass("zoomIn").css("opacity", "1"); | |
}, { | |
offset: "70%" | |
}); | |
// #block2 animation | |
$("#block2__text").waypoint(function() { | |
$("#block2__text").addClass("fadeInUp"); | |
}, { | |
offset: "60%" | |
}); | |
$("#block2__photo").waypoint(function() { | |
$("#block2__photo").addClass("fadeInUp"); | |
}, { | |
offset: "60%" | |
}); | |
// #block3 animation | |
$("#block3__text").waypoint(function() { | |
$("#block3__text").addClass("fadeInUp"); | |
}, { | |
offset: "60%" | |
}); | |
$("#block3__photo").waypoint(function() { | |
$("#block3__photo").addClass("fadeInUp"); | |
}, { | |
offset: "60%" | |
}); | |
$("#button-more").waypoint(function() { | |
$("#button-more").addClass("fadeInUp"); | |
}, { | |
offset: "100%" | |
}); | |
$("#footer-by").waypoint(function() { | |
$("#footer-by").addClass("fadeInUp"); | |
}, { | |
offset: "100%" | |
}); | |
} | |
}); |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js"></script> |
/*------------------------------------*\ | |
$INDEX - Search with $ sign | |
\*------------------------------------*/ | |
/** | |
* VARIABLES...................... | |
* BASIC PROPERTIES............... | |
* ANIMATION PROPERTIES........... | |
* BLOCKS PROPERTIES.............. | |
* BLOCK2 - BLOCK3................ | |
* BUTTON......................... | |
* STICKY FOOTER.................. | |
* RESPONSIVE..................... | |
*/ | |
/*------------------------------------*\ | |
$VARIABLES | |
\*------------------------------------*/ | |
$primary-color: #1f216b; | |
/* Dark blue */ | |
$secondary-color: #80dd81; | |
/* Light green */ | |
$footer-height: 60px; | |
/*------------------------------------*\ | |
$BASIC PROPERTIES | |
\*------------------------------------*/ | |
html, body, .container { | |
height: 100%; | |
font-family: 'Heebo', Arial, sans-serif; | |
font-weight: 400; | |
} | |
body { | |
background: #ffffff url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/1220116/background-border.jpg'); | |
font-size: 18px; | |
margin-top: 60px; | |
} | |
h1 { | |
font-weight: 700; | |
margin-bottom: 0; | |
} | |
h2 { | |
font-weight: 500; | |
font-size: 1.6em; | |
margin: 0.7em 0; | |
} | |
mark { | |
padding: 0 .1em; | |
background-color: $secondary-color; | |
} | |
::selection { | |
background: $primary-color; | |
color: #ffffff; | |
} | |
::-moz-selection { | |
background: $primary-color; | |
color: #ffffff; | |
} | |
/*------------------------------------*\ | |
$ANIMATION PROPERTIES | |
\*------------------------------------*/ | |
#block1__photo { | |
-webkit-animation-duration: 1s; | |
-moz-animation-duration: 1s; | |
-ms-animation-duration: 1s; | |
-o-animation-duration: 1s; | |
animation-duration: 1s; | |
-webkit-animation-delay: 0.5s; | |
-moz-animation-delay: 0.5s; | |
-ms-animation-delay: 0.5s; | |
-o-animation-delay: 0.5s; | |
animation-delay: 0.5s; | |
} | |
#block2__text, #block3__photo { | |
-webkit-animation-duration: 1s; | |
-moz-animation-duration: 1s; | |
-ms-animation-duration: 1s; | |
-o-animation-duration: 1s; | |
animation-duration: 1s; | |
-webkit-animation-delay: 0.3s; | |
-moz-animation-delay: 0.3s; | |
-ms-animation-delay: 0.3s; | |
-o-animation-delay: 0.3s; | |
animation-delay: 0.3s; | |
} | |
#block1__elements { | |
-webkit-animation-duration: 1.5s; | |
-moz-animation-duration: 1.5; | |
-ms-animation-duration: 1.5; | |
-o-animation-duration: 1.5; | |
animation-duration: 1.5; | |
-webkit-animation-delay: 0.8s; | |
-moz-animation-delay: 0.8s; | |
-ms-animation-delay: 0.8s; | |
-o-animation-delay: 0.8s; | |
animation-delay: 0.8s; | |
} | |
#block2__photo, #block3__text { | |
-webkit-animation-duration: 1s; | |
-moz-animation-duration: 1s; | |
-ms-animation-duration: 1s; | |
-o-animation-duration: 1s; | |
animation-duration: 1s; | |
-webkit-animation-delay: 0.6s; | |
-moz-animation-delay: 0.6s; | |
-ms-animation-delay: 0.6s; | |
-o-animation-delay: 0.6s; | |
animation-delay: 0.6s; | |
} | |
#button-more { | |
-webkit-animation-delay: 0.5s; | |
-moz-animation-delay: 0.5s; | |
-ms-animation-delay: 0.5s; | |
-o-animation-delay: 0.5s; | |
animation-delay: 0.5s; | |
} | |
/*------------------------------------*\ | |
$BLOCKS PROPERTIES | |
\*------------------------------------*/ | |
#block1 { | |
margin-bottom: 2.3em; | |
} | |
#block2, #block3 { | |
margin-bottom: 5em; | |
} | |
#block1 img, #block2 img, #block3 img { | |
max-width: 100%; | |
} | |
/*------------------------------------*\ | |
$BLOCK1 | |
\*------------------------------------*/ | |
#block1__photo { | |
z-index: 5; | |
} | |
#block1__elements { | |
background-color: #ededed; | |
z-index: 0; | |
position: relative; | |
top: -60px; | |
} | |
#block1__elements__text { | |
padding-top: 80px; | |
} | |
/*------------------------------------*\ | |
$BLOCK2 - $BLOCK3 | |
\*------------------------------------*/ | |
#block2__photo, #block3__photo { | |
text-align: center; | |
margin-bottom: 1.5em; | |
} | |
#block3__photo { | |
margin-bottom: 0; | |
} | |
#block2__photo img, #block3__photo img { | |
max-width: 80%; | |
box-shadow: 15px 15px $primary-color; | |
} | |
#block3__photo img { | |
box-shadow: -15px -15px $secondary-color; | |
} | |
#block2__text__line, #block3__text__line { | |
margin-bottom: 1.4em; | |
} | |
/*------------------------------------*\ | |
$BUTTON | |
\*------------------------------------*/ | |
#button-more { | |
margin: 0; | |
} | |
#button-more__block { | |
height: 220px; | |
margin: 0 auto; | |
} | |
#button-more a.btn { | |
color: #000000; | |
background-color: rgba(255, 255, 255, 0); | |
border: 3px solid #000000; | |
border-radius: 0; | |
font-size: 1.1em; | |
} | |
#button-more a.btn:hover { | |
box-shadow: 10px 10px $primary-color; | |
} | |
/*------------------------------------*\ | |
$STICKY FOOTER | |
\*------------------------------------*/ | |
#footer-by { | |
position: fixed; | |
z-index: 10; | |
bottom: 0; | |
width: 100%; | |
font-weight: 400; | |
height: $footer-height; | |
line-height: $footer-height; | |
background-color: #edecec; | |
} | |
#footer-by .source { | |
text-align: center; | |
} | |
#footer-by p { | |
font-size: 0.78em; | |
line-height: 4.3em; | |
} | |
#footer-by__footer__social { | |
display: none; | |
} | |
#footer-by__footer__social i { | |
font-size: 22px; | |
margin: 0 0.1em; | |
line-height: 2.8em; | |
} | |
#footer-by__footer__social a { | |
color: #000000; | |
} | |
#footer-by__footer__social a:hover { | |
color: $primary-color; | |
} | |
a.footer-by__footer__link { | |
color: #000000; | |
text-decoration: underline; | |
} | |
a.footer-by__footer__link:hover { | |
color: $primary-color; | |
} | |
/*------------------------------------*\ | |
$RESPONSIVE | |
\*------------------------------------*/ | |
// Small devices (landscape phones, 576px and up) col-sm-x | |
@media (min-width: 576px) { | |
h1 { | |
font-size: 2.8em; | |
} | |
h2 { | |
font-size: 1.7em; | |
} | |
#footer-by__footer__social { | |
display: block; | |
} | |
#footer-by p { | |
font-size: 0.78em; | |
line-height: 4.3em; | |
} | |
#button-more a.btn { | |
font-size: 1.3em; | |
} | |
} | |
// Medium devices (tablets, 768px and up) col-md-x | |
@media(min-width:768px) { | |
h1 { | |
font-size: 3em; | |
} | |
#block1 { | |
height: 500px; | |
margin-bottom: 5em; | |
} | |
#block1__elements { | |
top: 0; | |
} | |
#block1__elements__text { | |
padding: 20px 20px 0 20px; | |
} | |
#block3__photo img { | |
max-width: 85%; | |
} | |
#footer-by p { | |
font-size: 0.9em; | |
line-height: 4em; | |
} | |
} | |
// Large devices (desktops, 992px and up) col-lg-x | |
@media (min-width: 992px) { | |
h1 { | |
font-size: 3.2em; | |
} | |
h2 { | |
font-size: 2em; | |
} | |
#block1 { | |
height: 640px; | |
} | |
#block1__elements { | |
max-width: 630px; | |
height: 580px; | |
position: absolute; | |
right: 0; | |
top: 60px; | |
margin-bottom: 0; | |
} | |
#block1__elements__text { | |
padding-top: 40px; | |
} | |
#block2__text, #block3__text { | |
padding-left: 50px; | |
} | |
#block2__text__line { | |
position: absolute; | |
top: 40px; | |
right: 0; | |
} | |
#block2__photo img { | |
box-shadow: 20px 15px $primary-color; | |
} | |
#block3__text__line { | |
position: absolute; | |
top: 40px; | |
left: -40px; | |
} | |
#block3__photo img { | |
max-width: 65%; | |
box-shadow: -20px -15px $secondary-color; | |
} | |
#button-more a.btn { | |
font-size: 1.7em; | |
} | |
} | |
// Extra large devices (large desktops, 1200px and up) col-xl-x | |
@media (min-width: 1200px) { | |
h1 { | |
font-size: 4.4em; | |
} | |
h2 { | |
font-size: 2.4em; | |
} | |
#block1 { | |
height: 750px; | |
} | |
#block1__elements { | |
max-width: 720px; | |
height: 690px; | |
} | |
#block1__elements__text .col-xl-10 { | |
padding-left: 50px; | |
} | |
#block2__text__line { | |
top: 52px; | |
right: 50px | |
} | |
#block3__text__line { | |
top: 50px; | |
left: -12px; | |
} | |
#block2__photo { | |
text-align: left; | |
} | |
#block2__photo img, #block3__photo img { | |
max-width: 100%; | |
box-shadow: -30px -20px $secondary-color; | |
} | |
#block2__photo img { | |
max-width: 87%; | |
box-shadow: 30px 20px $primary-color; | |
} | |
#block2__text, #block3__text { | |
padding-right: 50px; | |
padding-left: 80px; | |
} | |
} |
<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet" /> | |
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet" /> |