Portfolio block to display your portfolio of client websites, applications or photography on websites and landing pages.

Dependencies

  • Bootstrap 4
  • FontAwesome
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <title>FWR Bootstrap Blocks - Portfolio 2</title>

    <!-- Styles -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    
    <!-- Custom style -->
    <link rel="stylesheet" href="style.css">
    
</head>
<body>

    <div class="portfolio-2 py-4 py-md-5">

        <div class="container">

            <div class="row">
                <div class="col-md-10 col-xl-8 portfolio-intro text-center mx-auto">
                    <h1 class="portfolio-intro-title mb-3">Awesome design for your content</h1>
                    <p class="lead">FWR blocks contains a variety of blocks and elements that you can mix and match to create various layouts. FWR blocks follow a similar pattern and design style so you can reuse it in your websites and web applications.</p>

                    <div class="portfolio-actions mt-4">
                        <button class="btn btn-lg btn-primary mt-2 mx-1">View Portfolio</button>
                        <button class="btn btn-lg btn-outline-primary mt-2 mx-1">About FWR blocks</button>
                    </div>
                </div>
            </div>

            <div class="row portfolio-list mt-4 mt-md-5 pb-4">
                <div class="col-sm-6 col-lg-4 px-sm-4 mt-4">
                    <div class="portfolio-item mx-auto">
                        <div class="portfolio-img">
                            <img src="//assets.free-website-resources.com/img/portfolio-7.jpg" alt="portfolio image" class="img-fluid">
                            <div class="portfolio-hover"></div>
                        </div>
                        <div class="portfolio-meta px-1 py-3">
                            <h5 class="portfolio-title text-uppercase">WebMeeting Features</h5>
                            <p class="text-muted">FWR blocks are beautifully crafted with creativity, passion and quality.</p>
                        </div>
                    </div>
                </div>
                <div class="col-sm-6 col-lg-4 px-sm-4 mt-4">
                    <div class="portfolio-item mx-auto">
                        <div class="portfolio-img">
                            <img src="//assets.free-website-resources.com/img/portfolio-8.png" alt="portfolio image" class="img-fluid">
                            <div class="portfolio-hover"></div>
                        </div>
                        <div class="portfolio-meta px-1 py-3">
                            <h5 class="portfolio-title text-uppercase">Young Bloods</h5>
                            <p class="text-muted">FWR blocks bring in a fresh air of art and design in their blocks.</p>
                        </div>
                    </div>
                </div>
                <div class="col-sm-6 col-lg-4 px-sm-4 mt-4">
                    <div class="portfolio-item mx-auto">
                        <div class="portfolio-img">
                            <img src="//assets.free-website-resources.com/img/portfolio-9.jpg" alt="portfolio image" class="img-fluid">
                            <div class="portfolio-hover"></div>
                        </div>
                        <div class="portfolio-meta px-1 py-3">
                            <h5 class="portfolio-title text-uppercase">Nike90 Store</h5>
                            <p class="text-muted">FWR blocks are reusable code blocks for designers, developers and agencies.</p>
                        </div>
                    </div>
                </div>
                <div class="col-sm-6 col-lg-4 px-sm-4 mt-4">
                    <div class="portfolio-item mx-auto">
                        <div class="portfolio-img">
                            <img src="//assets.free-website-resources.com/img/portfolio-10.png" alt="portfolio image" class="img-fluid">
                            <div class="portfolio-hover"></div>
                        </div>
                        <div class="portfolio-meta px-1 py-3">
                            <h5 class="portfolio-title text-uppercase">Women Inventor</h5>
                            <p class="text-muted">You can use FWR blocks for personal or commercial purpose with attribution.</p>
                        </div>
                    </div>
                </div>
                <div class="col-sm-6 col-lg-4 px-sm-4 mt-4">
                    <div class="portfolio-item mx-auto">
                        <div class="portfolio-img">
                            <img src="//assets.free-website-resources.com/img/portfolio-11.png" alt="portfolio image" class="img-fluid">
                            <div class="portfolio-hover"></div>
                        </div>
                        <div class="portfolio-meta px-1 py-3">
                            <h5 class="portfolio-title text-uppercase">Pomodoro App</h5>
                            <p class="text-muted">FWR blocks is the must have tool for designers and developers.</p>
                        </div>
                    </div>
                </div>
                <div class="col-sm-6 col-lg-4 px-sm-4 mt-4">
                    <div class="portfolio-item mx-auto">
                        <div class="portfolio-img">
                            <img src="//assets.free-website-resources.com/img/portfolio-12.png" alt="portfolio image" class="img-fluid">
                            <div class="portfolio-hover"></div>
                        </div>
                        <div class="portfolio-meta px-1 py-3">
                            <h5 class="portfolio-title text-uppercase">Glax landing</h5>
                            <p class="text-muted">FWR blocks are made with Bootstrap and minimal custom styling.</p>
                        </div>
                    </div>
                </div>
            </div>

        </div>

    </div>
    <!-- /.portfolio-2 -->

    <!-- Scripts -->
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>
// Bootstrap variables and mixins
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";

// Variables
$primary:   #5863f8;

// Custom CSS
.portfolio-intro-title {
  font-size: 1.75rem;
}

.portfolio-item {
  max-width: 400px;
}

.portfolio-img {
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  cursor: pointer;

  img {
    transform: scale(1.05);
    opacity: 1;
    filter: grayscale(70%);
    transition: transform .3s, opacity .3s, filter 1s;
  }

  @include hover {
    img {
      filter: grayscale(0%);
      transform: scale(1);
      opacity: 1;
    }

    .portfolio-hover {
      &::before {
        transform: scale3d(1.9,1.4,1) rotate3d(0,0,1,45deg) translate3d(0,100%,0);
      }
    }
  }
}

.portfolio-hover {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;

  &::before {
    content: '';
    background-color: rgba($white, .5);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transform: scale3d(1.9,1.4,1) rotate3d(0,0,1,45deg) translate3d(0,-100%,0);
    transition: transform .6s;
  }
}

.portfolio-title {
  font-weight: 600;
  color: $primary;
}

.btn {
  border-width: 2px;
}

.btn-lg {
  border-radius: 1.75rem;
  font-size: 1rem;
}

.btn-primary {
  @include button-variant($primary, $primary);
}

.btn-outline-primary {
  @include button-outline-variant($primary);
}


@include media-breakpoint-up(md) {

  .portfolio-intro-title {
    font-size: 2.5rem;
  }

  .btn-lg {
    padding: 12px 30px;
  }

}
.portfolio-intro-title {
  font-size: 1.75rem;
}

.portfolio-item {
  max-width: 400px;
}

.portfolio-img {
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}

.portfolio-img img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
  opacity: 1;
  -webkit-filter: grayscale(70%);
          filter: grayscale(70%);
  -webkit-transition: opacity .3s, -webkit-transform .3s, -webkit-filter 1s;
  transition: opacity .3s, -webkit-transform .3s, -webkit-filter 1s;
  transition: transform .3s, opacity .3s, filter 1s;
  transition: transform .3s, opacity .3s, filter 1s, -webkit-transform .3s, -webkit-filter 1s;
}

.portfolio-img:hover img {
  -webkit-filter: grayscale(0%);
          filter: grayscale(0%);
  -webkit-transform: scale(1);
          transform: scale(1);
  opacity: 1;
}

.portfolio-img:hover .portfolio-hover::before {
  -webkit-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 100%, 0);
          transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 100%, 0);
}

.portfolio-hover {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

.portfolio-hover::before {
  content: '';
  background-color: rgba(255, 255, 255, 0.5);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -100%, 0);
          transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -100%, 0);
  -webkit-transition: -webkit-transform .6s;
  transition: -webkit-transform .6s;
  transition: transform .6s;
  transition: transform .6s, -webkit-transform .6s;
}

.portfolio-title {
  font-weight: 600;
  color: #5863f8;
}

.btn {
  border-width: 2px;
}

.btn-lg {
  border-radius: 1.75rem;
  font-size: 1rem;
}

.btn-primary {
  color: #fff;
  background-color: #5863f8;
  border-color: #5863f8;
}

.btn-primary:hover {
  color: #fff;
  background-color: #3341f6;
  border-color: #2735f6;
}

.btn-primary:focus, .btn-primary.focus {
  -webkit-box-shadow: 0 0 0 0.2rem rgba(88, 99, 248, 0.5);
          box-shadow: 0 0 0 0.2rem rgba(88, 99, 248, 0.5);
}

.btn-primary.disabled, .btn-primary:disabled {
  color: #fff;
  background-color: #5863f8;
  border-color: #5863f8;
}

.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #2735f6;
  border-color: #1b2af5;
}

.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
  -webkit-box-shadow: 0 0 0 0.2rem rgba(88, 99, 248, 0.5);
          box-shadow: 0 0 0 0.2rem rgba(88, 99, 248, 0.5);
}

.btn-outline-primary {
  color: #5863f8;
  background-color: transparent;
  background-image: none;
  border-color: #5863f8;
}

.btn-outline-primary:hover {
  color: #fff;
  background-color: #5863f8;
  border-color: #5863f8;
}

.btn-outline-primary:focus, .btn-outline-primary.focus {
  -webkit-box-shadow: 0 0 0 0.2rem rgba(88, 99, 248, 0.5);
          box-shadow: 0 0 0 0.2rem rgba(88, 99, 248, 0.5);
}

.btn-outline-primary.disabled, .btn-outline-primary:disabled {
  color: #5863f8;
  background-color: transparent;
}

.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
  color: #fff;
  background-color: #5863f8;
  border-color: #5863f8;
}

.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-primary.dropdown-toggle:focus {
  -webkit-box-shadow: 0 0 0 0.2rem rgba(88, 99, 248, 0.5);
          box-shadow: 0 0 0 0.2rem rgba(88, 99, 248, 0.5);
}

@media (min-width: 768px) {
  .portfolio-intro-title {
    font-size: 2.5rem;
  }
  .btn-lg {
    padding: 12px 30px;
  }
}

Similar Blocks

aHR0cHM6Ly9mcmVlLXdlYnNpdGUtcmVzb3VyY2VzLmNvbS9ibG9ja3MvYm9vdHN0cmFwL3BvcnRmb2xpby9wb3J0Zm9saW8tMg==