UNPKG

@gravity-ui/uikit

Version:

Gravity UI base styling and components

81 lines (80 loc) 1.86 kB
.g-skeleton { --_--animation-from: calc(-100% * var(--g-flow-direction)); --_--animation-to: calc(100% * var(--g-flow-direction)); --_--gradient-deg: calc(90deg * var(--g-flow-direction)); --_--border-radius: var(--g-border-radius-s); display: inline-block; position: relative; z-index: 0; width: 100%; overflow: hidden; background-color: var(--g-color-base-generic); border-radius: var(--_--border-radius); height: var(--_--size, auto); } .g-skeleton_size_xs { --_--border-radius: var(--g-border-radius-xs); --_--size: 20px; } .g-skeleton_size_s { --_--border-radius: var(--g-border-radius-s); --_--size: 24px; } .g-skeleton_size_m { --_--border-radius: var(--g-border-radius-m); --_--size: 28px; } .g-skeleton_size_l { --_--border-radius: var(--g-border-radius-l); --_--size: 36px; } .g-skeleton_size_xl { --_--border-radius: var(--g-border-radius-xl); --_--size: 44px; } .g-skeleton_variant_circle { width: auto; aspect-ratio: 1; border-radius: 50%; } .g-skeleton_variant_square { width: auto; aspect-ratio: 1; } .g-skeleton_variant_text { display: block; width: 100%; height: 1em; margin-block: calc((1lh - 1em) / 2); } .g-skeleton_animation_gradient::after { position: absolute; inset: 0; content: ""; background-image: linear-gradient(var(--_--gradient-deg), transparent, var(--g-color-base-generic)); animation: g-skeleton 1.2s ease-out infinite; } @media (prefers-reduced-motion: reduce) { .g-skeleton_animation_gradient::after { animation: none; } } .g-skeleton_animation_pulse { animation: g-skeletonPulse 1.5s infinite linear; } @keyframes g-skeleton { 0% { transform: translateX(var(--_--animation-from)); } 100% { transform: translateX(var(--_--animation-to)); } } @keyframes g-skeletonPulse { 0% { opacity: 1; } 50% { opacity: 0.5; } }