JSFiddle - React, Tailwind, and code Playground

by Liu ChangFeng

HTML

<ul class="speakers-list">
  <li>
    <img src="https://img.w3ctech.com/zell-photo.jpg" alt="Zell Liew" class="avatar">
    <b>Zell Liew</b>
    <br>知名前端专家、<a href="https://learnjavascript.today/">learnjavascript.today</a>作者、来自新加坡</li>
  <li>
    <img src="https://img.w3ctech.com/damo.jpg" alt="大漠" class="avatar">
    <b>大漠</b>
    <br>知名CSS专家、阿里巴巴前端技术专家 </li>
  <li>
    <img src="https://img.w3ctech.com/[email protected]" alt="张鑫旭" class="avatar">
    <b>张鑫旭</b>
    <br> 知名CSS专家、《CSS世界》作者、阅文集团前端开发2 </li>
  <li>
    <img src="https://img.w3ctech.com/[email protected]" alt="顾轶灵" class="avatar">
    <b>顾轶灵</b>
    <br> 知名CSS专家、百度前端开发 </li>
  <li>
    <img src="https://img.w3ctech.com/yisi_new.jpg" alt="一丝" class="avatar">
    <b>一丝(李杰)</b>
    <br>知名CSS专家、阿里妈妈前端开发 </li>
  <li>
    <img src="https://img.w3ctech.com/wangle.jpg" alt="王乐" class="avatar">
    <b>王乐</b>
    <br>腾讯互娱高级前端工程师</li>
  <li>
    <img src="https://img.w3ctech.com/gougu.jpg" alt="勾三股四" class="avatar">
    <b>勾三股四</b>
    <br>阿里巴巴高级前端技术专家</li>
  <li>
    <img src="https://img.w3ctech.com/chengguan.jpg" alt="城管" class="avatar">
    <b>郑绍凯(城管)</b>
    <br>欢乐逛资深前端工程师</li>


</ul>

SCSS

.speakers-list{
  align-items: stretch;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  li{
    margin-bottom: 3rem;
    text-align: center;
    width: 22%;  
    color: #7c7c7c;
    font-size: 2vw;
    list-style: none;
    img {
      display: block;
      margin: 0 auto 20px;
      max-width: 90%;
      &.avatar {
        border-radius: 50%;
        border: 3px solid #fff;
        transition: all .3s ease-out;
      }
    }
    b {
      color: #4a4a4a;
      font-weight: 400;
    }
  }
}

//-----------------------------------------------

@for $i from 1 through 40 {
  .speakers-list li:nth-child(#{$i}) img {
    border-top-left-radius: random(20) + 15%;
    border-top-left-radius: random(20) + 50%;
    border-top-right-radius: random(20) + 40%;
    border-bottom-left-radius: random(20) + 40%;
    border-bottom-right-radius: random(20) + 40%;
    transform: rotate(random(10) - 5deg)
  }
  .speakers-list li:nth-child(#{$i}) img:hover {
   border-top-left-radius: random(40) + 20%;
    border-top-right-radius: random(40) + 20%;
    border-bottom-left-radius: random(40) + 20%;
    border-bottom-right-radius: random(40) + 20%;   
    transform: rotate(random(15) - 5deg)
  }
}