mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
That was surprisingly easy. Note that it's still shared with SR. It hides a bit early though: when the web response returns, but before the DOM has been rendered. Something to optimise in the future.
89 lines
1.7 KiB
SCSS
89 lines
1.7 KiB
SCSS
.spinner-overlay {
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
height: 100%;
|
|
min-height: 200px;
|
|
background: rgba(255, 255, 255, 0.8);
|
|
z-index: 2;
|
|
|
|
// Show when inside a loading Turbo Frame
|
|
turbo-frame[aria-busy="true"] > & {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
.spinner-container {
|
|
position: fixed;
|
|
left: 0;
|
|
right: 0;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
flex-direction: column;
|
|
gap: 40px;
|
|
font-size: 24px;
|
|
|
|
&.hidden {
|
|
display: none;
|
|
}
|
|
|
|
> .spinner {
|
|
width: 56px;
|
|
height: 56px;
|
|
border-radius: 50%;
|
|
border: 9px solid $teal;
|
|
animation:
|
|
spinner-bulqg1 0.8s infinite linear alternate,
|
|
spinner-oaa3wk 1.6s infinite linear;
|
|
}
|
|
}
|
|
|
|
@keyframes spinner-bulqg1 {
|
|
0% {
|
|
clip-path: polygon(50% 50%, 0 0, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%);
|
|
}
|
|
|
|
12.5% {
|
|
clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%);
|
|
}
|
|
|
|
25% {
|
|
clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 100% 100%, 100% 100%);
|
|
}
|
|
|
|
50% {
|
|
clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%);
|
|
}
|
|
|
|
62.5% {
|
|
clip-path: polygon(50% 50%, 100% 0, 100% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%);
|
|
}
|
|
|
|
75% {
|
|
clip-path: polygon(50% 50%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 50% 100%, 0% 100%);
|
|
}
|
|
|
|
100% {
|
|
clip-path: polygon(50% 50%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 0% 100%);
|
|
}
|
|
}
|
|
|
|
@keyframes spinner-oaa3wk {
|
|
0% {
|
|
transform: scaleY(1) rotate(0deg);
|
|
}
|
|
|
|
49.99% {
|
|
transform: scaleY(1) rotate(135deg);
|
|
}
|
|
|
|
50% {
|
|
transform: scaleY(-1) rotate(0deg);
|
|
}
|
|
|
|
100% {
|
|
transform: scaleY(-1) rotate(-135deg);
|
|
}
|
|
}
|