Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URL's added here will be added as <link>s in order, and before the CSS in the editor. If you link to another Pen, it will include the CSS from that Pen. If the preprocessor matches, it will attempt to combine them before processing.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Save Automatically?

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <!-- about -->
<div class="about">
   <a class="bg_links social portfolio" href="https://www.rafaelalucas.com/dailyui" target="_blank">
      <span class="icon"></span>
   </a>
   <a class="bg_links social dribbble" href="https://dribbble.com/rafaelalucas" target="_blank">
      <span class="icon"></span>
   </a>
   <a class="bg_links social linkedin" href="https://www.linkedin.com/in/rafaelalucas/" target="_blank">
      <span class="icon"></span>
   </a>
   <a class="bg_links logo"></a>
</div>
<!-- end about -->

<div class="wrapper">

   <section class="module-team">

      <div class="team">
         <h2 class="title">Meet our Team</h2>
         <div class="team-cards">

            <!-- Slider main container -->
            <div class="swiper-container">
               <!-- Additional required wrapper -->
               <div class="swiper-wrapper"></div>

            </div>

            <div class="swiper-pagination"></div>
            <!-- If we need navigation buttons -->
            <div class="navigation">
               <div class="swiper-button-prev"></div>
               <div class="swiper-button-next"></div>
            </div>
         </div>

      </div>
</div>

</section>

</div>
              
            
!

CSS

              
                .about {
   $cubic: cubic-bezier(0.64, 0.01, 0.07, 1.65);
   $transition: 0.6s $cubic;
   $size: 40px;
   position: fixed;
   z-index: 10;
   bottom: 10px;
   right: 10px;
   width: $size;
   height: $size;
   display: flex;
   justify-content: flex-end;
   align-items: flex-end;
   transition: all 0.2s ease;

   .bg_links {
      width: $size;
      height: $size;
      border-radius: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: rgba(#000000, 0.2);
      border-radius: 100%;
      backdrop-filter: blur(5px);
      position: absolute;
   }

   .logo {
      width: $size;
      height: $size;
      z-index: 9;
      background-image: url(https://rafaelavlucas.github.io/assets/codepen/logo_white.svg);
      background-size: 50%;
      background-repeat: no-repeat;
      background-position: 10px 7px;
      opacity: 0.9;
      transition: all 1s 0.2s ease;
      bottom: 0;
      right: 0;
   }

   .social {
      opacity: 0;
      right: 0;
      bottom: 0;

      .icon {
         width: 100%;
         height: 100%;
         background-size: 20px;
         background-repeat: no-repeat;
         background-position: center;
         background-color: transparent;
         display: flex;
         transition: all 0.2s ease, background-color 0.4s ease;
         opacity: 0;
         border-radius: 100%;
      }

      &.portfolio {
         transition: all 0.8s ease;

         .icon {
            background-image: url(https://rafaelavlucas.github.io/assets/codepen/link.svg);
         }
      }

      &.dribbble {
         transition: all 0.3s ease;
         .icon {
            background-image: url(https://rafaelavlucas.github.io/assets/codepen/dribbble.svg);
         }
      }

      &.linkedin {
         transition: all 0.8s ease;
         .icon {
            background-image: url(https://rafaelavlucas.github.io/assets/codepen/linkedin.svg);
         }
      }
   }

   &:hover {
      width: 105px;
      height: 105px;
      transition: all $transition;

      .logo {
         opacity: 1;
         transition: all 0.6s ease;
      }

      .social {
         opacity: 1;

         .icon {
            opacity: 0.9;
         }

         &:hover {
            background-size: 28px;
            .icon {
               background-size: 65%;
               opacity: 1;
            }
         }

         &.portfolio {
            right: 0;
            bottom: calc(100% - 40px);
            transition: all 0.3s 0s $cubic;
            .icon {
               &:hover {
                  background-color: #698fb7;
               }
            }
         }

         &.dribbble {
            bottom: 45%;
            right: 45%;
            transition: all 0.3s 0.15s $cubic;
            .icon {
               &:hover {
                  background-color: #ea4c89;
               }
            }
         }

         &.linkedin {
            bottom: 0;
            right: calc(100% - 40px);
            transition: all 0.3s 0.25s $cubic;
            .icon {
               &:hover {
                  background-color: #0077b5;
               }
            }
         }
      }
   }
}

@import url("https://fonts.googleapis.com/css?family=Barlow+Condensed:300,400,500,600,700,800,900|Barlow:300,400,500,600,700,800,900&display=swap");

$font-01: "Barlow",
sans-serif;
$font-02: "Barlow Condensed",
sans-serif;

$m-01: #D45B7A;
$m-02: #FDA576;


$g-01: linear-gradient(140deg, $m-01, $m-02);

$neu-01: #EAEAEA;
$neu-02: #EDEEF4;
$neu-03: #6F7073;
$neu-04: #505050;
$neu-05: #403E3E;

$transition: all 0.4s cubic-bezier(0.7, 0.29, 0.68, 1.43);




@mixin lg {
    @media screen and (max-width: 1180px) {
        @content;
    }
}

@mixin md {
    @media screen and (max-width: 1023px) {
        @content;
    }
}

@mixin sm {
    @media screen and (max-width: 799px) {
        @content;
    }
}

@mixin xs {
    @media screen and (max-width: 511px) {
        @content;
    }
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
li,
button,
a,
i,
input,
figure,
img {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 0;
    -webkit-tap-highlight-color: transparent;
    text-decoration: none;
    color: inherit;

    &:focus {
        outline: 0;
    }
}

div {
    -webkit-tap-highlight-color: transparent;
}

body {
    margin: 0;
    padding: 0;
    height: auto;
    font-family: $font-01;
    background: white;
    //background-color: #CBCBCB;

}

.wrapper {
    .module-team {
        position: relative;

        &:before {
            width: 100%;
            height: 380px;
            background-color: $neu-01;
            content: '';
            position: absolute;
            z-index: -1;

            @include sm {
                height: 250px;
            }
        }

        .team {
            max-width: 1440px;
            margin: 0 auto;
            padding: 100px 5%;

            @include sm {
                padding: 50px 0%;
            }

            .title {
                text-align: center;
                margin-bottom: 80px;
                color: $neu-03;
                font-size: 44px;
                line-height: normal;
                text-transform: uppercase;
                font-weight: bold;
                letter-spacing: 1.3px;
                position: relative;
                display: flex;
                justify-content: center;
                align-items: flex-start;
                height: 100px;

                &:before {
                    content: '';
                    position: absolute;
                    width: 80px;
                    height: 10px;
                    background: $neu-03;
                    border-radius: 50px;
                    bottom: 0;
                    opacity: 0.2;

                    @include sm {
                        width: 60px;
                        height: 5px;
                    }
                }

                @include sm {
                    font-size: 32px;
                    height: 60px;
                    margin-bottom: 40px;

                }
            }

            .team-cards {
                position: relative;
                display: flex;
                justify-content: center;
                align-items: center;
                overflow: hidden;

                .swiper-container {
                    max-width: 920px;
                    height: 360px;
                    padding: 0 20px;
                    cursor: default;

                    @include lg {
                        max-width: 600px;
                    }

                    @include sm {
                        max-width: 280px;
                        height: 370px;
                        padding: 0 20px;
                        overflow: visible;
                    }

                    /* Card */
                    .swiper-slide {
                        background-color: white;
                        width: 280px !important;
                        height: 320px;
                        border-radius: 4px;
                        box-shadow: inset 0px 0px 0px 1px $neu-02;
                        position: relative;
                        transition: all 0.4s ease;

                        &:before {
                            content: '';
                            position: absolute;
                            width: 100%;
                            height: 100%;
                            box-shadow: 0px 20px 40px -20px #EAEAEA;
                            top: 0px;
                            z-index: -1;
                            transition: all 0.4s ease;
                        }

                        .card {
                            width: 100%;
                            height: 100%;
                            overflow: hidden;
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            flex-direction: column;
                            position: relative;

                            .bg {
                                position: absolute;
                                width: 100%;
                                height: 100px;
                                top: 0;
                                border-radius: 4px 4px 0px 0px;
                                transition: all 0.4s ease;
                                background: $g-01;
                                z-index: 1;
                            }

                            .more {
                                width: 24px;
                                height: 24px;
                                position: absolute;
                                z-index: 2;
                                right: 20px;
                                top: 20px;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                cursor: pointer;
                                transform: rotate(0deg);
                                transition: all 0.4s ease;
                                border-radius: 100%;


                                &:before,
                                &:after {
                                    width: 16px;
                                    height: 2px;
                                    background-color: white;
                                    content: '';
                                    position: absolute;
                                    border-radius: 4px;
                                    transition: all 0.4s ease;
                                }

                                &:after {
                                    transform: rotate(90deg);
                                }

                                @include sm {
                                    padding: 10px;
                                    top: 10px;
                                    right: 10px;
                                }

                                &:hover {
                                    transform: scale(1.1);
                                    background-color: rgba(white, 0.2);

                                    @include sm {
                                        transform: scale(1);
                                        background-color: transparent;
                                    }
                                }
                            }

                            .photo {
                                width: 120px;
                                height: 120px;
                                border-radius: 100%;
                                overflow: hidden;
                                z-index: 1;
                                position: absolute;
                                top: 40px;
                                border: 3px solid #FFFFFF;
                                transition: all 0.4s ease;
                                box-shadow: 0px 4px 10px rgba($neu-03, 0.3);


                                &:before,
                                &:after {
                                    width: 100%;
                                    height: 100px;
                                    border-radius: 4px;
                                    content: '';
                                    position: absolute;
                                    transition: all 0.4s ease;
                                    opacity: 0;
                                    left: 0;
                                    top: 0;

                                }

                                &:before {
                                    background: $neu-05;
                                    z-index: 1;
                                }

                                &:after {
                                    background: $g-01;
                                    z-index: 2;
                                }

                                img {
                                    width: 100%;
                                    height: 100%;
                                    object-fit: cover;
                                }
                            }

                            .text {
                                z-index: 3;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                flex-direction: column;
                                position: absolute;
                                transform: translateY(50px);
                                transition: all 0.3s ease;

                                .name {
                                    font-size: 20px;
                                    color: #6F7073;
                                    font-weight: 300;
                                }

                                .role {
                                    font-size: 14px;
                                    font-weight: 600;
                                    color: #CBCBCB;
                                    letter-spacing: 0.8px;
                                    margin-top: 5px;
                                }

                                .desc {
                                    color: white;
                                    display: none;
                                    margin-top: 20px;
                                    font-size: 16px;
                                    letter-spacing: 0.6px;
                                    text-align: center;
                                    padding: 0 40px;
                                    font-weight: 400;
                                    line-height: 22px;
                                }
                            }

                            .social {
                                z-index: 1;
                                display: flex;
                                align-items: center;
                                background-color: rgba($neu-01, 0.5);
                                box-shadow: inset 0px 11px 13px -20px $neu-03;
                                width: 100%;
                                position: absolute;
                                bottom: 0;
                                height: 50px;
                                padding: 0 20px;
                                box-sizing: border-box;
                                border-radius: 0px 0px 4px 4px;
                                transition: all 0.4s ease;

                                .pointer {
                                    display: block;
                                    width: 10px;
                                    height: 10px;
                                    z-index: 2;
                                    bottom: 50px;
                                    position: absolute;
                                    transform: translateX(25px);
                                    transition: all 0.4s ease;
                                    opacity: 0;


                                    &:before {
                                        content: '';
                                        width: 100%;
                                        height: 100%;
                                        position: absolute;
                                        background-color: white;
                                        transform: rotate(45deg);
                                    }

                                    @include sm {
                                        display: none;
                                    }
                                }

                                .icons {
                                    width: 100%;
                                    display: flex;
                                    align-items: center;
                                    justify-content: space-around;

                                    .icon {
                                        width: 25%;
                                        height: 24px;
                                        opacity: 0.3;
                                        transition: all 0.4s ease;

                                        &:hover {
                                            opacity: 0.6;

                                            @include sm {
                                                opacity: 0.3;
                                            }
                                        }

                                        img {
                                            width: 100%;
                                            height: 100%;
                                        }
                                    }
                                }

                                &:hover {
                                    .pointer {
                                        opacity: 1;
                                        bottom: 45px;
                                    }
                                }
                            }
                        }

                        &:hover {
                            transform: translateY(3px);

                            &:before {
                                box-shadow: 0px 10px 10px -10px #EAEAEA;
                            }

                            @include sm {
                                transform: translateY(0px);

                                &:before {
                                    box-shadow: 0px 20px 40px -20px #EAEAEA;
                                }
                            }

                            .card {

                                .photo {

                                    transform: translateY(-5px);
                                    box-shadow: 0px 6px 20px rgba($neu-03, 0.3);

                                    @include sm {
                                        transform: translateY(0px);
                                        box-shadow: 0px 4px 10px rgba($neu-03, 0.3);
                                    }
                                }
                            }
                        }

                        &.show-more {
                            .card {
                                overflow: hidden;

                                .more {
                                    transform: rotate(45deg) scale(1);

                                    &:hover {
                                        transform: rotate(45deg) scale(1.1);

                                        @include sm {
                                            transform: rotate(45deg) scale(1);
                                        }
                                    }
                                }

                                .social {
                                    transform: translateY(55px);
                                }

                                .text {
                                    color: white;
                                    transform: translateY(0px);
                                    transition: all 0.6s ease;

                                    .name,
                                    .role {
                                        color: white;
                                    }

                                    .desc {
                                        display: block;
                                    }
                                }

                                .photo {
                                    width: 100%;
                                    height: 100%;
                                    top: 0px;
                                    border: solid 0px transparent;
                                    border-radius: 4px;
                                    box-shadow: 0px 4px 10px rgba($neu-03, 0);
                                    transform: translateY(0px);
                                    transition: all 0.4s ease;

                                    &:before {
                                        height: 100%;
                                        opacity: 0.5;
                                    }

                                    &:after {
                                        height: 100%;
                                        opacity: 0.8;
                                        border-radius: 4px;
                                    }

                                    img {
                                        filter: grayscale(100%);
                                    }

                                    &:hover {
                                        transform: translateY(0px);
                                    }
                                }

                                .bg {
                                    width: 100%;
                                    height: 100%;
                                    //z-index: 2;
                                    border-radius: 4px;

                                    &:before {
                                        opacity: 0.5;
                                    }

                                    &:after {
                                        opacity: 0.8;
                                    }

                                }
                            }

                        }
                    }
                }

                .swiper-pagination {
                    bottom: 0;
                    display: none;

                    @include sm {
                        display: block;
                    }

                    .swiper-pagination-bullet {
                        background-color: $neu-03;
                        margin: 0 5px;
                        border-radius: 5px;
                        transition: all 0.4s ease;

                        &:focus {
                            outline: 0;
                        }
                    }

                    .swiper-pagination-bullet-active {
                        background: $g-01;
                        width: 16px;
                    }
                }

                .navigation {
                    width: 1098px;
                    height: 28px;
                    position: absolute;
                    margin: 0 auto;
                    padding: 0 5%;
                    box-sizing: border-box;
                    top: 86px;
                    display: flex;
                    justify-content: center;
                    align-items: center;

                    @include lg {
                        width: 750px;
                    }

                    .swiper-button-prev,
                    .swiper-button-next {
                        width: 28px;
                        height: 28px;
                        background-position: center;
                        transition: all 0.4s ease;
                        top: 0;
                        margin-top: 0;

                        &:focus {
                            outline: none;
                        }

                        @include sm {
                            display: none;
                        }
                    }

                    .swiper-button-prev {
                        background-image: url("https://rafaelalucas.com/dailyui/6/assets/arrow-prev.svg");
                        background-position-x: 5px;
                        transform: translateX(5px);

                        &:hover {
                            transform: translateX(0px);
                        }
                    }

                    .swiper-button-next {
                        background-image: url("https://rafaelalucas.com/dailyui/6/assets/arrow-next.svg");
                        background-position-x: -5px;
                        transform: translateX(-5px);

                        &:hover {
                            transform: translateX(0px);
                        }
                    }

                }
            }
        }
    }
}

              
            
!

JS

              
                window.addEventListener("load", event => {

    var swiperWrapper = document.querySelector('.swiper-wrapper');

    /* The Team */
    var team = [{
            name: "Alice Stone",
            role: "UI Designer",
            desc: "Far far away, behind the world mountains, far from the countries Vokalia and Consonantia, theres live the blind texts.",
            photo: "https://images.unsplash.com/photo-1438761681033-6461ffad8d80?auto=compress&cs=tinysrgb&dpr=2&h=300&w=300",
            website: "https://rafaelalucas.com",
            email: "mailto:rafaelavlucas@gmail.com",
            linkedin: "https://www.linkedin.com/in/rafaelalucas/",
            dribbble: "https://dribbble.com/rafaelalucas",
        },
        {
            name: "Adam Turner",
            role: "Project Manager",
            desc: "Far far away, behind the world mountains, far from the countries Vokalia and Consonantia, theres live the blind texts.",
            photo: "https://images.unsplash.com/photo-1522609925277-66fea332c575?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9?auto=compress&cs=tinysrgb&dpr=2&h=300&w=300",
            website: "https://rafaelalucas.com",
            email: "mailto:rafaelavlucas@gmail.com",
            linkedin: "https://www.linkedin.com/in/rafaelalucas/",
            dribbble: "https://dribbble.com/rafaelalucas",
        },
        {
            name: "Nancy Hughes",
            role: "UX Specialist",
            desc: "Far far away, behind the world mountains, far from the countries Vokalia and Consonantia, theres live the blind texts.",
            photo: "https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=300&w=300",
            website: "https://rafaelalucas.com",
            email: "mailto:rafaelavlucas@gmail.com",
            linkedin: "https://www.linkedin.com/in/rafaelalucas/",
            dribbble: "https://dribbble.com/rafaelalucas",
        },
        {
            name: "Jonathan Campbell",
            role: "Front-End Developer",
            desc: "Far far away, behind the world mountains, far from the countries Vokalia and Consonantia, theres live the blind texts.",
            photo: "https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=300&w=300",
            website: "https://rafaelalucas.com",
            email: "mailto:rafaelavlucas@gmail.com",
            linkedin: "https://www.linkedin.com/in/rafaelalucas/",
            dribbble: "https://dribbble.com/rafaelalucas",
        },
        {
            name: "Jack Keller",
            role: "Back-End Developer",
            desc: "Far far away, behind the world mountains, far from the countries Vokalia and Consonantia, theres live the blind texts.",
            photo: "https://images.pexels.com/photos/2379004/pexels-photo-2379004.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=300&w=300",
            website: "https://rafaelalucas.com",
            email: "mailto:rafaelavlucas@gmail.com",
            linkedin: "https://www.linkedin.com/in/rafaelalucas/",
            dribbble: "https://dribbble.com/rafaelalucas",
        },
        {
            name: "Sara Carroll",
            role: "Head of UI Design",
            desc: "Far far away, behind the world mountains, far from the countries Vokalia and Consonantia, theres live the blind texts.",
            photo: "https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9?auto=compress&cs=tinysrgb&dpr=2&h=300&w=300",
            website: "https://rafaelalucas.com",
            email: "mailto:rafaelavlucas@gmail.com",
            linkedin: "https://www.linkedin.com/in/rafaelalucas/",
            dribbble: "https://dribbble.com/rafaelalucas",
        },
    ];

    /* Social Icons */
    var icons = [{
        iWebsite: "https://rafaelalucas.com/dailyui/6/assets/link.svg",
        iEmail: "https://rafaelalucas.com/dailyui/6/assets/email.svg",
        iLinkedin: "https://rafaelalucas.com/dailyui/6/assets/linkedin.svg",
        iDribbble: "https://rafaelalucas.com/dailyui/6/assets/dribbble.svg",
    }];

    var iWebsite = icons[0].iWebsite,
        iEmail = icons[0].iEmail,
        iLinkedin = icons[0].iLinkedin,
        iDribbble = icons[0].iDribbble;


    /* Function to populate the team members */
    function addTeam() {
        for (let i = 0; i < team.length; i++) {

            /* Variables for the team */
            var name = team[i].name,
                role = team[i].role,
                desc = team[i].desc,
                photo = team[i].photo,
                website = team[i].website,
                email = team[i].email,
                linkedin = team[i].linkedin,
                dribbble = team[i].dribbble;

            /* Template for the Team Cards */
            var template = `
                <div class="swiper-slide">
                <div class="card">
                    <span class="bg"></span>
                    <span class="more"></span>
                    <figure class="photo"><img src="${photo}"></figure>
                        <article class="text">
                            <p class="name">${name}</p>
                            <p class="role">${role}</p> 
                            <p class="desc">${desc}</p> 
                        </article>
                        
                        <div class="social">
                        <span class="pointer"></span>
                        <div class="icons">
                            <a class="icon" href="${website}" target="_blank" data-index="0"><img src="${iWebsite}"></a>
                            <a class="icon" href="${email}" target="_blank" data-index="1"><img src="${iEmail}"></a>
                            <a class="icon" href="${linkedin}" target="_blank" data-index="2"><img src="${iLinkedin}"></a>
                            <a class="icon" href="${dribbble}" target="_blank" data-index="3"><img src="${iDribbble}"></a>
                            </div>
                            </div>
                    </div>
                </div>`;

            swiperWrapper.insertAdjacentHTML('beforeend', template);
        }
    };


    addTeam();



    /* Swiper Settings */

    var mySwiper = new Swiper(".swiper-container", {
        // Optional parameters
        direction: "horizontal",
        loop: true,
        centeredSlides: false,
        speed: 800,
        slidesPerView: 3,
        spaceBetween: 40,
        threshold: 5,


        // If we need pagination
        pagination: {
            el: ".swiper-pagination",
            clickable: true
        },

        // Navigation arrows
        navigation: {
            nextEl: ".swiper-button-next",
            prevEl: ".swiper-button-prev"
        },
        breakpoints: {
            1180: {
                slidesPerView: 2,
                spaceBetween: 40,
                centeredSlides: false,
            },
            799: {
                slidesPerView: 1,
                spaceBetween: 20,
                centeredSlides: true,
                loop: true,
            },
        }
    });

    /* Show More */

    var btnShow = document.querySelectorAll('.more');



    btnShow.forEach(function (el) {
        el.addEventListener('click', showMore);
    });

    function showMore(event) {
        var card = event.target.closest(".swiper-slide");

        if (card.classList.contains('show-more')) {
            card.classList.remove('show-more');
        } else {
            card.classList.add('show-more')
        }

    }


    /* Social Hover */
    var icon = document.querySelectorAll('.icon');

    icon.forEach(function (el) {
        el.addEventListener("mouseenter", followCursor);

    });


    function followCursor(event) {
        var pointer = event.currentTarget.closest(".swiper-slide").querySelector('.pointer'),
            index = event.currentTarget.dataset.index,
            sizeIcon = (60 * index) + 25;

        pointer.style.transform = `translateX(${sizeIcon}px)`;
    }


    /* end */
});
              
            
!
999px

Console