<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
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.