import { css, html, LitElement } from "lit"; import { property } from "lit/decorators.js"; export class CTLogo extends LitElement { static override styles = css` :host { display: inline-block; line-height: 0; } svg { display: block; } @keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-15px); } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes flip { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(180deg); } 100% { transform: rotateY(360deg); } } @keyframes pulse-rotate { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(180deg); } 100% { transform: scale(1) rotate(360deg); } } :host([loading]) .circle { animation: bounce 0.5s ease-in-out infinite; transform-origin: center; } :host([loading]) .triangle { animation: spin 0.75s linear infinite; transform-origin: center; transform-box: fill-box; } :host([loading]) .rectangle { animation: flip 1s ease-in-out infinite; transform-origin: center; transform-box: fill-box; } :host([loading]) .star { animation: pulse-rotate 1s ease-in-out infinite; transform-origin: center; transform-box: fill-box; } `; @property() width = 32; @property() height = 32; @property({ attribute: "background-color" }) backgroundColor = "white"; @property({ attribute: "shape-color" }) shapeColor = "#f9fafb"; @property({ type: Boolean, reflect: true }) loading = false; override render() { return html` `; } } customElements.define("ct-logo", CTLogo);