HTML
For HTML, we'll need a div element with two spans inside. One with "+" text and one with "Add Friend" text.
Now we'll set classes, "button" to div element, "plus" to span element with "+" text and "text" class to span element that has "Add Friend" text.
<div class="button">
    <span class="plus">+</span>
    <span class="text">Add Friend</span>
</div>
CSS
For CSS, first, we'll style div element with class "button".
We'll set some basic styling, background, border, color...
We'll set width and height to 50 pixels which form a circle with 25 pixels of border radius.
Using flexbox, we'll align elements in center.
Now we'll add a little transition, hide everything that overflows and set cursor to pointer.
.button {
    background-color: rgb(78, 180, 203);
    width: 50px;
    height: 50px;
    border-radius: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: .3s;
    overflow: hidden;
    cursor: pointer;
    color: #fff;
}
As for out span elements, we'll set position to absolute and add a little transition.
.plus, .text {
    position: absolute;
    transition: .3s;
}
On div hover, we'll set it's width to 100px and transition to 300 ms.
.button:hover {
    width: 100px;
    transition: .3s;
}
On div hover, we'll hide the span element with "+" text, by setting opacity to zero.
We'll also set transition, so that it disappears smoothly.
.button:hover .plus {
    opacity: 0;
    transition: .3s;
}
To element that has "Add Friend" text, we'll set opacity to zero. This element will appear on div hover (when plus sign disappears).
.text {
    opacity: 0;
}
On div hover, we'll set opacity to one, on span with "text" class.
With a little transition, this will appear smoothly.
.button:hover .text {
    opacity: 1;
    transition: .3s;
}
And that is it.
You can find full code and video tutorial here.
Thanks for reading. ❤️

    
Top comments (0)