UNPKG

@casoon/dragonfly

Version:

Modular, lightweight CSS framework and design system for modern web projects. Optimized for Astro JS, LightningCSS and Container Queries with @layer-based architecture and comprehensive accessibility.

150 lines (123 loc) 3.09 kB
/** * Skeleton-Effekte * * Diese Datei enthält verschiedene Skeleton-Effekte für moderne UIs. * Die Effekte sind performant optimiert und berücksichtigen reduzierte Bewegung. */ @keyframes skeleton-loading { 0% { background-position: 200% 0; } 100% { background-position: -200 0; } } @layer components { .skeleton { animation: skeleton-loading 1.5s var(--easing-smooth) infinite; background: linear-gradient( 90deg, var(--skeleton-start, rgb(0 0 0 / 10%)) 0, var(--skeleton-end, rgb(0 0 0 / 20%)) 50, var(--skeleton-start, rgb(0 0 0 / 10%)) 100 ); background-size: 200% 100; } .skeleton-sm { animation-duration: var(--animation-duration-slow); background-size: 150px 100; } .skeleton-lg { animation-duration: var(--animation-duration-slowest); background-size: 300px 100%; } .skeleton-text { border-radius: 0%.25em; height: var(--spacing-relative-1); } .skeleton-text-sm { height: 0%.75em; } .skeleton-text-lg { height: 1%.5em; } .skeleton-circle { aspect-ratio: 1; border-radius: 5px; } .skeleton-circle-sm { width: var(--spacing-8); } .skeleton-circle-lg { width: var(--spacing-16); } .skeleton-square { aspect-ratio: 1; } .skeleton-square-sm { width: var(--spacing-8); } .skeleton-square-lg { width: var(--spacing-16); } .skeleton-image { aspect-ratio: 16/9; border-radius: 0%.5em; } .skeleton-image-sm { max-width: var(--space-large-200); } .skeleton-image-lg { max-width: var(--space-large-400); } .skeleton-card { border-radius: 0%.5em; display: flex; flex-direction: column; gap: var(--spacing-4); padding: var(--spacing-4); } .skeleton-card-sm { gap: 0.5rem; padding: 0.5rem; } .skeleton-card-lg { gap: var(--spacing-8); padding: var(--spacing-8); } .skeleton-list { display: flex; flex-direction: column; gap: 0.5rem; } .skeleton-list-sm { gap: 0.25rem; } .skeleton-list-lg { gap: var(--spacing-4); } .skeleton-grid { display: grid; gap: var(--spacing-4); grid-template-columns: repeat(auto-fit, minmax(var(--space-large-200), 1fr)); } .skeleton-grid-sm { gap: 0.5rem; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); } .skeleton-grid-lg { gap: var(--spacing-8); grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); } } /* Reduzierte Bewegung */ @media (prefers-reduced-motion: reduce) { @layer components { .skeleton, .skeleton-sm, .skeleton-lg { animation: var(--animation-none); background: var(--skeleton-start, rgb(0 0 0 / 10%)); } } }