JSFiddle - React, Tailwind, and code Playground

by oceog

HTML

<div class='phone_email'>
    <div class="icon">+</div>
    <div class="phone">555-555-555</div>
    <div class="email">[email protected]</div>
</div>
<div class='phone_email'>
    <div class="icon">+</div>
    <div class="phone">555-555-555</div>
    <div class="email">[email protected]</div>
</div>
<div class='phone_email'>
    <div class="icon">+</div>
    <div class="phone">555-555-555</div>
    <div class="email">[email protected]</div>
</div>
<div class='phone_email'>
    <div class="icon">+</div>
    <div class="phone">555-555-555</div>
    <div class="email">[email protected]</div>
</div>

CSS

.phone_email {
    width: 200px;
    height: 20px;
    position: relative;
    overflow: hidden;
}
.phone_email .phone {
    position: absolute;
    top: 0;
    left: 200px;
    width: 200px;
    transition: all 1s;
}
.phone_email .icon:hover ~ .phone, .phone_email .phone:hover {
    position: absolute;
    top: 0;
    left: 20px;
    width: 200px;
}
.phone_email .email {
    position: absolute;
    top: 0;
    left: 20px;
    width: 200px;
    transition: all 1s;
}
.phone_email .icon:hover ~ .email, .phone_email .phone:hover ~ .email {
    position: absolute;
    top: 0;
    left: -200px;
    width: 200px;
}
.icon {
    background: white;
    z-index: 1000;
    width: 21px;
    height: 20px;
    position: absolute;
    top: 0;
    left: 0;
}