JSFiddle - React, Tailwind, and code Playground

Circle Hover Effects Demo 3 http://tympanus.net/Tutorials/CircleHoverEffects/index3.html

by Jennifer Perrin

HTML

<ul class="ch-grid">
    <li>
        <div class="ch-item">    
            <div class="ch-info">
                <h3>Blue Eyes</h3>
                <p>by Jennifer Perrin <a href="">Read<br />More</a></p>
            </div>
            <div class="ch-thumb ch-img-1"></div>
        </div>
    </li>
    <li>
        <div class="ch-item">
            <div class="ch-info">
                <h3>Too Cute</h3>
                <p>by Jennifer Perrin <a href="">Read<br />More</a></p>
            </div>
            <div class="ch-thumb ch-img-2"></div>
        </div>
    </li>
    <li>
        <div class="ch-item">
            <div class="ch-info">
                <h3>Sweet Face</h3>
                <p>by Jennifer Perrin <a href="">Read<br />More</a></p>
            </div>
            <div class="ch-thumb ch-img-3"></div>
        </div>
    </li>
</ul>

CSS

.ch-grid {
    margin: 20px 0 0 0;
    padding: 0;
    list-style: none;
    display: block;
    text-align: center;
    width: 100%;
}

.ch-grid:after,
.ch-item:before {
    content: '';
    display: table;
}

.ch-grid:after {
    clear: both;
}

.ch-grid li {
    width: 220px;
    height: 220px;
    display: inline-block;
    margin: 20px;
}
.ch-item {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    position: relative;
    cursor: default;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.ch-thumb {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    overflow: hidden;
    position: absolute;
    box-shadow: inset 0 0 0 15px rgba(255,255,255, 0.5);
    
    -webkit-transform-origin: 95% 40%;
    -moz-transform-origin: 95% 40%;
    -o-transform-origin: 95% 40%;
    -ms-transform-origin: 95% 40%;
    transform-origin: 95% 40%;
    
    -webkit-transition: all 0.3s ease-in-out;
    -moz-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    -ms-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
}

.ch-thumb:after {
    content: '';
    width: 8px;
    height: 8px;
    position: absolute;
    border-radius: 50%;
    top: 40%;
    left: 95%;
    margin: -4px 0 0 -4px;
    background: rgb(14,14,14);
    background: -moz-radial-gradient(center, ellipse cover, rgba(14,14,14,1) 0%, rgba(125,126,125,1) 100%);
    background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(14,14,14,1)), color-stop(100%,rgba(125,126,125,1)));
    background: -webkit-radial-gradient(center, ellipse cover, rgba(14,14,14,1) 0%,rgba(125,126,125,1) 100%);
    background: -o-radial-gradient(center, ellipse cover, rgba(14,14,14,1) 0%,rgba(125,126,125,1) 100%);
    background: -ms-radial-gradient(center, ellipse cover, rgba(14,14,14,1) 0%,rgba(125,126,125,1) 100%);
    background: radial-gradient(ellipse at center, rgba(14,14,14,1) 0%,rgba(125,126,125,1) 100%);
    box-shadow: 0 0 1px...