.bd-spinner { width: 40px; height: 40px; position: relative; -webkit-animation: bd-spinnerAnim 2s cubic-bezier(.4, 0, 0, 1) infinite; animation: bd-spinnerAnim 2s cubic-bezier(.4, 0, 0, 1) infinite; backface-visibility: hidden; -webkit-backface-visibility: hidden; &::before { content: ''; background: #fff; height: 10px; width: 10px; position: absolute; border-radius: 50%; right: 5px; top: 15px; -webkit-animation: bd-spinnerAnimBefore 2s cubic-bezier(.4, 0, 0, 1) infinite; animation: bd-spinnerAnimBefore 2s cubic-bezier(.4, 0, 0, 1) infinite; backface-visibility: hidden; -webkit-backface-visibility: hidden; } &::after { content: ''; background: #fff; height: 10px; width: 10px; position: absolute; border-radius: 50%; left: 5px; top: 15px; -webkit-animation: bd-spinnerAnimAfter 2s cubic-bezier(.4, 0, 0, 1) infinite; animation: bd-spinnerAnimAfter 2s cubic-bezier(.4, 0, 0, 1) infinite; backface-visibility: hidden; -webkit-backface-visibility: hidden; } } @-webkit-keyframes bd-spinnerAnim { from { -webkit-transform: rotate(0); transform: rotate(0); } to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes bd-spinnerAnim { from { -webkit-transform: rotate(0); transform: rotate(0); } to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @-webkit-keyframes bd-spinnerAnimBefore { 0% { -webkit-transform: translate(-10px, 0); transform: translate(-10px, 0); } 50% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 100% { -webkit-transform: translate(-10px, 0); transform: translate(-10px, 0); } } @keyframes bd-spinnerAnimBefore { 0% { -webkit-transform: translate(-10px, 0); transform: translate(-10px, 0); } 50% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 100% { -webkit-transform: translate(-10px, 0); transform: translate(-10px, 0); } } @-webkit-keyframes bd-spinnerAnimAfter { 0% { -webkit-transform: translate(10px, 0); transform: translate(10px, 0); } 50% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 100% { -webkit-transform: translate(10px, 0); transform: translate(10px, 0); } } @keyframes bd-spinnerAnimAfter { 0% { -webkit-transform: translate(10px, 0); transform: translate(10px, 0); } 50% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 100% { -webkit-transform: translate(10px, 0); transform: translate(10px, 0); } }