Bootstrap responsive card list

Responsive template for show any number of column in grid. Rows break with w-100 div

by Владимир Коротенко

HTML

<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<!-- 
  Bootstrap docs: https://getbootstrap.com/docs
-->

<div class="container">
  <div class="row">
    <div class="col-sm">
      <div class="card">
       <img src="https://picsum.photos/50/100?random=1">
      </div>
      <small>card description</small>
    </div>
    <div class="col-sm">
      <div class="card">      
       <img src="https://picsum.photos/50/100?random=1">
      </div>
      <small>card description</small>
    </div>
    <div class="col-sm">
      <div class="card">
       <img src="https://picsum.photos/seed/picsum/50/100">
      </div>
      <small>card description</small>
    </div>
    <div class="col-sm">
      <div class="card">
       <img src="https://picsum.photos/seed/picsum/50/100">
      </div>
      <small>card description</small>
    </div>
    <div class="col-sm">
      <div class="card">
       <img src="https://picsum.photos/seed/picsum/50/100">
      </div>
      <small>card description</small>
    </div>
    <div class="w-100"></div>
   
    <div class="col-sm">
      <div class="card">
       <img src="https://picsum.photos/seed/picsum/50/100">
      </div>
      <small>card description</small>
    </div>
    <div class="col-sm">
      <div class="card">
       <img src="https://picsum.photos/seed/picsum/50/100">
      </div>
      <small>card description</small>
    </div>
    <div class="col-sm">
      <div class="card">
       <img src="https://picsum.photos/seed/picsum/50/100">
      </div>
      <small>card description</small>
    </div>
    <div class="col-sm">
   ...

CSS

.row {
  background: #f8f9fa;
  margin-top: 20px;
}

.col-sm {
  /* border: solid 1px #6c757d; */
  padding: 10px;
  margin: 5px;
  text-align: center;
}
.card{
  border-radius: 0;
  border-top-left-radius: 25px;
  border-bottom-right-radius: 25px;
  border: 2px solid gray;
  padding: 2em;
  text-align: center;
  box-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.25), inset 0 -1px 5px rgba(0, 0, 0, 0.25);
}