templates/pages/_includes/preloaders/includes/_preload-card.html.twig line 1

Open in your IDE?
  1. <div class="preload preload-card">
  2. <div class="preload-card-header">
  3. <div class="preload-element preload-card-logo"></div>
  4. <div class="preload-element preload-card-favorite"></div>
  5. </div>
  6. <div class="preload-card-body">
  7. <div class="preload-element preload-card-title"></div>
  8. <div class="preload-element preload-card-date"></div>
  9. <div class="preload-element preload-card-departure"></div>
  10. <div class="preload-card-ship-button">
  11. <div class="preload-element preload-card-ship"></div>
  12. <div class="preload-element preload-card-button"></div>
  13. </div>
  14. </div>
  15. </div>
  16. <style>
  17. /* Variables pour contrôler la vitesse des animations */
  18. :root {
  19. --preload-shimmer-speed: 2.5s; /* Vitesse du shimmer */
  20. --preload-pulse-speed: 3s; /* Vitesse du pulse */
  21. --preload-overlay-speed: 3s; /* Vitesse de l'overlay */
  22. }
  23. /* Animation shimmer métallique */
  24. @keyframes shimmer {
  25. 0% {
  26. background-position: -468px 0;
  27. }
  28. 100% {
  29. background-position: 468px 0;
  30. }
  31. }
  32. @keyframes pulse {
  33. 0%, 100% {
  34. opacity: 1;
  35. }
  36. 50% {
  37. opacity: 0.7;
  38. }
  39. }
  40. div.preload-card{
  41. width: 100%;
  42. display: flex;
  43. flex-direction: column;
  44. padding: 6px;
  45. gap: 10px;
  46. animation: pulse var(--preload-pulse-speed) cubic-bezier(0.4, 0, 0.6, 1) infinite;
  47. filter: blur(2px);
  48. background-color: #ffffff;
  49. }
  50. div.preload-card div.preload-card-body{
  51. display: flex;
  52. flex-direction: column;
  53. gap: 5px;
  54. }
  55. div.preload-card div.preload-card-header{
  56. display: flex;
  57. justify-content: space-between;
  58. align-items: flex-start;
  59. min-height: 3.4375rem;
  60. }
  61. div.preload-card div.preload-element.preload-card-logo{
  62. width: 25%;
  63. }
  64. div.preload-card div.preload-element.preload-card-favorite{
  65. width: 10%;
  66. }
  67. div.preload-card div.preload-card-ship-button{
  68. display: flex;
  69. justify-content: space-between;
  70. align-items: center;
  71. }
  72. div.preload-card div.preload-card-ship-button>div{
  73. width: calc(100% / 3);
  74. }
  75. div.preload-card div.preload-element{
  76. height: 17px;
  77. border-radius: 18px;
  78. background: linear-gradient(
  79. to right,
  80. #e6e6e6 0%,
  81. #ececec 20%,
  82. #f2f2f2 40%,
  83. #ececec 60%,
  84. #e6e6e6 80%,
  85. #e6e6e6 100%
  86. );
  87. background-size: 468px 100%;
  88. animation: shimmer var(--preload-shimmer-speed) ease-in-out infinite;
  89. position: relative;
  90. overflow: hidden;
  91. }
  92. div.preload-card div.preload-element::after {
  93. content: '';
  94. position: absolute;
  95. top: 0;
  96. left: -100%;
  97. width: 100%;
  98. height: 100%;
  99. background: linear-gradient(
  100. 90deg,
  101. transparent,
  102. rgba(255, 255, 255, 0.2),
  103. transparent
  104. );
  105. animation: shimmer-overlay var(--preload-overlay-speed) ease-in-out infinite;
  106. }
  107. @keyframes shimmer-overlay {
  108. 0% {
  109. left: -100%;
  110. }
  111. 100% {
  112. left: 200%;
  113. }
  114. }
  115. div.preload-card div.preload-card-title{
  116. width: 100%;
  117. }
  118. div.preload-card div.preload-card-date{
  119. width: 45%;
  120. }
  121. div.preload-card div.preload-card-departure{
  122. width: 40%;
  123. }
  124. </style>