[data-rs-overlay-container] {
position: relative;
isolation: isolate;
}
[data-rs-overlay-content] {
width: 100%;
transition: opacity var(--loading-overlay-transition-duration) var(--loading-overlay-transition-ease);
}
[data-rs-loading-overlay] {
position: absolute;
inset: 0;
z-index: var(--loading-overlay-z-index);
opacity: 0;
pointer-events: none;
transition: opacity var(--loading-overlay-transition-duration) var(--loading-overlay-transition-ease);
}
[data-rs-overlay-container][data-rs-state~="idle"] [data-rs-loading-overlay] {
display: none;
}
[data-rs-overlay-container][data-rs-state~="loading"] [data-rs-loading-overlay] {
display: block;
opacity: 1;
pointer-events: all;
}
[data-rs-overlay-container][data-rs-state~="loading"] [data-rs-overlay-content] {
opacity: 0.5;
pointer-events: none;
user-select: none;
}
[data-rs-overlay-container][data-rs-overlay-mode="blocking"] [data-rs-loading-overlay] {
background: var(--loading-overlay-bg);
}
[data-rs-overlay-container][data-rs-overlay-mode="subtle"] [data-rs-loading-overlay] {
background: transparent;
pointer-events: none;
}
[data-rs-overlay-container][data-rs-overlay-mode="skeleton"] [data-rs-loading-overlay] {
background: transparent;
}
[data-rs-loading-overlay-spinner] {
position: absolute;
top: 50%;
right: var(--space-md);
transform: translateY(-50%);
display: flex;
align-items: center;
justify-content: center;
color: var(--theme-surface-fg);
}
[data-rs-loading-overlay-spinner] svg {
width: var(--loading-overlay-spinner-size);
height: var(--loading-overlay-spinner-size);
display: block;
transform-origin: center;
transform-box: fill-box;
animation: overlay-spin var(--loading-overlay-spin-duration) linear infinite;
}
@keyframes overlay-spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}