File size: 1,153 Bytes
a7479c8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
class ApiLoader extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
.loader-container {
display: flex;
justify-content: center;
align-items: center;
padding: 2rem;
}
.loader {
width: 48px;
height: 48px;
border: 5px solid #6d28d9;
border-bottom-color: transparent;
border-radius: 50%;
display: inline-block;
box-sizing: border-box;
animation: rotation 1s linear infinite;
}
@keyframes rotation {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
<div class="loader-container">
<span class="loader"></span>
</div>
`;
}
}
customElements.define('api-loader', ApiLoader); |