StickyMenu.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <template>
  2. <div :class="stickyClass" >
  3. <v-row class="outil-row" justify="end">
  4. <v-col cols="3">
  5. <div class="container-square">
  6. <v-row v-for="square in squares" :key="square.id" :class="square.bgColor">
  7. <div>
  8. <v-icon :class="square.iconClass" />
  9. <p class="text-square">{{ square.text }}</p>
  10. </div>
  11. </v-row>
  12. </div>
  13. </v-col>
  14. </v-row>
  15. </div>
  16. </template>
  17. <script setup lang="ts">
  18. import { ref, onMounted, defineProps } from "vue";
  19. const props = defineProps({
  20. shouldShowStickyMenu: Boolean,
  21. squaresData: Array,
  22. });
  23. const stickyClass = ref("sticky-scroll");
  24. const squares = ref(props.squaresData);
  25. </script>
  26. <style scoped>
  27. .container-square {
  28. display: flex;
  29. flex-direction: column;
  30. justify-content: space between;
  31. color: white;
  32. font-weight: 500;
  33. font-size: 0.7rem;
  34. line-height: 15px;
  35. text-align: center;
  36. letter-spacing: 0.2em;
  37. text-transform: uppercase;
  38. }
  39. .blue-square,
  40. .darkblue-square {
  41. display: flex;
  42. justify-content: center;
  43. align-items: center;
  44. font-family: "Barlow";
  45. width: 10rem;
  46. height: 7rem;
  47. margin-left: 14rem;
  48. padding: 1rem;
  49. }
  50. .blue-square {
  51. background: rgba(32, 147, 190);
  52. }
  53. .darkblue-square {
  54. background: #0e2d32;
  55. }
  56. .text-square {
  57. margin: 0.5rem 2rem;
  58. }
  59. .icon {
  60. margin-right: 1rem;
  61. }
  62. .icon-logiciel {
  63. color: rgba(32, 147, 190);
  64. margin-right: 1rem;
  65. }
  66. .outil-row {
  67. margin: 5rem 0;
  68. }
  69. #sticky-menu {
  70. position: sticky;
  71. top: 10rem;
  72. z-index: 10;
  73. right: 0;
  74. margin-bottom: -40rem;
  75. }
  76. </style>