<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<!-- Team -->
<section class="team">
<div class="grid-xlarge">
<div class="team__container">
<article>
<a class="team__link" href="#" target="_blank">
<div class="team__img-container">
<span class="preloader"></span>
<figure class="team__img">
<img class="absolute-bg" src="http://www.webcoderskull.com/img/team1.png" alt=""/>
</figure>
</div>
<div class="team__text">
<h3 class="team__title">Thomas Vaeth</h3>
<span class="team__position">Web Developer</span>
</div>
</a>
</article>
</div>
</div>
</section>
*,
*:before,
*:after {
box-sizing: border-box;
}
body {
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
font-family: "Karla", sans-serif;
font-size: 100%;
background-color: #f8f8f8;
}
h3 {
margin-top: 0;
margin-bottom: 0.25em;
font-size: 1.25em;
line-height: 1.1;
}
@media (min-width: 91em) {
h3 {
font-size: 1.5em;
}
}
a {
text-decoration: none;
}
img,
figure {
max-width: 100%;
height: auto;
}
figure {
margin: 0;
}
.grid-xlarge {
margin-right: auto;
margin-left: auto;
}
@media (min-width: 54em) {
.grid-xlarge {
width: 95%;
}
}
@media (min-width: 91em) {
.grid-xlarge {
width: 80%;
}
}
.absolute-bg {
position: absolute;
top: 0;
left: 0;
z-index: 0;
height: 100%;
width: 100%;
background-position: 50%;
background-repeat: no-repeat;
background-size: cover;
overflow: hidden;
}
.preloader {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
height: 3em;
width: 3em;
margin: auto;
border: 2px solid transparent;
border-top-color: #47bec7;
border-radius: 50%;
opacity: 1;
-webkit-animation: spin 1s linear infinite both;
animation: spin 1s linear infinite both;
transition: opacity 2s 0.2s ease-out;
}
@-webkit-keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes spin {
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin {
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
.team {
width: 100%;
padding-right: 1em;
padding-left: 1em;
}
.team__container {
display: flex;
flex-direction: row;
flex-flow: wrap;
margin-left: -1em;
margin-right: -1em;
align-items: center;
justify-content: center;
}
.team__container > * {
padding: 1em;
flex-basis: 100%;
max-width: 100%;
}
@media (min-width: 32em) {
.team__container > * {
flex-basis: 50%;
max-width: 50%;
}
}
@media (min-width: 54em) {
.team__container > * {
flex-basis: 50%;
max-width: 50%;
}
}
@media (min-width: 65em) {
.team__container > * {
flex-basis: 33.3333333333%;
max-width: 33.3333333333%;
}
}
.team__link {
position: relative;
display: block;
height: 100%;
width: 100%;
border: 1px solid transparent;
background-clip: padding-box;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
transition: all 1s ease;
}
.team__link:hover {
border: 1px solid rgba(0, 0, 0, 0.1);
box-shadow: 0px 0px 47px rgba(0, 0, 0, 0.1);
-webkit-transform: translate3d(0, -0.5em, 0);
transform: translate3d(0, -0.5em, 0);
}
.team__link:hover:after {
opacity: 1;
}
.team__link:hover .team__title:after {
left: 0;
width: 100%;
}
.team__link:after {
content: "";
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-clip: padding-box;
box-shadow: 0 2px 50px rgba(0, 0, 0, 0.2);
opacity: 0;
transition: opacity 0.3s ease-in-out;
}
.team__header {
margin-bottom: 2em;
color: #47bec7;
text-align: center;
}
.team__img-container {
position: relative;
background-color: #061c30;
}
.team__img {
position: relative;
padding-bottom: 100%;
-webkit-animation: fade-in ease-in-out 1s both;
animation: fade-in ease-in-out 1s both;
}
.team__text {
padding: 1em 0.5em;
color: #000;
background-color: #fff;
text-align: center;
}
@media (min-width: 32em) {
.team__text {
padding-top: 2em;
padding-bottom: 2em;
}
}
.team__title {
position: relative;
display: inline-block;
/*
* Add hover to pseudo element
* left: 0;
* width: 100%
*/
margin-bottom: 0.35em;
}
.team__title:after {
content: "";
position: absolute;
left: 50%;
bottom: -0.1em;
height: 2px;
width: 0;
background-color: #47bec7;
transition: all 0.3s ease-in-out;
}
.team__position {
display: block;
font-size: 0.9em;
}