@layer fc.components {
.fc-skeleton {
display: block;
block-size: 1lh;
background-color: var(--fc-color-bg-muted);
background-image: linear-gradient(
90deg,
transparent 0%,
color-mix(in oklch, var(--fc-color-bg-surface) 60%, transparent) 50%,
transparent 100%
);
background-size: 200% 100%;
background-repeat: no-repeat;
border-radius: var(--fc-radius-md);
animation: fc-loading-shimmer 1.6s ease-in-out infinite;
}
.fc-skeleton:dir(rtl) {
animation-direction: reverse;
}
.fc-skeleton--text {
block-size: 0.75lh;
margin-block: 0.125lh;
}
.fc-skeleton--text:last-child {
inline-size: 70%;
}
.fc-skeleton--circle {
inline-size: var(--fc-skeleton-size, 2.5rem);
block-size: var(--fc-skeleton-size, 2.5rem);
border-radius: var(--fc-radius-full);
}
.fc-skeleton--block {
block-size: var(--fc-skeleton-size, 8rem);
border-radius: var(--fc-radius-lg);
}
@keyframes fc-loading-shimmer {
from {
background-position: 150% 0;
}
to {
background-position: -50% 0;
}
}
.fc-progress {
appearance: none;
display: block;
inline-size: 100%;
block-size: var(--fc-progress-size, 0.5rem);
background-color: var(--fc-color-bg-muted);
color: var(--fc-color-accent-bg);
border: 0;
border-radius: var(--fc-radius-full);
overflow: hidden;
}
.fc-progress::-webkit-progress-bar {
background-color: var(--fc-color-bg-muted);
}
.fc-progress::-webkit-progress-value {
background-color: var(--fc-color-accent-bg);
border-radius: var(--fc-radius-full);
transition: inline-size var(--fc-duration-slow) var(--fc-easing-standard);
}
.fc-progress::-moz-progress-bar {
background-color: var(--fc-color-accent-bg);
border-radius: var(--fc-radius-full);
}
.fc-progress--sm {
--fc-progress-size: 0.25rem;
}
.fc-progress:indeterminate {
background-image: linear-gradient(
90deg,
transparent 0%,
var(--fc-color-accent-bg) 40%,
var(--fc-color-accent-bg) 60%,
transparent 100%
);
background-size: 40% 100%;
background-repeat: no-repeat;
animation: fc-loading-sweep 1.4s var(--fc-easing-standard) infinite;
}
.fc-progress:indeterminate::-webkit-progress-bar {
background-color: transparent;
}
.fc-progress:indeterminate::-moz-progress-bar {
background-color: transparent;
}
.fc-progress:indeterminate:dir(rtl) {
animation-direction: reverse;
}
@keyframes fc-loading-sweep {
from {
background-position: -60% 0;
}
to {
background-position: 160% 0;
}
}
.fc-progress-ring {
--fc-progress-ring-size: 2.5rem;
--fc-progress-ring-width: 0.25rem;
--fc-progress-ring-fill: var(--fc-color-accent-border);
position: relative;
display: inline-grid;
place-items: center;
flex-shrink: 0;
inline-size: var(--fc-progress-ring-size);
block-size: var(--fc-progress-ring-size);
color: var(--fc-color-text-default);
font-size: var(--fc-font-size-xs);
font-variant-numeric: tabular-nums;
transition: --fc-progress-value var(--fc-duration-slow) var(--fc-easing-standard);
}
@property --fc-progress-value {
syntax: "<number>";
inherits: true;
initial-value: 0;
}
.fc-progress-ring::before {
content: "";
position: absolute;
inset: 0;
border-radius: var(--fc-radius-full);
background: conic-gradient(
var(--fc-progress-ring-fill) calc(var(--fc-progress-value, 0) * 1%),
var(--fc-color-bg-muted) 0
);
mask: radial-gradient(
farthest-side,
transparent calc(100% - var(--fc-progress-ring-width) - 0.5px),
currentColor calc(100% - var(--fc-progress-ring-width))
);
}
.fc-progress-ring__label {
position: relative;
}
.fc-progress-ring--sm {
--fc-progress-ring-size: 1.5rem;
--fc-progress-ring-width: 0.1875rem;
}
.fc-progress-ring--lg {
--fc-progress-ring-size: 4rem;
--fc-progress-ring-width: 0.375rem;
font-size: var(--fc-font-size-sm);
}
.fc-progress-ring--error {
--fc-progress-ring-fill: var(--fc-color-danger-border);
}
@media (prefers-reduced-motion: reduce) {
.fc-skeleton {
animation: none;
background-image: none;
}
.fc-progress:indeterminate {
animation: none;
background-size: auto;
background-image: repeating-linear-gradient(
45deg,
var(--fc-color-accent-bg) 0 0.375rem,
transparent 0.375rem 0.75rem
);
}
}
@media (forced-colors: active) {
.fc-skeleton {
border: var(--fc-border-width-thin) dashed GrayText;
}
.fc-progress {
border: var(--fc-border-width-thin) solid CanvasText;
}
.fc-progress-ring {
--fc-progress-ring-fill: Highlight;
forced-color-adjust: none;
color: CanvasText;
}
.fc-progress-ring::before {
border: var(--fc-border-width-thin) solid CanvasText;
}
}
}