body { margin: 0; } [data-loading='true'] .page-loader { visibility: visible; opacity: 1; } .theme-dark .page-loader { --p-page-loader-background-color: hsl(240 5.7% 10.4%); --base-gradient-color: #fff; --base-color: #999; } .theme-light .page-loader { --p-page-loader-background-color: #fff; --base-gradient-color: #000; --base-color: #aaa; } .theme-light .page-loader { background-color: #fff; } .page-loader { --message-font-family: 'Inter, arial, sans-serif'; visibility: hidden; opacity: 0; z-index: 100000; position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; background-color: var(--p-page-loader-background-color); transition: all 0.3s ease-in-out 0.35s; img { max-width: 100%; width: 40px; /* Explicitly set width */ height: 40px; /* Explicitly set height */ object-fit: contain; /* Ensures image scales proportionally */ } } .page-loader { .content { display: flex; flex-direction: column; gap: 0.75rem; align-items: center; justify-content: center; animation: content-in 0.75s ease-in-out forwards; will-change: transform, filter; } .message { --spread: 50px; --bg: linear-gradient( 90deg, #0000 calc(50% - var(--spread)), var(--base-gradient-color), #0000 calc(50% + var(--spread)) ); display: block; font-size: 1rem; font-family: var(--message-font-family); position: relative; background: var(--bg), linear-gradient(var(--base-color), var(--base-color)); background-clip: text; background-size: 250% 150%, auto; animation: loader 1.5s linear infinite; color: transparent; } } [data-loading='false'] .page-loader { .content { animation: content-out 0.75s ease-in-out forwards; } } @keyframes content-in { from { transform: translateY(4px); filter: blur(2px); } to { transform: translateY(0); filter: blur(0); } } @keyframes content-out { from { transform: translateY(0); filter: blur(0); } to { transform: translateY(4px); filter: blur(2px); } } @keyframes loader { from { background-position: 100% center; } to { background-position: 0% center; } }