<div class='example'>
    <div class='text'>previous project</div>
    <div class='counter'>
        <span class='number'>01</span>
        <div class='background'></div>
        <span class='number'>04</span>
    </div>
    <div class='text'>next project</div>
</div>
@import url('https://fonts.googleapis.com/css2?family=Rowdies&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-family: 'Rowdies', cursive;
    font-size: ~'calc(12px + 4 * ((100vw - 400px) / 400))';

    @media screen and (max-width: 400px) {
        font-size: 12px;
    }

    @media screen and (min-width: 1200px) {
        font-size: 20px;
    }

    line-height: 1.25;
}

body {
    background: #6a558e;
    overflow: hidden;
}

.example {
    margin: 3rem auto;
    text-align: center;

    > .text {
        display: inline-block;
        position: relative;
        padding: 1rem 3rem;
        transform: translateY(-.5rem);
        text-transform: uppercase;
        perspective: 10rem;
    }

    > .text:first-of-type {
        padding-left: 4rem;
    }

    > .text:first-of-type::before {
        content: '';
        height: 100%;
        width: 100%;
        position: absolute;
        top: 0;
        left: 0;
        transform: rotateY(10deg) translateX(~'calc(2rem - 3px)');
        z-index: -1;
        background: #ffffff;
    }

    > .text:last-of-type {
        padding-right: 4rem;
    }

    > .text:last-of-type::after {
        content: '';
        height: 100%;
        width: 100%;
        position: absolute;
        top: 0;
        left: 0;
        transform: rotateY(-10deg) translateX(~'calc(-1rem - 6px)');
        z-index: -1;
        background: #ffffff;
    }

    > .counter {
        display: inline-block;
        position: relative;
        padding: .5rem 2rem
    }

    > .counter > .background {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        background: #6a558e;
        border-radius: .7rem;
    }

    > .counter > .background::before {
        content: '';
        height: 100%;
        width: 100%;
        position: absolute;
        top: -4px;
        left: -4px;
        z-index: -1;
        border-radius: 1rem;
        border: solid #ffffff 4px;
        background: #6a558e;
    }

    > .counter > .background::after {
        content: '';
        width: 80%;
        padding-top: 80%;
        position: absolute;
        top: 50%;
        left: 50%;
        z-index: -1;
        border-radius: 50%;
        transform: translateX(-50%) translateY(-50%);
        border: solid #fff 4px;
        background: #6a558e;
    }

    > .counter > .number {
        position: relative;
        display: inline-block;
        z-index: 1;
        transform: translateY(-2px);
        color: #ffffff;
    }

    > .counter > .number:first-of-type {
        font-size: 2rem;
    }

    > .counter > .number:first-of-type::after {
        content: '/';
        display: inline-block;
        padding: 0 .2rem;
        font-size: 2.5rem;
    }

    > .counter > .number:last-of-type {
        font-size: 1rem;
        transform: translateY(-0.8rem) translateX(-.2rem);
    }
}


@media screen and (max-width: 600px) {
    .example {
        > .text {
            display: block;
        }
        
        > .text:first-of-type {
            margin-bottom: 3rem;
        }
        
        > .text:last-of-type {
            margin-top: 4rem;
        }
    }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.