<div class="preload preload-card">
<div class="preload-card-header">
<div class="preload-element preload-card-logo"></div>
<div class="preload-element preload-card-favorite"></div>
</div>
<div class="preload-card-body">
<div class="preload-element preload-card-title"></div>
<div class="preload-element preload-card-date"></div>
<div class="preload-element preload-card-departure"></div>
<div class="preload-card-ship-button">
<div class="preload-element preload-card-ship"></div>
<div class="preload-element preload-card-button"></div>
</div>
</div>
</div>
<style>
/* Variables pour contrôler la vitesse des animations */
:root {
--preload-shimmer-speed: 2.5s; /* Vitesse du shimmer */
--preload-pulse-speed: 3s; /* Vitesse du pulse */
--preload-overlay-speed: 3s; /* Vitesse de l'overlay */
}
/* Animation shimmer métallique */
@keyframes shimmer {
0% {
background-position: -468px 0;
}
100% {
background-position: 468px 0;
}
}
@keyframes pulse {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.7;
}
}
div.preload-card{
width: 100%;
display: flex;
flex-direction: column;
padding: 6px;
gap: 10px;
animation: pulse var(--preload-pulse-speed) cubic-bezier(0.4, 0, 0.6, 1) infinite;
filter: blur(2px);
background-color: #ffffff;
}
div.preload-card div.preload-card-body{
display: flex;
flex-direction: column;
gap: 5px;
}
div.preload-card div.preload-card-header{
display: flex;
justify-content: space-between;
align-items: flex-start;
min-height: 3.4375rem;
}
div.preload-card div.preload-element.preload-card-logo{
width: 25%;
}
div.preload-card div.preload-element.preload-card-favorite{
width: 10%;
}
div.preload-card div.preload-card-ship-button{
display: flex;
justify-content: space-between;
align-items: center;
}
div.preload-card div.preload-card-ship-button>div{
width: calc(100% / 3);
}
div.preload-card div.preload-element{
height: 17px;
border-radius: 18px;
background: linear-gradient(
to right,
#e6e6e6 0%,
#ececec 20%,
#f2f2f2 40%,
#ececec 60%,
#e6e6e6 80%,
#e6e6e6 100%
);
background-size: 468px 100%;
animation: shimmer var(--preload-shimmer-speed) ease-in-out infinite;
position: relative;
overflow: hidden;
}
div.preload-card div.preload-element::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent
);
animation: shimmer-overlay var(--preload-overlay-speed) ease-in-out infinite;
}
@keyframes shimmer-overlay {
0% {
left: -100%;
}
100% {
left: 200%;
}
}
div.preload-card div.preload-card-title{
width: 100%;
}
div.preload-card div.preload-card-date{
width: 45%;
}
div.preload-card div.preload-card-departure{
width: 40%;
}
</style>