Reviews.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <template>
  2. <div id="Temoignages">
  3. <LayoutContainer>
  4. <div class="container-green">
  5. <v-row>
  6. <v-col cols="3">
  7. <div style="display: flex; flex-direction: column; justify-content: space-between; height: 100%;">
  8. <h3 class="reviews-title">Ce sont eux qui en parlent le mieux</h3>
  9. <div class="d-flex justify-center align-center">
  10. <div class="carousel-button" @click="goPrevious">
  11. <i class="fas fa-chevron-left" />
  12. </div>
  13. <div class="carousel-button" @click="goNext">
  14. <i class="fas fa-chevron-right" />
  15. </div>
  16. </div>
  17. </div>
  18. </v-col>
  19. <v-col cols="9">
  20. <Carousel ref="carousel" :items-to-show="3" :items-to-scroll="1">
  21. <Slide v-for="(card, index) in cards" :key="index" class="card">
  22. <v-card>
  23. <v-card-item class="card-container">
  24. <v-card-text class="review-description">
  25. {{ card.description }}
  26. </v-card-text>
  27. <div class="card-footer">
  28. <v-card-actions class="reviewer-name">
  29. {{ card.name }}
  30. </v-card-actions>
  31. <p class="reviewer-status">
  32. {{ card.status }}
  33. </p>
  34. <p class="reviewer-structure">
  35. {{ card.structure }}
  36. </p>
  37. </div>
  38. </v-card-item>
  39. </v-card>
  40. </Slide>
  41. </Carousel>
  42. </v-col>
  43. </v-row>
  44. </div>
  45. </LayoutContainer>
  46. </div>
  47. </template>
  48. <script setup>
  49. import { ref } from "vue";
  50. import { Carousel, Slide } from "vue3-carousel";
  51. import "vue3-carousel/dist/carousel.css";
  52. const carousel = ref(null);
  53. const goPrevious = () => {
  54. carousel.value.prev();
  55. };
  56. const goNext = () => {
  57. carousel.value.next();
  58. };
  59. const cards = [
  60. {
  61. description:
  62. "L'outil répond à toutes les demandes d'une structure de notre taille et la connexion avec le site internet est très pratique.",
  63. name: "Christophe MORIZOT",
  64. status: "Président ",
  65. structure: "Confédération Musicale de France (92)",
  66. },
  67. {
  68. description:
  69. "Lorem ipsum dolor sit amet consectetur adipisicing elit.Provident porro fuga incidunt quae, doloremque tenetur aliquam exercitationem deleniti aspernatur illo rem deserunt sapiente empore dolorem ipsa aliquid vel nihil eius.",
  70. name: "Eric TAUVRON ",
  71. status: "Vice-président",
  72. structure: "CMF Rhône - Grand Lyon (69)",
  73. },
  74. {
  75. description:
  76. "C'est un outil de travail très intéressant, complet et intuitif quand on comprend certaines subtilités. Il a très bien évolué aussi bien pour les chorales que les harmonie. Mes remarques ont toujours été prises en compte.",
  77. name: "Noëlle ROBERT",
  78. status: "Président",
  79. structure: "CMF Côte d'or (21)",
  80. },
  81. {
  82. description:
  83. "Lorem ipsum dolor sit amet consectetur adipisicing elit.Provident porro fuga incidunt quae, doloremque tenetur aliquam exercitationem deleniti aspernatur illo rem deserunt sapiente empore dolorem ipsa aliquid vel nihil eius.",
  84. name: "Laurent Lebon",
  85. status: "Chef d'orchestre",
  86. structure: "Conservatoire de Lyon",
  87. },
  88. {
  89. description:
  90. "Lorem ipsum dolor sit amet consectetur adipisicing elit.Provident porro fuga incidunt quae, doloremque tenetur aliquam exercitationem deleniti aspernatur illo rem deserunt sapiente empore dolorem ipsa aliquid vel nihil eius.",
  91. name: "Laurent Lebon",
  92. status: "Chef d'orchestre",
  93. structure: "Conservatoire de Lyon",
  94. },
  95. ];
  96. </script>
  97. <style scoped>
  98. .v-container{
  99. padding: 0 !important;
  100. }
  101. .carousel-button {
  102. display: flex;
  103. justify-content: center;
  104. align-items: center;
  105. width: 60px;
  106. height: 60px;
  107. background-color: transparent;
  108. border: 2px solid #fff;
  109. cursor: pointer;
  110. margin-right: 1rem;
  111. margin-bottom: 2rem;
  112. }
  113. .carousel-button i {
  114. color: #fff;
  115. }
  116. .reviewer-name {
  117. font-weight: 500;
  118. font-size: 20px;
  119. line-height: 24px;
  120. color: #e34461;
  121. margin-top: 5rem;
  122. }
  123. .reviewer-status {
  124. font-weight: 600;
  125. font-size: 12px;
  126. line-height: 16px;
  127. display: flex;
  128. align-items: center;
  129. letter-spacing: 0.18em;
  130. text-transform: uppercase;
  131. }
  132. .reviewer-structure {
  133. font-weight: 300;
  134. font-size: 0.8rem;
  135. line-height: 14px;
  136. display: flex;
  137. align-items: center;
  138. margin-bottom: 1rem;
  139. color: #071b1f;
  140. }
  141. .review-description {
  142. text-align: left;
  143. min-height: 150px;
  144. overflow: auto;
  145. font-size: 0.9rem;
  146. }
  147. .card-footer {
  148. min-height: 100px;
  149. display: flex;
  150. flex-direction: column;
  151. justify-content: center;
  152. align-items: center;
  153. margin-top: 1rem;
  154. }
  155. .reviews-title {
  156. font-size: 2rem;
  157. font-weight: 700;
  158. color: #fff;
  159. font-weight: 600;
  160. font-size: 42px;
  161. line-height: 42px;
  162. margin-left: 1rem;
  163. margin-right: 1rem;
  164. margin-top: 3rem;
  165. text-align: center;
  166. }
  167. .card {
  168. margin-left: 0.5rem;
  169. border-radius: 1rem;
  170. }
  171. .v-card {
  172. border-radius: 1rem;
  173. min-height: 350px;
  174. max-height: 350px;
  175. margin-top: 2rem;
  176. margin-bottom: .6rem;
  177. }
  178. .card-container {
  179. display: flex;
  180. flex-direction: column;
  181. justify-content: space-between;
  182. height: 100%;
  183. }
  184. .container-green {
  185. background-color: #0e2d32;
  186. }
  187. </style>