<div class="container">
<a class="github-button" href="https://github.com/erenesto/pure-css-watch" target="_blank">Github</a>
<div class="clock">
<div class="clock-circle">
<!-- <span></span> -->
<div class="clock-indicators">
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
<div class="clock-indicators__item"></div>
</div>
<div class="clock-cycles">
<div class="clock-cycles__second"></div>
<div class="clock-cycles__minute"></div>
<div class="clock-cycles__hour"></div>
</div>
</div>
<div class="clock-belt"></div>
<div class="clock-belt"></div>
<div class="clock-button"></div>
</div>
</div>
@import url('https://fonts.googleapis.com/css2?family=Montserrat&display=swap');
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
.container {
width: 100vw;
height: 100vh;
background: hsl(200, 10%, 90%);
display: flex;
align-items: center;
justify-content: center;
}
.github-button {
position: absolute;
display: inline-block;
padding: 12px 14px;
color: #FFFFFF;
background: #222;
text-decoration: none;
border-radius: 4px;
right: 4%;
top: 4%;
font-size: 14px;
font-weight: 600;
font-family: 'Montserrat', sans-serif;
}
.clock {
width: 200px;
height: 200px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
span {
background: #fff;
width: 5px;
height: 5px;
border-radius: 50%;
display: block;
}
&-circle {
width: 100%;
height: 100%;
border-radius: 50%;
background: hsl(0, 0%, 4%);
background: linear-gradient(to top, hsl(0, 0%, 94%) 0%, hsl(0, 0%, 99%) 100%);
position: relative;
display: flex;
align-items: center;
justify-content: center;
border: 10px solid #000;
z-index: 10;
}
&-belt {
width: 120px;
height: 200px;
background: hsl(0, 0%, 6%);
position: absolute;
border-radius: 40%;
&:nth-child(2) {
transform: translateY(-60%);
clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
background: linear-gradient(to top, hsl(0, 0%, 20%) 0%, hsl(0, 0%, 2%) 100%);
}
&:nth-child(3) {
transform: translateY(60%);
clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
background: linear-gradient(to bottom, hsl(0, 0%, 20%) 0%, hsl(0, 0%, 2%) 100%);
}
}
&-indicators {
position: absolute;
width: 80%;
height: 80%;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
border-radius: 50%;
&__item {
position: absolute;
left: calc(50% - 1px);
width: 2px;
transform-origin: bottom center;
z-index: 2;
background: none;
height: 84px;
top: -12px;
opacity: 1;
&:after {
content: "";
position: absolute;
width: 2px;
height: 7px;
background: #000;
left: 0;
top: 0;
}
@for $i from 1 through 60 {
&:nth-of-type(#{$i}) {
transform: rotateZ(calc(6deg * #{$i}));
}
@if $i % 5 == 0 {
&:nth-of-type(#{$i}) {
width: 2px;
&:after {
height: 15px;
width: 6px;
left: -2px;
}
}
}
}
}
}
&-cycles {
position: absolute;
width: 100%;
height: 100%;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
border-radius: 50%;
&__second,
&__minute,
&__hour {
position: absolute;
width: 6px;
background: #000;
z-index: 2;
height: 75px;
left: 49%;
top: 17%;
transform-origin: 50% 80%;
box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.4);
}
&__second {
animation: tictoc 60s infinite steps(60);
z-index: 3;
background-color: hsl(0, 72%, 47%);
width: 2px;
left: 49.5%;
&::after {
content: '';
position: absolute;
width: 12px;
height: 12px;
border-radius: 50%;
background-color: hsl(0, 72%, 47%);
top: -4px;
left: 50%;
transform: translateX(-50%);
}
}
&__minute {
animation: tictoc 3600s infinite steps(60);
transform: rotateZ(60deg);
}
&__hour {
animation: tictoc 43200s infinite;
transform: rotateZ(220deg);
}
}
&-button {
content: '';
position: absolute;
width: 6px;
height: 20px;
background-color: hsl(0, 72%, 47%);
right: -4px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
}
@keyframes tictoc {
to {
transform: rotateZ(360deg);
}
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.