I donβt know how you could revive your current markup. As far as I know, animating divs in the radial direction is not possible. However, you can fake it by turning the squares and adding some coverage. Here is a demo:
http://codepen.io/apexskier/pen/wGovRy
<div class="watch-face animating"> <div class="cover"></div> <div class="a"></div> <div class="b"></div> <div class="c"></div> <div class="d"></div> </div>
a , b , c and d represent the four quadrants of your watch, each of which will be rotated in the middle and shown and hidden as needed. cover used to hide the first, as it gradually appeared.
I used z-index for the correct layer.
Here are some of the important css (see codecen for everything)
EDIT: Fixed borders around the quadrant, making the whole thing equal width
.watch-face { .a, .b, .c, .d, .cover { position: absolute; height: ($watch-face-size / 2); width: ($watch-face-size / 2); background-color: green; z-index: 5; transform-origin: bottom right; border-top-left-radius: ($watch-face-size / 2) - 1; border-top: 1px solid #fff; // hides a nasty green aliasing line border-left: 1px solid #fff; // hides a nasty green aliasing line } .cover { opacity: 0; } &.animating, &.animate { .a, .b, .c, .d, .cover { animation-duration: 4s; animation-timing-function: linear; } } &.animating { .a, .b, .c, .d, .cover { animation-iteration-count: infinite; } } &.animate { .a, .b, .c, .d, .cover { animation-iteration-count: 1; } } .a { animation-name: clock-a; opacity: 1; transform: rotate(90deg); } .b { animation-name: clock-b; transform: rotate(180deg); } .c { animation-name: clock-c; transform: rotate(270deg); } .d { animation-name: clock-d; transform: rotate(360deg); } .cover { animation-name: clock-cover; z-index: 10; background-color: #fff; } } @keyframes clock-cover { 0% { opacity: 1; } 74.9999999% { opacity: 1; } 75% { opacity: 0; } 100% { opacity: 0; } } @keyframes clock-a { 0% { transform: rotate(0); } 25% { transform: rotate(90deg); } 100% { transform: rotate(90deg); } } @keyframes clock-b { 0% { transform: rotate(90deg); opacity: 0; } 24.999999% { opacity: 0; } 25% { transform: rotate(90deg); opacity: 1; } 50% { transform: rotate(180deg); } 100% { transform: rotate(180deg); opacity: 1; } } @keyframes clock-c { 0% { transform: rotate(180deg); opacity: 0; } 49.999999% { opacity: 0; } 50% { transform: rotate(180deg); opacity: 1; } 75% { transform: rotate(270deg); } 100% { transform: rotate(270deg); opacity: 1; } } @keyframes clock-d { 0% { transform: rotate(270deg); opacity: 0; } 74.999999% { opacity: 0; } 75% { transform: rotate(270deg); opacity: 1; } 100% { transform: rotate(360deg); opacity: 1; } }